Модостроение. Общие вопросы и ответы
|
|
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 | Дата: Чт, 21.08.2014, 18:51 | Сообщение # 601 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Kosha, У монстров своя работа, которая задается точкой пути по имени: <имя смарта>_kamp_<индекс>_task. Например: mar_smart_terrain_10_10_kamp_1_task, для смарта: mar_smart_terrain_10_10
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Хоук | Дата: Пт, 22.08.2014, 00:43 | Сообщение # 602 |
Гражданский
Пользователи
Сообщений: 6
| Как заменить дизайн окна диалогов? Какие .dds файлы отвечают за это? И конфиг координатов?
ui_numpad.dds, ui_numpad.xml. denis2000
И ещё - как в ТЧ на практике ЗП реализовать препарат наподобие "Геркулеса", дарующий пациенту дополнительные килограммы рюкзака?
Никак. Но с удовольствием выслушаю ваши предложения. denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили Хоук за это полезное сообщение: |
|
|
a4927860 | Дата: Вс, 24.08.2014, 17:51 | Сообщение # 603 |
Новичок
Пользователи
Сообщений: 81
| Доброго дня.
есть у меня некий кусок кода, предположим вот этот: [cut=кусок кода] Код if item_name=="drawing_3" then if db.actor:object("de_details_11") ~= nil and db.actor:object("de_details_10") ~= nil and db.actor:object("de_details_0") ~= nil and db.actor:object("de_details_3") ~= nil then give_object_to_actor("pouch_3") alife():release(alife():object(de_details_3),true) alife():release(alife():object(de_details_10),true) alife():release(alife():object(de_details_0),true) alife():release(alife():object(de_details_11),true) else give_object_to_actor("drawing_3") end end [/cut] при использовании в первый раз он отрабатывает верно, создает предмет удаляет предмет, но при отрабатывании второй раз он мне выдает: 0023:033BB7D0 lua.JIT.1.1.4.dll, lua_yield()
Что не так?Добавлено (24.08.2014, 17:51) --------------------------------------------- иногда падает и с 1 раза но чаще с 2го
|
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
makdm | Дата: Вс, 24.08.2014, 17:59 | Сообщение # 604 |
Рожденный в СССР
Разработчики
Сообщений: 1294
| a4927860,
А вот это вообще непонятно что
alife():release(alife():object(de_details_3),true) alife():release(alife():object(de_details_10),true) alife():release(alife():object(de_details_0),true) alife():release(alife():object(de_details_11),true)
если de_details_3 это ссылка на клиентский объект, то запись должна быть такой ( разжёвываю )
de_details_3_id = de_details_3:id() s_obj = alife():object(de_details_3_id) alife():release(s_obj,true)
если de_details_3 это секция предмета у ГГ, то вот так ( разжёвываю )
de_details_3 = db.actor:object("de_details_3") de_details_3_id = de_details_3:id() s_obj = alife():object(de_details_3_id) alife():release(s_obj,true)
Терпение...... И все получится!
Сообщение отредактировал makdm - Вс, 24.08.2014, 18:11 |
|
|
Эти 0 пользователя(ей) поблагодарили makdm за это полезное сообщение: |
|
|
a4927860 | Дата: Вс, 24.08.2014, 18:37 | Сообщение # 605 |
Новичок
Пользователи
Сообщений: 81
| Спасибо! Но почему тогда оно отрабатывается?? Добавлено (24.08.2014, 18:37) --------------------------------------------- В тот самый - первый случай применения
|
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
vav54 | Дата: Вс, 24.08.2014, 22:38 | Сообщение # 606 |
Гражданский
Пользователи
Сообщений: 5
| Не может ли кто сказать, что означает запись в log: ERROR:SV:can't find children [31525] of parent [1395757744] Где искать подчиненную и родительские данные обозначенные в квадратных скобках. С уважением vav54
|
|
|
Эти 0 пользователя(ей) поблагодарили vav54 за это полезное сообщение: |
|
|
denis2000 | Дата: Пн, 25.08.2014, 13:34 | Сообщение # 607 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| vav54, Речь о том, что некий объект с id = 1395757744 заявляет, что он родительский и имеет некий дочерний объект с id = 31525 (или наоборот объект с id = 31525 заявляет что он дочерний объекту с id = 1395757744), однако движек не может найти такой объект. Множество объектов могут быть дочерними или родительскими, например НПС родительские по отношению к предметам в их инвентаре, контейнеры родительские к предметам в них и т.п. Мне кажется (судя по id родительского объекта > 65535), что просто нет объекта с id = 1395757744.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Lipton | Дата: Пн, 25.08.2014, 15:34 | Сообщение # 608 |
Гражданский
Пользователи
Сообщений: 5
| Как убрать выдачу задания о поиске пути на плато? ЗП.
|
|
|
Эти 0 пользователя(ей) поблагодарили Lipton за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 25.08.2014, 15:41 | Сообщение # 609 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Lipton,
Рестриктор gamedata\configs\scripts\zaton\zat_b20_quest_line.
Нужно закоментировать строки в секции sr_idle@start.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Lipton | Дата: Пн, 25.08.2014, 21:04 | Сообщение # 610 |
Гражданский
Пользователи
Сообщений: 5
| Нужна помощь ещё по одному вопросу: Помнится, в ТЧ у каждого НПС был диалог "Что можешь интересного рассказать?". После его юзанья единожды, во второй раз Непись отвечал: "Больше ничего не знаю". (Потом(через некоторое время), впрочем, можно было спросить у НПСа ещё раз) Вопрос: Как сделать такое в ЗП?
З.Ы.: ТЧ на компе нет, разархировать и глянуть образец не могу.
|
|
|
Эти 0 пользователя(ей) поблагодарили Lipton за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 25.08.2014, 21:25 | Сообщение # 611 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Lipton,
В Зове Припяти это все есть. Подходишь к сталкеру, спрашиваешь: "Что нового в Зоне".
Диалоги прописаны в gamedata\configs\misc\dialog_manager.
[cut=Секции ответов][dm_information_1] category = information npc_community = stalker, night_stalker level = zaton info = -zat_b14_take_item
[dm_information_2] category = information npc_community = stalker, night_stalker level = zaton info = +zat_b38_disappearance_stalkers_get_out_from_den_of_the_bloodsucker_give -zat_b38_disappearance_stalkers_tell_barmen_about_medic_give
[dm_information_3] category = information npc_community = stalker, night_stalker level = zaton info = +zat_b38_disappearance_stalkers_tell_barmen_about_medic_give[/cut]
Тут указано, кто ответит на вопрос этой фразой и при каких условиях.
Тексты фраз в gamedata\configs\text\rus\st_dialog_manager.
[cut=Фразы]<string id="dm_information_1"> <text>Слыхал про земснаряд, чуть восточней «Скадовска»? Говорят, там по ночам светится что-то странно... Притом учти, странно даже для Зоны. В общем, даже не знаю: то ли залезть туда, глянуть - вдруг что-то ценное, то ли остаться отсиживать задницу... целее будет.</text> </string> <string id="dm_information_10"> <text>Да тут все старое. Взять, вот, брошенную автоколонну на мосту Преображенского - проржавело там все нахрен, вместе с мостом. Только все равно тянет там пошарить. Если бы не мутанты с аномалиями...</text> </string> <string id="dm_information_11"> <text>Слыхал, что Султан, сволочь, хотел Бороду под себя подмять? Мало того, что его бандитскую рожу терпят на «Скадовске», он еще и выпендрится решил... Не на того напал! Говорят, Борода с нашей сталкерской братией его так уделали... Не видать Султану своего гоповского авторитета.</text> </string> <string id="dm_information_12"> <text>Блин, ты слышал? Султан, быдло, наехал на Бороду... Не знаю, как он такое вытворил, но он, вроде, Бороду на счётчик поставил! Как такое вообще быть может? Так и обернутся не успеешь, а «Скадовск» уже - гоповская хаза!</text> </string> <string id="dm_information_13"> <text>Брат, а про Оазис слышал? Говорят, есть такое место: и найти его нелегко, а уж добраться, если нашел, - еще труднее. Еще говорят, будто там есть озеро: зайдёшь в него, и все болезни пройдут... да что там, любые раны закроются! Эх, что болтать.. Видел, сколько неопытных сталкеров пришло сюда, к центру Зоны? Кто ищет Клондайк артефактов, кто - так, из любопытства, но многие именно Оазис ищут. Он ведь, по слухам, где-то в этих краях...</text> </string> <string id="dm_information_14"> <text>Говорят, всё, капец Зоне настал... Кто-то нашел «Оазис» и забрал артефакт - «Сердце оазиса». Теперь Зона уйдёт в другое измерение, а всем сталкерам уже никогда из неё не выбраться... Шутка. На самом деле, действительно какой-то новый артефакт нашли, сейчас над ним учёные в бункере колдуют.</text> </string> <string id="dm_information_15"> <text>Про Тополя слышал? Он своим ребятам недавно новую задницу нашёл, в которую они, естественно, с радостью полезли. Ну и долазились до того, что им контролёр по мозгам прошёлся. Они бы сейчас уже «вставай... подъем...» бормотали, если бы не сталкер, который с ними был. Говорят, с Тополя зомбирование сошло, проморгался - а перед ним этот сталкер на корточках сидит, уши контролёру отрезает.</text> </string> <string id="dm_information_16"> <text>Про деревню Копачи слышал? Когда была первая авария на ЧАЭС, её так радиацией накрыло, что решили всю деревню закопать. От домов в деревне теперь только радиоактивные холмики остались. Говорят, место было жуткое ещё тогда, а что там сейчас твориться - никто толком и не знает. Это место все стороной обходят, боятся... А вдруг зря её обходят, может, Клондайк артефактов как раз там?</text> </string> <string id="dm_information_17"> <text>А знаешь, что сейчас на «Янове» всего два сталкера, которые приближение выброса чуствуют. Один - это Костоправ, наш медик, а второй - Зулус, бывший долговец. Бывшим он стал недавно... Когда на станцию «Янов» пришли «долговцы»? там уже появились бойцы «Свободы». Естественно, приход «Долга» они не пропустили... Во время перестрелки половина обоих отрядов полегла, ещё и нескольких вольных сталкеров зацепило. Вот тут-то Зулус и сказал, что приближается выброс. Деваться было некуда, «Долг» со «Свободой» объявили перемирие и укрылись на станции «Янов». А Зулус после этого ушёл из «Долга» и поселился рядом со станцией, на вышке.</text> </string>[/cut]
Такие разговоры ведут неписи, у которых прописано в профиле: #include "gameplay\character_dialogs.xml"
У эксклюзивов типа Бороды, Кардана и т.д. таких фраз обычно нет.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Сб, 06.09.2014, 09:40 | Сообщение # 612 |
Полевой исследователь
Ученые сталкеры
Сообщений: 218
| Появился вопросик, не знаю, насколько уж боянистый или тупой.
Есть задача --- сделать катсцену пролёта камеры над актором (очень кинематографично, Спилберг с Кэмероном плачут обнявшись), и начал её решать. Судя по оригинальному ЗП, надо создать актора для катсцены (create_cutscene_actor_with_weapon()) (он должен быть в spawn'е), и дать ему некую логику. В этой логике он всё время анимации сидит в смарткавере, где ему нужно этот смарткавер создать в alife_xxx.ltx. И вот тут внимание вопрос: как мне сделать так, чтбы не надо было начинать новую игру? Рестриктор добавить на лету можно, уже проверено, но вот что делать со смарткаверами? Заранее благодарен!
|
|
|
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение: |
|
|
makdm | Дата: Сб, 06.09.2014, 11:16 | Сообщение # 613 |
Рожденный в СССР
Разработчики
Сообщений: 1294
| Ay49Mihas, обычно разрабы заранее знают, где будет проигрываться кат-сцена в игре и пишут секции необходимых объектов в all.spawn Во время кат-сцены эти объекты задействуются. В вашем случае, раз уж вы рестриктор добавляете на лету, что мешает создать смарт_кавер на лету? Спавните, разбираете нет пакет серверного объекта, меняете параметры, пишите в пакет серверного объекта все изменения. Алгоритм тот же, что и при создании рестриктора. Структуру нет-пакета можно посмотреть в ACDC. Готовую функцию, я думаю, вряд ли кто вам выдаст. Ну, если только кто-то это уже делал и захочет с вами поделиться готовым решением.
Терпение...... И все получится!
|
|
|
Эти 0 пользователя(ей) поблагодарили makdm за это полезное сообщение: |
|
|
Kosha | Дата: Вс, 07.09.2014, 18:15 | Сообщение # 614 |
Отмычка
Пользователи
Сообщений: 32
| Выше Хоук спрашивал для ТЧ но для себя уточню: А возможен ли Геркулес (Дополнительный вес на время) В Чистом небе? или фича таких препаратов возможна только на ЗП
Нет, только ЗП. denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили Kosha за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Ср, 10.09.2014, 18:59 | Сообщение # 615 |
Полевой исследователь
Ученые сталкеры
Сообщений: 218
| Цитата makdm ( ) Спавните, разбираете нет пакет серверного объекта, меняете параметры, пишите в пакет серверного объекта все изменения. Тут есть одна трудность. При создании объекта "на лету", у меня нет возможности поправить его name, который обычно указывается в поле cover_name секции animpoint логики персонажа. Как быть в этом случае, что указывать в поле cover_name актора? Или в загруженной логике править? Я не знаю, как это сделать, но подозреваю, что можно.
Сообщение отредактировал Ay49Mihas - Ср, 10.09.2014, 18:59 |
|
|
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение: |
|
|
|