Перейти к контенту

[SoC] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

Добрый вечер. Не подскажете, как можно заспавнить оружие через alife():create, но только без патронов?

P.s ковыряю чистый ТЧ

Поделиться этим сообщением


Ссылка на сообщение
local unload_magazine = function(id, obj) obj:unload_magazine() end

local sobj = alife():create("секция_оружия", vector(), 0, 0, db.actor:id())
if sobj then
  level.client_spawn_manager():add(sobj.id, db.actor:id(), unload_magazine)
end

Если не составит труда, можете помочь с пониманием? Я так понимаю:

obj:unload_magazine() - то, что заставляет оружие появиться без патронов.

if sobj then - если идет спавн оружия, то далее идет функция:

level.client_spawn_manager():add(sobj.id, db.actor:id(), unload_magazine) с ссылкой на unload_magazine, которая обезоруживает?

Поправьте, если я не так понимаю :-)

 

Поделиться этим сообщением


Ссылка на сообщение

Ребята,  поможете? Какой код надо написать, чтобы при поднятии предмета сработал любой скрипт?

 

http://www.amk-team.ru/forum/index.php?showtopic=13054 - не кошерно ? dc

Изменено пользователем Dennis_Chikin
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

Добрый вечер. Помогите пожалуйста разобраться с вылетом:

Распаковываю all.spawn с помощью acdc, открываю файл way_|01_escape и прописываю путь:

[esc2_leshiy_stay]
points = p0
p0:name = name00
p0:position = -211.379180908203,-19.945894241333,-140.205642700195
p0:game_vertex_id = 61
p0:level_vertex_id = 41941

Сворачиваю обратно, помещаю в папку spawns

Далее прописываю этот путь в логику сталкера, который должен тупо стоять на 1 месте:

[smart_terrains]
none = true

[logic] 
active = camper 
danger = danger_ignore

[camper]
path_walk = esc2_leshiy_stay
radius = 10

[danger_ignore] 
ignore_distance = 5

Вызываю функцию его спавна из диалога и получаю вылет

Expression : fatal error

Function : CScriptEngine::lua_error
File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line : 73
Description :
Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)

 

Ковыряю ТЧ на патче 1.0004. В _g.script функция, включая 20 строчку, имеет такой вид:

function printf(fmt,...)
	log(string.format(fmt,...))
end

Скажите, в чём ошибка?

Изменено пользователем NonGrande

Поделиться этим сообщением


Ссылка на сообщение

@UnLoaded, Убрал. Без логики он спавнится нормально, только уходит сразу же.

@Fagot., Не помогло. Вылетает с тем же логом.

Может что в all.spawn наворотил не так?

Поделиться этим сообщением


Ссылка на сообщение

@Хемуль36рус, Все нормально, спасибо) Я просто look не прописал, поэтому не могло переварить логику. Поставил через ремарку no_move = true, и сработало: НПС заспавнился, и при этом стоял на месте.

Оффтоп, удалите потом пожалуйста.

Поделиться этим сообщением


Ссылка на сообщение

Он скорее всего имеет ввиду, чтобы ноги были видны, когда поворачиваешь камеру вниз как в Lost Alpha.

@Forser, Это не мне надо объяснять, а человеку, постом ранее)

Изменено пользователем NonGrande

Поделиться этим сообщением


Ссылка на сообщение

Добрый день. Хочу сделать НПС кемпером, и чтобы он стоял на 1 месте и никуда не бегал:

[logic] 
active = camper

[camper]
no_move = true
danger = danger_ignore
path_walk = esc2_leshiy_stay
path_look = esc2_leshiy_look

[danger_ignore] 
ignore_distance = 5

[smart_terrains]
none = true

path & look прописываю в all.spawn в файле way_|01_escape:

[esc2_leshiy_stay]
points = p0
p0:name = name00
p0:position = -211.379180908203,-19.945894241333,-140.205642700195
p0:game_vertex_id = 61
p0:level_vertex_id = 41941
[esc2_leshiy_look]
points = p0
p0:name = name00
p0:position = -208.577209472656,-19.9769744873047,-140.117828369141
p0:game_vertex_id = 61
p0:level_vertex_id = 44624

Сворачиваю обратно, прописываю вызов НПС через скрипт в диалог. Запускаю игру, начинаю разговор и тут:

Загрузка детальных объектов...


