Модостроение. Конфигурационные файлы
|
|
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 за это полезное сообщение: |
|
|
Policai | Дата: Вт, 20.11.2018, 18:30 | Сообщение # 781 |
 Ветеран
Разработчики
Сообщений: 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 | Сообщение # 782 |
 Полевой исследователь
Ученые сталкеры
Сообщений: 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 | Сообщение # 783 |
 Ветеран
Разработчики
Сообщений: 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 | Сообщение # 784 |
 Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Policai (  ) почему на новых (или подключенных) локах нпс двери не открывают, двери то родные из сталкера, функции тоже родные из сталкера.
У меня была похожая проблема. Мне помогли. Смотри переписку
тут
и на следующей странице.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Ср, 21.11.2018, 11:18 | Сообщение # 785 |
 Полевой исследователь
Ученые сталкеры
Сообщений: 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 | Сообщение # 786 |
 Ветеран
Разработчики
Сообщений: 421
| Народ! задолбался ждать эти выбросы чтоб проверить..))) Как запустить выброс из консоли? есть такая возможность?
|
|
|
Эти 0 пользователя(ей) поблагодарили Policai за это полезное сообщение: |
|
|
sergej5500 | Дата: Ср, 21.11.2018, 18:39 | Сообщение # 787 |
 Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Policai (  ) Как запустить выброс из консоли?
Попробуй так.
По горячей клавише функция:
xr_effects.surge_started(db.actor)
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Policai | Дата: Ср, 21.11.2018, 18:52 | Сообщение # 788 |
 Ветеран
Разработчики
Сообщений: 421
| sergej5500,
Извини, для меня это тёмный лес... Можешь как то обьяснить попроще? Просто когда захожу в игру с общим олспавном. у меня настроен выброс в surge_manager на через час игровой, можно и подождать, а когда отдельный спавн по каждой локе, это не работает, выбросов нет совсем. а проверять то надо.
|
|
|
Эти 0 пользователя(ей) поблагодарили Policai за это полезное сообщение: |
|
|
sergej5500 | Дата: Ср, 21.11.2018, 19:00 | Сообщение # 789 |
 Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Policai (  ) Можешь как то обьяснить попроще?
Открываем файл scripts\ui_main_menu.script Для SGM: Ищем: Код elseif db.actor~=nil and dik==DIK_keys.DIK_F5 then self:mod_options()
Добавляем ниже: Код elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then xr_effects.surge_started(db.actor)
Для чистой игры (ТЧ\ЧН\ЗП) и модов на них (Универсальный способ): Ищем: Код if dik == DIK_keys.DIK_Q then self:OnMessageQuitWin()
Добавляем ниже: Код elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then xr_effects.surge_started(db.actor)
в игре жмем ESC-F6-ESC. Наслаждаемся выбросом.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Policai | Дата: Ср, 21.11.2018, 19:20 | Сообщение # 790 |
 Ветеран
Разработчики
Сообщений: 421
| FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ...ty breakthrough\gamedata\scripts\ui_main_menu.script:347: attempt to call field 'surge_started' (a nil value) stack trace:
После нажатия F6, что не так сделал?
выглядит у меня так
end elseif dik == DIK_keys.DIK_Q then self:OnMessageQuitWin() elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then xr_effects.surge_started(db.actor) end
|
|
|
Эти 0 пользователя(ей) поблагодарили Policai за это полезное сообщение: |
|
|
sergej5500 | Дата: Ср, 21.11.2018, 19:52 | Сообщение # 791 |
 Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Policai,
Виноват. Приношу извинения. Писал по памяти. Ошибся.
Нужно писать
xr_effects.start_surge(db.actor)
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Policai | Дата: Чт, 22.11.2018, 04:45 | Сообщение # 792 |
 Ветеран
Разработчики
Сообщений: 421
| sergej5500,
Спасибо, всё заработало.
Ay49Mihas,
Заменил функцию на if false then return {} end. и двери заработали как надо.
|
|
|
Эти 0 пользователя(ей) поблагодарили Policai за это полезное сообщение: |
|
|
Policai | Дата: Сб, 16.02.2019, 07:16 | Сообщение # 793 |
 Ветеран
Разработчики
Сообщений: 421
| Народ! Гугля не знает, спрошу тут. Как сделать автосохранения в игре при переходе на новую локацию? Переход проходит без гуи окна, система переходов сделана по аналоги с ЧН.
|
|
|
Эти 0 пользователя(ей) поблагодарили Policai за это полезное сообщение: |
|
|
sergej5500 | Дата: Чт, 21.02.2019, 18:37 | Сообщение # 794 |
 Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Policai (  ) Как сделать автосохранения в игре при переходе на новую локацию?
А зачем это надо вообще? Когда я в СДК прикручиваю новые локации, то автоматически при входе ГГ в левел-чендер начинается загрузка нужного уровня и автоматом записывается автосейв захода на локацию. Ничего нигде прописывать не надо.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Policai | Дата: Чт, 21.02.2019, 18:41 | Сообщение # 795 |
 Ветеран
Разработчики
Сообщений: 421
| Да... только эта автосохранка переписывается постоянно, перешёл на новую локу, она переписывается на эту локу, а мне нужно чтоб автосохранка сохранялась на каждом переходе отельно. То есть перешёл на свалку допустим, появилось сохранение "переход на свалку" перешёл в лиманск, появилось сохранение "переход в лиманск"
Сообщение отредактировал Policai - Чт, 21.02.2019, 18:45 |
|
|
Эти 0 пользователя(ей) поблагодарили Policai за это полезное сообщение: |
|
|
|