Overf1rst 1 419 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 16 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Викт 146 Опубликовано 28 июня, 2022 1 час назад, Boomer сказал: Как сделать, чтобы из деревянного ящика, либо кейса падал лут при разбивании? По пути .../gamedata/configs/misc надо править файл ph_box_items_by_communities в сторону увеличения вероятности выпадения лута, но только те параметры, что уже имеются в файле (те, которые отличны от нуля), иначе возможен вылет Правка будет работать при "Новой Игре" или по крайней мере на тех локациях, которые еще не посещал ГГ в существующей игре 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Падальщик 80 Опубликовано 29 июня, 2022 (изменено) Здоров всем, возникла проблема со скриптовым включением\выключением звука в игре: get_console():execute("snd_volume_music "..tostring(_G.mus_vol)) get_console():execute("snd_volume_eff "..tostring(_G.amb_vol)) _G.amb_vol = 0 _G.mus_vol = 0 С помощью этих строчек можно выключить звук во время какой-либо сцены, я добавил их, чтобы убрать звуки после смерти Главного Героя от первого лица. Проблема в том, что после перезагрузки звук по прежнему выключен, и приходится его включать вручную через опции в меню. Вообще, данный способ используется ПЫСами для выключения звуков на время сна и действия анабиотика, но строк для возвращения звуков на те, которые выставил игрок, я не нашёл. В оригинале, разумеется, звуки восстанавливаются. Может кто знает, как это решается? Изменено 29 июня, 2022 пользователем Падальщик Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Neptun 828 Опубликовано 29 июня, 2022 1 час назад, Падальщик сказал: С помощью этих строчек можно выключить звук во время какой-либо сцены, я добавил их, чтобы убрать звуки после смерти Главного Героя от первого лица. Не совсем так. Перед тем, как перейти в режим сна, происходит запись уровня громкости музыки и окр. звуков: _G.mus_vol = get_console():get_float("snd_volume_music") _G.amb_vol = get_console():get_float("snd_volume_eff") После чего звук выключается: get_console():execute("snd_volume_music 0") get_console():execute("snd_volume_eff 0") Когда ГГ просыпается, то происходит восстановление громкости путём ранее сделанной записи: get_console():execute("snd_volume_music "..tostring(_G.mus_vol)) get_console():execute("snd_volume_eff "..tostring(_G.amb_vol)) В скрипте _g происходит та самая запись переменной громкости, чтобы её можно было записывать и читать из любого скрипта, это: mus_vol и amb_vol 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 421 Опубликовано 29 июня, 2022 (изменено) del Изменено 29 июня, 2022 пользователем liner Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Борей 57 Опубликовано 29 июня, 2022 Прошу помощи от шарящих людей. Нужен небольшой мод для ЗП, смысл такой, нужно перенести 1 набор инструментов для калибровки из припяти в пузырь с Таченко, что бы он выпадал вместе с трупами долговцев. А второй на Затон, в ящик с газом на мосту, если возможно, если нет то в логово кровососов, где они спят. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ziken 5 Опубликовано 30 июня, 2022 Подскажите пожалуйста. В моде Dead Air реализована система рюкзаков и максимальный вес учитывается только из файла actor.ltx. В инвентаре тоже он указан и при превышении веса персонаж встаёт как вкопанный. В каком файле это может быть изменено? Хочу убрать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 421 Опубликовано 30 июня, 2022 ziken Ошиблись темой. Но подскажу, наверное нужно искать секцию рюкзака и увеличить его добавляемый переносимый вес. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ziken 5 Опубликовано 30 июня, 2022 1 минуту назад, liner сказал: ziken Ошиблись темой. Но подскажу, наверное нужно искать секцию рюкзака и увеличить его добавляемый переносимый вес. Суть не в максимальном переносимом весе, а в его превышении. В CoP при превышении веса в инвентаре персонаж мог ходить. Было два параметра - критический вес и максимальный. Тут же только один параметр. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 421 Опубликовано 30 июня, 2022 ziken В system.ltx найди [inventory] max_weight = 50 max_ruck = 56 Измени max_ruck на нужное значение. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ziken 5 Опубликовано 30 июня, 2022 (изменено) liner они не работают. По умолчанию там написано max_weight = 5 max_ruck = 92 Изменено 30 июня, 2022 пользователем ziken Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 421 Опубликовано 30 июня, 2022 ziken ну тогда ищи знающих людей, которые разбираются в скелете Dead Air. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
4udik 1 875 Опубликовано 30 июня, 2022 (изменено) 1 час назад, ziken сказал: Подскажите пожалуйста. В моде Dead Air реализована система рюкзаков и максимальный вес учитывается только из файла actor.ltx. В инвентаре тоже он указан и при превышении веса персонаж встаёт как вкопанный. В каком файле это может быть изменено? Хочу убрать. Про DeadAir не знаю, не ковырял этот мод. Но по аналогии с другими модами, вероятно, есть скрипт, где этот параметр явно указан. gamedata\scripts\ Ищите в каком-либо скрипте строчку MaxWeight или что-то вроде того. Спойлер function Analise() local TotalWeight = GetInvWeight() local armor = db.actor:item_in_slot(6) local temp local MaxWeight=190 if armor then for i=1, table.getn(tbl_armor) do temp = tbl_armor if armor:section() == temp.sect then MaxWeight = MaxWeight + temp.add_w end end if TotalWeight>MaxWeight then if GG_Move>1 then temp = db.actor.power db.actor.power= -temp+0.1 if not has_alife_info("boryan_gluki_1") then db.actor:give_info_portion("boryan_gluki_1") local snd_obj = xr_sound.get_safe_sound_object([[ambient\gluki\actor_habar]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) end end else if has_alife_info("boryan_gluki_1") then db.actor:disable_info_portion("boryan_gluki_1") end end end -- Перезапуск скан-таймера if not amk.has_g_timer("scan_timer") then set_scan_timer() end end Изменено 30 июня, 2022 пользователем 4udik Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CiberZold 554 Опубликовано 30 июня, 2022 ziken в DA просто более реалистичная система выносливости: - в оригинале критический вес 50 кг это и есть max_weight , свыше которого считалось, что игрок сильно перегружен) и там шёл повышенный расход энергии overweight, то бишь 50 кг бегаешь как сайгак, а 51 кг - уже выдыхаешься за 3 секунды и 1 прыжок) параметр max_walk_weight из актора, это предел после которого игрок вообще не мог ходить. В DA все более плавно вес после которого идёт повышенный расход он типа 5 кг без комбезов и рюкзака, но по сути, он не важен там просто с каждым кг лишним пропорционально увеличивается расход энергии в отличии от оригинала, где этот лимит сразу 50, зато вес max_walk_weight который у тебя в акторе можно поднять комбезами и рюкзаками под сотню кг) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ziken 5 Опубликовано 30 июня, 2022 CiberZold это было бы более реалистично, если броня и рюкзаки не давали дополнительный вес или не ломались. Но они ломаются, что уменьшает максимальный вес и персонаж перестаёт двигаться, что в реальной жизни не происходит. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Викт 146 Опубликовано 30 июня, 2022 11 минут назад, CiberZold сказал: система выносливости Откройте файл: bind_stalker.script, найдите в файле строчки: function actor_binder:update(delta) object_binder.update(self, delta) и сразу под ними вставьте вот это: db.actor.power = 1 Сохраните изменения и запускайте игру. Теперь ГГ никогда не устанет, так как сила всегда будет максимальной (100%) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CiberZold 554 Опубликовано 30 июня, 2022 (изменено) ziken ну это можно обыграть как комбез с разгрузкой порвался/экза вышли из строя, рюкзак порвался и ты не можешь столько же веса переносить как раньше, вот и надо чинить, логичнее тут комбезы более прочными делать или урон от аномалий меньше, в Мизери/дед эйре он очень большой особенно огненных) а система выносливости в Мизери как раз близка к идеалу , как для игры) Изменено 30 июня, 2022 пользователем CiberZold Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 421 Опубликовано 3 июля, 2022 Как сделать так, чтобы симуляционные НПС не заходили в боевые смарткаверы, если у них нет нужного оружия? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Шубин 21 Опубликовано 3 июля, 2022 Добрый день. Написал для НПС такую работу. Спойлер [esc_b1_base_5_look] points = p0,p1,p2,p3,p4,p5 p0:name = wp00|a=guard|p=30|t=60000 p0:flags = 0x1 p0:position = -158.053024291992,-30.1030006408691,-358.866790771484 p0:game_vertex_id = 0 p0:level_vertex_id = 92731 p1:name = wp00|a=guard_chasovoy|p=30|t=30000 p1:flags = 0x1 p1:position = -157.989273071289,-30.116340637207,-358.479614257813 p1:game_vertex_id = 0 p1:level_vertex_id = 92732 p2:name = wp00|a=sit_ass|p=30|t=60000 p2:flags = 0x1 p2:position = -157.925903320313,-30.0917892456055,-359.192169189453 p2:game_vertex_id = 0 p2:level_vertex_id = 92731 p3:name = wp01|a=binocular|p=30|t=60000 p3:flags = 0x2 p3:position = -152.068588256836,-30.3470077514648,-334.514709472656 p3:game_vertex_id = 0 p3:level_vertex_id = 100308 p4:name = wp01|a=guard|p=30|t=60000 p4:flags = 0x2 p4:position = -152.18440246582,-30.3574905395508,-335.005310058594 p4:game_vertex_id = 0 p4:level_vertex_id = 100307 p5:name = wp01|a=guard_chasovoy|p=30|t=30000 p5:flags = 0x2 p5:position = -151.915328979492,-30.3648796081543,-335.328765869141 p5:game_vertex_id = 0 p5:level_vertex_id = 100307 [esc_b1_base_5_walk] points = p0,p1 p0:name = wp00 p0:flags = 0x1 p0:position = -147.962142944336,-30.0995025634766,-358.659576416016 p0:game_vertex_id = 0 p0:level_vertex_id = 105118 p0:links = p1(1) p1:name = wp01 p1:flags = 0x2 p1:position = -152.133804321289,-30.516227722168,-348.400451660156 p1:game_vertex_id = 0 p1:level_vertex_id = 100292 p1:links = p0(1) Он её выполняет. Можно ли как то задать время нахождения НПС на точках walk. Или это можно только сделать в логике? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 421 Опубликовано 3 июля, 2022 1 минуту назад, Сергей Шубин сказал: Можно ли как то задать время нахождения НПС на точках walk. В look вэйпоинте нужно прописать: "wp00|t=время_ожидания_в_милисекундах" 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Шубин 21 Опубликовано 3 июля, 2022 4 минуты назад, liner сказал: В look вэйпоинте нужно прописать: "wp00|t=время_ожидания_в_милисекундах" Там уже прописано время отыгрывания разных анимаций. Посмотреть в бинокль, почесать пятую точку, постоять с оружием, посидеть. Два параметра времени? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 421 Опубликовано 3 июля, 2022 (изменено) Сергей Шубин вторую категорически нельзя. Задавайте этот параметр в той точке, где это Вам нужно. Изменено 3 июля, 2022 пользователем liner Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 757 Опубликовано 3 июля, 2022 liner Теоретически. В скрипте smart_covers_combat.script есть параметр precondition_functor - эта функция которая должна вернуть true для выполнения соответствующего действия. 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 421 Опубликовано 3 июля, 2022 (изменено) denis2000 не, через такой способ не вариант. Я нашёл другой выход, теоретически: Файл state_mgr_smartcover.script Класс eva_state_mgr_smartcover_need, метод evaluate Вписываем перед строчкой local state_descr = db.storage[self.object:id()]["smartcover"] Вот такой код: --ЗА ФУНКЦИЮ ВЫНОСИМ ЭТУ ТАБЛИЦУ --cslid допустимых пушек в смарткавере local ws = { [clsid.wpn_vintorez_s] = true, [clsid.wpn_ak74_s] = true, [clsid.wpn_lr300_s] = true, [clsid.wpn_svd_s] = true, [clsid.wpn_svu_s] = true, [clsid.wpn_val_s] = true, [clsid.wpn_groza_s] = true } --liner: FIX WEAPON SMARTCOVER BUG if not self.st.npc then printf("CANNOT ENTER TO SMARTCOVER BECAUSE NPC NIL!!!") return false end do local ac = self.st.npc:active_item() if not ac or not ws[ac:clsid()] then printf("CANNOT ENTER TO SMARTCOVER BECAUSE WEAPON!!!") return false end end P.S.: ПРОВЕРИЛ, У МЕНЯ НЕ РАБОТАЕТ. Изменено 3 июля, 2022 пользователем liner 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Yara 70 Опубликовано 3 июля, 2022 liner , пара вариантов: \scripts\xr_smartcover.script function action_smartcover_activity:target_selector(obj) -- isWeapon in _g.script local w = isWeapon(obj:best_weapon()) if not w then return end ... или function add_to_binder(npc, ini, scheme, section, storage) ... new_action:add_precondition(world_property(properties["use_smartcover_in_combat"], true)) -- новое условие new_action:add_precondition(world_property(stalker_ids.property_item_can_kill, true)) -- другие варианты: -- new_action:add_precondition (world_property(stalker_ids.property_ready_to_kill, true)) -- new_action:add_precondition (world_property(stalker_ids.property_found_item_to_kill, true)) -- new_action:add_precondition (world_property(stalker_ids.property_item_to_kill, true)) 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Шубин 21 Опубликовано 4 июля, 2022 Доброе утро. Возник вопрос. В файле xr_statistic обрабатываются переменные статистики ГГ. Как использовать эти значения в игровом процессе. 1. Как составить функцию - прекондишион для диалога? Должна возвращать true, если ГГ убил, например, 20 монстров. 2. Как составить функцию для xr_conditions в общем виде? Вызывается из логики рестриктора. Если ГГ выполнил, допустим, 5 квестов, то рестриктор переключается на следующую секцию. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты