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

Mass

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

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

  • Посещение

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

  1. Вот такая у Bak'a приводит к зависанию звуков звуковых объектов! Я давно не играю в этот мод! Обнаружил у себя, когда адаптировал последнюю версию аи аддона, но получил по лбу под дебагом у себя. Решил тут поделиться! set_sound_mask вызывается только для живых, а тут в death_callback! Пишу: я данный фикс не проверял ( у себя вообще задисаблил), должно взлететь без ошибок!
  2. 😱Хочется обратиться ко всем присутствующим, Вы умеете читать? Название темы, как бы говорит за себя: Справочник! Постить вылеты, без решения самого вылета, здесь не нужно! Эх… это бы в шапку, но опять мало кто это будет читать…
  3. А зачем в биндере bind_door_labx8 при сохранении и загрузки вызываются save_obj и load_obj? Какой в этом смысл? Там же сохраняется активная секция, смарт, секция логики и загрузка и сохранение файлов с этими параметрами. А вот секцию с animated_object что-то не увидел.
  4. Вы лично проверяли? А вот я проверял! Даже если движок прочитает файл будет пытаться добавлять экшены, которые не существуют. Это серьезная ошибка! Увы, у него другие приоритеты А кто еще? Да у же протестил, ничего хорошего, нормально всё равно не работает! Если сталкер был подстрелен, то он бежит до ближайшего укрытия. есть конфликты. Если решите проверять,то проверить лучше всего на чуваков со схемой кампер, которому нельзя трогаться с места. Я рекомендую избавиться от этой схемы поведения, потому что это схема вызывает ошибки и конфликты с движковой схемы поведения в комбате!, а также других скриптовых схем! Еще одна ошибка! При выполнении v:inside(object:position() сталкер должен быть живым! if object:alive() and v:inside(object:position()) then -- опять проверки перепутали! Это в xr_motivator
  5. reute70, Нет конечно. Это всего лишь часть ошибок ? К\ Кстати, при добавлении экшена движок требует расскоментить combat_action_planner:remove_action(stalker_ids.action_take_cover) Иначе получается конфликт с движковым экшеным в комбате. Не пойму зачем автор это заремил. Или что-то тестировал и забыл обратно вернуть или какие-то побочки. Но в таком виде как там - это тоже неправильно!
  6. Ссылка Итак по порядку: Исправил некоторые косяки: В силу ограниченного времени не смог поправить остальные косяки. Так как я не могу гарантировать нормальную работу данных схем после этих правок. Нужны тесты... Например: 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. Давайте осудим!
  7. Чуть позже скину. Есть достаточное кол-во ошибок в файлах rx_***.script , + кое где не инициализирован менеджер планировщика. Как доправлю скину всё что есть!
  8. Это какой-то ужас! Я за пол часа на сейве товарища 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
  9. А дайте-ка сейвы! Один на заход на локацию и ещё один перед взятием этого квеста. Если будет время потестирую на выходных. Вот так и нужно. Обычно пользователи совсем не думают в игре и полагаются только на разраба. Но так как 30% игры симуляция, а не скрипты, то неудивительно каждое прохождение разное и ошибки, которые сплывают, могут быть фатальными. Поэтому делайте сейвы в большом кол-ве! Это не лог, а багрепорт, нужен сам лог! Сдается мне, виснут квесты, которые были добавлены в огсм. Я когда проходил игру с данным модом, такие квесты пропускал Думаю, что многие юзеры также эти квесты не особо брали! Скорее всего виснут функции в task_object.scripts. Но нужно время, чтобы проверить....
  10. Да, такое бывает! В игре полно ошибок! Ок, предположим я Вам верю. Какова методика поиска ошибки? Вы играли, прошли квест, потом через некоторое время получили бытый сейв? Затем загрузились с сохранения нашли и исправили ошибку? Почему именно выбор пал на этот квест? Если Вы пишите про возникающую ошибку после продолжительного времени? Я просто пытаюсь понять, без обид.
  11. Да ну! Поставьте хоть 10 пробелов или уберите пробелы вовсе после запятых, на синтаксис языка это не влияет никак!
  12. ...dbg" лишняя кавычка? Попробуйте эти кавычки убрать
  13. А где сам смарт? Также пути проверьте. Да проще, раскомментируйте сточки printf в xr_logic.activate_by_section и скиньте мне лог в лч
  14. Ошибка в логике нпс, скорее всего, неправильно указали активную схему. Потому что в xr_logic.activate_by_section section равна nil.
  15. Вы в этом уверены? Как раз ошибка ! [LUA][ERROR] ERROR: ILLEGAL SET STATE CALLED!!! nil fo sim_default_csky_151756 говорит об обратном!
  16. Скорее всего state_name == nil! Неправильная передача анимации, возможна синтаксическая ошибка в state_lib, а также проблемы с планировщиком или некорректная логика. Попробуйте раскомментировать abort Аналогично! Будет больше информации по вылету, если раскомментировать abort в _g.script
  17. Да это! 2-ое условие проверки - то что Вы ищете! 10%, даже меньше! Я бы запихнул ее в начало функции для оптимизации!
  18. Сегодня решил вернуться и перепройти игру Чистое небо с этим движком. Без всяких jump_to_level... На локацию Кордон - не попасть с помощью проводника! Только использовать консольную команду jump_to_level , она спавнит героя чуточку подальше, чем срабатывает условие спавна военных на посту. Я это понял, когда воспользовался консолью demo_record.При demo_record не срабатывают рестрикторы, соответсвенно спавна НПС - нет. Если улететь в деревню новичков и там начать своё прохождение, вылета не будет. Однако при подходе к блокпосту будут снова краш игры.Также на некоторых других локациях при попытке перейти - будет вылет. Игру из-за этого не пройти! stack trace: 0023:0029A1F6 xrCore.dll, CInifile::section_exist() 0023:0029A12C xrCore.dll, CInifile::line_exist() [error][ 87] : Параметр задан неверно. Я писал про логику мобов\нпс..., но это явно не так! Еще заметил, при тесте в smart_terrain.script alife():actor() не доступен в методе on_before_register из-за этого симуляция в игре не будет работать правильно!. Это точно ошибка в движке. Т.к. в чистом ЧН всё нормально.
  19. Чистое небо! Коммент <!-- wpn_ak74 \n --> в xml файлах ломает дальнейшее чтение. Баг словил на актере, когда игрался со стартовым набором гг. Очевидно парсер косячит!
  20. stack trace: 0023:0059A1F6 xrCore.dll, CInifile::section_exist() 0023:0059A12C xrCore.dll, CInifile::line_exist() ЧН! Вот появился этот вылет на Янтаре! Когда прыгает снорк. По логу понять достаточно просто. В section_exist попал некорректный параметр. Оказалось разрабы были всему виной. Но логику я поправил. Просто, потратил 30-40 мин на нахождении ошибки. Чистый чн переваривал ошибочную логику. Есть-ли возможность сделать в будущем какое-нибудь боллее информативную запись о неправильном параметре, переданное в выше упомянутые логом функции? А то очень часто ошибка будет проскакивать. Слишком много мест, где допустить ошибку достаточно легко...
  21. AziatkaVictor, что-то связанное с проблемной секции будет. То из-за чего вылетело.
  22. Да вы что? Конкретно с этим вылетом, появяся необходимые строчки, если раскомментировать функции abort и printf! Ошибка в логике, даже гадать не приходиться
  23. Все что-ли сейвы не грузятся? У меня нет таких проблем под ЧН. Скрипт se_item забыли перенести для детекторов. Может из-за этого вылетает у людей? У меня, собственно, вопрос к автору? Есть-ли возможность выложить debug версию?
  24. В общем сделаем по-человечески ( через логику), а не костылём... Добавляем в xr_conditions нашу функцию function is_heli_alive( actor,npc ) --' Вернёт true, если наш объект жив (взял из bind_heli) if not npc then return false end return bind_heli.get_heli_health( npc:get_helicopter(), db.storage[npc:id()] ) > 0.005 end И далее во всех файлах kat_hosp_z2_enemy_*.ltx Добавим новое условие. Во все on_info где идёт переключение на схему remark@helicopter_fire, например: on_info2 = {+hospital_heli_start_attack !hit_by_actor =health_le(0.95)} remark@helicopter_fire on_info2 = {+hospital_heli_start_attack !hit_by_actor =health_le(0.95) =is_heli_alive} remark@helicopter_fire