Overf1rst 1 490 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 18 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 882 Опубликовано 3 июня, 2022 53 минуты назад, Apka сказал: Пытаюсь распаковать all.spawn из Под прикрытием смерти. Клондайк 2.0 Без оригинального распаковщика, который использовал автор мода, тебе вряд ли удастся распаковать спавн. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 3 июня, 2022 (изменено) Lenyapk function get_npc_squad_name(npc_sid) local npc = get_story_object_id(npc_sid) local squad = get_object_squad(npc) if squad ~= nil then return squad:section_name() end return "none" end Чтобы проверить, что НПС со стори ИД принадлежит скваду (который без стори ид, он необязателен), нужно сделать так get_npc_squad_name("стори_ид_нпс") == "секция_сквада" Изменено 3 июня, 2022 пользователем liner 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mervin62 782 Опубликовано 3 июня, 2022 Всем здравствуйте, вопрос такого плана, как поправить снорков, а то даже жалко их при нападении на гг если увернутся они улетаю как Су 30 и смотрится это скажем так не комильфо, хотя конфиг m snork не трогал и не чего там не менял кроме выпадения запчастей. Адаптации ганслингера на моды зов припятиВсегда на связи в телеге @Mervin62 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lenyapk 0 Опубликовано 3 июня, 2022 (изменено) в чем может быть ошибка? ! Unknown command: dump_infos stack trace: 0023:0692E8B3 xrGame.dll, CDialogHolder::CDialogHolder() 0023:0692FB45 xrGame.dll, CDialogHolder::CDialogHolder() 0023:06142EA3 lua.JIT.1.1.4.dll, luaopen_io() эта ошибка выходит при добавлении в simulation: zat_dolg_warrior_squad = zat_dolg Изменено 4 июня, 2022 пользователем Lenyapk Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
makdm 672 Опубликовано 3 июня, 2022 В 02.06.2022 в 20:34, Lenyapk сказал: подскажите , как проверить через скрипт принадлежность npc к скваду If alife():object ( npc:id() ).group_id ~= 65535 then return true end 1 Терпение... И все получится. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Boomer 446 Опубликовано 5 июня, 2022 Можно ли сделать, чтобы труп исчезал после инфопоршня? Либо по активации скрипта. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 923 Опубликовано 5 июня, 2022 Boomer Нет проблем. Удаляйте штатной функцией destroy_object по стори_ид. Но убедитесь что труп не удаляется release_body_manager.script Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 786 Опубликовано 5 июня, 2022 Мне нужна функция, которая убирает всё оружие из инвентаря ГГ. Именно, что оружие, а не все вещи. Подскажите, как это сделать, пожалуйста. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mindallius 6 Опубликовано 5 июня, 2022 (изменено) Здраствуйте, да, я тупой. Как заспавнить гг на юпитере и сделать так чтобы в игре был только юпитер+ убрать всем дефолтные квесты зп. Прошу прощения, писал Сережа 14 лет додик. Лучше бы учился, чем делал очередной школомод длиною 4 минуты и вылетами после каждого действия. Ибо проблема в том, что везде пишут разное и все не то, все не работает . Хотя опыт в кодинге у меня был, 1.5 года работают с ардуино, хотя там больше по железу, могу сделать среднеполигонального чупакабрика в блендере. А вот логику модов сталкера понять не могу. И в гайдах пишут так, что на первой странице всё понятно, а на второй-ничего. Либо я дурак, либо я дурак, либо плохо ищу. Буду неимоверно благодарен, если скинете ссылку на более-менее понятный, желательно линейный гайд. Изменено 6 июня, 2022 пользователем Mindallius Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 923 Опубликовано 5 июня, 2022 Крим Пробуйте такую: function rel_actor_wpn() local function is_gun(npc, item) if isWeapon(item) then alife():release(alife():object(item:id()), true) end end db.actor:iterate_inventory(is_gun, nil) end Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Misery 433 Опубликовано 5 июня, 2022 Приветствую. Создал торговца, только мне одно не нравится, после его смерти не пропадает его продаваемый лут. Как-то можно удалить этот лут? Дополнено 17 минуты спустя Разобрался. dont_keep_items = true в [logic@ секции логики нпс поправило ситуацию 1 Clear Sky: Gunslinger Addon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 923 Опубликовано 6 июня, 2022 16 часов назад, Mindallius сказал: Здраствуйте, да, я тупой. Согласно Даннингу и Крюгеру - нет, но это не точно ? К сожалению инструкции "Сделать все красиво, быстро и с минимумом затрат" не существует. Поэтому или начинайте с малого: действуя с самых простых вещей постепенно продвигайтесь к более сложному или раз уж беретесь за сложную и комплексную задачу разбивайте ее на как можно более мелкие и решайте каждую из них отдельно. Например ваша задача примерно разбивается на: установка SDK, настройка SDK, минимальное изучение его работы, устновка и настройка конвертора, декомпиляция локации в формат SDK, работа со спавн элементами в SDK, спавн ГГ в SDK, компиляция all.spawn, настройка конфигов спавна локации смарты и сквады, создание диалогов от простых к сложным, создание квестов от примитивных к сложным. Как видите тут масса пунктов и каждый из них разбивается еще на несколько, при этом каждый из них способен вызвать массу конкретных вопросов. И вот когда вы сможете сформулировать конкретные вопрос по конкретному пункту, вы сможете его тут задать. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mindallius 6 Опубликовано 6 июня, 2022 1 минуту назад, denis2000 сказал: Согласно Даннингу и Крюгеру - нет, но это не точно ? К сожалению инструкции "Сделать все красиво, быстро и с минимумом затрат" не существует. Поэтому или начинайте с малого: действуя с самых простых вещей постепенно продвигайтесь к более сложному или раз уж беретесь за сложную и комплексную задачу разбивайте ее на как можно более мелкие и решайте каждую из них отдельно. Например ваша задача примерно разбивается на: установка SDK, настройка SDK, минимальное изучение его работы, устновка и настройка конвертора, декомпиляция локации в формат SDK, работа со спавн элементами в SDK, спавн ГГ в SDK, компиляция all.spawn, настройка конфигов спавна локации смарты и сквады, создание диалогов от простых к сложным, создание квестов от примитивных к сложным. Как видите тут масса пунктов и каждый из них разбивается еще на несколько, при этом каждый из них способен вызвать массу конкретных вопросов. И вот когда вы сможете сформулировать конкретные вопрос по конкретному пункту, вы сможете его тут задать. Здраствуйте, проблема не в том, как начинать учится, все программы по типу sdk у меня есть, распаковывать, запаковывать all.spawn умею. Могу менять диалоги, но не могу их именно прописывать, не знаю как убрать обычные квесты, при попытке изменить место спавна гг постоянно вылазят ошибки, хотя использую вроде рабочие шаблоны. Могу менять свойства артов, оружия, апгрейдов, могу менять имя гг, его стартовый инвентарь. Могу менять ассортимент торговцев. Но на этапе создания квестов оно мне не нужно, нужно знать, как прописывать диалоги, квесты, спавнить сквады. Проблема лишь в том, что везде пишут неполную инфу, из которой ничего токлом не понять, вот кто и где объясняет-что такое инфопоршни и куда их писать? Куда и как правильно прописать новый диалог нпс? Везде пишут неполную инфу. Поэтому я прошу вас помочь с поиском понятных гайдов, а не таких типо" тут короче на строке 75737 в файле который ну я хз пропишите }[][][][][][]]{}[][;<,/,jjlrjrjl{{}p[[[p][][]?.. , потом вставьте диск номер 78 в дисковод под столом на затоне , чтобы у новикова был новый диалог "сам такой, базар фильтруй". " Заранее спасибо Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 882 Опубликовано 6 июня, 2022 59 минут назад, Mindallius сказал: что такое инфопоршни и куда их писать? Это что-то вроде ключа, который записывается в виде текста на латинице: +my_infoportion_for_stalker Инфопоршень выдаётся разными путями: через рестриктор, через диалог, через скрипт, но суть его везде одна: в определённый момент игры выдать ключ, который можно применять для активации чего-либо, например, если надо заспавнить объект после конкретного диалога: ставится проверка на наличие инфопорции, а в конце нужного диалога выдаём, собственно, сам инфопоршень. Подробнее... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mindallius 6 Опубликовано 6 июня, 2022 Только что, Neptun сказал: Это что-то вроде ключа, который записывается в виде текста на латинице: +my_infoportion_for_stalker Инфопоршень выдаётся разными путями: через рестриктор, через диалог, через скрипт, но суть его везде одна: в определённый момент игры выдать ключ, который можно применять для активации чего-либо, например, если надо заспавнить объект после конкретного диалога: ставится проверка на наличие инфопорции, а в конце нужного диалога выдаём, собственно, сам инфопоршень. Подробнее... То есть они-это основа всех квестов? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 882 Опубликовано 6 июня, 2022 1 час назад, Mindallius сказал: Куда и как правильно прописать новый диалог нпс? Отрывается профиль НПС, который, как правило, записан в одном из файлов gamedata\configs\gameplay\character_desc_...xml И перед </specific_character> нужного профиля НПС прописывается строка: <actor_dialog>ID_диалога</actor_dialog> Дополнено 2 минуты спустя 1 минуту назад, Mindallius сказал: То есть они-это основа всех квестов? Основа квестов - тело квеста. Инфопоршень как ключ выполняет лишь связующее действие, а связью может служить не только инфопорция, тем не менее, это самый распространённый способ создать последовательность происходящих событий. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mindallius 6 Опубликовано 6 июня, 2022 7 минут назад, Neptun сказал: Отрывается профиль НПС, который, как правило, записан в одном из файлов gamedata\configs\gameplay\character_desc_...xml И перед </specific_character> нужного профиля НПС прописывается строка: <actor_dialog>ID_диалога</actor_dialog> Дополнено 2 минуты спустя А текст диалога прописывается с папке text, в файле с таким же названием? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 882 Опубликовано 6 июня, 2022 5 минут назад, Mindallius сказал: А текст диалога прописывается с папке text, в файле с таким же названием? Если у тебя есть SDK, то в этой же папке есть Dialog_Editor - программа для создания диалога. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mindallius 6 Опубликовано 6 июня, 2022 2 минуты назад, Neptun сказал: Если у тебя есть SDK, то в этой же папке есть Dialog_Editor - программа для создания диалога. таковая имеется, в данный момент разбираюсь в ней по видео в ютубе Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сталкер из прошлого 115 Опубликовано 6 июня, 2022 Mindallius Короче вот как-то так. Спойлер Создадим крайне простой диалог, с условием появления и единоразовой выдачей. Дабы не плодить лишних файлов, допишем своё в оригинальные файлы. Потребуются: character_desc_zaton.xml, dialogs_zaton.xml и info_zaton.xml, лежащие по пути gamedata\configs\gameplay, а так же файл текста st_dialogs_zaton.xml, лежащий по пути gamedata\configs\text\rus. Для начала создадим саму основу диалога в файле dialogs_zaton.xm. В самом конце, перед заключительным тегом </game_dialogs>, пишем такой код: Спойлер <dialog id="nash_testoviy_dialog"> <has_info>zat_a2_linker_b14_quest_strange_item_done</has_info> <!-- наличие инфопоршня, при котором диалог появится, в данном случае - ориг. инфопоршень, выдаваемый по завершении квеста Бороды на Штурвал --> <dont_has_info>nash_testoviy_info</dont_has_info> <!-- наличие инфопоршня, при котором диалог пропадёт, в данном случае - наш новый инфопоршень --> <phrase_list> <phrase id="0"> <text>nash_text_1</text> <!-- Текст диалога, берётся в нашем случае из файла st_dialogs_zaton.xml --> <next>1</next> <!-- Следующая фраза --> </phrase> <phrase id="1"> <text>nash_text_2</text> <next>2</next> </phrase> <phrase id="2"> <text>nash_text_3</text> <give_info>nash_testoviy_info</give_info> <!-- Выдача инфопоршня --> </phrase> </phrase_list> </dialog> Пропишем этот диалог Бороде. Для этого в файле character_desc_zaton.xml пропишем в профиле Бороды (zat_a2_stalker_barmen), среди прочих строк типа <actor_dialog>--------</actor_dialog> новую строку: <actor_dialog>nash_testoviy_dialog</actor_dialog> Диалог должен появится после сдачи изм. штурвала. Но! Текста в нём пока нет, отображаются только тех. названия типа nash_text_1. Соответственно пропишем текст нашего диалога в st_dialogs_zaton.xml, примерно так: Спойлер <string id="nash_text_1"> <text>Я учусь диалоги писать, не обращай внимания, это тестовый</text> </string> <string id="nash_text_2"> <text>Учится - дело полезное, успехов!</text> </string> <string id="nash_text_3"> <text>Спасибо!</text> </string> Теперь у диалога есть текст. Но! После прочтения он не исчезает, а повторяется заново. Чтобы диалог отображался один раз до прочтения, и нужны в частности инфопоршни. Прописываем наш новый инфопоршень nash_testoviy_info в файл info_zaton.xml среди прочих, вот так: <info_portion id="nash_testoviy_info "></info_portion> Всё, по идее, если всё сделано правильно - после приноса Бороде штурвала, у него появится тестовый диалог, пропадающий после прочтения. Если мы наоборот хотим чтобы диалог был всегда или без условий - НЕ пишем строчки dont_has_info и has_info в первом примере ASUS z87-k, I5-4670 @3.40GHz, MSI GTX 1050ti, 16gb ОЗУ, SSD 100gb, 2xHDD 500gb, Windows 10 Pro. Аномали на ультрах летает. Вместе с компом по комнате. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mindallius 6 Опубликовано 6 июня, 2022 9 минут назад, Сталкер из прошлого сказал: Mindallius Короче вот как-то так. Скрыть контент Создадим крайне простой диалог, с условием появления и единоразовой выдачей. Дабы не плодить лишних файлов, допишем своё в оригинальные файлы. Потребуются: character_desc_zaton.xml, dialogs_zaton.xml и info_zaton.xml, лежащие по пути gamedata\configs\gameplay, а так же файл текста st_dialogs_zaton.xml, лежащий по пути gamedata\configs\text\rus. Для начала создадим саму основу диалога в файле dialogs_zaton.xm. В самом конце, перед заключительным тегом </game_dialogs>, пишем такой код: Показать контент <dialog id="nash_testoviy_dialog"> <has_info>zat_a2_linker_b14_quest_strange_item_done</has_info> <!-- наличие инфопоршня, при котором диалог появится, в данном случае - ориг. инфопоршень, выдаваемый по завершении квеста Бороды на Штурвал --> <dont_has_info>nash_testoviy_info</dont_has_info> <!-- наличие инфопоршня, при котором диалог пропадёт, в данном случае - наш новый инфопоршень --> <phrase_list> <phrase id="0"> <text>nash_text_1</text> <!-- Текст диалога, берётся в нашем случае из файла st_dialogs_zaton.xml --> <next>1</next> <!-- Следующая фраза --> </phrase> <phrase id="1"> <text>nash_text_2</text> <next>2</next> </phrase> <phrase id="2"> <text>nash_text_3</text> <give_info>nash_testoviy_info</give_info> <!-- Выдача инфопоршня --> </phrase> </phrase_list> </dialog> Пропишем этот диалог Бороде. Для этого в файле character_desc_zaton.xml пропишем в профиле Бороды (zat_a2_stalker_barmen), среди прочих строк типа <actor_dialog>--------</actor_dialog> новую строку: <actor_dialog>nash_testoviy_dialog</actor_dialog> Диалог должен появится после сдачи изм. штурвала. Но! Текста в нём пока нет, отображаются только тех. названия типа nash_text_1. Соответственно пропишем текст нашего диалога в st_dialogs_zaton.xml, примерно так: Скрыть контент <string id="nash_text_1"> <text>Я учусь диалоги писать, не обращай внимания, это тестовый</text> </string> <string id="nash_text_2"> <text>Учится - дело полезное, успехов!</text> </string> <string id="nash_text_3"> <text>Спасибо!</text> </string> Теперь у диалога есть текст. Но! После прочтения он не исчезает, а повторяется заново. Чтобы диалог отображался один раз до прочтения, и нужны в частности инфопоршни. Прописываем наш новый инфопоршень nash_testoviy_info в файл info_zaton.xml среди прочих, вот так: <info_portion id="nash_testoviy_info "></info_portion> Всё, по идее, если всё сделано правильно - после приноса Бороде штурвала, у него появится тестовый диалог, пропадающий после прочтения. Если мы наоборот хотим чтобы диалог был всегда или без условий - НЕ пишем строчки dont_has_info и has_info в первом примере спасибо за информацию Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Apka 76 Опубликовано 6 июня, 2022 Подскажите, пожалуйста, что мои кривые ручонки опять сломали? Вот такая фигня происходит при попытке посмотреть в бинокль: Спойлер Текстура бинокля из ганса, scopes.xml, scopes_16.xml и ui_ingame.xml тоже родные гансовские... Куда еще копать? Адаптация модификаций Смерти вопреки и GUNSLINGER mod Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mindallius 6 Опубликовано 6 июня, 2022 Цитата FATAL ERROR [error]Expression : no_assert [error]Function : CXML_IdToIndex<class CPhraseDialog>::GetById [error]File : D:\prog_repository\sources\trunk\xrServerEntities\xml_str_id_loader.h [error]Line : 112 [error]Description : item not found, id [error]Arguments : jup_b16_biochemist_oasis_start stack trace: Пожалуйста подскажите, что означает данная ошибка? Если что, я не трогал обычные диалоги Озёрского. Только добавил свой. Или трогал? character_desc_jupiter.xml dialogs_jupiter.xml st_dialogs_jupiter.xml Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Apka 76 Опубликовано 6 июня, 2022 Mindallius Игра не находит id какого-то профиля... или диалога... или квеста. В общем указанный id в .xml файле. Проверяйте правильность написания идентификатора, либо добавьте его, если таковой отсутсвует. Если проще, то игра где-то у тебя спрашивает строку в xml с айди jup_b16_biochemist_oasis_start, а таковой строки в твоих xmlках нет. Если это оригинал, то ты, видимо, название строки поменял, вот игра теперь и ругается. Адаптация модификаций Смерти вопреки и GUNSLINGER mod Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mindallius 6 Опубликовано 6 июня, 2022 1 минуту назад, Apka сказал: Mindallius Игра не находит id какого-то профиля... или диалога... или квеста. В общем указанный id в .xml файле. Проверяйте правильность написания идентификатора, либо добавьте его, если таковой отсутсвует. Если проще, то игра где-то у тебя спрашивает строку в xml с айди jup_b16_biochemist_oasis_start, а таковой строки в твоих xmlках нет. Если это оригинал, то ты, видимо, название строки поменял, вот игра теперь и ругается. Видимо да, я удалил все из орига. Но ведь вроде во всех модах так? Типо в гейм дате только новое, а старое в запакованных файлах Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты