как узнать лог вылета в сталкере
Причины вылетов игры (разбираем логи)
Материал из S.T.A.L.K.E.R. Inside Wiki
Привет всем! Игра S.T.A.L.K.E.R., а конкретно сам движок X-Ray довольно капризный, и зачастую как в процессе модификации, так и во время игры игра «вылетает». Чтобы мы знали причину вылета, движок нам оставляет лог вылета. Лог вылета можно посмотреть несколькими способами:
Ну приступим. Начнём с простых:
Здесь игра не может открыть звуковой OGG-файл под названием sound в папке d:\stalker\gamedata\sounds\music\
Не может найти текстуру act_corp_monolit из папки textures\act
Не найдена трёхмерная OGF-модель mesh.ogf из папки meshes\physics.
Не найдена система частиц (партикл) hit_water_00 в директории hit_fx файла particles.xr (подробно опишу позже).
Не найден шейдер models\antigas_glass в библиотеке шейдеров.
Тут проблема вся в том, что неправильно закомпилился шейдер, при компиляции уровня на качестве, более высоком чем Draft. Нужно скачивать исправление шейдеров от товарища Haron. Для ЗП (ЧН) это может ещё быть из-за отсутствия thm-ок для текстур террейна уровня!
Нехватка оперативной памяти.
Неправильно настроены шейдеры. В настройках шейдера, во вкладке R2-A поставьте текстуру, которая вдальнейшем будет накладываться на террейн.
Не найдена переменная ammo_mag_size в секции [wpn_addon_grenade_launcher].
Переполнение стека. Смотрим внимательно: lua_error. Ошибка, возможно, в скриптах.
Какая то вершина (вейпоинт) пути sniper_3_walk стоит в неположенном месте (например не на аи-сетке). Объект stalker_0002 (в данном случае сталкер) который якобы двигался по пути sniper_3_walk попал на эту точку, а заодно ушёл за аи-сетку. Этого движок не терпит.
Возникают иногда произвольно при смерти неписей. Причина — движок, отрабатывая лут, изредка теряет серверный объект уничтожаемой вещи, в итоге происходит вылет.
Проблема возникает при убийстве НПС\мутанта. Типичный вылет по нехватке ресурсов. Встречается в основном на больших локациях. Но не на всех. На болотах из ЧН такой вылет встречается, а вот с локации aver от Кости V такого вылета нет. Однако для данного вылета есть таблетка, в виде правленого экзешника. Искать на АМК-форуме.
Неправильный визуал (модель) НПС.
В диалоге esc_dialog нет доступной для отображения фразы (скажем, все заткнуты инфопоршенами).
Игра не нашла в модели трёхмерную анимацию с именем death_init.
Причина вылета в том что игра не понимает значения 0 в danger_ignore.Проще говоря в логике какого то персонажа параметр danger_ignore = 0 либо в минусовом значении. Либо его вообще нету
P.S. Также может быть причина в том, что в логике у какого-то АИ что-то неправильно указано. Для исправления рекомендую вставить строчку перед 116: get_console():execute(self.object:name()). То имя в логе, которое будет последним после вылета, указывает на персонажа с кривой логикой.
Не найден класс персонажа. Возможно, НПС не прописан под своим классом в gamedata\npc_profile.xml, либо в creatures\spawn_section.ltx, либо в gameplay\character_desc.xml
Не найдена переменная remove_time в секции [vehicle_btr]. А в данном случае ошибка в том что если вы делали предмет как физическую модель(то бишь, которую нельзя использовать, говорить и вообще он похож на декорации типа деревьев, столов и прочего хлама) то необходимо указывать remove_time в его секции.
Метод обращения в игре не предусмотрен. Возможно, стоит пересмотреть подход к тому или иному скрипту.
На мультиплеерной карте не найдены точки респавна игроков. В SDK должен быть красный пацанчик. Настроить Team = 0
Случается когда одна из dll некорректна. Например такой вылет бывает если подсунуть в ТЧ 1.0004 xrGame от 6 патча.
Вылет встречается только на 6 патче при попытке хаванья из трупа. Ищите, исправленную Kolmogor’om, xrGame.dll в Интернете
Данный вылет бывает когда у какого либо из объектов установлено некорректное значение (читал, сам не получал его) Или же если данный вылет происходит при вызове класса, то проблема в том что в методе __init() класса прописано super()
Происходит при попытке вызвать класс, которого не существует
Скорее всего, отсутствует файл level.ai. Возможно после правки уровня в SDK и компиляции AI, вы забыли его скопировать в папку уровня. Важно помнить, что level.ai нужно обновлять для всех уровней, а не только для тех, которые подвергались правке.
Безлоговый вылет
Вылет, при котором лог отсутствует. Причины такого вылета:
1. Безлоговые вылеты бывают в основном из-за завышенных настроек видео.
Решение: В папке с игрой открыть папку gamedata, папку config, в ней файл alife, открыть любым текстовым редактором (блокнотом, или лучше word pad’ом) и найти строку switch distance = и изменить значение на 5, сохранить изменения. Это только одна (не сильно вероятная) причина безлогового вылета. если вы знаете ещё одну причину, пожалуйста напишите здесь.
2. Вторая причина неправильно указано название пути в логике НПС или он полностью отсутствует в файле way_ all.spawn. Вылетать будет когда дойдёт время до спавна этого НПС.
3. Также, безлоговые вылеты происходят из-за ошибок в диалогах.
Как узнать лог вылета в сталкере
У всех вылетает S.T.A.L.K.E.R. и все пишут: «У МЕНЯ ВЫЛИТИЛ СТАЛКИР ПАМАГИТЕ. » и умные люди пишут вам что-то типа «лог в студию/лог покажи», но мы не знаем, что такое лог и как его найти тем более.
Итак, чуть терминологии.
Если у вас запары и с этим простеньким, то если вы заметили, я писал о «текстовом редакторе», это может быть не обязательно блокнот, а что-либо другое:
Word, WordPad, NotePad или любой другой редактор, в котором можно писать текст.
И так, если мы открыли это, мы прогрессируем. Поздравляю!
Теперь разбираемся, как получить лог. Нажать сразу после вылета Ctrl+V. Для тех, кто не знает, это функция вставки и, если не знаем что значит «+» (одновременное нажатие обеих клавиш).
Можем на панельке поискать слово «Вставить».
Если мы не накосячили в этом нелёгком квесте, то у нас появится текст. Этот текст и есть лог вылета. Далее бежим в темку, в который вы писали «ЧТО СТАЛКИР ВЫЛИТАЕТ» и вставляем туда лог и хорошие дядьки помогут вам решить проблему.
Если собираетесь выкладывать лог куда на форум, то не забывайте, что в большинстве случев достаточно 20-25 нижних строк.
А ещё бывают безлоговые вылеты, но это уже совсем другая история. Хотя скажу, что придётся описать «событие,» которое производит к вылету и это скорей всего укажет на файл, который нуждается в коррекции.
А так же.
Файл лога находится в:
Это при условии, что игра ставилась на диск С:\, иногда файл с логом находится внутри директории игры.
Ещё файл лога можно найти, открыв файл fsgame.ltx (он в корневой папке игры) блокнотом и посмотрев самую верхнюю строку: там написан либо полный путь до файла, либо путь относительно папки bin.
Как узнать лог вылета в сталкере
Тема-справочник по вылетам S.T.A.L.K.E.R в большей степени ориентирован на чистый ТЧ, но в большинстве случаев причина и решение вылета одинакова для всех частей.
Данный справочник не гарантирует того, что Вы найдёте решение проблемы (хотя я на это очень надеюсь), так как указанные причины и способы лечения могут не соответствовать истинной причине вылета.
Также прошу не писать в данной теме уже те вылеты, которые здесь есть, по причине того, что Вы не понимаете чего-то.
Не нужно писать сюда и посты с тем, что у Вас вылетает какой-то мод, с каким-то логом. Зачастую такой вылет скриптовый и никому кроме Вас он не нужен, лучше будет, если Вы обратитесь к разарботчикам данного мода.
Не нужно писать всякие любезности, для этого есть личка.
В противном случае буду жаловаться на подобные посты администрации форума, без каких-либо угрызений совести.
P.S. Поскольку форум ограничивает размер текста в сообщениях, поэтому пришлось разбить весь справочник на несколько постов.
Статус: | |
Сообщений: | 666 |
Регистрация: | 25.05.2012 |
Статус: | |
Опытный: | |
Сообщений: | 1753 |
Награды: | 3 |
Регистрация: | 25.05.2012 |
Причина : Возникает иногда произвольно при смерти неписей. Движок отрабатывая лут изредка теряет серверный объект уничтожаемой вещи, в итоге происходит вылет.
Лечение : Попробуйте загрузить последнее сохранение.
Причина : Возникает иногда произвольно при смерти неписей. Движок отрабатывая лут изредка теряет серверный объект уничтожаемой вещи, в итоге происходит вылет.
Лечение : Попробуйте загрузить последнее сохранение.
Причина : Ошибка 1.0004 патча.
Лечение : Исправляется установкой более Новой версии патча для ТЧ.
Причина : Непись умер во время торговли или гранатометания, а движок не успел до удаления серверного объекта непися отрегистрировать его лут. Также происходит во время попытки удаления или смены владельца уже удаленного объекта.
Лечение : В death_manager.script нужно заменить строки:
Причина : Ошибка в секции иммунитета, скорее всего костюма.
Лечение : Поиском по файлам игры найти указанную секцию и проверить правильность её написания, а также её наличие впринципе.
Причина : Description и Arguments как правило разные. Вылет движковый и достаточно редкий. Случается тогда, когда движок пытается присвоить parent предмету, в данном случае device_pda23827, непесю (gar_stalker_respawn_123826), а предмет УЖЕ принадлежит ему, т.е. device_pda23827:parent() == gar_stalker_respawn_123826:id()
Лечение : 1. Найти поиском дублированные сиды и сделать их разными;
2. Добавлять секции в all.spawn исключительно с индексами превышающими максимальный в принципе в all.spawn, а не в файле. В случае удаления ситуация сложнее. Если всё же нужно избавиться от объекта в all.spawn, удаляйте его скриптом, тем самым не нарушая последовательность индексации.
Причина : Указанное ружие, в данном случае wpn_rem870short, не прописано в mp_ranks.ltx.
Лечение : Найти и исправить ошибку.
Причина : Файл level.gct не соответствует game.graph, скорее всего файлы из разных частей частей игры, т.к. возникает зачастую во время переноса локаций из одной части игры (билды в том числе) в другую.
Лечение : Проверьте соответствие файлов.
Причина : Вылет движковый и рандомный. Название класса может быть другим: O_ACTOR, S_ACTOR, AI_CROW, WP_ASHTG. Побился нет-пакет объекта при апдейте. Также, возможной причиной является использование трейнеров, ArtMoney и прочих подобных программ.
Лечение : Загрузка последнего сохранения.
Причина : Возможно ошибка в одной из .ogf моделей.
200?’200px’:»+(this.scrollHeight+5)+’px’);»> Expression : assertion failed
Function : _VertexStream::Lock
File : E:\stalker\patch_1_0004\xr_3da\R_DStreams.cpp
Line : 44
Description : (bytes_need Причина : Переполнение видеобуфера на отрисовку.
Причина : Игра не может найти указанный файл анимации камеры.
Лечение : Проверить наличие данного файла и проверить правильность написания пути до такового.
Причина : Ошибка при чтении параметров настройки анимации ходьбы. Ссылка на эту секцию указана в параметре секции непися step_params. А далее там таблица в которой, вероятнее всего и находится ошибка.
Лечение : Найти и исправить ошибку в таблице.
Причина : Не найден шейдер models\antigas_glass в библиотеке шейдеров shaders.xr.
Лечение : Добавить недостающий шейдер, либо избавиться от модели, который данный шейдер использует.
Причина : Переводчик даёт вполне адекватное определение. Но на самом деле вылет происходит по причине неопределённого состояния объекта, когда ему установлены оба флага для разрешения перехода в онлайн и оффлайн одновременно.
Лечение : Найти и исправить ошибку.
Причина : Ошибка модели какого-то объекта.
Лечение : Найти объект и либо исправить модель, либо заменить, или же удалить сам объект.
Причина : Переполнение дисковой памяти. Коварность данного вылета заключается в том, что часто вылет происходит в момент сохранения игры, и в результате сэйв будет битым.
Лечение : Освободите место на диске, если не помагает обычная загрузка последнего рабочего сохранения.
Причина : Объект, в данном случае артефакт, заспавнился (перешёл в online) за пределами АИ сетки.
Лечение : Если Вам нужно просто пройти какой-то момент в игре, то можете попробовать уменьшить радиус A-Life, посредством параметра switch_distance, пройти проблемный участок, а затем вернуть первоначальное значение параметра. Если же вы хотите избавиться от вылета, перебирайте объекты перед выходом в online и ищите нужный объект.
Причина : Игра не может открыть звуковой OGG-файл под названием sound в папке gamedata\sounds\music\.
Лечение : Проверяйте наличие файла, правильность написания пути и имени файла.
Причина : Случается когда одна из dll некорректна. Например такой вылет бывает если подсунуть в ТЧ 1.0006 xrGame.dll от другого патча.
Лечение : Если нет резервных копий, то вероятнее всего потребуется переустановка игры.
Причина : Указанный звуковой файл имеет неправильные свойства или настройки.
Лечение : Убедитесь в правильности настройки звукового файла.
Причина : Игра не понимает значения 0 в danger_ignore. Проще говоря в логике какого-то персонажа параметр danger_ignore равен нулю, либо он отрицателен, либо его вообще нету. Также может быть причина в том, что у какого-то в логике что-то неправильно указано в секции danger.
Лечение : Для исправления рекомендую перед 116 строкой (номер строки может отличаться) дописать следующий код:
Причина : Метод обращения в игре не предусмотрен. Возможно, стоит пересмотреть подход к тому или иному скрипту. Часто такое возможно, когда к серверному объекту применяют клиентские методы и наоборот.
Лечение : Найти и исправить ошибку.
Причина : Попытка выполнения арифметической операции над nil.
Лечение : Найти и исправить ошибку. Обратите внимание на строку с указанным номером, попытка сравниения числа с nil происходит именно в ней.
Причина : Происходит при попытке вызвать конструктор класса, которого не существует.
Лечение : Найти и исправить ошибку.
Причина : Ошибка также может появиться со строкой 74. Переполнение стека. Смотрим внимательно: lua_error. Ошибка возможно в скриптах.
Лечение : Загрузка последнего сохранения.
Причина : Попытка сравнения числа с nil.
Лечение : Найти и исправить ошибку. Обратите внимание на строку с указанным номером, попытка сравнения числа с nil происходит именно в ней.
Причина : Попытка получить значение таблицы по ключу nil.
Лечение : Найти и исправить ошибку. Обратите внимание на строку с указанным номером, попытка получения значения по ключу nil происходит именно в ней.
Лечение : Для поиска открывающейся круглой скобки используйте параметр plain для данной функции со значением true, он выключает возможность поиска по шаблону и в таком случае производится поиск подстроки как есть:
Причина : Попытка использовать для какого-то объекта, несуществующий метод. Зачастую путаница с серверными и клиентскими метода.
Лечение : Найти и исправить ошибку.
Причина : Причину вылета назвать достаточно трудно, вероятно это что-то глубоко движковое. Такой вылет может вызывать передача клиенсткого объекта в функцию switch_offline.
Причина : Обычная причина этих вылетов – передача некорректных значений родным функциям игры. Эти ошибки обычно возникают когда произошёл какой-то серьёзный сбой, и о таких вылетах желательно сообщать разработчикам. Если такой вылет случился желательно так же сбросить текст выше строки FATAL ERROR из лога. Если же этот вылет у вас происходит при загрузке сейва – сбросьте его разработчикам мода с логом вылета.
Лечение : Необходимо перейти в _g.script в функцию printf и перед
Причина : Игра не может найти указанный файл постпроцесса.
Лечение : Проверяйте наличие файла, правильность написания пути и имени файла.
Лечение : Игра не может найти в указаном файле (map_spots.xml) указанный элемент (sleep_pointer).
Лечение : Найти и исправить ошибку.
Причина : В указанном файлe, в данном случае gameplay\game_tasks.xml, не соответствуют открывающийся и закрывающийся теги.
Лечение : Найти и исправить ошибку. Для этого в помощь придёт любой браузер. Откройте указанный файл через него, он поможет локализовать место ошибки.
Причина : В указанном файле неправильно заданы атрибуты какого-то тега. Зачастую это написанное значение атрибута на русском языке.
Лечение : Найти и исправить ошибку. Для этого в помощь придёт любой браузер. Откройте указанный файл через него, он поможет локализовать место ошибки.
Где искать лог вылета?
За всё время существования нашего сайта, напомню, что нам уже 10 лет, как оказалось, так и никто и не сообразил, что фанатам игры, которые столкнулись с проблемами нужно что-то вроде объяснения, а где берётся лог вылета. Во всяком случае, я так и не нашёл темы, в которой об этом рассказывали.
И пускай на данный момент у нас нет людей, которые действительно разбираются в логах, не рассказать о них просто нельзя. В конце концов, не всегда же так будет? Именно для того, чтобы юзеры не искали подолгу, что такое лог вылета и где его искать, я и пишу этот «гайд»:
1. Сразу после вылета открываете любой текстовый редактор и нажимаете сочетание клавиш «Ctrl+V» или ПКМ—«Вставить», так как после вылета его лог сохраняется в буфер обмена.
2. Если же по какой-то причине это сделать не вышло, открываем диск C:, там находим папку «Пользователи»\Общие\Общие документы\, после ищем ещё одну папку, на этот раз с нужным нам сталкером (у меня это ЗП, папка называется «stalke
1.-«), открываем \logs, и текстовый документ «xray_user», где ищем последние строчки.
Полный путь второго варианта без объяснений (Windows 10):
После этого можете идти и задавать вопрос о том, что же стало причиной!
Как узнать лог вылета в сталкере
У всех вылетает S.T.A.L.K.E.R. и все пишут: «У МЕНЯ ВЫЛИТИЛ СТАЛКИР ПАМАГИТЕ. » и умные люди пишут вам что-то типа «лог в студию/лог покажи», но мы не знаем, что такое лог и как его найти тем более.
Итак, чуть терминологии.
Если у вас запары и с этим простеньким, то если вы заметили, я писал о «текстовом редакторе», это может быть не обязательно блокнот, а что-либо другое:
Word, WordPad, NotePad или любой другой редактор, в котором можно писать текст.
И так, если мы открыли это, мы прогрессируем. Поздравляю!
Теперь разбираемся, как получить лог. Нажать сразу после вылета Ctrl+V. Для тех, кто не знает, это функция вставки и, если не знаем что значит «+» (одновременное нажатие обеих клавиш).
Можем на панельке поискать слово «Вставить».
Если мы не накосячили в этом нелёгком квесте, то у нас появится текст. Этот текст и есть лог вылета. Далее бежим в темку, в который вы писали «ЧТО СТАЛКИР ВЫЛИТАЕТ» и вставляем туда лог и хорошие дядьки помогут вам решить проблему.
Если собираетесь выкладывать лог куда на форум, то не забывайте, что в большинстве случев достаточно 20-25 нижних строк.
А ещё бывают безлоговые вылеты, но это уже совсем другая история. Хотя скажу, что придётся описать «событие,» которое производит к вылету и это скорей всего укажет на файл, который нуждается в коррекции.
А так же.
Файл лога находится в:
Это при условии, что игра ставилась на диск С:\, иногда файл с логом находится внутри директории игры.
Ещё файл лога можно найти, открыв файл fsgame.ltx (он в корневой папке игры) блокнотом и посмотрев самую верхнюю строку: там написан либо полный путь до файла, либо путь относительно папки bin.