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

Mass

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

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

  • Посещение

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

  1. Нет! не правильно! Поменяйте местами! Теперь понятно почему произошел вылет! Человек, дополняющего логику для неписей, просто не предусмотрел, тот факт, что вертолет может быть сбит и уничтожен игрой, а в памяти неписей сид ( куда смотреть) остался. нужно вводить доп условие или проверку на уничтожение сида
  2. По логу стало понятно что ошибка получилась из-за непися в схеме ремарк, каким-то образом пропал сид вертолёта!? Он(вертолёт) был уничтожен что-ли? Либо случился сбой в логике по другой причине Итак: лечение для вас будет такое: в 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)
  3. Найдите файл _g.script, откройте его и в самом вверху поменяйте строку log_full = false на log_full = true и сохраните изменения! После чего грузите сейв, после вылета киньте логи 10 строк до fatal error. Но думаю, что там будет что-то связанное c xr_logic.script или функции set_save_marker в _g.script Сдаётся мне, автор сего чудо-пака, решил перестраховаться, на случай, когда, как раз, модели могут быть изменены. А может быть и автор сознательно решил, после тестов и отладки воспользоваться этой движковой функцией. Как говорится, работает - не трогай!
  4. 1)Вылета не будет, если только актёр разберётся с химерой, потому что rx_combat.script просто не вызовется, что в свою очередь до функции с несуществующей кости дело не дойдёт! 2) Краш не произойдёт, если повезёт, когда в момент боя активируется движковый комбат, в свою очередь он перебьёт скриптовой комбат из rx_combat. 3) Причина: если вызов поступил от одного или 2-их в чуваков из сквада , тогда предполагаю повиснет колобке на хит монстра, но игра продолжится, однако последствия останутся неизвестными. 4) Причина: Собственно сам вылет! Когда весь сквад будет искать несуществующую кость и движок просто не справится. По факту самый наихудший вариант - это 3-ий. Может повезти, и движок каким-то образом удалит часть мусорных данных, а может быть веер всевозможных глюков в логике, что опять же приведёт к печальным последствиям. Всё что я в этом посте написал это мои мысли, подтверждённые опытом игры.
  5. monk,не могу понять, на что вы обиделись? Был вопрос по теме правка вылета. Я указал на строку в функции, где в коде есть все ответы на ваши вопросы. В этой функции ничего сложного нет, если у модмейкера есть понимание игры, и он хоть маленько знает английский язык за 2-ой класс . Попробуйте сами прочитать, сразу же всё станет ясно. А учиться никогда не поздно! Ишь чего..? Ещё как залезу, если встречу недочёты?
  6. А вы точно «въехали» в ту функцию, в которой вызывается та самая строка, или просто не смотрели? Если не понимаете, что там написано, то не лезьте, а для начала разберитесь с общими понятиями в языке Lua.
  7. Вроде как играть в голове актора это, а ему нужно от нпс!? В чём проблема использовать on_death из логики сквада или нпс и проиграть нужный звук от точки нпс?. От самого нпс не стОит т.к судя по примерам в ЗП есть аборт в xr_effects, на случай того, что нпс озвучивает фразу. Но надо смотреть сорцы, вдруг я ошибаюсь.
  8. Посмотрел я файлы, в rx_utils.script есть ошибка связанная с химерой! Строка return npc:bone_position("neck_r") -- 100% даст вылет. Т.к. у химеры в этом моде нет кости neck_r Нужно поменять кость на хотя бы bip01_neck!
  9. Потому что выше в коде у меня была ошибка, и вместо таблицы я получил true! Написал...., а в друг кому пригодится.
  10. ЧН 10-патч! Вылет без лога, с которым без помощи "волшебной комбинации" ctr+alt+del не обойтись. Итак: если вместо переменной tab со значением table, будет булево значение. Например: tab[level.get_game_difficulty()+1], где tab == bool. Подразумеваю на других значениях отличным от type(tab) == "table", краш будет тем же самым.
  11. Сегодня чистую игру прошел, решил воспользоваться этим модом. Monk, я там фикс один сделал для чистой игры. Советую обратить внимание? Я вижу что строчка заремленна, но всё же...
  12. ЧН 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 у проблемного непися, до фикса ловил подобный лог.
  13. ЧН с патчем 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,"","") Забыл, что это не движок ОГСР. Может кому и пригодиться...
  14. Вы правили схемы поведения нпс? Такое некорректное поведение может еще означать ошибки в логике или в планировщике, а также когда эвалуаторы возвращают нил вместо буллева значения или завис алайф\коллбеки\.... Да много всего может быть....
  15. Подскажите по методу: set_npc_position для объектов. Он для всех, совсем всех?( и живых и мертвых?). Смущает в исходниках строка: obj->movement().detail().make_inactual(); Получается только для монстров и сталкеров? А вот жив он или нет - не важно? Я далеко не копал.Может кто-нибудь прояснить сей момент?