Overf1rst 1 499 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Master_boli 185 Опубликовано 24 октября, 2020 Только что, Policai сказал: Вы не сможете заменить деревья без сдк и перекомпиляции... Да мне что бы вытащить их с другово мода. 7 минут назад, Никсон сказал: текстура level_lods.dds содержит лоды деревьев Спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Policai 1 323 Опубликовано 24 октября, 2020 9 минут назад, Master_boli сказал: Да мне что бы вытащить их с другово мода. Декомпилить локацию, открыть в сдк, и скоптировать нужные обьекты... Группа мода в VK Мод делался и тестировался на железе i5-11400, 32Гб ОЗУ, Radeon RX580 Разрешение 2560 х 1440. ВСЕ на максималке Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NewValveCom 125 Опубликовано 24 октября, 2020 Как убрать крестовину прицела, когда в руках у актёра оружие, и сделать так, чтобы прицел был такой же, как и когда у актёра нет оружия (cursor.dds)? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hoperise 210 Опубликовано 25 октября, 2020 (изменено) Доброго дня, существует ли функция/логика на запрет приближения к определенному нпс? То бишь, если гг подойдет к нпс на определенное расстояние выдастся поршень, даже если нпс в движении? Изменено 25 октября, 2020 пользователем Hoperise Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
svi_042 285 Опубликовано 25 октября, 2020 (изменено) 22 минуты назад, Hoperise сказал: Доброго дня, существует ли функция/логика на запрет приближения к определенному нпс? То бишь, если гг подойдет к нпс на определенное расстояние выдастся поршень, даже если нпс в движении? попробуй on_info = {=dist_to_actor_le(8)} имя_новой_секции в логике НПС, где вместо 8 - твоё расстояние В свою очередь, есть 2 вопроса: 1. Делаю ПНВ в виде отдельного шлема. Решил реализовать его путём "пустого" шлема-болванки со встроенным по умолчанию апгрейдом на ПНВ. Действовал так: Спойлер [helm_pnv]:helmet $spawn = "outfit\helm_pnv" visual = dynamics\outfit\outfit_pnv control_inertion_factor = 1.0 inv_name = pnv_helm_name inv_name_short = pnv_helm_name description = pnv_helm_description discovery_dependency = inv_weight = 2.30 inv_grid_width = 2 inv_grid_height = 2 inv_grid_x = 10 inv_grid_y = 3 upgr_icon_x = 20 upgr_icon_y = 619 upgr_icon_width = 106 upgr_icon_height = 149 cost = 550 nightvision_sect = effector_nightvision_1 immunities_sect = sect_helm_pnv_immunities bones_koeff_protection = actor_helm_respirator telepatic_protection = 0.0 radiation_protection = 0.0 chemical_burn_protection = 0.0 power_loss = 0.0 upgrades = up_gr_firstab_helm_pnv installed_upgrades = up_firsta_helm_pnv upgrade_scheme = upgrade_scheme_helm_pnv [sect_helm_pnv_immunities] burn_immunity = 0.0 strike_immunity = 0.0 shock_immunity = 0.0 wound_immunity = 0.0 radiation_immunity = 0.0 telepatic_immunity = 0.0 chemical_burn_immunity = 0.0 explosion_immunity = 0.0 fire_wound_immunity = 0.0 Там же, в outfit.ltx подключил новую схему #include "outfit_upgrades\helm_pnv_up.ltx" После чего в misc\outfit_upgrades добавил соотв. файл со следующим содержанием: Спойлер [up_sect_firsta_helm_pnv] value = +1 nightvision_sect = effector_nightvision_1 [up_firsta_helm_pnv] scheme_index = 0, 0 known = 1 effects = section = up_sect_firsta_helm_pnv property = prop_night_vision precondition_functor = inventory_upgrades.precondition_functor_a precondition_parameter = a & b effect_functor = inventory_upgrades.effect_functor_a effect_parameter = something_here prereq_functor = inventory_upgrades.prereq_functor_a prereq_tooltip_functor = inventory_upgrades.prereq_tooltip_functor_a prereq_params = name = st_up_pnv_name description = st_up_pnv_descr icon = ui_inGame2_upgrade_helm_tactic_7 [up_gr_firstab_helm_pnv] elements = up_firsta_helm_pnv Предустановленного апгрейда в шлеме так и не появляется. Что я сделал не так/не сделал? Вопрос 2. Каким образом формируется изображение указателя на детекторе "Медведь"? Делаю новый детектор на его базе, и при нахождении артефакта, когда активируется табло, лево и право на нём оказываются перепутаны - арт слева, табло показывает вправо. Заранее спасибо. Изменено 25 октября, 2020 пользователем svi_042 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 25 октября, 2020 (изменено) Как отловить клик правкой кнопки мышки по карте в ПДА? Как выдать GUI-строку, в которой можно вводить символы с клавиатуры? Как запомнить, что было введено в GUI-строку? Пытаюсь сделать это скриптами. В движке пробовал, там очень сложно писать код, но зато можно отловить клик мышки. Я пытаюсь сделать добавление уникальных меток на карту с помощью клика мыши. Изменено 25 октября, 2020 пользователем Winzor Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 953 Опубликовано 25 октября, 2020 (изменено) 1 час назад, svi_042 сказал: Предустановленного апгрейда в шлеме так и не появляется. Что я сделал не так/не сделал? Не увидел в ваших пояснениях глобального разрешения апгрейда (файл inventory_upgrades.ltx) и добавление схемы в файл item_upgrades.ltx. 1 час назад, svi_042 сказал: Каким образом формируется изображение указателя на детекторе "Медведь"? Движек управляет ориентацией текстуры item_detector_2_segment. Вероятно косяк в ХУД-модели детектора. Winzor Все верно без движка вы не отследите ни клика мыши ни ввода текста, так что движек ковыряйте. Изменено 25 октября, 2020 пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
svi_042 285 Опубликовано 25 октября, 2020 7 часов назад, denis2000 сказал: Не увидел в ваших пояснениях глобального разрешения апгрейда (файл inventory_upgrades.ltx) и добавление схемы в файл item_upgrades.ltx. inventory_upgrades.ltx действительно проморгал, и всё заработало, впрочем, потом вспомнил про nightvision_sect в самом предмете, и надобность в апгрейдах отпала. Увидеть, что всё работало, не мог потому, что N по какой-то причине не включает ПНВ. Перебиндил на другую клавишу, и всё заработало. 7 часов назад, denis2000 сказал: Движек управляет ориентацией текстуры item_detector_2_segment. Вероятно косяк в ХУД-модели детектора. Какие конкретно параметры будут влиять на это? Координаты и ориентация кости? Положение вещи на худе? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 25 октября, 2020 (изменено) При вызове InitEditBox игра вылетает с таким логом: Спойлер [error]Expression : assertion failed [error]Function : CUIXmlInit::InitText [error]File : .\ui\UIXmlInit.cpp [error]Line : 315 [error]Description : pTmpFont Почему она может вылетать, если text font и даже font прописан в xml-секцию? <wrote_str_sn x="20" y="55" width="700" height="180"> <texture>ui_stroketextbox</texture> <font font="letterica18"/> <text font="letterica18" r="240" g="217" b="182"/> </wrote_str_sn> Спойлер Я пробовал использовать self.SpotName через self.str, которому присваивался font (функция SetFont). Вылетает с таким же логом. class "CUscM" (CUIScriptWnd) function CUscM:__init() super() self:InitControls() self:InitCallBacks() end function CUscM:__finalize() end function CUscM:InitControls() self:SetWndRect(Frect():set(0,0,1024,768)) local Xml = CScriptXmlInit() Xml:ParseFile("ui_uscmenu.xml") self.Background = Xml:InitStatic("background", self) self.BtnCreate = Xml:Init3tButton("background:btn_create_spot", self.Background) self:Register (self.BtnCreate, "OnBtnCreate") self.BtnQuit = Xml:Init3tButton("background:btn_quit", self.Background) self:Register (self.BtnQuit, "OnBtnQuit") self.SpotName = xml:InitEditBox("background:wrote_str_sn", self.Background) self:Register (self.SpotName, "wrote_string") -- handler:Register (self.SpotName, "wrote_str_sn") -- handler:AddCallback("wrote_str_sn", ui_events.EDIT_TEXT_COMMIT, self.OnEditString, self) self.SpotName:SetText("") self.bWide = utils.is_widescreen() end function CUscM:InitCallBacks() self:AddCallback("OnBtnCreate", ui_events.BUTTON_CLICKED, self.OnCreate, self) self:AddCallback("OnBtnQuit", ui_events.BUTTON_CLICKED, self.OnQuit, self) end function CUscM:OnCreate() local spot_name = self.SpotName:GetText() if spot_name ~= nil then xr_effects.enable_moving() level.map_add_object_spot_ser(esc_a2_surge_hide, "treasure_spot", spot_name) else OnQuit() get_hud():HidePdaMenu() news_manager.send_tip(db.actor, "st_us_dont_have_name", nil, "none_info_pda", nil, nil) end end function CUscM:OnQuit() self.SpotName:SetText("") xr_effects.enable_moving() self:HideDialog() end Изменено 25 октября, 2020 пользователем Winzor Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vlador 344 Опубликовано 25 октября, 2020 (изменено) Имеется одна странная проблема, которая возникла непонятно из-за чего и при этом непонятно, как её решить. Суть в том, что абсолютно все НПС почему-то идут только через одно место, при том что там нет граф-пойнтов (насколько я слышал, НПС передвигаются по граф-пойнтам). Сейчас приложу скриншоты в спойлеры, чтобы наглядно продемонстрировать ситуацию. Заранее спасибо. Спойлер Спойлер Даже если им нужно дойти, припустим, к мосту или встать на дороге над тоннелем, они всё равно идут правой стороной через скалы. Очень странно. Изменено 25 октября, 2020 пользователем Vlador Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 26 октября, 2020 3 часа назад, Vlador сказал: (насколько я слышал, НПС передвигаются по граф-пойнтам) Нет. НПС передвигаются по way путям. Если надо, чтобы сталкеры ходили по определённому маршруту, конкретнее прописывай им пути. Если это симуляционные НПС, значит, они обходят таким образом какую-то опасность или это оптимальный путь до точки для них. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Misery 433 Опубликовано 26 октября, 2020 Вроде правильно написал, а svarog_quest_descr при наличии нужных предметов не меняется на svarog_quest_descr_2 descr = svarog_quest_descr, {=actor_has_item(af_fuzz_kolobok)} {=actor_has_item(af_baloon)} {=actor_has_item(mutant_krovosos_jaw)4} {=actor_has_item(mutant_part_chimera_kogot)3} {=actor_has_item(mutant_part_pseudogigant_eye)2} svarog_quest_descr_2 Clear Sky: Gunslinger Addon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 953 Опубликовано 26 октября, 2020 (изменено) 13 часов назад, svi_042 сказал: Какие конкретно параметры будут влиять на это? Координаты и ориентация кости? Положение вещи на худе? Кость маловероятно - ее положение определяется анимацией. Ее то не меняли? Положение вещи не должно в принципе влиять. А вот ориентация текстуры индикатора - может, например в том случае если она разверута изнанкой и сделана двухсторонней. К тому же вы точно уверены, что индикация работает именно так, эксперимент проводился в "чистых" условиях? Winzor Как по мне конструкция <font font="letterica18"/> Явно лишняя. 8 часов назад, Vlador сказал: насколько я слышал, НПС передвигаются по граф-пойнтам Не совсем так, а точнее совсем не так. По графпоинтам перемещаются сквады "в офлайне". НПС "в онлайне" перемещаются по АИ-сетке путь же между двумя точками (исходной и точкой назначения) выбирается специальным алгоритмом, который называться патфайндер. Так вот этот алгоритм в сталкере иногда выдает довольно странные маршруты (именно поэтому в ЧН для сквадов были сделаны пути между смартами). Для начала проверьте АИ-сетку на локации на предмет проходимости (связанности нод сетки) на желаемом маршруте, если причина не в этом, то попробуйте наоборот сделать разрыв сетки на пути который вас не устраивает, если же это не приемлемо пробуйте маршрут сквада по смартам, которые расположите на пути желаемого следования. Последний вариант маршрут сквада по точкам (но для этого нужно менять скрипты управляющие сквадами). Изменено 26 октября, 2020 пользователем denis2000 1 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Misery 433 Опубликовано 26 октября, 2020 Что не так? Expression : !phrase_dialog->m_PhraseVector.empty() Function : CPhraseDialog::SayPhrase File : PhraseDialog.cpp Line : 146 Description : No available phrase to say, dialog[yan_stalker_sakharov_svarog_start] stack trace: 001B:005624AA xrCore.dll, xrDebug::fail() Clear Sky: Gunslinger Addon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 884 Опубликовано 26 октября, 2020 3 часа назад, Igor_Misery сказал: Expression : !phrase_dialog->m_PhraseVector.empty() Function : CPhraseDialog::SayPhrase File : PhraseDialog.cpp Line : 146 Description : No available phrase to say, dialog[yan_stalker_sakharov_svarog_start] В диалоге не работает следующая реплика, смотри, чтобы все условия были выполнены. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
svi_042 285 Опубликовано 26 октября, 2020 8 часов назад, denis2000 сказал: К тому же вы точно уверены, что индикация работает именно так, эксперимент проводился в "чистых" условиях? Не очень понял, что подразумевается под "чистыми" условиями. Выдал себе оригинальный детектор и переделку, оригинальный показывает направление должным образом, новый "путает" лево и право. Анимации меняли, и достаточно сильно. Поэтому и интересуюсь, каким образом отрисовывается картинка, чтоб понимать, на что грешить. Впрочем, это действительно может оказаться косяк текстурирования. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kalambur 25 Опубликовано 26 октября, 2020 Подскажите плз. Сделал копию комбеза, сменил в название две буквы, а худ шлема у него пропал, как прописать ему худ шлема ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ForaCam 165 Опубликовано 26 октября, 2020 Кто подскажет , есть шейдер , чтоб самосветился и одновременно дымил ? Что-то захотелось Прапору сигару вставить ... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 953 Опубликовано 27 октября, 2020 (изменено) 15 часов назад, svi_042 сказал: Выдал себе оригинальный детектор и переделку, оригинальный показывает направление должным образом, новый "путает" лево и право. Теперь понятно. Это эксперимент с "контрольной группой" и его результаты можно верно интерпритировать. 15 часов назад, svi_042 сказал: Анимации меняли, и достаточно сильно. В любом случае маловероятно, что анимации могли повлиять, более вероятно, что влияет сама 3D-модель. Kalambur Найдите механизм динамического худа (это скрипт) и дополните его настройки для верного отображения худа с новым комбезом. 8 часов назад, ForaCam сказал: Кто подскажет , есть шейдер , чтоб самосветился и одновременно дымил ? Это никак не шейдер - это партикл. А партикл движковым методом прикрепляется к суставу модели. Изменено 27 октября, 2020 пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
molodoy_chelovek 124 Опубликовано 27 октября, 2020 (изменено) 11 часов назад, ForaCam сказал: самосветился models/selflight 11 часов назад, ForaCam сказал: дымил По хорошему партиклом это надо делать. Но можно попробовать к модели привязать плоскость с текстурой дыма, и назначить ей отдельный материал, с шейдером который двигает UV-координаты вверх. Такой шейдер есть в ванильном ЗП, но его названия я не помню. Дополнено 14 минуты спустя upd Можно ж еще дым .seq анимацией попробовать сделать, как вариант Изменено 27 октября, 2020 пользователем molodoy_chelovek Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Misery 433 Опубликовано 27 октября, 2020 Как сделать, чтобы при прикосновении болта с поверхностью материала, то он будет издавать характерный материалу звук? Кидаю на лист железа - издается звук железа и т.д. Дополнено 9 минуты спустя Как называется файл с иконками аномалий и артефактов отображаемые в детекторе? Помню, находил этот файл, но не запомнил название. Clear Sky: Gunslinger Addon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kalambur 25 Опубликовано 27 октября, 2020 Подскажите плз. Как сделать чтобы Торговец который только обменивает, не принимал у меня на обмен всякие водку, воду и все напитки ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Misery 433 Опубликовано 27 октября, 2020 Только что, Kalambur сказал: Подскажите плз. Как сделать чтобы Торговец который только обменивает, не принимал у меня на обмен всякие водку, воду и все напитки ? Бартер. В твоём моде или в каком-нибудь другом? Дополнено 5 минуты спустя Кто шарит в скриптах, подскажите, как сделать систему энергии экзоскелета. Если что не для одного экзоскелета. Выведение полоски энергии на худ и зарядка батареями, невозможность ходить и уменьшение переносимого веса при разряженной батареи, и батареи разной ёмкости. Clear Sky: Gunslinger Addon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 27 октября, 2020 4 часа назад, Misery сказал: Бартер. В твоём моде или в каком-нибудь другом? Дополнено 5 минуты спустя Кто шарит в скриптах, подскажите, как сделать систему энергии экзоскелета. Если что не для одного экзоскелета. Выведение полоски энергии на худ и зарядка батареями, невозможность ходить и уменьшение переносимого веса при разряженной батареи, и батареи разной ёмкости. А своими ручками? Не так сложно, как мне кажется. Как передать в параметр секции текст (просто отредактировать параметр)? Нужно передать в параметр текст, который был введён в InitEditBox. Например: Есть секция . В ней есть параметр: key_to_unlock = 130002 И через скрипт нужно отредактировать значение key_to_unlock на 378. Как это сделать? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Kalambur 25 Опубликовано 28 октября, 2020 (изменено) Спойлер -- --------------------------------------------------------------------------------------------- -- Проверка на наличие у актора определённых секций предметов -- --------------------------------------------------------------------------------------------- function actor_have_section(sect, needed) if not needed then needed = 1 end local count = 0 local function itr(actor, item) if item:section() == sect then count = count + 1 end end db.actor:iterate_inventory(itr, db.actor) return count >= needed end -- --------------------------------------------------------------------------------------------- -- Проверка на наличие у актора нужной суммы денег -- --------------------------------------------------------------------------------------------- function act_have_money(count) return db.actor:money() >= count end -- --------------------------------------------------------------------------------------------- -- Прекодишн на наличие диалога у механов -- --------------------------------------------------------------------------------------------- function have_needs_outfits(first_speaker, second_speaker) return first_speaker:object("exo_outfit") ~= nil end -- --------------------------------------------------------------------------------------------- -- --------------------------------------------------------------------------------------------- -- Лесник, Рыжий лес -- --------------------------------------------------------------------------------------------- -- Функция проверки наличия ТБ-1 в инвентаре ГГ function have_exo_outfit_for_red_forester_mechanic(first_speaker, second_speaker) return actor_have_section('exo_outfit') end function have_exo_outfit_for_red_forester_mechanic(first_speaker, second_speaker) return actor_have_section('exobackpack') end function have_exo_outfit_for_red_forester_mechanic(first_speaker, second_speaker) local item_sections = {"exo_outfit"} local needed = 1 local count = 0 local item_section local function calc(temp, item) if (item:section() == item_section and item:condition() >= 0.99) then count = count + 1 end end for k,v in pairs(item_sections) do item_section = v get_story_object("actor"):iterate_inventory(calc, actor) end return count >= needed end -- Функция изъятия ТБ-1 у ГГ function sell_exo_outfit_for_red_forester_mechanic(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "exo_outfit") dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "exobackpack") end -- Функция выдачи ТБ-1 в камуфляже Монолита function give_reward_from_red_forester_mechanic_for_exo_outfit(first_speaker, second_speaker) dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "exotb_outfit") end подскажите пожалуйста, как поправить чтобы проверяло на наличие двух предметов одновременно, ибо сейчас есть exo_outfit и могу поменять на новый предмет и если есть exo_outfit и exobackpack тоже меняет, а если есть только exobackpack то не меняет, нужно чтобы меняло только когда оба придмета есть ! Изменено 28 октября, 2020 пользователем Kalambur Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты