-
Публикаций
302 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Календарь
Новости
Моды
Весь контент Mass
-
Ошибка в логике нпс, скорее всего, неправильно указали активную схему. Потому что в xr_logic.activate_by_section section равна nil.
-
Вы в этом уверены? Как раз ошибка ! [LUA][ERROR] ERROR: ILLEGAL SET STATE CALLED!!! nil fo sim_default_csky_151756 говорит об обратном!
-
Скорее всего state_name == nil! Неправильная передача анимации, возможна синтаксическая ошибка в state_lib, а также проблемы с планировщиком или некорректная логика. Попробуйте раскомментировать abort Аналогично! Будет больше информации по вылету, если раскомментировать abort в _g.script
-
Да это! 2-ое условие проверки - то что Вы ищете! 10%, даже меньше! Я бы запихнул ее в начало функции для оптимизации!
-
Сегодня решил вернуться и перепройти игру Чистое небо с этим движком. Без всяких 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 из-за этого симуляция в игре не будет работать правильно!. Это точно ошибка в движке. Т.к. в чистом ЧН всё нормально.
- 408 ответов
-
- 1
-
- моды 2021
- зов припяти
- (и ещё 12 )
-
Чистое небо! Коммент <!-- wpn_ak74 \n --> в xml файлах ломает дальнейшее чтение. Баг словил на актере, когда игрался со стартовым набором гг. Очевидно парсер косячит!
- 408 ответов
-
- 1
-
- моды 2021
- зов припяти
- (и ещё 12 )
-
AziatkaVictor Именно там! Вы правы.
-
stack trace: 0023:0059A1F6 xrCore.dll, CInifile::section_exist() 0023:0059A12C xrCore.dll, CInifile::line_exist() ЧН! Вот появился этот вылет на Янтаре! Когда прыгает снорк. По логу понять достаточно просто. В section_exist попал некорректный параметр. Оказалось разрабы были всему виной. Но логику я поправил. Просто, потратил 30-40 мин на нахождении ошибки. Чистый чн переваривал ошибочную логику. Есть-ли возможность сделать в будущем какое-нибудь боллее информативную запись о неправильном параметре, переданное в выше упомянутые логом функции? А то очень часто ошибка будет проскакивать. Слишком много мест, где допустить ошибку достаточно легко...
- 408 ответов
-
- 1
-
- моды 2021
- зов припяти
- (и ещё 12 )
-
AziatkaVictor, что-то связанное с проблемной секции будет. То из-за чего вылетело.
-
Да вы что? Конкретно с этим вылетом, появяся необходимые строчки, если раскомментировать функции abort и printf! Ошибка в логике, даже гадать не приходиться
-
Все что-ли сейвы не грузятся? У меня нет таких проблем под ЧН. Скрипт se_item забыли перенести для детекторов. Может из-за этого вылетает у людей? У меня, собственно, вопрос к автору? Есть-ли возможность выложить debug версию?
- 408 ответов
-
- моды 2021
- зов припяти
- (и ещё 12 )
-
В общем сделаем по-человечески ( через логику), а не костылём... Добавляем в 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
-
Нет! не правильно! Поменяйте местами! Теперь понятно почему произошел вылет! Человек, дополняющего логику для неписей, просто не предусмотрел, тот факт, что вертолет может быть сбит и уничтожен игрой, а в памяти неписей сид ( куда смотреть) остался. нужно вводить доп условие или проверку на уничтожение сида
-
По логу стало понятно что ошибка получилась из-за непися в схеме ремарк, каким-то образом пропал сид вертолёта!? Он(вертолёт) был уничтожен что-ли? Либо случился сбой в логике по другой причине Итак: лечение для вас будет такое: в xr_remark.script найдите строку abort("remark <error>: Wrong story id [%s] for [%s] sid %s in section [%s].", st.target, npc:name(), sid, section) И сделайте так: st.target_id = nil -- Затычка по причине отсутствия сида в игре, но надо разбираться с логикой! -- abort("remark <error>: Wrong story id [%s] for [%s] sid %s in section [%s].", st.target, npc:name(), sid, section)
-
Найдите файл _g.script, откройте его и в самом вверху поменяйте строку log_full = false на log_full = true и сохраните изменения! После чего грузите сейв, после вылета киньте логи 10 строк до fatal error. Но думаю, что там будет что-то связанное c xr_logic.script или функции set_save_marker в _g.script Сдаётся мне, автор сего чудо-пака, решил перестраховаться, на случай, когда, как раз, модели могут быть изменены. А может быть и автор сознательно решил, после тестов и отладки воспользоваться этой движковой функцией. Как говорится, работает - не трогай!
-
1)Вылета не будет, если только актёр разберётся с химерой, потому что rx_combat.script просто не вызовется, что в свою очередь до функции с несуществующей кости дело не дойдёт! 2) Краш не произойдёт, если повезёт, когда в момент боя активируется движковый комбат, в свою очередь он перебьёт скриптовой комбат из rx_combat. 3) Причина: если вызов поступил от одного или 2-их в чуваков из сквада , тогда предполагаю повиснет колобке на хит монстра, но игра продолжится, однако последствия останутся неизвестными. 4) Причина: Собственно сам вылет! Когда весь сквад будет искать несуществующую кость и движок просто не справится. По факту самый наихудший вариант - это 3-ий. Может повезти, и движок каким-то образом удалит часть мусорных данных, а может быть веер всевозможных глюков в логике, что опять же приведёт к печальным последствиям. Всё что я в этом посте написал это мои мысли, подтверждённые опытом игры.
-
monk,не могу понять, на что вы обиделись? Был вопрос по теме правка вылета. Я указал на строку в функции, где в коде есть все ответы на ваши вопросы. В этой функции ничего сложного нет, если у модмейкера есть понимание игры, и он хоть маленько знает английский язык за 2-ой класс . Попробуйте сами прочитать, сразу же всё станет ясно. А учиться никогда не поздно! Ишь чего..? Ещё как залезу, если встречу недочёты?
-
А вы точно «въехали» в ту функцию, в которой вызывается та самая строка, или просто не смотрели? Если не понимаете, что там написано, то не лезьте, а для начала разберитесь с общими понятиями в языке Lua.
-
Вроде как играть в голове актора это, а ему нужно от нпс!? В чём проблема использовать on_death из логики сквада или нпс и проиграть нужный звук от точки нпс?. От самого нпс не стОит т.к судя по примерам в ЗП есть аборт в xr_effects, на случай того, что нпс озвучивает фразу. Но надо смотреть сорцы, вдруг я ошибаюсь.
-
Посмотрел я файлы, в rx_utils.script есть ошибка связанная с химерой! Строка return npc:bone_position("neck_r") -- 100% даст вылет. Т.к. у химеры в этом моде нет кости neck_r Нужно поменять кость на хотя бы bip01_neck!
-
Потому что выше в коде у меня была ошибка, и вместо таблицы я получил true! Написал...., а в друг кому пригодится.
-
ЧН 10-патч! Вылет без лога, с которым без помощи "волшебной комбинации" ctr+alt+del не обойтись. Итак: если вместо переменной tab со значением table, будет булево значение. Например: tab[level.get_game_difficulty()+1], где tab == bool. Подразумеваю на других значениях отличным от type(tab) == "table", краш будет тем же самым.
-
Сегодня чистую игру прошел, решил воспользоваться этим модом. Monk, я там фикс один сделал для чистой игры. Советую обратить внимание? Я вижу что строчка заремленна, но всё же...
-
ЧН 10-ый патч! Ошибка: ! cannot find special danger animations for object with visual actors\stalker_bandit\stalker_bandit_2 В чистой игре такой ошибки быть не должно, однако если вы используете другие схемы поведения нпс, например модов ( где есть конфликты) или же повис эвалуатор. ( У меня эвалуатор повис из-за кривой логики). Когда вместо анимации state_name = "raid" в state_mgr приходит "idle". То сразу получаете такой лог. Кстати, эта ошибка может быть и в ЗП с модами! UPD: А вот и нет! Это я ошибся! Ошибка возникнет 100% в чистой игре. Т.к. любая анимация при переключении анимации "raid" на другую анимацию даст подобный лог. В state_mgr.set_state передается не только idle, но и patrol и hide_fire и другие анимки... Решить этот вопрос - дело одной проверки: if state_lib.states[state_name]..special_danger_move == true then if self.npc:special_danger_move() ~= true then --callstack() if (state_name ~= "raid" and self.target_state == "raid") or self.target_state ~= "raid" then -- fixed by Mass! self.npc:special_danger_move(true) else if self.npc:special_danger_move() == true then -- А нужно-ли? self.npc:special_danger_move(false) -- Это 100-пудово нужно, когда переключаемся обратно. Иначе непись зависнет! end end end else if self.npc:special_danger_move() == true then self.npc:special_danger_move(false) end end Проверял раз 15 у проблемного непися, до фикса ловил подобный лог.
-
ЧН с патчем 10-ым + только мои правки.Вылет из-за невнимательности! Игра начала крашиться, на Янтаре, когда подхожу к Сахарову. А прошел половину игры. Ошибка появилась только сейчас! Причем, я загружался и с обычных с сейвов и с автосохранений - результат был один и тот же... Собственно лог: stack trace: 0023:0403C257 xrGame.dll или: stack trace: 0023:04C8D4F8 xrGame.dll А также: stack trace: 0023:04C8D4F8 xrGame.dll [error][ 8] : Недостаточно памяти для обработки команды. Все эти краши игры из-за банальной "копи пасты" отсутствовали 2 параметра. local result, id, value = ini:r_line(section,line_number) А нужно так: local result, id, value = ini:r_line(section,line_number,"","") Забыл, что это не движок ОГСР. Может кому и пригодиться...