Overf1rst 1 522 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 10 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 798 Опубликовано 26 марта В 22.03.2025 в 11:48, denis2000 сказал: Ну так я писал метод - squad:register_member(npc_id), только объект squad уже другой, можно новый создать или любой существующий. Возможно я сейчас очень туплю, но я вообще не понимаю, как создать пустой сквад-объект без НПС, чтобы потом чела туда зарегать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RomaL23 3 Опубликовано 27 марта denis2000 как называется файл с травой, level.ai? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
macron 1 118 Опубликовано 27 марта 20 минут назад, RomaL23 сказал: как называется файл с травой https://ap-pro.ru/forums/topic/92-cop-modostroy-voprosnica/?do=findComment&comment=442088 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 041 Опубликовано 27 марта Mawrak Собственно спавн осуществляется всего одной командой alife():create() (двумя если считать патроны): squad = alife():create(squad_name, spawn_position, spawn_level_vertex, spawn_game_vertex) Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 798 Опубликовано 27 марта denis2000 так оно все равно требует готовый сквад, команда работает по секции. Мне же нужен пустой, чтобы туда НПС добавить. Дополнено 4 минуты спустя Или мне достаточно просто указать npc_in_squad = 0? Я попробую... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 041 Опубликовано 27 марта Mawrak Достаточно: [squad_id]:online_offline_group faction = ... 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
oyunsky 0 Опубликовано 30 марта (изменено) Используемый движок "OpenXRay 16". Столкнулся с такой проблемой, хочу добавить новую вкладку в КПК (например, "Карта местности", "Статистика" и "История сообщений") , нашел файл, который отвечает за прорисовку вкладок (не контент вкладок, а только саму кнопку) - "configs/ui/pda.xml". Спойлер <tab x="338" y="57" width="338" height="27"> <button x="1" y="0" width="137" height="27" id="eptTasks" hint="pda_btn_quests_hint" frame_mode="0"> <text align="c" vert_align="c" x="0" y="0" width="157" height="27" font="letterica16">pda_btn_quests</text> <texture>ui_inGame2_pda_button</texture> <text_color> <t r="255" g="255" b="255"/> <d r="255" g="255" b="255"/> <e r="200" g="200" b="200"/> <h r="170" g="170" b="170"/> </text_color> </button> <button x="118" y="0" width="137" height="27" id="eptRanking" hint="pda_btn_ranking_hint" frame_mode="0"> <text align="c" vert_align="c" x="0" y="0" font="letterica16">pda_btn_ranking</text> <texture>ui_inGame2_pda_button</texture> <text_color> <t r="255" g="255" b="255"/> <d r="255" g="255" b="255"/> <e r="200" g="200" b="200"/> <h r="170" g="170" b="170"/> </text_color> </button> <button x="236" y="0" width="137" height="27" id="eptLogs" hint="pda_btn_logs_hint" frame_mode="0"> <text align="c" vert_align="c" x="0" y="0" font="letterica16">pda_btn_logs</text> <texture>ui_inGame2_pda_button</texture> <text_color> <t r="255" g="255" b="255"/> <d r="255" g="255" b="255"/> <e r="200" g="200" b="200"/> <h r="170" g="170" b="170"/> </text_color> </button> </tab> Добавил новую вкладку, но файл, который прорисовывает контент, нигде нет. Попробовал поискать, где находяться вызовы для отрисовки вкладок, нашел их в исходнике движка (UIPdaWnd.cpp). Они жестко захардкожены. Не хочется пока лезть в дебри, хочу поискать иные решения. Спойлер Как можно отрисовать контент новой вкладки КПК, взаимодействуя только с "gamedata"? Изменено 30 марта пользователем oyunsky Добавил демонстрацию вкладок Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
N42 774 Опубликовано 31 марта (изменено) oyunsky глянь, привязана ли функция pda.set_active_subdialog к списку вкладок, прописанных в движке, или сделали возможность их задавать без правок (поиском по исходникам найдешь). Вроде как раньше в ней можно было скриптом отрисовывать только со списка, но может быть поменяли, не следил особо Изменено 31 марта пользователем N42 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RomaL23 3 Опубликовано 4 апреля Подскажите где взять объекты скелета для СДК? Есть только простой лежачий скелет, нужен сидячий и по возможности в других позах. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 041 Опубликовано 4 апреля RomaL23 Ну, во первых, для таких вопросов есть специальная тема. Во вторых, в интернете полно баз бесплатных ассетов для разных задач, находятся в пол клика. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RomaL23 3 Опубликовано 4 апреля denis2000 каких ассетов и где эта отдельная тема. Я пытался найти но не могу. Как вы себе это представляете. "Как объектов скелета для СДК 0.7"? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 041 Опубликовано 4 апреля (изменено) 2 часа назад, RomaL23 сказал: каких ассетов Самых разных: бесплатных и нет, с текстурами и без, в разном качестве и формате. 2 часа назад, RomaL23 сказал: где эта отдельная тема Ссылка в моем посте, смотрите внимательнее. Оставьте запрос там и ждите, может у кого и найдется... 2 часа назад, RomaL23 сказал: Я пытался найти но не могу. Как вы себе это представляете. Правильно стройте запрос, например "Pack 3D models". Я когда делал сталкера-скелета, брал модель отсюда. Естественно в паках модели для 3D редакторов сразу готовитесь работать в таких программах! Если не найдете нужную берете из игры открываете в 3D редакторе и правите как душе угодно. Изменено 4 апреля пользователем denis2000 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Boomer 610 Опубликовано 5 апреля Хотел бы сделать, чтобы определенный inventory_box открывался только по заданному паролю. В одном моде увидел подобную логику и решил написать такую же себе: Спойлер [logic] active = ph_code@lock [ph_code@lock] tips = esc_secret_box code = 1111 on_code = ph_idle@open В итоге, ящик запрашивает пароль, но, когда я его ввожу, ничего не происходит, логика не переходит в следующую секцию и, соответственно, ящик не открывается, продолжая запрашивать пароль. В чем проблема может быть? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Pavel2000 72 Опубликовано 5 апреля Boomer В 22.01.2024 в 19:47, makdm сказал: В файле ph_code.script после строки function codepad:update(delta) Добавь строку if xr_logic.try_switch_to_another_section(self.object, self.st, db.actor) then return Должно получиться так: Функция (Скрыть контент) function codepad:update(delta) if xr_logic.try_switch_to_another_section(self.object, self.st, db.actor) then return end end Дальше: После строки if self.st.on_code then строку xr_logic.pick_section_from_condlist(db.actor, self.object, self.st.on_code.condlist) Меняете на local condlist = xr_logic.pick_section_from_condlist( db.actor, self.object, self.st.on_code.condlist ) xr_logic.switch_to_section( self.object, self.st.ini, condlist ) После этих манипуляций, переключения с секции на секцию в логике ящика в схеме ph_code должны работать правильно. 1 1 «Если долго мучиться, что-нибудь получится»Охотник за артефактами Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Hrust 626 Опубликовано 5 апреля Ящик с паролем это несерьёзно, возьмите лашные сейфы. Дополнено 8 минуты спустя 20 часов назад, denis2000 сказал: смотрите внимательнее Поэтому-то и стоит делать подкрашивание ссылок, я в оранжевый крашу, а то у многих проблемы с тонами белого, хе. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MortyRodrigez 0 Опубликовано 5 апреля Expression : fatal error Function : CInifile::r_string File : C:\Users\User\Desktop\ixray-1.6-stcop-r1.1.1\src\xrCore\Xr_ini.cpp Line : 591 Description : <no expression> Arguments : Can't find variable immunities_sect in [ammo_11.43x23_fmj] stack tra Ошибка при запуске новой игры Мод- Билет в Один конец , помогите решить. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Крим 889 Опубликовано 8 апреля (изменено) Здравствуйте. Есть вопрос: существует в игре ли проверка на наличие артефакта в слоте? Изменено 8 апреля пользователем Крим Бусти Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 041 Опубликовано 8 апреля Крим Такой механизм был сделан в моде Связь Времен (скрипт belt_items.script). 1 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Dviynyk 69 Опубликовано 8 апреля @MortyRodrigez зайди в gamedata\configs\weapons\weapons.ltx и попробуй в секции твоих патронов [ammo_11.43x23_fmj] всё поменять на этот код и запустить игру Спойлер ;;;;_EroZoneR_edition;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [ammo_11.43x23_fmj]:ammo_base GroupControlSection = spawn_group discovery_dependency = $spawn = "weapons\ammo\ammo_11.43x23_fmj" ; option for Level Editor class = AMMO cform = skeleton visual = dynamics\weapons\wpn_ammo\ammo_1143x23_fmj.ogf description = ammo-11.43x23-fmj_descr $prefetch = 64 cost = 250 box_size = 50 ;20 inv_name = ammo-11.43x23-fmj inv_name_short = ammo-11.43x23-fmj_s inv_weight = .3 inv_grid_width = 2;1 inv_grid_height = 1 inv_grid_x = 9 inv_grid_y = 12 k_dist = 1 k_disp = 1 k_hit = 1 k_impulse = 1 k_pierce = 0.1 k_ap = 0.1 impair = 1 buck_shot = 1 tracer = off wm_size = 0.05 если что-то не получается, можешь мне отписать в лс или в телеграм @pomrgite_mne Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Deputy Sheriff 5 Опубликовано Четверг в 13:34 Почему нпс с логикой guard не хотят реагировать на новое оружие? Куда копать нужно? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 798 Опубликовано Понедельник в 20:37 (изменено) В 27.03.2025 в 19:31, denis2000 сказал: Mawrak Достаточно: [squad_id]:online_offline_group faction = ... Приветствую еще раз, возник очень сильный затуп. Напомню, что делаю систему, где рандомный сталкер может стать фолловером. Сейчас логика системы такая - сталкер отсоединяется от сквада (чтобы симуляция с ним ничего странного не делала) и ему назначается кастомная секция следования. Потом по новому диалогу он должен снова становиться симуляционным, прицепляется к новому скваду, и дальше должен ходить уже сам. Но вот на этом этапе все ломается. Во-первых, я ловил такой вылет: 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 : ...all of pripyat\gamedata\scripts\xr_reach_task.script:181: attempt to index local 'commander' (a nil value) stack trace: При том в самом этом скрипте xr_reach_task строчкой ранее есть проверка на наличие commander, и она проходит каким-то образом... local commander = level.object_by_id(self.npc_list[self.commander_id].soldier) if commander == nil then abort("commander is nil!!!") end local dir = commander:direction() --это строчка 181, которая вылетает Также было так, что мой сталкер, после ухода в оффлайн-симуляцию, просто.... исчез? То есть он тупо испарился из игры, я ставил на него метку через другое задание, и ну, она исчезла. Это произошло не сразу, он еще ходил-ходил и пропал на глазах с карты. А задание не было провалено, хотя у меня есть скрипт на апдейте на проверку что сталкер alive() и что он существует, которая бы завершила. То есть я вообще не понял что произошло, возможно вообще скрипты слетели. Как я понимаю, проблема в том, что после того, как я этого сталкера мучал скриптами, ему не возвращается нормальная логика для симуляции. Но я не понимаю, что нужно для этого сделать. Сейчас сделано так - по первому диалогу происходит следующее: Спойлер local ltx_name = "scripts\\lwcop_companion.ltx" local ltx = ini_file(ltx_name) local npc = who_is_npc(first_speaker, second_speaker) local id = npc:id() local sim = alife() local se_npc = sim:object(id) local unreg_id = se_npc and se_npc.m_smart_terrain_id if (unreg_id and unreg_id ~= 65535) then local unreg = sim:object(unreg_id) if (unreg) then unreg:unregister_npc(se_npc) end end xr_logic.configure_schemes(npc, ltx, ltx_name, modules.stype_stalker, "logic", "") local section = xr_logic.determine_section_to_activate(npc, ltx, "logic", db.actor) xr_logic.activate_by_section(npc, ltx, section, "", false) local squad = get_object_squad(npc) squad:unregister_member(id) sim:set_switch_online (npc.id, true) sim:set_switch_offline (npc.id, false) То есть я снимаю сталкера с работы, назначаю ему свою секцию логики через ltx файл, потом отсоединяю от сквада и заставляю быть всегда онлайн (для простоты работы с логикой companion). А во втором диалоге, для возвращения сталкера в нормальное состояние, я спавню новый сквад как мы обсуждали и прикрепляю к нему сталкера через squad_2:register_member(id), также делают sim:set_switch_offline (npc.id, true) обратно: Спойлер local squad_2 = alife():create("simulation_lwcop",db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) local id = npc:id() local sim = alife() sim:set_switch_online (npc.id, true) sim:set_switch_offline (npc.id, true) squad_2:register_member(id) И при этом логика у него выводится просто в nil по инфопоршню уже в самой схеме из ltx. И как бы сталкер уходит, и потом он явно перемещается рывками, то есть в оффлайне, как я понимаю. Но из-за глюков я думаю вывод, что вместо этого нужно сделать что-то еще, чтобы дальше он работал, я только не понимаю, что. Изменено Понедельник в 20:42 пользователем Mawrak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Yara 126 Опубликовано Понедельник в 21:53 Mawrak В помощь xr_effects.script, function create_squad и create_squad_member 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mawrak 798 Опубликовано Понедельник в 22:19 Yara черт ногу сломит в этих функциях, если честно, но я попробую разобраться. Только не очень понятно, какие там смарты указывать, так как в момент диалога смартов нет - челик бежит за ГГ по всей локации и идея в том, что дальше его сама симуляция должна подхватить и выбрать на какой смарт идти. А все эти функции кажется хотят чтобы смарты были изначально. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Yara 126 Опубликовано Понедельник в 23:23 Mawrak Ещё есть в sim_board.script, function sim_board:assign_squad_to_smart if smart_id == nil then squad:assign_smart(nil) return end https://sites.google.com/view/xray-sdk-0-4-smg Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 1 041 Опубликовано вчера в 05:08 8 часов назад, Mawrak сказал: Напомню, что делаю систему, где рандомный сталкер может стать фолловером. Так если НПС должен следовать за ГГ, зачем ему назначать сквад? В SGM есть фича с напарниками, в Пути во мгле тоже есть и там и там они вполне могут работать с НПС вне сквада. Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты