Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: denis2000, FantomICW  
Модостроение. Конфигурационные файлы
denis2000Дата: Пн, 10.10.2011, 21:14 | Сообщение # 1
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Конфигурационные файлы

Редактирование параметров конфигурации, создание новых конфигураций

Если у вас появились вопросы по редактированию характеристик оружия, брони, отношения
группировок в игре.
Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди
вам ответят.



Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7


Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML
[cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл:
1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R])
2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx"
3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо)
Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#"
Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut]

[cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти?
Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда.
Для того чтоб найти LOG необходимо зайти вот сюда:

В Win хр лог находится:

C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs

Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.

В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs

Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка:
...
$app_data_root$ = true | false| $fs_root$| users\
(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx)
...
$logs$ = true| false| $app_data_root$| logs\
(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи)
...
[/cut][cut=Получение более подробной информации о вылете (ХОВАН)]
Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...)
Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так:
Код
function abort(fmt, ...)
                            local reason = string.format(fmt, ...)
                            error_log(reason)
end

Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией

Первый:
Код
Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil)

Второй:
Код
Expression    : 0
Function      : ErrorLog
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp
Line          : 49
Description   : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic'

[/cut]


Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы,
статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки.
Помните чем подробнее вопрос, тем точнее ответ.



 
sergej5500Дата: Пн, 19.11.2018, 20:51 | Сообщение # 781
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Policai ()
Такой баг вроде был в SGM 2.2. Как там решили эту проблему?


Никак не решили.

Цитата Policai ()
как заставить НПС прятаться от выброса?


1. Нужно сделать укрытие от выброса (рестриктор) необходимого объема.
2. Зарегистрировать соответствующий смарт как укрытие.
3. Сделать для НПС нужное кол-во работ в укрытии.
4. Если НПС эксклюзивные, то настроить им логику, что бы на их работы в укрытии не залезли дефолтные НПС.

Если укрытий несколько, то все вышеперечисленное нужно сделать для каждого укрытия.

Все это сделано в оригинале ЗП. Поэтому НПС из оригинала прячутся, а СГМ-овские нет.
 
PolicaiДата: Пн, 19.11.2018, 21:00 | Сообщение # 782
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

Всё это сделано и у меня, но именно эксклюзив не прячется, это я как понимаю вшито в движок. нпс которые имеют стори айди игнорят выброс.

 
sergej5500Дата: Пн, 19.11.2018, 21:07 | Сообщение # 783
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Policai ()
но именно эксклюзив не прячется


Эксклюзив, надеюсь, сквадовый НПС? Смарты работают только со сквадами.
 
HunterДата: Вт, 20.11.2018, 00:32 | Сообщение # 784
Удаленные



Policai, в свойствах эксклюзивов возможно есть строчка на игнорирование выбросов, чтобы они не умерли/не ушли в укрытие, типа для того, чтоб всегда стоял на одном и том же месте, независимо от условий окружающего мира. Не уверен насчет этого.
 
PolicaiДата: Вт, 20.11.2018, 03:59 | Сообщение # 785
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

У меня эксклюзивы все, всё как обычно, сквады привязанные к смартам, просто логика на каждого НПС отдельная, это сделано чтоб хоть как то вывести боле менее боевую составляющую. Движковое ЗП это растения, которые ГГ в одиночку сотнями выносит...))

 
sergej5500Дата: Вт, 20.11.2018, 11:02 | Сообщение # 786
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Policai ()
всё как обычно, сквады привязанные к смартам, просто логика на каждого НПС отдельная, это сделано чтоб хоть как то вывести боле менее боевую составляющую.


Так ничего сказать нельзя. Выкладывайте все, относящееся к сквадам и смартам. Сквады, спавн-секции, логику смартов и т.д. Гадать можно бесконечно.
 
PolicaiДата: Вт, 20.11.2018, 13:00 | Сообщение # 787
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

sergej5500,

У меня в смартах нет логики, я же написал все эксклюзивы, на каждого НПС свой файл логики. в смартах только ссылки на файлы логики. Остальное всё как обычно. зарегестрированы в spawn_sections_локация, character_desc_локация, npc_profile, squad_descr_локация, simulation, simulation_objects_props. Всё стандартно просто в squad_descr_локация в сквадах прописаны не дефолтные а те что у меня созданы....
Всё работает прекрасно, и мод работает прекласно, просто хотел разобраться почему НПС не прячутся от выброса. А оказывается такая проблема не только у меня... Мне подсказали что это из за того что НПС имеюи свой айди так как они эксклюзивы, а в движке вшита функция что эксклюзивы не реагируют на выброс. чтоб не дохли торговцы и т.д....


 
sergej5500Дата: Вт, 20.11.2018, 15:51 | Сообщение # 788
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Policai ()
почему НПС не прячутся от выброса. А оказывается такая проблема не только у меня


Нужна логика НПС без выброса и во время выброса.

Цитата Policai ()
Мне подсказали что это из за того что НПС имеюи свой айди так как они эксклюзивы


Айди тут совершенно не причем.

Цитата Policai ()
эксклюзивы не реагируют на выброс. чтоб не дохли торговцы и т.д....


Не дохнут сквады со СТОРИ-ИД. Не дохнут несквадовые НПС.
 
Ay49MihasДата: Вт, 20.11.2018, 18:07 | Сообщение # 789
Полевой исследователь
Ученые сталкеры
Сообщений: 218
Награды: 9
Репутация: [ 83 ]

Цитата Policai ()
Мне подсказали что это из за того что НПС имеюи свой айди так как они эксклюзивы, а в движке вшита функция что эксклюзивы не реагируют на выброс. чтоб не дохли торговцы и т.д....

Юр, есть такая фича. У кого есть story_id, от выбросов не дохнут. Но, насколько я понимаю, эксклюзивы не бегут прятаться от выброса по другой причине.
В оригинале ЗП есть такой скрипт (gulag_general.script), он принудительно задаёт логику для убегания от выброса:
Код
local job_ltx = "[logic@"..way_name.."]\n"..
    "active = walker@"..way_name.."\n"..
    "[walker@"..way_name.."]\n"..
    "sound_idle = state\n"..
    "use_camp = true\n"..
    "meet = meet@generic_lager\n"..
    "path_walk = surge_"..it.."_walk\n"..
    "def_state_standing = guard\n"..
    "def_state_moving = patrol\n"

Судя по всему, у неписей с эксклюзивной логикой эту логику переопределить нельзя. Следовательно, попробуй добавить такие секции в логики неписей (придётся почти каждому скваду прописывать путь отхода в укрытие).

Вот как в ЗП сделано:
Код
...
[walker@jup_a10_bandit_guard_1]
path_walk = jup_a10_bandit_guard_1_walk
path_look  = jup_a10_bandit_guard_1_look
on_info = {=surge_started} walker@surge

[walker@surge]
path_walk = bodyguard_1_walk
path_look  = bodyguard_1_look
on_info = {=surge_complete} walker@jup_a10_bandit_guard_1

Придётся тебе прописывать пути отхода в укрытие для каждого смарта или даже сквада


Сообщение отредактировал Ay49Mihas - Вт, 20.11.2018, 18:16
 
PolicaiДата: Вт, 20.11.2018, 18:30 | Сообщение # 790
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

Для сквадов я пытался прописать сброс на дефол на время выброса,
target_smart = {!surge_started}esc_kpp, nil не прокатило
Для смарта неплохо бы было. тем более надо не для всех а для дружественных только, для врагов это не нужно , сам прячешься от выброса и уже не видишь чо там делают враги. а если близко то они нападают и уже не до смотрелок а ноги бы унести и под выброс не попасть...

Добавлено (20.11.2018, 19:00)
---------------------------------------------
Ay49Mihas,

Всё заработало..)))) Мозг ломал а оказывается не надо было в дебри лесть. всё гораздо проще.
Со сквадами конечно было бы проще и быстрее, но и так сойдёт, сделаю, просто чуть дольше.

Добавлено (21.11.2018, 07:58)
---------------------------------------------
Народ! Проблемка вылезла с дверями в одном месте, при выбросе НПС толпятся возле двери, она не открывается.
Понимаю что логика кривая на дверь, как исправить?
Делал по аналогии ЗП на станции янов.

[cut noguest=Дверь][/cut]

[cut noguest=Логика]logic
active = ph_door@closed

ph_door@closed
closed = true
locked = false
on_use = ph_door@open
;on_info = {!check_smart_alarm_status(esc_baza:normal)} ph_door@locked
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop

ph_door@open
closed = false
locked = false
on_use = ph_door@closed
;on_info = {!check_smart_alarm_status(esc_baza:normal)} ph_door@locked
on_game_timer = 50 ph_door@closed
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop

ph_door@locked
closed = true
locked = true
;on_info = {=check_smart_alarm_status(esc_baza:normal)} ph_door@closed
;on_info2 = {=check_smart_alarm_status(esc_baza:alarm)} ph_door@locked_alarm
snd_open_start = trader_door_locked
tip_open = tip_door_closed_hide_weapon

ph_door@locked_alarm
closed = true
locked = true
;on_info = {=check_smart_alarm_status(esc_baza:normal)} ph_door@closed
;on_info2 = {=check_smart_alarm_status(esc_baza:danger)} ph_door@locked
snd_open_start = trader_door_locked
tip_open = tip_door_closed_base_alarm [/cut]


 
Ay49MihasДата: Ср, 21.11.2018, 08:48 | Сообщение # 791
Полевой исследователь
Ученые сталкеры
Сообщений: 218
Награды: 9
Репутация: [ 83 ]

Цитата Policai ()
Народ! Проблемка вылезла с дверями в одном месте, при выбросе НПС толпятся возле двери, она не открывается.

Подсмотрел на другом форуме:
Цитата
По дверям: сталкивались и разбирали эту проблему, на новых (или подключенных) локах нпс двери не открывают. Решение:

Убедиться что двери заспавнены как physic_door

удалить в ph_door.script функции try_to_open_door и try_to_close_door строку

if true then return {} end

От себя добавлю, что убирание строк из функций try_to_open_door и try_to_close_door может солидно просадить производительность игры, т.к. там перебираются все двери и все неписи, между ними вычисляется расстояние, и если оно маленькое, то дверь принудительно открывается, а если большое, то закрывается.

Добавлено (21.11.2018, 08:49)
---------------------------------------------
Вместо удаления строки можно её заменить на
Код
if false then return {} end

Добавлено (21.11.2018, 08:53)
---------------------------------------------
С другой стороны, там же пишут, что у дверей для их открытия неписями должны быть правильно названы какие-то кости. В ph_door.script упоминается только кость с именем "door"

Сообщение отредактировал Ay49Mihas - Ср, 21.11.2018, 08:50
 
PolicaiДата: Ср, 21.11.2018, 09:25 | Сообщение # 792
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

Цитата
Убедиться что двери заспавнены как physic_door


Они у меня так и заспавнены..

Цитата
С другой стороны, там же пишут, что у дверей для их открытия неписями должны быть правильно названы какие-то кости. В ph_door.script упоминается только кость с именем "door"


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

Цитата
Вместо удаления строки можно её заменить на if false then return {} end

Просадка производительности вообще нежелательно, там и так нагрузка на двиг немаленькая.

В скриптах полный ноль, не могу понять что меняет эта функция?

if false then return {} end

Добавлено (21.11.2018, 09:48)
---------------------------------------------
Вообще не могу понять своими куриными мозгами, почему на новых (или подключенных) локах нпс двери не открывают, двери то родные из сталкера, функции тоже родные из сталкера. Получается что все двери которые НПС открывают сами, регистрируются где то в скриптах по именам?




Сообщение отредактировал Policai - Ср, 21.11.2018, 09:26
 
sergej5500Дата: Ср, 21.11.2018, 10:58 | Сообщение # 793
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Policai ()
почему на новых (или подключенных) локах нпс двери не открывают, двери то родные из сталкера, функции тоже родные из сталкера.


У меня была похожая проблема. Мне помогли. Смотри переписку

тут

и на следующей странице.
 
Ay49MihasДата: Ср, 21.11.2018, 11:18 | Сообщение # 794
Полевой исследователь
Ученые сталкеры
Сообщений: 218
Награды: 9
Репутация: [ 83 ]

Цитата Policai ()
В скриптах полный ноль, не могу понять что меняет эта функция?

if false then return {} end

Изначально (if true then return {} end) эта строка выходит из функции всегда, возвращая пустой список. При этом сама функция больше никаких действий не выполняет. Замена true на false отменяет действие этой строки (выполняются все дальнейшие действия в этой функции), позволяя, если что, вернуться к первоначальному варианту.


Сообщение отредактировал Ay49Mihas - Ср, 21.11.2018, 11:27
 
PolicaiДата: Ср, 21.11.2018, 17:09 | Сообщение # 795
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

Народ! задолбался ждать эти выбросы чтоб проверить..))) Как запустить выброс из консоли? есть такая возможность?

 
Поиск: