Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
Спасибо, так понятнее, можно смело накатывать поверх с заменой без последствий. Просто не могу найти один косяк, грешил на это. Пока ресурсы в геймдате, перс нормально ходит, как только совмещаю с оригиналом, накатывая с заменой, запаковываю в db, и перс начинает ходить с башкой на 180 градусов, глазами назад...
Цитатаdenis2000 ()
то пиксели берутся из обоих файлов!?
Тут не не равноценное сравнение, одно дело пикселы из одного файла. и другое дело отдельные анимации, из СБОРНИКА анимаций в формате omf...
Сообщение отредактировал Policai - Понедельник, 02.03.2020, 08:46
Тут не не равноценное сравнение, одно дело пикселы из одного файла. и другое дело отдельные анимации, из СБОРНИКА анимаций в формате omf...
Это абсолютно одно и то же! Берется некая законченная часть файла: пиксель из сборника пикселей или анимация из сборника анимаций! Но ваш вопрос появился из-за непонимания фундаментальных принципов работы движка (операционной системы) с файлами. Для движка/ОС существует ТОЛЬКО ОДИН файл с конкретным именем по конкретному пути, второго файла для них не существует (если речь не идет о сбое файловой системы)!
ЦитатаPolicai ()
перс начинает ходить с башкой на 180 градусов, глазами назад
Это похоже на некорректно настроенные (или не настроенные вовсе) бонепарты (Bone Parts).
Цитатаalexx556 ()
должна появиться полоска жизни, как это было у босса-вертолета в ЧН или например как в моде Путь во мгле
Это фишка оригинала, как вы правильно заметили еще из ЧН. Просто в секцию вертолета добавляется параметр show_health = true. Логика отслеживает наличие данного параметра и при его истинности занимается выводом и обновлением хелсбара. Ваша задача перенести такой код для НПС. Аналогичные действия уже были реализованы в SGM2.2, там были НПС-боссы с хелсбарами, хотите возьмите код оттуда (только там он заметно посложнее будет).
Сообщение отредактировал denis2000 - Понедельник, 02.03.2020, 10:14
Но ваш вопрос появился из-за непонимания фундаментальных принципов работы движка
Абсолютно точно...))
Цитатаdenis2000 ()
Это похоже на некорректно настроенные (или не настроенные вовсе) бонепарты (Bone Parts).
Всё может быть, смущает только что пока геймдата, нормально, а при совмещении с оригиналом с заменой файлов и упаковке в db, появляется этот баг. Другой визуал прописываю и эта проблема пропадает... Поэтому и начал грешить на анимации... Просто с визуалами и так выбор не великий..))))
Сообщение отредактировал Policai - Понедельник, 02.03.2020, 10:37
А сама функция show_health = true просто так не работает? Она есть в ЗП или нужно брать из того же ЧН? Не совсем понимаю просто.
Еще вопрос по поводу логики. Какая логика должна быть у босса, если он автоматически противник для гг, пока не подойдешь он стоит на месте и атакует при подходе на определенную дистанцию? Профиль перса я прописал, настроил пока как наемника.
А сама функция show_health = true просто так не работает? Она есть в ЗП или нужно брать из того же ЧН? Не совсем понимаю просто.
Параметр show_health читается скриптом из логики вертушки. И если он принимает значение истина, то подключаются два метода: set_cs_heli_progress_health() cs_remove() Сами методы прописаны в файле heli_fire.script Всё это есть в ЗП. Вам нужно только посмотреть как это сделано в файле heli_fire.script и перенести по аналогии в xr_motivator.script, который как раз и работает с объектами-сталкерами.
Сообщение отредактировал makdm - Понедельник, 02.03.2020, 17:39
Вам нужно только посмотреть как это сделано в файле heli_fire.script и перенести по аналогии в xr_motivator.script, который как раз и работает с объектами-сталкерами.
Посмотрел, нашел эти строчки, но если честно запутался. Со скриптами у меня не очень. Если не сложно, посмотрите пожалуйста. Если нужно, файлы я скину.
Мужика я заспавнил, но он видит игрока очень далеко и сразу атакует. Как мне сделать так, чтобы он игнорировал бой и начал стрелять при подходе на определенную дистанцию?
Также хотел спросить, где прописывается получаемый нпс урон или его здоровье, чтобы можно было увеличить его для босса?
Сообщение отредактировал alexx556 - Понедельник, 02.03.2020, 20:25
Посмотрел, нашел эти строчки, но если честно запутался. Со скриптами у меня не очень. Если не сложно, посмотрите пожалуйста. Если нужно, файлы я скину.
Мне не нужно скидывать файлы. Я это давно реализовал в двух модах: Время Альянса - защита Бара от мутантов и Связь Времен - атака в Припяти О-сознания, засевшего в Юбилейном. Там посмотрите как это сделано. З.Ы. За вас все-равно это никто не будет делать, тем более, что решение есть в модах.
Сообщение отредактировал makdm - Понедельник, 02.03.2020, 20:39
Я это давно реализовал в двух модах: Время Альянса - защита Кордона от мутантов и Связь Времен - атака в Припяти О-сознания, засевшего в Юбилейном. Там посмотрите как это сделано.
Ясно, посмотрю.
Попробовал использовать параметр combat_ignore_cond = true, но нпс все равно атакует с любого расстояния. Может я что-то упустил?
Цитатаmakdm ()
решение есть в модах
Вы сказали, что сделали это в модах Связь Времен и Время Альянса, я видел, добротно сделано. Но я не понимаю, как у вас это реализовано. Вы можете объяснить? Основную функцию я нашел в stalker_generic.script, мод Время Альянса. В Связи Времен лежит в update_callbacks.script. Вызывается, как я понял, в логике через npc_health = true. Функцию обновления полоски нашел в xr.motivator.script, но остальные зависимости, которых нет в оригинальном ЗП найти не смог.
Код
------------------------------Выводим полоску жизни NPC на худ--------------------------------- ---------------------Одновременно можно вывести девять полосок жизни--------------------------- ---------------------------------------NPC_HEALTH---------------------------------------------- -------------------------------makdm, 2013 for gladiator Addon---------------------------------
local npc_st = db.storage[npc:id()] local npc_heal = utils.cfg_get_string( npc_st.ini, npc_st.active_section, "npc_health", npc, false, "", nil) local number = utils.cfg_get_string( npc_st.ini, npc_st.active_section, "number_health", npc, false, "", nil)
if npc_heal == nil or number == nil then return end
if tonumber( number ) > 9 then return end
local npc_name_text = "npc_name_text_"..tostring( number ) local cs_heli_health = "cs_heli_health_"..tostring( number ) local npc_healt = xr_logic.parse_condlist(npc, "npc_health", "npc_health", npc_heal) local npc_health = xr_logic.pick_section_from_condlist(db.actor, npc, npc_healt) == "true" local npc_name = npc:character_name()
if npc_health == true and table_health[tonumber( number )] == "true" then local hud = get_hud() local custom_static = hud:GetCustomStatic(cs_heli_health) if custom_static == nil then local xml = CScriptXmlInit() xml:ParseFile("heli_progress.xml") hud:AddCustomStatic(cs_heli_health, true) local st = hud:GetCustomStatic(cs_heli_health) local w = st:wnd() table_heli_progress[tonumber( number )] = xml:InitProgressBar ("heli_health", w )
hud:AddCustomStatic(npc_name_text, true) local name_text = hud:GetCustomStatic(npc_name_text):wnd() name_text:TextControl():SetTextST(npc_name)
else local _progr = npc.health*100 if _progr > 0 then table_heli_progress[tonumber( number )]:Show(true) table_heli_progress[tonumber( number )]:SetProgressPos(_progr) else table_heli_progress[tonumber( number )]:Show(false) hud:RemoveCustomStatic(cs_heli_health) hud:RemoveCustomStatic(npc_name_text) table_health[tonumber( number )] = "false" end end end
if npc_health == false and table_health[tonumber( number )] == "true" then local hud = get_hud() local custom_static = hud:GetCustomStatic(cs_heli_health) if custom_static ~= nil then hud:RemoveCustomStatic(cs_heli_health) hud:RemoveCustomStatic(npc_name_text) end end
end ---------------------------------------------------------------------------------------------------- ------------------------------------------makdm_end------------------------------------------------- ----------------------------------------------------------------------------------------------------
Сообщение отредактировал alexx556 - Среда, 04.03.2020, 02:53
Добро. Можно ли сделать проверку, проигрывается ли в данный момент конкретный звук? И проверка должна быть не через логику рестриктора, а внутри скрипта.
Вечер добрый! Не подскажите, есть ли возможность изменить материал объекта на локации без вмешательства в СДК, точнее без компиляции? Позаимствовал подземную локацию из "Doomed to Eternal Torment", но там есть решетка с материалом воды, при чем в таком месте, что не заметить очень трудно. Не хотелось бы перекомпилировать всю локацию из-за такой мелочи, компьютер будет долго на максимальном качестве компилировать, тем более, не могу найти некоторые текстуры, нужные для компиляции.
Если нельзя, то посоветуйте какую-нибудь лабораторию коридорного типа для перестрелок. Заранее спасибо!
Сообщение отредактировал AziatkaVictor - Суббота, 07.03.2020, 22:31
AziatkaVictor, насколько знаю, это без перекомпила не лечится. А насчёт уровня - я кажется знаю о какой локации идёт речь. Или ошибаюсь? UPD: а хотя стоп - это локация сама такая с "водяной решёткой", а не только в том моде. В любом случае, в том же разделе куча локаций на любую хотелку.
Сообщение отредактировал Prostomod - Суббота, 07.03.2020, 23:13