Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
вовремя рассвета часть скай бокса светлее чем другая из за этого видно швы скай бокса как это исправить ? это проявляется не всегда, иногда загружается нормально иногда нет , чаще глючит рассвет .
Уважаемые бродяги, возможно ли поправить поведение неписей в борьбе с мутами , а то они сближаются с ними вместо того чтоб отходить от них, потому и дохнут безбожно.
Создал механика на новой локации, диалог запускается, но после второй фразы получаю вот такой вылет Лог
Код
[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 : ...call of pripyat\gamedata\scripts\task_manager.script:49: attempt to index global 'task_objects' (a nil value)
function give_stalker_mechanic_toolkit_1() task_manager.get_task_manager():give_task("stalker_mechanic_toolkit_1_give") end function is_has_toolkit_1() if db.actor:object("toolkit_1") then return true end return false end function transfer_toolkit_1(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "toolkit_1") end
function give_stalker_mechanic_toolkit_2() task_manager.get_task_manager():give_task("stalker_mechanic_toolkit_2_give") end function is_has_toolkit_2() if db.actor:object("toolkit_2") then return true end return false end function transfer_toolkit_2(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "toolkit_2") end
function give_stalker_mechanic_toolkit_3() task_manager.get_task_manager():give_task("stalker_mechanic_toolkit_3_give") end function is_has_toolkit_3() if db.actor:object("toolkit_3") then return true end return false end function transfer_toolkit_3(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "toolkit_3") end
В сталкер апгрейд инфо все хорошо, апгрейды он делает, но вот полсле того как гг говорит вторую фразу(вот айди stalker_mechanic_toolkit_dialog_1_2) то вылет с тем логом. пробывал передалать но тот же вылет.
По квесту сквад портуется в определенную точку. Иногда все нормально, иногда из сквада портуется только лидер. Как сделать чтобы сквад всегда телепортировался полностью? Как заставить непися подойти к ГГ и воспроизвести анимацию (удар прикладом)?
Позаимствовал из СГМ функцию "НПС плохо видят ночью"
-- 'Контроль зрения НПС. function control_eye_range_fov(object) if in_time_interval(21,5) then if object:range()>30 then object:set_range(30) end if object:fov()>90 then object:set_fov(90) end else if object:range()<ReadEyeRange(object:section()) then object:set_range(ReadEyeRange(object:section())) end if object:fov()<ReadEyeFov(object:section()) then object:set_fov(ReadEyeFov(object:section())) end end end
-- 'Контроль зрения НПС. function ReadEyeRange(section) local ltx = system_ini() if ltx:line_exist(section,"eye_range") then return ltx:r_float(section,"eye_range") else return 100 end end function ReadEyeFov(section) local ltx = system_ini() if ltx:line_exist(section,"eye_fov") then return ltx:r_float(section,"eye_fov") else return 160 end end
Вызывается все это из функции motivator_binder:update(delta).
Функция действует. Проверял на разных модах. Сбоев не заметил.
Проблема в том, что функция действует на всех сталкеров. Возникло желание некоторых НПС из этой функции вывести.
Хочу добавить в конфиг сквада строку, например night_vision = true. Неписи из сквада, в секции которого есть такая строка, под функцию попадать не должны. Желательна поддержка кондлиста.
Как нужно изменить функцию control_eye_range_fov(object)?
local se_obj = alife():object(object:id()) if se_obj and se_obj.group_id ~= 65535 then local squad = alife():object(se_obj.group_id) if squad then local night_vision = xr_logic.parse_condlist(squad,"night_vision", "night_vision", utils.cfg_get_string(system_ini(), squad:section_name(), "night_vision", squad, false, "", "false")) if xr_logic.pick_section_from_condlist( db.actor, squad, night_vision ) == "true" then return end end end
З.Ы. По уму, лучше сделать отдельную ИИ схему и поставить проверку кондлиста на эвалуатор.
Сообщение отредактировал makdm - Вторник, 24.04.2018, 10:15
За совет спасибо. Идея работает. Так же пришел в голову ещё один вариант. Ввести новые параметры. Такие, например:
night_eye_range = 60 night_eye_fov = 120
Добавлять их в спавн-секцию НПС.
Две дополнительные функции
function ReadNightEyeRange(section) local ltx = system_ini() if ltx:line_exist(section,"night_eye_range") then return ltx:r_float(section,"night_eye_range") else return 30 end end function ReadNightEyeFov(section) local ltx = system_ini() if ltx:line_exist(section,"night_eye_fov") then return ltx:r_float(section,"night_eye_fov") else return 90 end end
Функция установки зрения примет вид
-- 'Контроль зрения НПС. function control_eye_range_fov(object) if in_time_interval(21,5) then if object:range()>ReadNightEyeRange(object:section()) then object:set_range(ReadNightEyeRange(object:section())) end if object:fov()>ReadNightEyeFov(object:section()) then object:set_fov(ReadNightEyeFov(object:section())) end else if object:range()<ReadEyeRange(object:section()) then object:set_range(ReadEyeRange(object:section())) end if object:fov()<ReadEyeFov(object:section()) then object:set_fov(ReadEyeFov(object:section())) end end end
Этот способ то же работает. Правда, без кондлиста. Но можно создать дополнительные секции НПС с улучшенным зрением.
В связи с этим возникли два вопроса.
1. Какой вариант меньше нагрузит движок? Вариант с добавлением в секцию сквада или вариант с параметрами в спавн-секции?
2. Существует функция create_squad_member, добавляющая НПС в уже существующий сквад. А есть ли функция, удаляющая НПС из существующего сквада? Вызываемая из рестриктора. Что то вроде
В некоторых модах видел, что моделька ГГ меняется (в катсценах) в зависимости от пары шлем-броня: То есть одет стальной шлем и Заря - в игре видим соответствующею модельку ГГ. Как это делается?
моделька ГГ меняется (в катсценах) в зависимости от пары шлем-броня: То есть одет стальной шлем и Заря - в игре видим соответствующею модельку ГГ. Как это делается?
В принципе, можно сделать так.
1. Создать несколько спавн-секций сталкера для кат-сцены с разными визуалами. Под разные комбинации щлем-костюм. 2. Перед стартом кат-сцены проверить, какие костюм и шлем надеты на ГГ. Выбрать секцию с подходящим визуалом и заспавнить её.
Всем привет. Обнаружил у себя баг - деньги ушли в минус, когда нанимал проводника, так ещё и достижение состоятельный клиент выдалось. Второй баг - как-то выдалось достижение охотник за артефактами (искатель), при входе в лаб8икс, врде видел фикс, но не могу найти. И последнее - почему борода покупает F2000, если в конфигах торговли чётко написано - не покупать. Искал по конфигам и скриптам - не нашёл.