Модостроение. Общие вопросы и ответы
|
|
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 за это полезное сообщение: |
|
|
denis2000 | Дата: Чт, 18.12.2014, 21:22 | Сообщение # 871 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| asd123, 1. ЛОГ! 2. При каких условиях вылет происходит 3. Я надеюсь новую игру начинаете 4. Что в файле диалога 5. Файл скриптов с названием 6. Секции задания в принципе достаточно
db.actor:object("drug_anabiotic", 15) - это НЕ РАБОТАЕТ! Нужно писать функцию на подобии zat_b103_actor_has_needed_food actor_has_item(drug_anabiotic:15) - это НЕ РАБОТАЕТ! Использовать нужно actor_has_item_count
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
asd123 | Дата: Чт, 18.12.2014, 22:20 | Сообщение # 872 |
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
| Цитата denis2000 ( ) zat_b103_actor_has_needed_food Нашел функцию сдачи задания по такой же функции. Объясните: Зачем в выдаче указаны такие строки?
Вот сама функция: function zat_b103_transfer_merc_supplies(first_speaker, second_speaker)
а вот те строки:
local npc = dialogs.who_is_npc(first_speaker, second_speaker) ocal actor = dialogs.who_is_actor(first_speaker, second_speaker)
У мутантов тоже есть группировки. © Движок X-Ray
|
|
|
Эти 0 пользователя(ей) поблагодарили asd123 за это полезное сообщение: |
|
|
denis2000 | Дата: Чт, 18.12.2014, 23:15 | Сообщение # 873 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| dialogs.who_is_npc - возвращает объект, из двух передаваемых объектов, являющийся НПС dialogs.who_is_actor - возвращает объект, из двух передаваемых объектов, являющийся ГГ
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
asd123 | Дата: Сб, 20.12.2014, 02:24 | Сообщение # 874 |
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
| Можно ли сделать через on_info вызов функции на спавн предмета? К примеру радио в определённых координатах. И, где нужно это радио прописать?
У мутантов тоже есть группировки. © Движок X-Ray
Сообщение отредактировал asd123 - Сб, 20.12.2014, 03:19 |
|
|
Эти 0 пользователя(ей) поблагодарили asd123 за это полезное сообщение: |
|
|
a4927860 | Дата: Сб, 20.12.2014, 10:00 | Сообщение # 875 |
Новичок
Пользователи
Сообщений: 81
| Добрый день!
Много чего я в моде своем делал - только мало тестил. Сегодня (вчера) словил на юпитере рядом с вагонами в которых электра бегает вот такой баг: [cut noguest] [error]Expression : fatal error [error]Function : CInifile::r_section [error]File : D:\prog_repository\sources\trunk\xrCore\Xr_ini.cpp [error]Line : 502 [error]Description : <no expression> [error]Arguments : Can't open section ''. Please attach [*.ini_log] file to your bug report [/cut]
есть подозрение что там ктото (чтото) спаунится и при подходе к вагонам меня выкидывает
Как можно этот баг отловить более развернуто? хотябы со ссылкой на файл с секцией " ?
|
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
Сахар | Дата: Сб, 20.12.2014, 10:11 | Сообщение # 876 |
Гражданский
Пользователи
Сообщений: 2
| a4927860, В шапке темы есть сполер под названием. Цитата Получение более подробной информации о вылете (ХОВАН)
|
|
|
Эти 0 пользователя(ей) поблагодарили Сахар за это полезное сообщение: |
|
|
sergej5500 | Дата: Сб, 20.12.2014, 11:51 | Сообщение # 877 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата asd123 ( ) Можно ли сделать через on_info вызов функции на спавн предмета?
Можно сделать так.
on_info = {+разрешающая_инфопорция -блокирующая инфопорция} %=spawn_object(object_radio:object_radio_point) +блокирующая инфопорция%
object_radio - собственно радио. Прописываем его в configs\misc\quest_items. object_radio_point - точка спавна. Прописываем в way_*** нужной локации.
Второй вариант.
on_info = {+разрешающая_инфопорция -блокирующая инфопорция} %=spawn_object_radio +блокирующая инфопорция%
В scripts\xr_effects пишем код типа
function spawn_object_radio(actor,npc) alife():create("object_radio",vector():set(-436.574,-6.527,170.169),116113,16) end
Подставляем в него нужные вам координаты.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
asd123 | Дата: Вс, 21.12.2014, 19:03 | Сообщение # 878 |
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
| Цитата sergej5500 ( ) Можно сделать так. on_info = {+разрешающая_инфопорция -блокирующая инфопорция} %=spawn_object(object_radio:object_radio_point) +блокирующая инфопорция% object_radio - собственно радио. Прописываем его в configs\misc\quest_items. object_radio_point - точка спавна. Прописываем в way_*** нужной локации. Второй вариант. on_info = {+разрешающая_инфопорция -блокирующая инфопорция} %=spawn_object_radio +блокирующая инфопорция% В scripts\xr_effects пишем код типа function spawn_object_radio(actor,npc) alife():create("object_radio",vector():set(-436.574,-6.527,170.169),116113,16) end Подставляем в него нужные вам координаты. В xr.effects нужно было вписать вот так: Код function spawn_object_radio(actor,npc) create("object_radio"-436.574,-6.527,170.169,116113,16) end иначе игра будет вылетать жалуясь на state_mgr_animation Хотел спросить: Как называется модель приёмника, который в Припяти является средством связи со штабом СБУ.
Добавлено (20.12.2014, 16:08) --------------------------------------------- Уже не важно) Спасибо Вам, sergej5500. Благодаря Вам я уже имею не плохую базу на Агропроме + диалоги с квестами.
Добавлено (21.12.2014, 19:03) --------------------------------------------- А как предмет поставить в нужном для меня направлении? А то смотрит не в ту сторону.. И, как сделать созданный объект не двигающимся? То есть, при любом действии его нельзя было бы сдвинуть с точки.
У мутантов тоже есть группировки. © Движок X-Ray
Сообщение отредактировал asd123 - Вс, 21.12.2014, 19:04 |
|
|
Эти 0 пользователя(ей) поблагодарили asd123 за это полезное сообщение: |
|
|
sergej5500 | Дата: Вс, 21.12.2014, 19:52 | Сообщение # 879 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата asd123 ( ) А как предмет поставить в нужном для меня направлении? А то смотрит не в ту сторону.. И, как сделать созданный объект не двигающимся?
Проще всего прописать предмет в all.spawn. Настраивая direction, можно развернуть его как угодно. Чтобы сделать его неподвижным, надо прописать fixed_bones = link или другую кость. Тут надо смотреть модель в actor_editor.Добавлено (21.12.2014, 19:52) --------------------------------------------- Добрый вечер.
Сделал звуковую схему.
[bandit_base_no_weapon] type = 3d path = characters_voice\scenario\jupiter\jup_a10_bandits_warn
После подключения схемы к конфигу после загрузки игры неожиданно получил достижение "Искатель". Затем игра вылетела с ошибкой в xr_statistic. Хотя в этом файле никаких проблем не было.
Сама озвучка проигралась, но тихо.
Еще вопрос. Фрагмент логики рестриктора.
on_info = {=actor_has_weapon -actor_has_weapon_ecs_b6} %+actor_has_weapon_ecs_b6 =play_sound(jup_a10_bandits_warn)%
Можно ли схему jup_a10_bandits_warn проиграть в голове ГГ? Чтобы громкость звука не зависела от расстояния?
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 21.12.2014, 20:08 | Сообщение # 880 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| sergej5500, Для звука с типом 3D требуется объект-источник звука, кто им выступает в вашем случае? Рестриктор? Отсюда и низкая громкость звука. Ставьте тип type = actor и звук проиграется в "голове ГГ".
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
asd123 | Дата: Пн, 22.12.2014, 23:51 | Сообщение # 881 |
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
| Цитата sergej5500 ( ) Проще всего прописать предмет в all.spawn. Настраивая direction, можно развернуть его как угодно. Чтобы сделать его неподвижным, надо прописать fixed_bones = link или другую кость. Тут надо смотреть модель в actor_editor. А как сделать его таскающимся? У меня это радио как у военных в Припяти. Куда вписать нужно, чтобы появилась возможность перетаскивать такой объект?
Добавлено (22.12.2014, 22:57) --------------------------------------------- Уже не важно.
Добавлено (22.12.2014, 23:51) --------------------------------------------- Подскажите в чем проблема! Я наконец разобрался, что в СГМ 2.2 Николай скинул компилятор для all.spawn для всех частей сталкера. Вообщем, хотел распаковать all.spawn СГМа, но не распаковывается из-за неизвестного класса. Вот такая строка получается: Код C:\Users\admin\Desktop\Compiler ЗП>perl universal_acdc.pl -d all.spawn -out unpa ck -nofatal Universal ACDC v.1.24 checking version of all.spawn... This is a spawn of S.T.A.L.K.E.R. Call Of Pripyat (any patch) opening all.spawn... reading header... reading alife objects...
FATAL ERROR! Function: stkutils::entity::_read_m_spawn Line: 94 Expression: defined $class_name Description: unknown class for section sgm_radioactive_field_weak
C:\Users\admin\Desktop\Compiler ЗП>pause Для продолжения нажмите любую клавишу . . .
Куда нужно вписать этот класс?
У мутантов тоже есть группировки. © Движок X-Ray
Сообщение отредактировал asd123 - Пн, 22.12.2014, 23:52 |
|
|
Эти 0 пользователя(ей) поблагодарили asd123 за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 22.12.2014, 23:56 | Сообщение # 882 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| asd123,
В папке компилятора должен быть файл sections.ini. Туда и прописываются все новые секции.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
asd123 | Дата: Вт, 23.12.2014, 00:14 | Сообщение # 883 |
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
| Цитата sergej5500 ( ) В папке компилятора должен быть файл sections.ini. Туда и прописываются все новые секции. Нет, такой нет. Можете посмотреть сами, если у Вас стоит СГМ 2.2Добавлено (23.12.2014, 00:14) --------------------------------------------- Если найдете, то покажите где. И лучше впишите этот недостающий класс.
У мутантов тоже есть группировки. © Движок X-Ray
|
|
|
Эти 0 пользователя(ей) поблагодарили asd123 за это полезное сообщение: |
|
|
sergej5500 | Дата: Вт, 23.12.2014, 00:16 | Сообщение # 884 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| asd123,
В СГМ в папке gamedata\spawns должен быть архив с названием Compiler ЗП или похожим. Там обязательно есть этот файл.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
asd123 | Дата: Вт, 23.12.2014, 00:24 | Сообщение # 885 |
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
| Цитата sergej5500 ( ) В СГМ в папке gamedata\spawns должен быть архив с названием Compiler ЗП или похожим. Там обязательно есть этот файл. Упс не заметил.. Так.. он вроде как удаляется потом?Добавлено (23.12.2014, 00:21) --------------------------------------------- А знаете.. не важно. Я хочу заспавнить вертолет на локации. С логикой для него разберусь. Главное спавн. Как это осуществить? Добавлено (23.12.2014, 00:24) --------------------------------------------- А что скрывают в себе файлы section2.bin и section4.bin ?
У мутантов тоже есть группировки. © Движок X-Ray
|
|
|
Эти 0 пользователя(ей) поблагодарили asd123 за это полезное сообщение: |
|
|
|