Overf1rst 1 503 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Seraph 20 Опубликовано 7 апреля, 2022 Neptun речь о банальном упрощении жизни, как это реализовано в других местах. Когда есть один статичный зацикленный кадр, гораздо проще его и использовать, а переключаться по событиям, а не по таймеру, делая кучу однотипных anm-ок. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Шубин 21 Опубликовано 7 апреля, 2022 Добрый вечер. Я подключил к Зову Припяти локацию Кордон. Заселил её. Организовал симуляцию. Сделал, как в оригинале. Чтобы сталкеры утром уходили на прогулку а вечером шли на базу. Спойлер army = { squad = nil, smart = { base = { prec = function(squad, target) return in_time_interval(18,8) and not xr_conditions.surge_started() and not travel_manager.check_squad_for_enemies(squad) and (target:name() == "esc_b1") end }, surge = { prec = function() return xr_conditions.surge_started() end }, territory= { prec = function() return in_time_interval(8,18) and not xr_conditions.surge_started() end }, resource = { prec = function(squad, target) return in_time_interval(8,18) and not xr_conditions.surge_started() end } }, actor = nil }, stalker = { squad = nil, smart = { base = { prec = function(squad, target) return in_time_interval(18,8) and not xr_conditions.surge_started() and not travel_manager.check_squad_for_enemies(squad) and (target:name() == "esc_b6") end }, surge = { prec = function() return xr_conditions.surge_started() end }, territory= { prec = function() return in_time_interval(8,18) and not xr_conditions.surge_started() end }, resource = { prec = function(squad, target) return in_time_interval(8,18) and not xr_conditions.surge_started() end } }, actor = nil }, bandit = { squad = { stalker = { prec = function(squad, target) return in_time_interval(8,21) and not xr_conditions.surge_started() and simulation_objects.sim_dist_to(squad, target) <= 150 end } }, smart = { base = { prec = function(squad, target) return in_time_interval(21,8) and not xr_conditions.surge_started() and not travel_manager.check_squad_for_enemies(squad) and (target:name() == "esc_b10") end }, territory= { prec = function() return in_time_interval(8,21) and not xr_conditions.surge_started() end }, surge = { prec = function() return xr_conditions.surge_started() end } }, actor = nil }, Все работает как нельзя лучше. НПС утром дружно идут гулять, к ночи возвращаются на базы и ложатся в кроватки. Воодушевился успехом и решил в этом же скрипте запретить монстрам заходить на базовые смарты. Спойлер monster_predatory_day = { squad = { monster_vegetarian = { prec = function() return in_time_interval(6,19) end }, stalker = { prec = function(squad, target) return in_time_interval(6, 19) and simulation_objects.sim_dist_to(squad, target) <= 150 end }, bandit = { prec = function(squad, target) return in_time_interval(6, 19) and simulation_objects.sim_dist_to(squad, target) <= 150 end }, dolg = { prec = function(squad, target) return in_time_interval(6, 19) and simulation_objects.sim_dist_to(squad, target) <= 150 end }, freedom = { prec = function(squad, target) return in_time_interval(6, 19) and simulation_objects.sim_dist_to(squad, target) <= 150 end }, killer = { prec = function(squad, target) return in_time_interval(6, 19) and simulation_objects.sim_dist_to(squad, target) <= 150 end } }, smart = { territory= { prec = function() return in_time_interval(6, 19) and target:name() ~= "esc_b1" and target:name() ~= "esc_b2" and target:name() ~= "esc_b4" and target:name() ~= "esc_b6" and target:name() ~= "esc_b7" end }, lair = { prec = function() return in_time_interval(19,6) and target:name() ~= "esc_b1" and target:name() ~= "esc_b2" and target:name() ~= "esc_b4" and target:name() ~= "esc_b6" and target:name() ~= "esc_b7" end } }, actor = { prec = function(squad, target) return in_time_interval(6, 19) and simulation_objects.sim_dist_to(squad, target) <= 150 end } }, monster_predatory_night = { squad = { monster_vegetarian = { prec = function() return in_time_interval(21,6) end }, stalker = { prec = function(squad, target) return in_time_interval(19,6) and simulation_objects.sim_dist_to(squad, target) <= 150 end }, bandit = { prec = function(squad, target) return in_time_interval(19,6) and simulation_objects.sim_dist_to(squad, target) <= 150 end }, dolg = { prec = function(squad, target) return in_time_interval(19,6) and simulation_objects.sim_dist_to(squad, target) <= 150 end }, freedom = { prec = function(squad, target) return in_time_interval(19,6) and simulation_objects.sim_dist_to(squad, target) <= 150 end }, killer = { prec = function(squad, target) return in_time_interval(19,6) and simulation_objects.sim_dist_to(squad, target) <= 150 end } }, smart = { territory= { prec = function() return in_time_interval(19,6) and target:name() ~= "esc_b1" and target:name() ~= "esc_b2" and target:name() ~= "esc_b4" and target:name() ~= "esc_b6" and target:name() ~= "esc_b7" end }, lair = { prec = function() return in_time_interval(6,19) and target:name() ~= "esc_b1" and target:name() ~= "esc_b2" and target:name() ~= "esc_b4" and target:name() ~= "esc_b6" and target:name() ~= "esc_b7" end } }, actor = { prec = function(squad, target) return in_time_interval(19,6) and simulation_objects.sim_dist_to(squad, target) <= 150 end } }, И получил зеленое насекомое. Спойлер FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : ..\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ...ishing\Зов Припяти\gamedata\scripts\sim_board.script:107: attempt to index global 'target' (a nil value) stack trace: 107 строка -- smart = { territory= { prec = function() return in_time_interval(6, 19) and target:name() ~= "esc_b1" and target:name() ~= "esc_b2" and target:name() ~= "esc_b4" and target:name() ~= "esc_b6" and target:name() ~= "esc_b7" end }, Чем то движку не приглянулось указание смартов. Вопрос - чем? Можно ли запретить в sim_board конкретным фракциям лезть на конкретные смарты? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bad_major 2 Опубликовано 7 апреля, 2022 Платформа: x-ray 1.6 Скрипты/конфиги Создаю смарты на локации. Решил, очень грубо говоря, включить debug для лога в скрипте _g.script в функции "printf(fmt,...)" local con = get_console() con:execute(string.gsub(string.format(fmt,...), " ", "_")) con:execute("flush") При загрузке игры вылет, в логах "Wrong smart name [%s] in start position" - это из функции "sim_board:fill_start_position()", скрипт - sim_board.script. Самый главный вопрос, который меня мучает, что за таблица "smarts_by_names", куда прописывать свои созданные смарты, уже везде прописал, даже в game_graph.ltx и поставил game_graph в Level Editor на локации внутрь смарта, в свойствах в 4 пункте выбрал свой смарт. В файлах по пути ../misc/*.ltx так же везде указал мои смарты, сквады. В скриптах, в принципе, прописал. Остаётся только момент с таблицей в sim_board.script, правильно ли я указал там всё, для объекта "simulation_activities"...но повторил за оригиналом, плюс там скорее настройки поведения смарта, и там не все смарты прописаны. Режим debug (если это можно так назвать) для лога в _g.script убирать не хочу. Что за ошибка то такая - "Wrong smart name [%s] in start position". Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 885 Опубликовано 8 апреля, 2022 10 часов назад, Seraph сказал: Когда есть один статичный зацикленный кадр Анимация привязана к конкретному месту на локации, она при всём желании не может быть использована где бы то ни было ещё. Следовательно, ты говоришь об анимации, которая имитирует вид от 1-го лица. Чтобы ими лучше манипулировать, надо запускать их через скрипты, а не через форму sr_cutscene. Дополнено 2 минуты спустя 6 часов назад, Сергей Шубин сказал: Чем то движку не приглянулось указание смартов. По-моему, нужно создать локальную переменную target Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 8 апреля, 2022 (изменено) Сергей Шубин Уважаемый! Вы заявляете прекондишен-функцию: prec = function(), но параметры в нее не передаете, а внутри нее пытаетесь их проверять: target:name() ~= "esc_b6" Выход: используете параметры - заявляйте их prec = function(squad, target) 12 часов назад, bad_major сказал: "Wrong smart name [%s] in start position" Означает, что в стартовой позиции (конфиг simulation.ltx секции [start_position_***]) заявлен смарт, который фактически отсутствует (не внесен в таблицу smarts_by_names, вноситься в нее смарт автоматически при регистрации объекта данного класса движком). Проверяйте есть ли заявленный смарт в all.spawn. Изменено 8 апреля, 2022 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 798 Опубликовано 8 апреля, 2022 Как сделать, чтобы НПС реагировал на выстрел от игрока? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 8 апреля, 2022 (изменено) del Изменено 8 апреля, 2022 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Doctor_Oz 29 Опубликовано 8 апреля, 2022 22 часа назад, Neptun сказал: А в чем препятствие поставить в апдейт и посмотреть за последствиями? Хотя функция довольно странная. Если ГГ и НПС делают что? Вероятно, должна быть проверка, что они вступили в диалог, потому что результат как раз говорит, что все бабки будут отданы этому НПС, но тут ещё надо добавить проверку, что у ГГ вообще есть деньги. О как... Тогда поставлю вопрос другой... Есть ли такая функция, чтобы игрок лишился ВСЕХ деняг и возможно ли такую функцию поставить в апдейт? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hozar_2002 128 Опубликовано 8 апреля, 2022 (изменено) Крим Рекомендую покрутить каллбек на слух НПС. По идее они слышат выстрелы. 40 минут назад, Doctor_Oz сказал: лишился ВСЕХ деняг db.actor:give_money(-db.actor:money()) Изменено 8 апреля, 2022 пользователем Hozar_2002 2 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Koschey 30 Опубликовано 8 апреля, 2022 (изменено) Была тут такая ошибка никто на нее не ответил,сам столкнулся. Знает кто как лечить? при загрузке уровня в ле. FATAL ERROR [error]Expression : assertion failed [error]Function : CEditableObject::UpdateBox [error]File : D:\GameDev\Engine\XRayEngine\XRayEngine\Source\Editors\XrECore\Editor\EditObject.cpp [error]Line : 162 [error]Description : !m_Meshes.empty() stack trace: FATAL ERROR [error]Expression : error handler is invoked! [error]Function : invalid_parameter_handler [error]File : D:\GameDev\Engine\XRayEngine\XRayEngine\Source\XrCore\xrDebugNew.cpp [error]Line : 786 [error]Description : stack trace: Изменено 8 апреля, 2022 пользователем Koschey Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WolfHeart 950 Опубликовано 9 апреля, 2022 Какому-то объекту в конфиге не задано значение какого-то параметра. Например: ammo_mag_size = В этом случае, оружию не было указано обязательное значение параметра ёмкости магазина. AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb). Windows -10 PRO (х64) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 798 Опубликовано 9 апреля, 2022 Я знаю есть функция, которая спавнит динамические объекты, мне она нужна. Единственное, что я помню от неё - это обрывок названия "cond". Нигде не могу отыскать её. Подскажите, прошу вас. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bad_major 2 Опубликовано 9 апреля, 2022 (изменено) del Изменено 10 апреля, 2022 пользователем bad_major Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 885 Опубликовано 10 апреля, 2022 17 часов назад, Крим сказал: Я знаю есть функция, которая спавнит динамические объекты =spawn_object(объект:точка_спавна) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
OP_artovod 4 Опубликовано 10 апреля, 2022 подскажите кто нибудь встречал уже как то здесь функцию задержки, сейчас вот найти не могу, кто знает как она выглядит? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mad Hikki 364 Опубликовано 10 апреля, 2022 Как запаковать исходный код условного Xray Monolith в dll. Файлы( в "папка с игрой"/bin) для работы с игрой? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Doctor_Oz 29 Опубликовано 10 апреля, 2022 Только что, Hikki сказал: Как запаковать исходный код условного Xray Monolith в dll. Файлы( в "папка с игрой"/bin) для работы с игрой? В Visual Studio 201(7, 9) вроде, других способов нет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
most34 9 Опубликовано 10 апреля, 2022 Поставил NPC на карту через smart_cover, прописал логику, респавн, поставил smart_terrain. При старте новой игры, вылет. ЛОГ СНИЗУ 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 : ...\x-ray_cop_sdk\editors\gamedata\scripts\utils.script:469: bad argument #1 to 'gsub' (string expected, got nil) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 798 Опубликовано 11 апреля, 2022 (изменено) У меня комп крашится во время игрового вылета, вот прям зависает и все. Единственное, что выходит делать - это перезагрузка. Однако после неё в логе ничего не написано, просто пусто. Как я могу исправить вылет, если не знаю лога? Никак. Подскажите, как можно исправить краш моей системы во время вылета? Изменено 11 апреля, 2022 пользователем Крим Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 11 апреля, 2022 Крим можно не перезагружать компьютер, а запустить диспетчер задач: Ctrl + Alt + Delete - потом нажать диспетчер задач Снять задачу с X-ray 1.6 engine Может помочь, но лог может не записаться. Лучше всего запускать сталкер через Visual Studio в режиме локального отладчика Windows, тем самым вы 100% узнаете, в чём причина вылета. Дополнено 2 минуты спустя most34 может в логике смарта прописано [logic] а надо [smart_terrain] ? Дополнено 5 минуты спустя Hikki смотри тутор как настроить OpenXray в Visual Studio. Всё по аналогу сделай, только думаю стоить закинуть ресуры этого движка вместо двигла OpenXray. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NitWaifu 0 Опубликовано 12 апреля, 2022 Здравствуйте, товарищи сталкеры! Я тут решился попробовать себя в роли мододела. И вот, хочу мод свой развернуть на оригинальных локациях ЗП, но в зимнем сеттинге. Подскажите мне, пожалуйста, как это можно реализовать? И какой движок использовать (Оригинальный от ЗП или тот же, но модифицированный сообществом)? Заранее благодарю вас! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
St4lker0k 165 Опубликовано 12 апреля, 2022 (изменено) Не знаю почему, но когда я делал заселение локации для своей модификации, столкнулся с таким вылетом: Спойлер * [win32]: free[312764 K], reserved[186392 K], committed[3695084 K] * [ D3D ]: textures[2668306 K] * [x-ray]: crt heap[3410070 K], process heap[3410070 K], game lua[8160 K], render[188 K] * [x-ray]: economy: strings[22550 K], smem[11048 K] compiling shader deffer_model_bump_d-hq_1 compiling shader model_env_lq compiling shader model_env_lq_0 compiling shader accum_emissivel compiling shader deffer_model_bump_d-hq_0 compiling shader deffer_model_flat_d_0 compiling shader model_def_lplanes_0 compiling shader model_env_lq_1 compiling shader model_def_lplanes_1 ! Unknown command: dump_infos compiling shader model_scope_lense compiling shader model_scope_lense_0 intro_start game_loaded * MEMORY USAGE: 3499174 K * End of synchronization A[1] R[1] intro_delete ::update_game_loaded compiling shader yuv2rgb stack trace: [error][ 8] : (null) Не знаю точно, с чем он связан, но как я понял, это связано как-то с точками спавна. Ещё при попытке спавна чего-либо (через Повелитель Зоны, либо при прогрузке НПС в смарте) у меня происходит вылет связанный с недостатком памяти. И происходит он всегда. Я уже писал этот вопрос в тему движка (Advanced X-Ray), и мне ответили, что это с движком не связано. Поэтому я задал этот вопрос сюда. Изменено 12 апреля, 2022 пользователем maks_stalkerok_2000 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Detron 2 Опубликовано 13 апреля, 2022 Не подскажите, как по key_bindings называется кнопка спринта? Пишу скрипт, где эту кнопку нужно отследить, а названия не знаю и найти не могу (в lua_help не указано). Попробовал подобрать, но такие как kRUN, kSPRINT и kSPRINT_TOGGLE не подошли. Кто-нибудь знает правильно название кнопки? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Master_boli 188 Опубликовано 13 апреля, 2022 Хочу сделать чтоб на худе показывалась шкала радиации, вобще лучше бы было если значение в цифрах.Как такое можно сделать, интересует худ зов припяти? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 13 апреля, 2022 (изменено) Detron Пробуйте accel: Спойлер C++ class key_bindings { const kACCEL = 6; В 12.04.2022 в 13:48, NitWaifu сказал: как это можно реализовать? Начните с редактирования текстур окружения "под зиму" при помощи фотошопа с плагином dds. Изменено 13 апреля, 2022 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты