Модостроение. Конфигурационные файлы
|
|
denis2000 | Дата: Пн, 10.10.2011, 21:14 | Сообщение # 1 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Конфигурационные файлы
Редактирование параметров конфигурации, создание новых конфигураций
Если у вас появились вопросы по редактированию характеристик оружия, брони, отношения группировок в игре. Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди вам ответят.
Много интересного материала здесь (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 по ссылке из шапки и соседнюю тему "Курс молодого бойца", возможно Ваш вопрос уже рассматривался.
Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки. Помните чем подробнее вопрос, тем точнее ответ.
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 19.11.2018, 20:51 | Сообщение # 781 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Policai ( ) Такой баг вроде был в SGM 2.2. Как там решили эту проблему?
Никак не решили.
Цитата Policai ( ) как заставить НПС прятаться от выброса?
1. Нужно сделать укрытие от выброса (рестриктор) необходимого объема. 2. Зарегистрировать соответствующий смарт как укрытие. 3. Сделать для НПС нужное кол-во работ в укрытии. 4. Если НПС эксклюзивные, то настроить им логику, что бы на их работы в укрытии не залезли дефолтные НПС.
Если укрытий несколько, то все вышеперечисленное нужно сделать для каждого укрытия.
Все это сделано в оригинале ЗП. Поэтому НПС из оригинала прячутся, а СГМ-овские нет.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Policai | Дата: Пн, 19.11.2018, 21:00 | Сообщение # 782 |
Ветеран
Разработчики
Сообщений: 421
| Всё это сделано и у меня, но именно эксклюзив не прячется, это я как понимаю вшито в движок. нпс которые имеют стори айди игнорят выброс.
|
|
|
Эти 0 пользователя(ей) поблагодарили Policai за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 19.11.2018, 21:07 | Сообщение # 783 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Policai ( ) но именно эксклюзив не прячется
Эксклюзив, надеюсь, сквадовый НПС? Смарты работают только со сквадами.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Hunter | Дата: Вт, 20.11.2018, 00:32 | Сообщение # 784 |
Удаленные
| Policai, в свойствах эксклюзивов возможно есть строчка на игнорирование выбросов, чтобы они не умерли/не ушли в укрытие, типа для того, чтоб всегда стоял на одном и том же месте, независимо от условий окружающего мира. Не уверен насчет этого.
|
|
|
Эти 0 пользователя(ей) поблагодарили Hunter за это полезное сообщение: |
|
|
Policai | Дата: Вт, 20.11.2018, 03:59 | Сообщение # 785 |
Ветеран
Разработчики
Сообщений: 421
| У меня эксклюзивы все, всё как обычно, сквады привязанные к смартам, просто логика на каждого НПС отдельная, это сделано чтоб хоть как то вывести боле менее боевую составляющую. Движковое ЗП это растения, которые ГГ в одиночку сотнями выносит...))
|
|
|
Эти 0 пользователя(ей) поблагодарили Policai за это полезное сообщение: |
|
|
sergej5500 | Дата: Вт, 20.11.2018, 11:02 | Сообщение # 786 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Policai ( ) всё как обычно, сквады привязанные к смартам, просто логика на каждого НПС отдельная, это сделано чтоб хоть как то вывести боле менее боевую составляющую.
Так ничего сказать нельзя. Выкладывайте все, относящееся к сквадам и смартам. Сквады, спавн-секции, логику смартов и т.д. Гадать можно бесконечно.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Policai | Дата: Вт, 20.11.2018, 13:00 | Сообщение # 787 |
Ветеран
Разработчики
Сообщений: 421
| sergej5500,
У меня в смартах нет логики, я же написал все эксклюзивы, на каждого НПС свой файл логики. в смартах только ссылки на файлы логики. Остальное всё как обычно. зарегестрированы в spawn_sections_локация, character_desc_локация, npc_profile, squad_descr_локация, simulation, simulation_objects_props. Всё стандартно просто в squad_descr_локация в сквадах прописаны не дефолтные а те что у меня созданы.... Всё работает прекрасно, и мод работает прекласно, просто хотел разобраться почему НПС не прячутся от выброса. А оказывается такая проблема не только у меня... Мне подсказали что это из за того что НПС имеюи свой айди так как они эксклюзивы, а в движке вшита функция что эксклюзивы не реагируют на выброс. чтоб не дохли торговцы и т.д....
|
|
|
Эти 0 пользователя(ей) поблагодарили Policai за это полезное сообщение: |
|
|
sergej5500 | Дата: Вт, 20.11.2018, 15:51 | Сообщение # 788 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Policai ( ) почему НПС не прячутся от выброса. А оказывается такая проблема не только у меня
Нужна логика НПС без выброса и во время выброса.
Цитата Policai ( ) Мне подсказали что это из за того что НПС имеюи свой айди так как они эксклюзивы
Айди тут совершенно не причем.
Цитата Policai ( ) эксклюзивы не реагируют на выброс. чтоб не дохли торговцы и т.д....
Не дохнут сквады со СТОРИ-ИД. Не дохнут несквадовые НПС.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Вт, 20.11.2018, 18:07 | Сообщение # 789 |
Полевой исследователь
Ученые сталкеры
Сообщений: 218
| Цитата 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 |
|
|
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение: |
|
|
Policai | Дата: Вт, 20.11.2018, 18:30 | Сообщение # 790 |
Ветеран
Разработчики
Сообщений: 421
| Для сквадов я пытался прописать сброс на дефол на время выброса, 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]
|
|
|
Эти 0 пользователя(ей) поблагодарили Policai за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Ср, 21.11.2018, 08:48 | Сообщение # 791 |
Полевой исследователь
Ученые сталкеры
Сообщений: 218
| Цитата 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 |
|
|
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение: |
|
|
Policai | Дата: Ср, 21.11.2018, 09:25 | Сообщение # 792 |
Ветеран
Разработчики
Сообщений: 421
| Цитата Убедиться что двери заспавнены как 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 |
|
|
Эти 0 пользователя(ей) поблагодарили Policai за это полезное сообщение: |
|
|
sergej5500 | Дата: Ср, 21.11.2018, 10:58 | Сообщение # 793 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Policai ( ) почему на новых (или подключенных) локах нпс двери не открывают, двери то родные из сталкера, функции тоже родные из сталкера.
У меня была похожая проблема. Мне помогли. Смотри переписку
тут
и на следующей странице.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Ср, 21.11.2018, 11:18 | Сообщение # 794 |
Полевой исследователь
Ученые сталкеры
Сообщений: 218
| Цитата Policai ( ) В скриптах полный ноль, не могу понять что меняет эта функция?
if false then return {} end Изначально (if true then return {} end) эта строка выходит из функции всегда, возвращая пустой список. При этом сама функция больше никаких действий не выполняет. Замена true на false отменяет действие этой строки (выполняются все дальнейшие действия в этой функции), позволяя, если что, вернуться к первоначальному варианту.
Сообщение отредактировал Ay49Mihas - Ср, 21.11.2018, 11:27 |
|
|
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение: |
|
|
Policai | Дата: Ср, 21.11.2018, 17:09 | Сообщение # 795 |
Ветеран
Разработчики
Сообщений: 421
| Народ! задолбался ждать эти выбросы чтоб проверить..))) Как запустить выброс из консоли? есть такая возможность?
|
|
|
Эти 0 пользователя(ей) поблагодарили Policai за это полезное сообщение: |
|
|
|