Overf1rst 1 503 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Зов Припяти. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 19 9 1 1 2 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 29 июня, 2022 (изменено) del Изменено 29 июня, 2022 пользователем liner Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Борей 102 Опубликовано 29 июня, 2022 Прошу помощи от шарящих людей. Нужен небольшой мод для ЗП, смысл такой, нужно перенести 1 набор инструментов для калибровки из припяти в пузырь с Таченко, что бы он выпадал вместе с трупами долговцев. А второй на Затон, в ящик с газом на мосту, если возможно, если нет то в логово кровососов, где они спят. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ziken 6 Опубликовано 30 июня, 2022 Подскажите пожалуйста. В моде Dead Air реализована система рюкзаков и максимальный вес учитывается только из файла actor.ltx. В инвентаре тоже он указан и при превышении веса персонаж встаёт как вкопанный. В каком файле это может быть изменено? Хочу убрать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 30 июня, 2022 ziken Ошиблись темой. Но подскажу, наверное нужно искать секцию рюкзака и увеличить его добавляемый переносимый вес. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ziken 6 Опубликовано 30 июня, 2022 1 минуту назад, liner сказал: ziken Ошиблись темой. Но подскажу, наверное нужно искать секцию рюкзака и увеличить его добавляемый переносимый вес. Суть не в максимальном переносимом весе, а в его превышении. В CoP при превышении веса в инвентаре персонаж мог ходить. Было два параметра - критический вес и максимальный. Тут же только один параметр. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 30 июня, 2022 ziken В system.ltx найди [inventory] max_weight = 50 max_ruck = 56 Измени max_ruck на нужное значение. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ziken 6 Опубликовано 30 июня, 2022 (изменено) liner они не работают. По умолчанию там написано max_weight = 5 max_ruck = 92 Изменено 30 июня, 2022 пользователем ziken Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 30 июня, 2022 ziken ну тогда ищи знающих людей, которые разбираются в скелете Dead Air. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
4udik 1 909 Опубликовано 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 883 Опубликовано 30 июня, 2022 ziken в DA просто более реалистичная система выносливости: - в оригинале критический вес 50 кг это и есть max_weight , свыше которого считалось, что игрок сильно перегружен) и там шёл повышенный расход энергии overweight, то бишь 50 кг бегаешь как сайгак, а 51 кг - уже выдыхаешься за 3 секунды и 1 прыжок) параметр max_walk_weight из актора, это предел после которого игрок вообще не мог ходить. В DA все более плавно вес после которого идёт повышенный расход он типа 5 кг без комбезов и рюкзака, но по сути, он не важен там просто с каждым кг лишним пропорционально увеличивается расход энергии в отличии от оригинала, где этот лимит сразу 50, зато вес max_walk_weight который у тебя в акторе можно поднять комбезами и рюкзаками под сотню кг) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ziken 6 Опубликовано 30 июня, 2022 CiberZold это было бы более реалистично, если броня и рюкзаки не давали дополнительный вес или не ломались. Но они ломаются, что уменьшает максимальный вес и персонаж перестаёт двигаться, что в реальной жизни не происходит. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Викт 151 Опубликовано 30 июня, 2022 11 минут назад, CiberZold сказал: система выносливости Откройте файл: bind_stalker.script, найдите в файле строчки: function actor_binder:update(delta) object_binder.update(self, delta) и сразу под ними вставьте вот это: db.actor.power = 1 Сохраните изменения и запускайте игру. Теперь ГГ никогда не устанет, так как сила всегда будет максимальной (100%) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CiberZold 883 Опубликовано 30 июня, 2022 (изменено) ziken ну это можно обыграть как комбез с разгрузкой порвался/экза вышли из строя, рюкзак порвался и ты не можешь столько же веса переносить как раньше, вот и надо чинить, логичнее тут комбезы более прочными делать или урон от аномалий меньше, в Мизери/дед эйре он очень большой особенно огненных) а система выносливости в Мизери как раз близка к идеалу , как для игры) Изменено 30 июня, 2022 пользователем CiberZold Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 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 428 Опубликовано 3 июля, 2022 1 минуту назад, Сергей Шубин сказал: Можно ли как то задать время нахождения НПС на точках walk. В look вэйпоинте нужно прописать: "wp00|t=время_ожидания_в_милисекундах" 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Сергей Шубин 21 Опубликовано 3 июля, 2022 4 минуты назад, liner сказал: В look вэйпоинте нужно прописать: "wp00|t=время_ожидания_в_милисекундах" Там уже прописано время отыгрывания разных анимаций. Посмотреть в бинокль, почесать пятую точку, постоять с оружием, посидеть. Два параметра времени? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 3 июля, 2022 (изменено) Сергей Шубин вторую категорически нельзя. Задавайте этот параметр в той точке, где это Вам нужно. Изменено 3 июля, 2022 пользователем liner Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 3 июля, 2022 liner Теоретически. В скрипте smart_covers_combat.script есть параметр precondition_functor - эта функция которая должна вернуть true для выполнения соответствующего действия. 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 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 121 Опубликовано 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 квестов, то рестриктор переключается на следующую секцию. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
denis2000 978 Опубликовано 4 июля, 2022 (изменено) 34 минуты назад, Сергей Шубин сказал: Как составить функцию - прекондишион для диалога? Должна возвращать true, если ГГ убил, например, 20 монстров. function actor_killed_over_20_monsters(first_speaker, second_speaker) return xr_statistic.actor_statistic.killed_monsters > 19 end 34 минуты назад, Сергей Шубин сказал: Как составить функцию для xr_conditions в общем виде? Вызывается из логики рестриктора. Если ГГ выполнил, допустим, 5 квестов, то рестриктор переключается на следующую секцию function actor_completed_quests(actor, npc, p) if p[1] == nil then return false end return xr_statistic.actor_statistic.completed_quests >= tonumber(p[1]) end [sr_idle@1] on_info = {=actor_completed_quests(5)} sr_idle@2 [sr_idle@2] Изменено 4 июля, 2022 пользователем denis2000 1 Путь во мгле. Связь времен."Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ian98 298 Опубликовано 4 июля, 2022 подскажите функцию проверку отношения нпс к гг? Нужно на колбек смерти повесить, или бесполезно туда вешать и даже ваншотом друзья при смерти становятся врагами? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Arkada 428 Опубликовано 4 июля, 2022 (изменено) ian98 game_relations.get_npcs_relation(npc,db.actor) <= -1000 ---ВРАГ game_relations.get_npcs_relation(npc,db.actor) >= 1000 --ДРУГ Изменено 4 июля, 2022 пользователем liner 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты