Перейти к содержанию

Mass

Сталкеры
  • Публикаций

    305
  • Зарегистрирован

  • Посещение

Весь контент Mass

  1. Вы точно уверены что в этот момент нпс под логикой? Попробуйте сделать логирование хотябы апдейта этого непися и enemy_gulag. Посмотрите результат на чем спотыкается игра! У меня данная функция нормально работает! Всё может быть, поэтому нужно смотреть в апдейте активную секцию данного сталкера. Что с ним в данный момент происходит
  2. Вообще-то -это ошибка была! Вы не правы! В ЗП есть аналог функции только без итерации Он находится под логикой активной схемы или в комбате в idle состоянии? Рядом есть раздражители? Ой зря! Возможна еще одна ситуация при симуляции в комбате! Может добавить еще проверку is_smart_in_combat Типа смарт в состоянии атаки или защиты? Мало ли комбат игноре всему виной
  3. Не совсем! Если будет активный враг (best_enemy) и не будет надстройки xr_combat_ignore_cond, то нет! Иначе будет игнорить звуки стрельбы звуки трупиков, гранаты... Странно,а должно. Что в лог пишет? Я так понимаю, yan_zombied и yan_zombied_attack это смарты, да? local n = g.name --' Тут не ошибка ли? local n = g:name()
  4. Это понятно что быстрее! Я пытался найти потерянное оружие скриптом, делая проверку сравнения айди активного оружия и лучшего оружия, но ничего не вышло! Движок каким-то образом заставляет нпс убирать активное оружие! Еще стоит учесть что непись может быть ранен 2 раза при анимации в библиотеке drop! И может возникнуть ситуация что оружие у него украли, и пистолет, и главное оружие. Поэтому на всякий случай добавил проверку в эвалуатор! Во поэтому связка скриптов state_mgr_*** имеет защиту. По крайней мере, ошибок больше не было. Кстати rx_combat имеет ту же самую проблему!
  5. post_combat.weapon_locked(npc) Как раз возвращает false если активное оружие не существует! Про анимации сказал, потому что этот код вызывает ошибку при дебаге! Лучше всего юзать state_mgr если нужно стрелять в позицию! Затем когда этот код выполнился, получилось что активное оружие потерялось И только потом на следуещем апдейте активное оружие вернулось!
  6. Объясните мне непонятное для меня! Имеется скрипт rx_kill_wounded от bak'a В нём этот код: if self.type ~= 0 then if not post_combat_idle.weapon_locked(npc) then npc:set_item(object.fire1,npc:active_item(),math.random() < 0.2 and math.random(2,12) or 1,650) end return end Здесь получается что если мы выбрали рандомно оружие. И далее самое интересное.... Проверятся логическое значение из функции weapon_locked, но если у нас нет активного оружия и лучшего оружие в данный момент, то как мы тогда можем стрелять? Тут наверное лучше использовать object.idle что-ли? Я не понял этот код! Но вообще ,чтобы не было ошибок, object.fire1 без кучи проверок лучше не юзать, а использовать спец анимацию из state_lib при стрельбе по цели через set_state
  7. Это чисто ошибка планировщика! Где-то произошел затык. Когда эвалуатор evaluator_state_mgr_idle_alife должен возвращать false, но при переключении схемы возвращает true! И остается активным, несмотря на активную анимацию, например: animpoint_stay_table без активной схемы и секции разумеется! Очень бы не рекомендовал этот аборт убирать! Потому что в сейв могут записаться некорректные данные. Уж лучше один раз вылететь, чем потом всю игру страдать! Пока для меня причина, подобного, непонятна! Возможно у кого-то есть мысли на этот счет или кто-то что-то раскопал в планировщике.
  8. Найдена причина подобного лога, что вызывает в дальнейшем повисание функции и вылеты с невминяемыми логами: Где wpn_sig550- это активное оружие, которое потерялось. npc:set_item(object.idle,npc:active_item() Решение добавлять проверку на активное оружие
  9. Это серьезная ошибка! К сожалению, простой затычкой не получится исправить проблему! Без исправления самой причины краша, вылеты последуют и безлоговые! Я много раз получал данный вылет.Где-то вис коллбек, где-то висла функция, где-то логика была причиной! Единственный вариант узнать что за объект. Исходя из этого решать проблему! В чистом движке, ох как не хватало пространства имен debug, а именно traceback
  10. А пробовал создать нового кровососа через конфиг, играясь с параметрами jump? Не уверен что схема mob_jump является правильной! Если ничего не поможет, то можно попробовать сделать через скрипт action(self.object, anim(""), look(look.point, enemy:position()), cond(cond.time_end, 2500)) --'cond.anim_end вместо "" название анимации Помоему прокатывает в ТЧ, но ЧН xr_logic не даст такое сделать!
  11. Этот лог случаем не из Лиманска? А подключить mob_remark!? И в логике anim = ***! Только нужно еще сделать поддержку кондлист в самом скрипте по аналогии со скриптом xr_remark! Что именно хотите сделать?
  12. Моя оплошность из этого поста! Я не протестировал изменения! Но set_sound_mask действительно вызывается только для живых. npc:remove_sound(stalker_ids.sound_die) не работает оказывается! Вызывает ошибку! Я бы посоветовал заремить этот код!
  13. Покажите секцию звука. Возможно там ошибка или в логике
  14. А во и нет! Ошибка в логике неправильный задан синтаксис. Вернее неправильное комментирование! on_info = {+about_skadovsk_dialog_done -zat_a2_reach_base} %+zat_a2_reach_base ;=give_task(zat_a2_reach_base)% Здесь ошибка! Нужно закрывать все скобки! on_info = {+about_skadovsk_dialog_done -zat_a2_reach_base} %+zat_a2_reach_base% ;=give_task(zat_a2_reach_base) Обратите внимание! Это не единственная ошибка! В другой секции идентичное!
  15. Вот такая у Bak'a приводит к зависанию звуков звуковых объектов! Я давно не играю в этот мод! Обнаружил у себя, когда адаптировал последнюю версию аи аддона, но получил по лбу под дебагом у себя. Решил тут поделиться! set_sound_mask вызывается только для живых, а тут в death_callback! Пишу: я данный фикс не проверял ( у себя вообще задисаблил), должно взлететь без ошибок!
  16. 😱Хочется обратиться ко всем присутствующим, Вы умеете читать? Название темы, как бы говорит за себя: Справочник! Постить вылеты, без решения самого вылета, здесь не нужно! Эх… это бы в шапку, но опять мало кто это будет читать…
  17. А зачем в биндере bind_door_labx8 при сохранении и загрузки вызываются save_obj и load_obj? Какой в этом смысл? Там же сохраняется активная секция, смарт, секция логики и загрузка и сохранение файлов с этими параметрами. А вот секцию с animated_object что-то не увидел.
  18. Вы лично проверяли? А вот я проверял! Даже если движок прочитает файл будет пытаться добавлять экшены, которые не существуют. Это серьезная ошибка! Увы, у него другие приоритеты А кто еще? Да у же протестил, ничего хорошего, нормально всё равно не работает! Если сталкер был подстрелен, то он бежит до ближайшего укрытия. есть конфликты. Если решите проверять,то проверить лучше всего на чуваков со схемой кампер, которому нельзя трогаться с места. Я рекомендую избавиться от этой схемы поведения, потому что это схема вызывает ошибки и конфликты с движковой схемы поведения в комбате!, а также других скриптовых схем! Еще одна ошибка! При выполнении v:inside(object:position() сталкер должен быть живым! if object:alive() and v:inside(object:position()) then -- опять проверки перепутали! Это в xr_motivator
  19. reute70, Нет конечно. Это всего лишь часть ошибок ? К\ Кстати, при добавлении экшена движок требует расскоментить combat_action_planner:remove_action(stalker_ids.action_take_cover) Иначе получается конфликт с движковым экшеным в комбате. Не пойму зачем автор это заремил. Или что-то тестировал и забыл обратно вернуть или какие-то побочки. Но в таком виде как там - это тоже неправильно!
  20. Ссылка Итак по порядку: Исправил некоторые косяки: В силу ограниченного времени не смог поправить остальные косяки. Так как я не могу гарантировать нормальную работу данных схем после этих правок. Нужны тесты... Например: rx_sound строка self.internal_type = stalker_ids[rx_utils.read_from_ini(snd_ini,section,"sound","_nil",1)] 4-ый параметр по умолчанию равен _nil из-за ini:r_string(sec,lin) or def в rx_utils! Получаем stalker_ids._nil. Достаточно посмотреть в луа_хелп какие значения используется в этой таблице. Тоже самое и про snd_type. Движок ищет эти значения в таблицах и не может найти... Пока оставил как есть, так как я не автор, нужен доп тесты. Конфликты в планировщике. В частности в rx_combat при добавлении экшена combat_action_planner:add_action(stalker_ids.action_take_cover,new_action) вызывает ошибку и некорректное поведение общих схем. Я пытался исправить данную ошибку, но опять же нужно время для тестов. В xr_help_wounded тоже есть конфликты в эвалуаторе, когда схема добавляется через set_scheme Очень не рекомендую использовать ogsm_packet лучше юзать m_netpk. Чтобы, не дай бог, ничего сломать и не покарежить сейвы, тоже оставил как есть. ogsm_packet работает, но некорректно! Я, кстати, оплошал с ClipperOn. Включает обрезку изображения по размерам виджета. Всё с ним нормально! Если есть чем поделиться по поводу метода исправления схем ai. Давайте осудим!
  21. Чуть позже скину. Есть достаточное кол-во ошибок в файлах rx_***.script , + кое где не инициализирован менеджер планировщика. Как доправлю скину всё что есть!
  22. Это какой-то ужас! Я за пол часа на сейве товарища MartyKnight 3 ошибки обнаружил. 2-е из них очень серьезные.. 1). Штук 10+ дубликатов в файле st_rt_dialogs.xml с одинаковыми id! Например: rt_krilov_job_what и куча аналогичных... 2). Виснет планировщик написей! Оказалось что в этом виновен файл xr_medic.script, а в нем синтаксическая ошибка. Проблема в том, что этот скрипт проверяется в условиях самого планировщика. Например: в xr_abuse.script. Найти и удалить все упоминания скрипта xr_medic.script во всех файлах! 3). Отсутствует обработчик ClipperOn в ogsm_notepad.script. Банальный недосмотр! Это ошибка провоцирует вылеты по памяти. Когда загружается игра через ogsm.script вызывается этот файл. Я проверил и при НИ тоже вызывается данный скрипт! Соответственно виснет всё окно Может потом вернусь к тестам... upd: 4). Есть проблемы со скриптовой худовой составляющей! Она тоже виснет! Потому что в метод AddCustomStatic 2-ой параметр кое-где в скриптах имеет значение nil. Когда движок требует буллев тип. Например: ogsm_indicators.script hud:AddCustomStatic("indik2_rad") нужно поменять на hud:AddCustomStatic("indik2_rad",true) и так везде в скриптах где 2-ой параметр этого метода ==nil! 5) Файлы: xr_kamp, xr_help_wounded, xr_corpse_detection.script. Метод alive виснет, потому что при итерации с помощью memory_visible_objects, туда попадают не только объекты CEntityAlive! Нужно поменять на xr_kamp: if not obj:alive() and (IsStalker(obj) or IsMonster(obj)) --> if (IsStalker(obj) or IsMonster(obj)) and not obj:alive() then --fix! Сначала проверяем сталкер это или монстр! Остальные по аналогии... xr_help_wounded:--> if IsStalker(vo) and vo:alive() and xr_wounded.is_wounded(vo) and npc:relation(vo) ~= game_object.enemy then xr_corpse_detection: --> if loot and (IsStalker(loot) or IsMonster(loot)) and not loot:alive() then
  23. А дайте-ка сейвы! Один на заход на локацию и ещё один перед взятием этого квеста. Если будет время потестирую на выходных. Вот так и нужно. Обычно пользователи совсем не думают в игре и полагаются только на разраба. Но так как 30% игры симуляция, а не скрипты, то неудивительно каждое прохождение разное и ошибки, которые сплывают, могут быть фатальными. Поэтому делайте сейвы в большом кол-ве! Это не лог, а багрепорт, нужен сам лог! Сдается мне, виснут квесты, которые были добавлены в огсм. Я когда проходил игру с данным модом, такие квесты пропускал Думаю, что многие юзеры также эти квесты не особо брали! Скорее всего виснут функции в task_object.scripts. Но нужно время, чтобы проверить....
  24. Да, такое бывает! В игре полно ошибок! Ок, предположим я Вам верю. Какова методика поиска ошибки? Вы играли, прошли квест, потом через некоторое время получили бытый сейв? Затем загрузились с сохранения нашли и исправили ошибку? Почему именно выбор пал на этот квест? Если Вы пишите про возникающую ошибку после продолжительного времени? Я просто пытаюсь понять, без обид.