Overf1rst 1 498 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
FalkineIsaku 81 Опубликовано 3 января, 2023 Belka_mod Скинь simulation.ltx 𝐒𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫𝐬𝐞𝐥𝐟, 𝐬𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫…𝐬𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫𝐬𝐞𝐥𝐟 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 293 Опубликовано 3 января, 2023 (изменено) 3 часа назад, makdm сказал: Белыми кружочками отображаются рестрикторы. Настройка отображения в файле PDA.script А в видеоуроке было написанно что в custom data нужно прописать story id и имя смарттеррейна_spot.Странно. Может я чего не понял Дополнено 6 минуты спустя 1 час назад, FalkineIsaku сказал: Belka_mod Скинь simulation.ltx Вспомнил! Я забыл из него убрать нпс, спавн которого убрал. Тоесть в Level Editor я его убрал и спавн перекомпилировал, а из simulation.ltx его из секции с юпитером не убрал. Да, в этом было дело. И не знаешь почему иногда 2 разных сообщения объединяются? Изменено 3 января, 2023 пользователем Belka_mod Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WolfHeart 922 Опубликовано 3 января, 2023 9 часов назад, Belka_mod сказал: И не знаешь почему иногда 2 разных сообщения объединяются? На будущее - для таких вопросов есть специальная тема: Вопросы по сайту Они не будут объединятся, если между первым и вторым сообщением более 5 часов. AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb). Windows -10 PRO (х64) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Domovoi 29 Опубликовано 4 января, 2023 Приветствую, для того чтобы run_tutorial пропал не при нажатии F, а через время нужно прописать другое значение в <disabled_key>quit</disabled_key> в game_tutorial.xml? Или в <guard_key>use</guard_key>? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
QueroMas 111 Опубликовано 4 января, 2023 День добрый, написал код в xr_motivator для спавна предметов НПС. function motivator_binder:__init (obj) super(obj) self.spawned_items = false end function motivator_binder:net_spawn(sobject) if not self.spawned_items then self.spawned_items = true -- тут происходит спавн предметов end end function motivator_binder:save(packet) packet:w_bool(self.spawned_items) end function motivator_binder:load(reader) self.spawned_items = reader:r_bool() end Т.е. по логике один раз заспавнилися предметы, и дальше self.spawned_items должно быть всегда true для данного НПС. Но получается так: начинается новая игра, прихожу в лагерь к НПС и для них срабатывает этот код - все заспавнилось как надо. Но, дальше ухожу от них (чтоб все эти НПС перешли в офлайн), далее в офлайне для них f5-f9, снова прихожу к ним, и для них ещё раз срабатывает данный код. Выяснил, что не срабатывает метод load, и получается что self.spawned_items снова false. Как можно решить данную проблему? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 953 Опубликовано 4 января, 2023 (изменено) 2 часа назад, QueroMas сказал: Выяснил, что не срабатывает метод load, и получается что self.spawned_items снова false. Метод load для motivator_binder работает 100%. Проверяйте внимательнее - идея кода принципиально верная. Но, зачем это делать здесь, в скрипте, совершенно не понятно! Может раскидаете, что вам так настойчиво нужно спавнить? Изменено 4 января, 2023 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 293 Опубликовано 4 января, 2023 (изменено) Здравствуйте.Я расставил smart cover'ы для зомбированных сталкеров на копачах(Окрестности Юпитера) в количестве 15 штук,назвал их по имени смарт-террейна с припиской animpoint и порядковым числом.Настроил эти smart cover'ы? прописал 3 сквада зомбированных по 4 нпс в каждом в squad_descr_jupiter и в simulaion.Решил всё проверить в игре,но в середине загрузки локации такой вылет: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...- Зов Припяти\gamedata\scripts\se_smart_cover.script:50: attempt to index field '?' (a nil value) squad_descr_jupiter.ltx simulation.ltx Изменено 4 января, 2023 пользователем Belka_mod Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 953 Опубликовано 4 января, 2023 (изменено) Domovoi Вы же в рестрикторе стартуете туториал? Вот там таймер и сделайте, который отключит туториал по истечении заданного интервала времени. Belka_mod Вылет скорее всего означает неправильную настройку смарт-коверов в SDK. И ко всему, я вот, вообще, не уверен в наличии у зомбированных сталкеров анимаций для анимпоинтов; вейпоинты пилите. Изменено 4 января, 2023 пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 293 Опубликовано 4 января, 2023 (изменено) 21 минуту назад, denis2000 сказал: Domovoi Вы же в рестрикторе стартуете туториал? Вот там таймер и сделайте, который отключит туториал по истечении заданного интервала времени. Belka_mod Вылет скорее всего означает неправильную настройку смарт-коверов в SDK. И ко всему, я вот, вообще, не уверен в наличии у зомбированных сталкеров анимаций для анимпоинтов; вейпоинты пилите. Я сейчас вместо зомбированных прописал сталкеров,такая же фигня. Но я не расставлял простых графпоинтов. Может из-за этого? Изменено 4 января, 2023 пользователем Belka_mod Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Domovoi 29 Опубликовано 4 января, 2023 Приветствую, делал кат-сцену всё работало как надо потом прописал =create_cutscene_actor_with_weapon(topi_scene_visual_actor_1:topi_camer_1_stalker_actor_walker_1_walk) чтобы вроде прописал всё как надо в spawn_sections_general.xml, логика тоже правильная словил вылет Expression : fatal error Function : lua_pcall_failed File : c:\xray\forward frontier\public build\src\layers\xrrender\resourcemanager_scripting.cpp Line : 101 Description : <no expression> Arguments : LUA error: d:\stalker Çîâ Ïðèïÿòè1\gamedata\scripts\xr_effects.script:3106: attempt to index global 'obj' (a nil value) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 953 Опубликовано 4 января, 2023 (изменено) Domovoi Судя по логу вылет происходит из-за отсутствия точек пути topi_camer_1_stalker_actor_walker_1_walk. 2 часа назад, Belka_mod сказал: Я сейчас вместо зомбированных прописал сталкеров,такая же фигня. Запоминается последняя фраза — это Штирлиц вывел для себя, словно математическое доказательство 🤣 Товарищ Исаев, а вы весь пост читать не пробовали? Изменено 4 января, 2023 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Skala 293 Опубликовано 4 января, 2023 16 минут назад, denis2000 сказал: Domovoi Судя по логу вылет происходит из-за отсутствия точек пути topi_camer_1_stalker_actor_walker_1_walk. Запоминается последняя фраза — это Штирлиц вывел для себя, словно математическое доказательство 🤣 Товарищ Исаев, а вы весь пост читать не пробовали? Читал я весь пост. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 953 Опубликовано 4 января, 2023 Belka_mod Значит уже знаете, что делать. Удачи в модостроении. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
bad_major 2 Опубликовано 4 января, 2023 (изменено) Создаю смарт с тушканами: [smart_terrain] squad_id = 1 max_population = 1 [exclusive] tushkano_01 = monsters.ltx tushkano_02 = monsters.ltx tushkano_03 = monsters.ltx tushkano_04 = monsters.ltx tushkano_05 = monsters.ltx Логика mob_home: [mob_home] path_home = tushkano_home home_min_radius = 10 home_max_radius = 20 aggressive = true [logic@tushkano_01] active = mob_home [logic@tushkano_02] active = mob_home [logic@tushkano_03] active = mob_home [logic@tushkano_04] active = mob_home [logic@tushkano_05] active = mob_home Точка на карте имя_смарта_tushkano_home. Когда подхожу к ним, тушканы стоят в ряд, бегут на месте, видят меня, но не атакуют, красные по отношению ко мне, злые, но бегут на месте. В чём может быть проблема? Кстати, создавал полтергейста огненного, так же с mob_home, так он меня вообще не видел, бегал сквозь него, а ему всё равно. Какие настройки я забыл в данном случае? Изменено 4 января, 2023 пользователем bad_major Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BarmaGlot 244 Опубликовано 4 января, 2023 11 часов назад, QueroMas сказал: Как можно решить данную проблему? QueroMas Можно использовать триггер-инфопоршень. Типа методов game_object: function has_info(string) function dont_has_info(string) function give_info_portion(string) function disable_info_portion(string) И цеплять этот уникальный string (например, "npc_got_quest_item_xxx") либо в контекст актёра, либо в контекст самого непися, исходя из логики сюжета. Я логи в баню удалил, а вот за за рейдеры – не помню! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
QueroMas 111 Опубликовано 4 января, 2023 9 часов назад, denis2000 сказал: Метод load для motivator_binder работает 100%. Проверяйте внимательнее - идея кода принципиально верная. Но, зачем это делать здесь, в скрипте, совершенно не понятно! Может раскидаете, что вам так настойчиво нужно спавнить? Я в спавн секцию прописываю какие-то предметы для спавна, когда мне нет необходимости создавать отдельный профиль для НПС. Плюс замена модели НПС (когда выбирается рандомно), плюс выдача рандомного оружия. Почему я решил что load не срабатывает - просто добавил вывод смс в методы save/load, и при вышеперечисленном алгоритме действий метод load не срабатывает. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 672 Опубликовано 4 января, 2023 11 часов назад, QueroMas сказал: День добрый, написал код в xr_motivator для спавна предметов НПС. Я так думаю, что метод net_spawn(sobject) обрабатывается движком первым. А затем уже идет обработка метода load(reader) Ставьте ваш спавн в UPDATE, проблема, думаю, исчезнет. 1 Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BarmaGlot 244 Опубликовано 4 января, 2023 8 минут назад, makdm сказал: Ставьте ваш спавн в UPDATE Имхо, идеальный update (вообще любого объекта/класса) должен быть вообще пустым. Или содержать обработчики только для часто повторяющихся и жизненно важных ситуаций. Однократная проверка по факту спавна в такую политику не вписывается. А доли процента у процессора скушает. Так курочка и клюёт по зёрнышку: там долька, тут долька, а по итогу тормоза. 1 1 Я логи в баню удалил, а вот за за рейдеры – не помню! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
QueroMas 111 Опубликовано 4 января, 2023 (изменено) 27 минут назад, BarmaGlot сказал: QueroMas Можно использовать триггер-инфопоршень. Типа методов game_object: function has_info(string) function dont_has_info(string) function give_info_portion(string) function disable_info_portion(string) И цеплять этот уникальный string (например, "npc_got_quest_item_xxx") либо в контекст актёра, либо в контекст самого непися, исходя из логики сюжета. Это не совсем корректно, с моей точки зрения, больше выглядит как костыль. К тому же название модели через инфопоршень не сохранишь. 14 минут назад, makdm сказал: Я так думаю, что метод net_spawn(sobject) обрабатывается движком первым. А затем уже идет обработка метода load(reader) Ставьте ваш спавн в UPDATE, проблема, думаю, исчезнет. Смотрите, сделал скрин вывода всех сообщений. Eсли я сделал f5/f9 в оффлайне для конкретного НПС, а потом пришел к нему - для него load не срабатывает. А если я делаю f5/f9 в онлайне для НПС, то load срабатывает (второй скрин) Спойлер Изменено 4 января, 2023 пользователем QueroMas Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BarmaGlot 244 Опубликовано 4 января, 2023 4 минуты назад, QueroMas сказал: Это не совсем корректно, с моей точки зрения, больше выглядит как костыль. К тому же название модели через инфопоршень не сохранишь. Наооборот, для этого эти поршни и придуманы. Вот чтение-запись через "пакеты", вот это костылища (хвала "Аномалии" за использование метода Marshal, который весь этот глюкастый нет-пакетный ужас отправил на свалку!) Далее, тут готов поспорить, что "название модели нельзя сохранить". В принципе, можно сохранить всё что угодно, в разумных пределах. Кстати, в изначальном вопросе речь ни о каких "моделях" не шла. 1 Я логи в баню удалил, а вот за за рейдеры – не помню! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
QueroMas 111 Опубликовано 4 января, 2023 17 минут назад, BarmaGlot сказал: Наооборот, для этого эти поршни и придуманы. Вот чтение-запись через "пакеты", вот это костылища (хвала "Аномалии" за использование метода Marshal, который весь этот глюкастый нет-пакетный ужас отправил на свалку!) Далее, тут готов поспорить, что "название модели нельзя сохранить". В принципе, можно сохранить всё что угодно, в разумных пределах. Кстати, в изначальном вопросе речь ни о каких "моделях" не шла. Я про модели потом уже дописал. Я имею ввиду что string через инфопоршень не сохранить. Тут без нет-пакетов никак. Мне хотелось бы понять, почему load не срабатывает. Я конечно могу всё это сделать через создание default профилей, но это будет почти полтысячи профилей, чтобы добиться эффекта разнообразия НПС (разный визуал + разное вооружение). Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BarmaGlot 244 Опубликовано 4 января, 2023 44 минуты назад, QueroMas сказал: Я имею ввиду что string через инфопоршень не сохранить. Тут без нет-пакетов никак. Мне хотелось бы понять, почему load не срабатывает. Я конечно могу всё это сделать через создание default профилей, но это будет почти полтысячи профилей, чтобы добиться эффекта разнообразия НПС (разный визуал + разное вооружение). Странно, ведь аргумент инфопоршня и есть string. Ну, да ладно. Я пока что не вижу проблемы: в motivator_binder:net_spawn(object) чекаем инфопоршень. Если выдан, ничего не делаем. Иначе: выдаем поршень (стандартный общий флаг типа "npc_got_nre_visual", то есть одна строка-константа-метка-поршень на всех, без детализации модели), затем по вашей задумке-алгоритму каким-то образом меняем визуал и спавним/релизим пушки. Визуал и пушки сохраняются движком "на автомате". Или нет? 1 Я логи в баню удалил, а вот за за рейдеры – не помню! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Boomer 465 Опубликовано 5 января, 2023 Как сделать, чтобы определенный предмет нельзя было выбросить из инвентаря? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paracetamol 900 Опубликовано 5 января, 2023 Boomer Добавь предмету в секцию: quest_item = true 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 953 Опубликовано 5 января, 2023 (изменено) 12 часов назад, QueroMas сказал: Я в спавн секцию прописываю какие-то предметы для спавна, когда мне нет необходимости создавать отдельный профиль для НПС. Плюс замена модели НПС (когда выбирается рандомно), плюс выдача рандомного оружия. Так. Ваша идея понятна. 12 часов назад, QueroMas сказал: Eсли я сделал f5/f9 в оффлайне для конкретного НПС, а потом пришел к нему - для него load не срабатывает. А если я делаю f5/f9 в онлайне для НПС, то load срабатывает (второй скрин) Это вполне логично, зачем что-то загружать если НПС в офлайне. Как по мне подобные манипуляции нужно проводить при спавне НПС. Мест в коде где происходит спавн НПС массовки не так много нужно просто вставить после alife():create вызов вашей функции рандомизатора. И кстати любой объект (унаследованный от класса game_object) имеет свои инфопорции, в том числе и НПС. Изменено 5 января, 2023 пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты