Создание объектов на локации и логика поведения этих объектов
Если у вас появились вопросы по созданию динамических объектов в игре (НПС, монстры, аномалии, и т.п.) и настройке их "поведения". Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди вам ответят.
Сборник модостроения ЗП 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)", ее и надо расскомментировать, должно получиться вот так:
Code
function abort(fmt, ...) local reason = string.format(fmt, ...) error_log(reason) end
Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией
Первый:
Code
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)
Второй:
Code
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 за это полезное сообщение:
Ещё раз протестирую, может просто я был невнимателен либо, что-то упустил(может иные, чисто субъёктивные причины...).
p.s. Дважды проходил SGM 1.7 CoP: раз в готовой зборке S.T.A.L.K.E.R. Call of Pripyat 1.6.02 + Sigerous Mod 1.7 (скачал с торрента)- зборка очень глючила и "логала". В общем прошёл и удалил; второй раз (прислушался к "умному" совету одного из форумчан) - произвел "чистую установку" S.T.A.L.K.E.R. Call of Pripyat 1.6.02(лиц) + Sigerous Mod 1.7+ fix 31.08(всё делал по инструкции)- логов и вылетов стало в разы, на порядок меньше .
Но вот по-моим личным наблюдениям "АЛЬФА" на локе "ПРИПЯТЬ", после её выноса, так больше и не заспавнилась. При первом посещении "Припяти" вынес 2 "вышеупомянутых" отряда-> переходил на другие локи-> возвращался на локу "ПРИПЯТЬ" и никакой "АЛЬФЫ"...(провёл в ЗОНЕ более 2-х внутриигровых месяца)!
Может (я просто подозреваю) что что-то не так "стало"; Подскажите "Куда и где посмотреть, что логика спавна отрядов "Альфа" правильна, и где по-возможности следует искать причину если сложилась такая ситуация?
Эти 0 пользователя(ей) поблагодарили xardaslich за это полезное сообщение:
xardaslich, Смотрите логику смартов в папке configs\scripts\pripyat\smart А также попробуйте уменьшить параметр RESPAWN_RADIUS_ALFA в скрипте smart_terrain.script "Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение:
Автор: XOBAH Доступные ковры: sit_squat - сидит на корточках sit_ass - сидит на задней точке sit_knee - сидит облокотившись В SDK визуалы отображаются, но некорректно. После настройки положения нужно прибавлять к Rotate Y 180 градусов Скачать
Автор: XOBAH Программка служит для автоматизации процесса компиляции AI-сетки и спавна локаций, с последующим переносом в игру Скачать
Автор: XOBAH Программка служит для упрощения процесса именования работ для смартов в LE Скачать
Эти 0 пользователя(ей) поблагодарили XOBAH за это полезное сообщение:
S.T.A.L.K.E.R. Call of Pripyat 1.6.02(лиц) + Sigerous Mod 1.7+ fix 31.08 Всем доброго дня!
Может кто сталкивался, знает причину либо просто может дельно посоветовать?
А ситуация такова:
Добавленные(адаптированные) мною стволы протестил, раздал(прописал в character_desc_sgm.xml,....) неписям вместе с "навесами"- что оружие поддерживает(опт. прицел, глушитель)+ подствольную гранату(для подствола); А НПС, при всём этом, умудряются носить и использовать "прописанные" им стволы без "навесов". Другими словами: "опт. прицел, глушитель, подствольный гранатомёт- мёртвым грузом лежат в инвинтаре неписей !"
Может это поправимо- добавить пару-другую строк в их логику? Только я пока не знаю, что и куда добавить.
p.s. Может я заблуждаюсь, но мне кажется, что такая фишка(обвешивание "навесами" НПС своих стволов) было реализовано в "чистом" ЗП.
Эти 0 пользователя(ей) поблагодарили xardaslich за это полезное сообщение:
Теперь хочу адаптировать "Напяливание аддонов" и "Стрельба с подствольных гранатометов";
Подскажите пожайлуста мне будет достаточно перенести соответственно из ...\scriptsAI Additions 20.03.2010 в ...\scriptsS.T.A.L.K.E.R. Call of Pripyat 1.6.02(лиц) + Sigerous Mod 1.7+ fix 31.08 - файл rx_addons.script и rx_gl.script, а также configs\misc\rx_addons.ltx, configs\misc\rx_gl.ltx- соответственно.
Я прав? Или, что-то упустил?
Эти 0 пользователя(ей) поблагодарили xardaslich за это полезное сообщение:
xardaslich, Упустили, если вы их просто скопируете - то это будет бестолку, ибо игра не знает про эти файлы Нужно сравнивать оригинальные файлы и эти на предмет изменений (урок по адаптации модов)
Эти 0 пользователя(ей) поблагодарили XOBAH за это полезное сообщение:
Всем привет! Так и не пришел к положительному выводу - Так можно снимать бронь с убитых Альфовцев или нет? В "sgm_conteiner.script" прописал как советовал Хован, уж не помню в каком посте, но бронь не появляется, хотя ссылка на sgm_outfit есть. Там есть раздел для мародерства брони. Похоже в игре нет самих грф.файлов (оgf и dds) для Альфы? Или я ошибаюсь и плохо искал. Кстати, воторое значение из файла "sgm_conteiner.script" ссылку секций брни где она расположена я нашел, а вот первую, типа- "stalker_nebo_4", "..... из функции указния к выполнению, местонахождение осталось неизвестным. Может кто поможет? Заранее спасибо. Pechenegin
Эти 0 пользователя(ей) поблагодарили Pechenegin за это полезное сообщение:
Похоже в игре нет самих грф.файлов (оgf и dds) для Альфы?
Причем тут графические файлы??? В sgm_conteiner.script, в таблице outfit_container_list указывается какая броня, с каким % вероятности и из какого непися вылезет. По шаблону: {"CHARACTER_ID_ИЗ_ФАЙЛОВ_GAMEPLAY\CHARACTER_DESC_*.XML","SECTION_OUTFIT",VEROYATNOST_(0-1)}
Эти 0 пользователя(ей) поблагодарили XOBAH за это полезное сообщение:
может кто посказать: есть функция что-бы респавн на респавнере созданном через скрипт начинался после выполнения определенного условия (например завершение квеста) а можно ли сделать так что-бы респавн заканчивался после выполнения определенного квеста ? (например что-бы респавн начинался после начала квеста "Усилить присутствие Чистого неба на болотах" а кончался после выполнения квеста "Уйти с проводником на кордон" что-бы после ухода игрока там не начинался хаос )? Заранее спасибо!
Эти 0 пользователя(ей) поблагодарили Kosha за это полезное сообщение:
Здравствуйте всем.У меня такой вопрос. Где ещё кроме SGM_world.script надо прописывать условия спавна баз . Конкретно интересует спавн базы бандитов на определённых условиях. Пробовал сдепать по аналогу базы Рассвета, SGM_callbacks.script стал ругаться на SGM_world.script Понял что где-то что-то не дописал вот только что и где не понял ....
Подробнее, что и где прописывал и какой лог вылета получил. denis2000
Добавлено (21.11.2011, 18:57) --------------------------------------------- Сделал в SGM_world.script точно по аналогу базы Рассвета.
[cut=Лог]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 : ... - Зов Припяти\gamedata\scripts\sgm_callbacks.script:858: attempt to index global 'sgm_world' (a nil value)[/cut]
Вы допустили ошибку синтаксиса в скрипте sgm_world, еще раз все проверьте возможно пропустили end (ну или что-то в этом роде). denis2000
Добавлено (22.11.2011, 11:34) --------------------------------------------- Вот что сделал. [cut noguest=секция базы]if has_alife_info("zat_b101_heli_5_crash_done") and dont_has_alife_info("zat_spawn_bandit_base") then create("zat_bandit_base_guard_1",474.558,35.107,48.658,1739291,293) create("zat_bandit_base_guard_2",401.908,34.100,63.140,1627091,71) create("zat_bandit_base_guard_3",435.439,34.668,31.535,1680801,293) create("zat_bandit_base_guard_4",380.558,32.793,30.124,1594480,71) create("zat_bandit_base_guard_5",385.141,33.160,28.310,1600921,71) create("zat_bandit_base_guard_6",379.745,34.344,-1.344,1592349,294) create("zat_bandit_base_guard_7",412.928,39.444,-10.238,1643574,293) create("zat_bandit_base_guard_8",391.787,34.741,-59.438,1611514,72) create("zat_bandit_base_guard_9",404.285,36.198,2.642,1631380,293) create("zat_bandit_base_guard_10",420.651,36.240,-58.467,1655391,222) create("zat_bandit_base_guard_11",383.974,34.312,-11.495,1599847,294) create("zat_bandit_base_guard_12",384.163,34.290,-57.917,1599782,72) create("zat_bandit_base_bodyguard_1",407.998,39.448,-14.709,1636497,293) create("zat_bandit_base_bodyguard_2",407.748,39.447,-9.401,1635469,293) create("zat_bandit_base_bodyguard_3",412.659,39.446,-5.960,1643586,293) create("zat_bandit_base_bodyguard_4",412.231,39.447,-18.475,1642572,293) create("zat_bandit_base_sniper_1",404.872,39.446,-4.663,1631370,293) create("zat_bandit_base_sniper_2",439.108,36.444,-31.202,1686418,293) create("zat_bandit_base_west_chief",382.182,32.560,36.911,1596637,71) create("zat_bandit_base_south_chief",440.906,36.061,-63.574,1689709,222) create("zat_bandit_base_leader",405.729,39.447,-11.714,1633419,293) create("zat_bandit_base_spot",408.494,39.477,-19.775,1637539,293) create("zat_bandit_bodyguard",405.858,39.446,-18.573,1633413,293) create("zat_bandit_trader",411.646,36.263,4.658,1641612,293) give_info("zat_spawn_bandit_base") end[/cut] Где может быть ошибка?Условия прописывал разные.Это один из вариантов.
1. В следующий раз пишите версию SGM с которым работаете, как я смотрю это не SGM 2.0 и не SGM 1.7; также это не APv; а скорее всего это geonezis addon, поэтому дальнейший пункт идет на основании того, что у вас стоит geonezis 2. Ошибка происходит при апдейте скрипта sgm_world.script Тот кусок кода, который вы привели - в порядке, скорее всего ошибка в том, что он стоит не в том месте. XOBAH
Добавлено (22.11.2011, 19:25) --------------------------------------------- XOBAH : Вы оказапись правы .Эта секция действительно стояла не там. Подумал.Переставил. И всё заработало. Спасибо. Только с версией вы ошиблись. Это скрипт из SGM 2.0. Ещё раз спасибо и удачи вам.
Нет судьбы кроме той, которую мы творим сами.
Сообщение отредактировал Механик - Вт, 22.11.2011, 11:43
Эти 0 пользователя(ей) поблагодарили Механик за это полезное сообщение:
Доброго времени суток. Помогите, пожалуйста, решить проблему. Не могу заставить работать парсер асдс. Вот что у меня есть в папке и батнике для парсера: http://floomby.ru/content/A15O2xCjgE
Значения new old равны для теста. Пробовал с другими, результат тот же. Вот такой:
ActivePerl само собой установлен. Версия acdc от 25 сентября 2011. Делаю всё так, как написано в ридми к асдс. В чём проблема?
Вот не помню что там с ACDC от 25 сентября, но попробуй поставить game1 и game2 заместо old и new соответственно. В версии от 20 ноября уже используются old и new, а примерно в сентябрьской ипользовались game1\2. XOBAH
Разобрался.Спасибо.
Сообщение отредактировал Niafa - Ср, 23.11.2011, 14:47
Эти 0 пользователя(ей) поблагодарили Niafa за это полезное сообщение:
Привет Ховану! Как не бился не выпадает бронь у Альфы. Строка в "sgm_container.script" - {"stalker_ecolog","reduce_ecolog_regular_outfit",0.33} следующее...{"alfa_master_commander","reduce_killer_exo_outfit",1.0}, Где хоть описывается неписи Альфы? Нигде кроме как в файле "character_desc_extended.xml" не нашел. Не спавнятся и патроны в "ID" Альфы. Пытался внести строку в"character_desc_extended.xml"- [spawn] \n - device_torch \n - "ammo_dumdum = 1 \n". Результат- Безрезультатно! Установлен SGM 2.0 и последняя фикса из шапки. Заранее спасибо! Вопрос, может вообще эти манипуляции с Альфой непредусмотренны? Pechenegin
Эти 0 пользователя(ей) поблагодарили Pechenegin за это полезное сообщение: