Модостроение. Общие вопросы и ответы
|
|
denis2000 | Дата: Сб, 15.06.2013, 11:51 | Сообщение # 1 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Помощь тем кто хочет знать больше о игре и модах Если у вас появились вопросы по модостроению в игре S.T.A.L.K.E.R. Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди вам ответят.
Много интересного материала здесь (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 по ссылке из шапки и соседнюю тему "Курс молодого бойца", возможно Ваш вопрос уже рассматривался.
Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки. Помните чем подробнее вопрос, тем точнее ответ.
Посты, для которых есть свои категории, из этой темы будут удаляться или перемещаться в соответсвующую тему. Персональных извещений в ЛС о переносе\удалении поста не будет, ищите сами. Учитывайте, что в системах Ucoz тема не обновляется в статистике при переносе поста. Посты, написанные здесь-же после переноса, будут расцениваться как кросспостинг, со всеми вытекающими
[cut noguest=Первый юбилей нашей темы] Здравствуйте господа модостроители, и все так или иначе причастные к этому. Нашей теме исполнился 1 год. От души поздравляю Всех Вас дорогие друзья, творческих успехов. Хочу так же выразить отдельную благодарность denis2000 и ХОВАН. tracker 23.06.11
[/cut]
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Пт, 01.08.2014, 13:21 | Сообщение # 586 |
Полевой исследователь
Ученые сталкеры
Сообщений: 218
| Цитата suhar_ ( ) Кроме того, новые продукты не хотят принимать заблудившиеся наёмники на цехах подстанции (ЗП), то же самое обстоит с ранеными сталкерами, которые не хотят брать новую уптечку. Опять же идём в конфиги. Ищем квест, из него узнаём название функции проверки наличия еды, ищем функцию, находим и видим: Код function zat_b103_actor_has_needed_food(first_speaker, second_speaker) local item_sections = { [1] = "bread", [2] = "kolbasa", [3] = "conserva", --/ SGM in [4] = "nuts", [5] = "sardina", [6] = "olivki", --/ SGM out } То есть проверяется лишь наличие предметов из указанного множества. Если другая еда (для SGM'а это, например, ИРП-П и ИРП-Б), то наёмники её за еду считать не будут.
|
|
|
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 01.08.2014, 14:48 | Сообщение # 587 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата suhar_ ( ) то же самое обстоит с ранеными сталкерами, которые не хотят брать новую уптечку Проверка на наличие аптечки и передача аптечки в файле dialogs.script функции actor_have_medkit и transfer_medkit.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
suhar_ | Дата: Сб, 09.08.2014, 08:52 | Сообщение # 588 |
Бывалый
Пользователи
Сообщений: 106
| Понадобилось внести поправки в файл gamedata\scripts\dialogs_zaton.script после чего столкнулся с безлоговым вылетом на Затоне при разговоре с Карданом. Опытным путём выявил, что вылет происходит при наличии у ГГ водки. Самым странным оказался факт, что игра вылетает и с оригинальным (не правленным) файлом dialogs_zaton.script. Т.е. создаю совершенно пустую папку gamedata, в ней scripts и в уже в неё копирую наш файл и на выходе всё равно имею вылет при наличии водки О_о. Если же полностью удаляю геймдату, такого вылета не происходит. Вначале, подумал, что мой dialogs_zaton.script имеет внутри себя какую-то ошибку, из-за которой всё это происходит. Но убедился, что это не так: целенаправленно распаковал .db ресурсы (уж коли без геймдаты на этом месте вылета нет, то этот скрипт 100% рабочий) и использовал его. Вылет не пропал. Получается, что игра по каким-то причинам не принимает свой собственный файл. В чём может быть причина?
|
|
|
Эти 0 пользователя(ей) поблагодарили suhar_ за это полезное сообщение: |
|
|
denis2000 | Дата: Сб, 09.08.2014, 13:42 | Сообщение # 589 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| suhar_, Убери двойной прекондишен в диалоге zat_b3_stalker_tech_drink_1.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
suhar_ | Дата: Сб, 09.08.2014, 19:20 | Сообщение # 590 |
Бывалый
Пользователи
Сообщений: 106
| Цитата denis2000 ( ) двойной прекондишен О каком именно идёт речь? [cut]<dialog id="zat_b3_stalker_tech_drink_1"> <precondition>dialogs_zaton.if_actor_has_vodka</precondition> Первый <dont_has_info>zat_b3_tech_drink_no_more</dont_has_info> <dont_has_info>zat_b3_tech_have_one_dose</dont_has_info> <phrase_list> <phrase id="2"> <text>zat_b3_stalker_tech_drink_1_2</text> <give_info>zat_b3_tech_drink_no_more</give_info> <has_info>zat_b3_tech_see_produce_62</has_info> </phrase> <phrase id="0"> <text>zat_b3_stalker_tech_drink_1_0</text> <precondition>dialogs_zaton.if_actor_has_vodka</precondition> Второй <has_info>zat_b3_tech_drink_first_time</has_info> <next>1</next> <next>2</next> </phrase> <phrase id="1"> <text /> <action>dialogs.break_dialog</action> <action>dialogs_zaton.give_vodka</action> <dont_has_info>zat_b3_tech_see_produce_62</dont_has_info> <give_info>zat_b3_tech_have_one_dose</give_info> <give_info>zat_b3_tech_drinking</give_info> </phrase> </phrase_list> </dialog>[/cut] Двойного здесь вроде как нет.
|
|
|
Эти 0 пользователя(ей) поблагодарили suhar_ за это полезное сообщение: |
|
|
denis2000 | Дата: Сб, 09.08.2014, 21:34 | Сообщение # 591 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата suhar_ ( ) Двойного здесь вроде как нет. Тоесть как нет? Ты же сам отметил: Цитата suhar_ ( ) <precondition>dialogs_zaton.if_actor_has_vodka</precondition> Первый Цитата suhar_ ( ) <precondition>dialogs_zaton.if_actor_has_vodka</precondition> Второй Так зачем второй?
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Lipton | Дата: Чт, 14.08.2014, 15:45 | Сообщение # 592 |
Гражданский
Пользователи
Сообщений: 5
| Создал нового механика. Функции починки и апгрейда работают, но в диалоге с ним нет кнопки вызова меню ремонта, как у дефолтных мехов. Как её добавить?
|
|
|
Эти 0 пользователя(ей) поблагодарили Lipton за это полезное сообщение: |
|
|
sergej5500 | Дата: Чт, 14.08.2014, 16:24 | Сообщение # 593 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Lipton, В логике механика должна быть строка trade_enable = true.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Kosha | Дата: Сб, 16.08.2014, 21:57 | Сообщение # 594 |
Отмычка
Пользователи
Сообщений: 32
| Подскажите пожалуйста от чего возникает вылет с таким логом: There is no kamp path in smart[pri_smart_terrain_1] - (добавил припять из ТЧ в ЧН)
|
|
|
Эти 0 пользователя(ей) поблагодарили Kosha за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 17.08.2014, 10:53 | Сообщение # 595 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Kosha, Вашему смарту нужна по крайней мере одна точка типа kamp, она указывает на центр лагеря (обычно костер) вокруг которой собираются отдыхающие сталкеры.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Kosha | Дата: Вс, 17.08.2014, 21:56 | Сообщение # 596 |
Отмычка
Пользователи
Сообщений: 32
| [error]Arguments : LUA error: ... - чистое небо\gamedata\scripts\smart_terrain.script:76: bad argument #1 to 'pairs' (table expected, got nil)
stack trace: - можете пояснить причину появления? Этот файл не редактировался, т.е работал из оригинальной игры
пришел после скриптовой попытки спавна отряда на новом смарте
По ходу на новом смарте нет ни одной работы для НПС. Нужно сделать несколько работ (по количеству не менее чем по одной на каждого НПС сквада) типа walker, guard и т.п. denis2000
Это получается нужно им поставить смарт_коверы? или я не правильно понял?
Сообщение отредактировал Kosha - Вс, 17.08.2014, 23:12 |
|
|
Эти 0 пользователя(ей) поблагодарили Kosha за это полезное сообщение: |
|
|
denis2000 | Дата: Пн, 18.08.2014, 09:49 | Сообщение # 597 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата Kosha ( ) Это получается нужно им поставить смарт_коверы? или я не правильно понял? Нет. Им нужно предоставить работы на смарте: KAMP, SLEEP, WALKER, PATROL, Commander point, Conductor point, GUARD. Подробнее посмотри в скрипте gulag_general.script
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Kosha | Дата: Пн, 18.08.2014, 21:25 | Сообщение # 598 |
Отмычка
Пользователи
Сообщений: 32
| А работа должна прописываться как точки в файле way_локация.ltx в алл спавне?
|
|
|
Эти 0 пользователя(ей) поблагодарили Kosha за это полезное сообщение: |
|
|
FantomICW | Дата: Пн, 18.08.2014, 21:54 | Сообщение # 599 |
Лидер «Свободы»
Свобода
Сообщений: 4438
| Kosha, именно. К примеру, kamp: Код while level.patrol_path_exists(gname.."_kamp_"..it) do Схема названия путей выглядит так: Код навзание_смарта_kamp_№ gname - название смарта it - число (изначально - 1)
|
|
|
Эти 0 пользователя(ей) поблагодарили FantomICW за это полезное сообщение: |
|
|
Kosha | Дата: Чт, 21.08.2014, 18:39 | Сообщение # 600 |
Отмычка
Пользователи
Сообщений: 32
| хотел уточнить: а для монстров нужны отдельные работы или они универсальны?
|
|
|
Эти 0 пользователя(ей) поблагодарили Kosha за это полезное сообщение: |
|
|