* [DETAILS] VertexConsts(256), Batch(61)
* [DETAILS] 40687 v(20), 26352 p
* [DETAILS] Batch(61), VB(794K), IB(154K)
* phase time: 178 ms
* phase cmem: 269884 K
Загрузка секторов и порталов...
* Loading HOM: d:\topsecretfiles\games\s.t.a.l.k.e.r. - shadow of chernobyl\gamedata\levels\l01_escape\level.hom
* phase time: 29 ms
* phase cmem: 270073 K
Загрузка ИИ объектов...
- Loading music tracks from 'l01_escape_musics'...
* phase time: 180 ms
* phase cmem: 270129 K
Клиент: Создание...
- Game configuring : Started
- Game configuring : Finished
* phase time: 1017 ms
* phase cmem: 278398 K
Загрузка текстур...
* t-report - base: 865, 88304 K
* t-report - lmap: 10, 10241 K
***FATAL***: Too many lmap-textures (limit: 8 textures or 32M).
Reduce pixel density (worse) or use more vertex lighting (better).
* phase time: 4943 ms
* phase cmem: 278398 K
Клиент: Синхронизация...
* phase time: 68 ms
* phase cmem: 278398 K
* [win32]: free[1300304 K], reserved[65180 K], committed[731604 K]
* [ D3D ]: textures[98546 K]
* [x-ray]: crt heap[278398 K], process heap[30905 K], game lua[21945 K], engine lua[231 K], render[0 K]
* [x-ray]: economy: strings[3227 K], smem[28221 K]
* MEMORY USAGE: 299715 K

FATAL ERROR

[error]Expression : fatal error
[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description :
[error]Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)


stack trace:

 

Когда спавню НПС без логики, то он нормально появляется.

Ковыряю чистый ТЧ 1.0004     в _g.script 20 строка имеет вид:

function printf(fmt,...)
	log(string.format(fmt,...))  -- вот 20 строка
end

Подскажите пожалуйста, в чем проблема.

Поделиться этим сообщением


Ссылка на сообщение

@Fagot., Все тоже самое:


Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line : 73
Description :
Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)

 

Может это из-за all.spawn? До распаковки он весил 4370 кб. а сейчас 4347. Может быть что-нибудь затерлось?

 

p.s Немного поковырялся в интернете, нашел способ отладки вылета, проверил 1 раз. Вылетало от того, что флаг не прописал в путь. Прописал флаг, зашел 2 раз, но теперь опять вылетает с другим логом:

! Unknown command: _bp:_reset_generic_schemes_on_scheme_switch:_npc:name()='%s'
! Unknown command: WOUNDED_SECTION_[%s][%s]
! Unknown command: THRESHOLD_SECTION_[%s]
! Unknown command: STALKER_SPOT_SECTION_[%s]
! Unknown command: _bp:_calling_module('%s')
! Unknown command: _bp:_path_parse_waypoints:_pathname='%s'
! Unknown command: _bp:_path_parse_waypoints:_pathname='%s'
! Unknown command: ERROR:_object_'esc_leshiy19456':_path_walk_'walk_esc2_leshiy',_index_0:_cannot_find_corresponding_point(s)_on_path_look_'look_esc2_leshiy'
! Unknown command: %s

FATAL ERROR

[error]Expression : fatal error
[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description :
[error]Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:21: bad argument #2 to 'format' (string expected, got no value)


stack trace:

 

Изменено пользователем NonGrande

Поделиться этим сообщением


Ссылка на сообщение

@_Val_, Смотрю. Интересно то, что ничего не менялось, но размер файла не мог же сам по себе измениться в сторону уменьшения? Я убрал логику и запустил игру. По идее, если в файле что-нибудь затерлось, сталкер бы вообще не запустился. 

@Fagot., Первый раз распаковываю и запаковываю) И именно этот первый раз сбоит. Ну, вернее уже несколько раз распаковываю и запаковываю один и тот же файл, изменяя добавленное.

Конечно не забыл:

[walk_esc2_leshiy]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = -211.379180908203,-19.945894241333,-140.205642700195
p0:game_vertex_id = 61
p0:level_vertex_id = 41941
[look_esc2_leshiy]
points = p0
p0:name = name00
p0:position = -208.577209472656,-19.9769744873047,-140.117828369141
p0:game_vertex_id = 61
p0:level_vertex_id = 44624
Изменено пользователем NonGrande

Поделиться этим сообщением


Ссылка на сообщение

Компилятор:

universal_acdc.pl -compile all -out new.spawn
pause

Декомпилятор:

universal_acdc.pl -d all.spawn -out all -sort complex -nofatal
pause

@Fagot., Все, решил. Прописал флаг и в walk и в look - заработало. Спасибо за помощь!

  • Согласен 2

Поделиться этим сообщением


Ссылка на сообщение

Добрый вечер. Скажите пожалуйста: можно ли заспавнить бармена раненым, чтобы он лежал и просил аптечку при заходе в бар?

Изменено пользователем NonGrande

Поделиться этим сообщением


Ссылка на сообщение

Добрый вечер. Подскажите пожалуйста, а можно ли как-нибудь по ходу игры поменять имя ГГ?

ТЧ 1.0004

Изменено пользователем NonGrande

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   1 пользователь

×
×
  • Создать...