Overf1rst 1 425 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 16 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mark_v02 186 Опубликовано 10 марта Boomer рекомендую покопаться в true stalker(где то есть способ распаковки), там такое несколько раз происходит. а чо писать Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Prostomod 1 105 Опубликовано 10 марта (изменено) Boomer Просто так в ваниле нельзя, но знаю 2 способа такое реализовать: Использовать правленный движок или самому реализовать такое в движке. Я не знаю полный список движков с такой фичёй, но вроде бы в AXR видел, что такое есть, да и в том-же True Stalker. Этим способом я не пользовался, но мне как-то подсказали, что можно через нет-пакеты и без правок движка такое сделать. Спойлер Привет, я на ЗП сильно не работал, но помогал одному человеку со скриптами, вообщем модуль называется stpk_utils.script, для работы достаточно перенести сам скрипт в папку к остальным скриптам. С помощью данной штуки можно редактировать пакетные данные серверных обьектов, допустим НПС или даже игрока (список редактируемых обьектов достаточно большой), для редактирования пакета игрока (имени, иконки, ранга, репутации (и да последние 2 пункта не вырезаны в ЗП, их можно восстановить). Изменить пакет можно, как напрямую через скрипт, так и через спейс рестриктор, как это любят делать модмейкеры на ЗП. В модули всё автоматизированно, поэтому итоговый скрипт должен выглядеть как-то так: function change_actor_name() local sobj = alife():actor() -- клиент актёра local tbl = stpk_utils.get_object_data(sobj) -- получаем пакет tbl.character_name = "Вова вист" -- Новое имя (локализация вроде, как не требуется) tbl.specific_character = "bar_dolg_leader" (иконка для нашего героя) stpk_utils.set_object_data(tbl, sobj) -- сохраняем пакет end Если через спейс рестриктор то примерно аналогично передаём данные xr_effects: function change_actor_name(actor, npc, p) local sobj = alife():actor() local tbl = stpk_utils.get_object_data(sobj) tbl.character_name = p[1] stpk_utils.set_object_data(tbl, sobj) end Логика спейса: [logic] active = sr_idle [sr_idle] on_actor_inside = %=change_actor_name(Вова Вист)% sr_idle@stop [sr_idle@stop] Ну тут уже дело вкуса вообщем-то. В ЗП на сколько я помню этого достаточно, таким же способом мы можем менять пакетные данные НПС, только нужно соответсвенно указывать его стори ид, однако для того чтобы его пакет изменился, нужно после переписи пакета перевести его в оффлайн, а после в онлайн, иначи данные применятся только после сейв\лоада, в ЗП я не знаю проще с этим дела или нет, также через нетпаки для НПС можно сменить визуал, голос, возможно кол-во денег (как и актёру, не помню). Вроде всё описал... stpk_utils.script Изменено 10 марта пользователем Prostomod 1 1 Мод в разработке - X-7: Эпицентр Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
WILD_USEC 238 Опубликовано 10 марта Как реализовать 3Д ПДА? Платформа - OGSR (кажется уже пора сделать новую опросницу) В конфиге items.ltx в секции device_pda прописал нужную секцию худа, в худовой секции все нужное есть(брал из ганслингера). При включении в консоли g_3dpda ГГ просто его не достает. При отключении понятное дело появляется обычный КПК. Чего мне не достает? Весь гитхаб облазил - ничего путного найти не могу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mervin62 764 Опубликовано 10 марта 9 часов назад, Boomer сказал: Можно как-то реализовать, чтобы в определенный момент у гг поменялось имя и, соответственно, его иконка в инвентаре? В ориге нет, так как даже если изменить имя в файле character_desc_general.xml, то правка применится только с новой игрой. Адаптации ганслингера на моды зов припятиВсегда на связи в телеге @Mervin62 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Boomer 227 Опубликовано 11 марта 15 часов назад, Prostomod сказал: Этим способом я не пользовался, но мне как-то подсказали, что можно через нет-пакеты и без правок движка такое сделать. Cпасибо большое тебе за ответ и Парацетамолу за гайд. Второй способ работает на ура. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pepel 77 Опубликовано 11 марта 1 час назад, Boomer сказал: Cпасибо большое тебе за ответ и Парацетамолу за гайд. Второй способ работает на ура. Научиииииииииии!!!!!! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Marquis 0 Опубликовано 11 марта Добрый день, извините возможно мой вопрос будет очень глупым и никто не делал этого раньше, но как сделать так чтоб плотей в игре вообще не было как полностью удалить их присутствие в игре или хотяб заменить на другого мутаната? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 762 Опубликовано 11 марта (изменено) Marquis Заменить сквады с плотями (имя мобов начинается на flesh_***) на другие. Используйте поиск по содержимому файлов. Изменено 11 марта пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Domovoi 25 Опубликовано 11 марта (изменено) Приветствую! Возможно ли через через логику(confgis\scripts) или скриптово влиять на time_factor? Изменено 11 марта пользователем Domovoi Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Toplol4ik 35 Опубликовано 11 марта Domovoi В оригинальном ЗП команда time_factor в принципе отсутствует. Если она есть (модифицированный движок или сами вернули) то через скрипт можно вписать любую команду в консоль. Например: function on_tutor_gameover_quickload() local c = get_console() c:execute("load_last_save") end (взято из xr_effects) 1 Просто создаю свой мод... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Marquis 0 Опубликовано 11 марта denis2000 а как же их назначение в скриптах? Ничего не будет если я заменю все файлы допустим на Кабанов? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 762 Опубликовано 12 марта (изменено) Domovoi level.set_time_factor(10) Marquis Я, что то не помню заскриптованных сквадов плотей в оригинале. В любом случае - это вполне поправимо если менять имена найденных сквадов и в логике. Или просто замените наполнение найденных сквадов с плотей на кабанов. Изменено 12 марта пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Morokei 0 Опубликовано 12 марта [error]Expression : assertion failed [error]Function : CUIAchievements::Update [error]File : D:\prog_repository\sources\trunk\xrGame\ui\UIAchievements.cpp [error]Line : 44 [error]Description : ai().script_engine().functor(m_functor_str, f) stack trace: Помогите решить проблему Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 20 Опубликовано 12 марта А возможно ли в логике например зомбарей сделать так чтоб они начали шмалять в друг друга по условию? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 762 Опубликовано 12 марта (изменено) Pavel2000 Два варианта (возможно их и больше): 1. Сделать две группировки зомбированных враждебных друг-другу, а по инфо разрешить воевать (через combat_ignore). 2. Сделать два сквада и по инфо сделать их врагами между собой (готовой функции насколько я помню нет). Изменено 12 марта пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pepel 77 Опубликовано 12 марта 1 час назад, Morokei сказал: [error]Expression : assertion failed [error]Function : CUIAchievements::Update [error]File : D:\prog_repository\sources\trunk\xrGame\ui\UIAchievements.cpp [error]Line : 44 [error]Description : ai().script_engine().functor(m_functor_str, f) stack trace: Помогите решить проблему Я бы так не баловался с тем, чтобы спавнобьекты размещать вне аисетки Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 762 Опубликовано 12 марта (изменено) 6 минут назад, Pepel сказал: Я бы так не баловался с тем, чтобы спавнобьекты размещать вне аисетки И правильно делаете, но вылет о другом - об ачивках... Их меняли, редактировали? Изменено 12 марта пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Morokei 0 Опубликовано 12 марта (изменено) 22 минуты назад, denis2000 сказал: И правильно делаете, но вылет о другом - об ачивках... Их меняли, редактировали? Решил проблему, не в ачивке была, в скрипте слово пропустил ))) но все равно спасибо Изменено 12 марта пользователем Morokei Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 762 Опубликовано 12 марта 7 минут назад, Morokei сказал: в скрипте слово пропустил А подробностей не будет? Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
The_Python 3 Опубликовано 12 марта Добрый вечер, можно ли по скрипту изменять локацию? Я хочу чтобы после обратного перехода на локацию изменились некоторые объекты, допустим стоял целый домик, а после перезахода он оказался сломаным (просто заменить модель) или новые статичные объекты добавлять. А также можно это сделать без перезахода? Мне хотябы один способ. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 20 Опубликовано 12 марта 4 часа назад, denis2000 сказал: возможно их и больше Я вот думал про изменение отношения у группировок(у них же там есть в таблице отношения между друг другом) только я незнаю работает это или нет и какой скрипт(функция) за это отвечает Дополнено 0 минут спустя И можно ли это прописать в логике непися Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 762 Опубликовано 13 марта (изменено) The_Python Если хотите менять статический объект на локации, то без перезагрузки локации - никак (я по крайней мере не слышал о кастомном движке с динамической загрузкой объектов локации), более того это будут две разные локации! Если хотите менять спавн-объект (динамический), то это возможно, но накладывает типичные проблемы таких объектов, например, как ограничение геометрических размеров, проблемы с физическим взаимодействием и т.д. Пример такого объекта - мост в рыжем лесу ЧН, более того он с анимацией. 14 часов назад, Pavel2000 сказал: у них же там есть в таблице отношения между друг другом Есть такая таблица и применять ее редактирование я вам и рекомендовал в первом способе. Да читается она в начале игры движком, но вот менять в процессе игры отношения между группировками затруднительно, поскольку нет движкового метода (в оригинале) который меняет отношения между группировками в целом. Изменено 13 марта пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MilF_Hunter 0 Опубликовано 13 марта Доброго дня. Хочу добавить новое оружие в игру и сделать так, чтобы его можно было заказать у Шустрого. В каком файле нужно добавить новый заказ Шустрому? Заранее спасибо Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
The_Python 3 Опубликовано 13 марта (изменено) Всем привет, у меня опять проблемы, вот только сейчас не обычные. Я делаю симуляцию на локации, поставил граф поинты, смарт террейны, всё настроил. создал нужные файлы в gamedata\configs\scripts\escape\smart вообщем делал всё по урокам Sheva Stalker. Но при загрузки локации происходит вылет: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...àíñòâî è Âðåìÿ\gamedata\scripts\smart_terrain.script:1257: attempt to compare nil with number Вот только для меня странно то, что тут указано: "attempt to compare nil with number", т.е попытаться сравнить ноль с числом, но этоже функция из оригинального файла smart_terrain.script из UEgamedata, я там прописал только свою локацию где надо. Вот сама функция: if squad_count ~= nil and (self.max_population <= squad_count) then --printf("smart terrain [%s] precondition returns false for squad [%s]", self:name(), squad:name()) -- if tonumber(self.props["surge"]) > 0 and xr_conditions.surge_started() then -- printf("SURGE_SMART_STATS : smart [%s]\n max_population = %d \ squad_count = %d", self:name(), self.max_population, squad_count) -- end return false end Если я её удаляю из файла, то игра не вылетает и даже происходит спавн мутантов, только работает это как-то криво, например не работает параметр: respawn_only_smart = true чтобы мутанты не убегали за территорию своего смарта. Что это за функция и зачем она нужна? и есть ли решение проблемы, может кто сталкивался? Изменено 13 марта пользователем The_Python Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 762 Опубликовано 13 марта The_Python Косяк с параметром max_population на одном из смартов или смарт описан не корректно. 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты