Тема-справочник по вылетам S.T.A.L.K.E.R в большей степени ориентирован на чистый ТЧ, но в большинстве случаев причина и решение вылета одинакова для всех частей.
Информация собиралась со всего интернета, посему указывать источники не вижу смысла, если кого обидел - прошу прощения.
Файл лога находится в папке путь к которой прописан в качестве параметра app_data_root в файле fsgame.ltx, который находится в корневой директории игры. В конце файла .log, в случае вылета, после строк FATAL ERROR сохраняется описание ошибки (к сожалению в большинстве случаев не совсем очевидное), по которой можно попытаться определить причину вылета и исправить её. Если же после вылета .log файл пуст, то определить причину вылета становиться практически невозможным.
Поскольку список вылетов весьма обилен, то предлагаю небольшую рекомендацию того, как быстрее и эффективнее найти именно то, что Вам нужно, при условии, что оно здесь вообще есть.
Открываете спойлера всех частей. Открываете поиск в браузере (Ctrl F) и введите неизменяемое выражение из строк вылета. Например, если у Вас случился вылет Can't find texture 'act\act_corp_monolit', то не нужно вводить в поиске название текстуры, с 99% гарантией говорю, что таковой здесь нет, из-за чего поиск ничего не найдёт. Введите выражение "Can't find texture" - это движковая запись и она никогда не изменится. Тоже самое касается остального: моделей, звуков, шейдеров, партиклов, имён файлов, функций и секции и т.д. Также избегайте табуляции в строке поиска - форум не распознаёт её и преобразует в пробелы, таким образом поиск также ничем не увенчается. Либо Вы можете просмотреть все вылеты подряд. Для облегчения поиска вылеты расположены в порядке возрастания значения строки Line в логе.
Данный справочник не гарантирует того, что Вы найдёте решение проблемы (хотя я на это очень надеюсь), так как указанные причины и способы лечения могут не соответствовать истинной причине вылета.
Пожалуйста, если Вы наткнулись на вылет, которого нет в данной теме - не поленитесь сообщить об этом здесь. Возможно кому-то в дальнейшем это поможет решить свою проблему. Также буду рад любому справедливому замечанию касательно содержимого выше.
Также прошу не писать в данной теме уже те вылеты, которые здесь есть, по причине того, что Вы не понимаете чего-то. Не нужно писать сюда и посты с тем, что у Вас вылетает какой-то мод, с каким-то логом. Зачастую такой вылет скриптовый и никому кроме Вас он не нужен, лучше будет, если Вы обратитесь к разарботчикам данного мода. Не нужно писать всякие любезности, для этого есть личка.
ПОЖАЛУЙСТА, НЕ ЗАХЛАМЛЯЙТЕ ТЕМУ!
В противном случае буду жаловаться на подобные посты администрации форума, без каких-либо угрызений совести.
P.S. Поскольку форум ограничивает размер текста в сообщениях, поэтому пришлось разбить весь справочник на несколько постов.
Сообщение отредактировал ColR_iT - Четверг, 25.07.2013, 17:34
Причина: Данный вылет бывает когда у какого либо из объектов установлено некорректное значение (возможно) Или же если данный вылет происходит при вызове конструктора класса, то проблема в том что в методе __init() класса прописано super(). Подобный вылет говорит ещё о том, что в игре инициализируется некий объект у которого в параметрах присутствует некорректное значение (например нулевое).
Лечение: Искать в конфигах некорректно прописанную строку. Ошибка очень редка и без раб.сэйва, на котором эта ошибка воспроизводится, устранить ее не представляется возможным.
Если не затруднит подскажите пожалуйста в каких конфигах искать? и если возможно как найти нужную строку, заранее спасибо...
WolfHeart, у меня 20-я строка, но она не изменялась. ----------------------------------------------------------------------
19 function printf(fmt,...) 20 log(string.format(fmt,...)) 21 end
------------------------------- Может он быть спровоцирован тем, что я ниже дописал дополнительную функцию, которая выглядит так:
function dbglog(fmt,...) local msg = string.format(fmt, ...) local msg_no_ws = string.gsub(msg, "%s", "_") get_console():execute("dbg:" .. msg_no_ws) end она дает более расширенный лог вылета. Эту функцию я вставил тут:
-- Крешнуть игру (после вывода сообщения об ошибке в лог) function abort(fmt, ...) local reason = string.format(fmt, ...) assert("ERROR: " .. reason) printf("ERROR: " .. reason) dbglog("%s", reason) - эту строку вставил printf("%s") end
oleg19966, вот этот dbglog обзови printf,только оригинальную функцию закомменти,может что внятное будет в логе. По-хорошему,надо искать в скриптах,где эта функция вызывается,что именно передается в функцию как nil и там уже смотреть.Выведи в лог просто fmt,если передается не просто аргументом,а какой-нибудь прописанной строчкой-по ней можно будет найти
Сообщение отредактировал arrakis_29 - Вторник, 04.02.2020, 00:43
Может, хоть тут мне смогут помочь? Здравствуйте! У меня проблема - при переходе на локацию происходит безлоговый вылет. Я сделал свою локацию, точнее сделал terrain в blender и на этой основе начал работу. Сначала компилировал в Draft качестве, но в самом Сталкере на terrain-е не было шедеров, которые я назначил, то есть было такое мыло, хотя в Level Editore все отображалось, а в основном, все отлично работало и без вылетов! Обратился с проблемой с шейдерами в Вопросницу, мне подсказали несколько моментов, в чем может быть проблема. Одна из них это собственно компиляция в Draft качестве. Кроме настроек качества компиляции я ничего не менял и до этого все работало! В итоге: скомпилировал в качестве по-лучше, кинул локацию в Сталкер, запускаю и при переходе на эту локацию (спавн у меня на Кордоне, а Level Chenger до этого отлично работал) у меня происходить безлоговый вылет, то есть лог полностью пустой.
P.S. Различные .thm файлы есть, маска для terrain и файл shaders_xrlc.xr тоже. Шейдер тоже был назначен. Очень прошу помогите!
UPD: ах, да! Это все на Зов Припяти.
Сообщение отредактировал AziatkaVictor - Вторник, 04.02.2020, 01:00
Помогите с вылетами на сборке Stason`a Вот логи ошибки: :Expression : <no expression> Function : CScriptEngine::lua_error File : ..\xrServerEntities\script_engine.cpp Line : 189 Description : fatal error Arguments : LUA error: ...r. - call of chernobyl\gamedata\scripts\sim_smart.script:4390: attempt to index global 'sim_brain' (a nil value)
СДК 0.7 Не буду говорить что достоверно 100%, но мне помогло. Когда существует одна вершина или две соединены в линию, не представляя из себя полигона. Их исправление, либо удаление избавило от крэша СДК при загрузке модели.
Нашел на АМК форуме вот такой ответ по причине и решению:
Цитата
[error]Expression : assertion failed [error]Function : CResourceManager::_CreateTexture [error]File : D:\prog_repository\sources\trunk\Layers\xrRender\ResourceManager_Resources.cpp [error]Line : 424 [error]Description : _Name && _Name[0] Причина: может быть связанно с геометрией уровня (частично это подтверждается тем, что Свалка и Агропром (которые базируются на ЧН версии) работают сполне нормально, а вот Тёмная Лощина и Кордон (которые "вытянуты" из ТЧ) не запускаются и игра вылетает с этим логом). Решение: Сменить рендер. Я такой вылет получил на DirectX 9.0c, на 9.0 и статическом освещении у меня его не было.
Но кажется опытным путем нашел более точное объяснение: Вылет случился из-за *.thm текстур от ТЧ, в ЗП и ЧН они иные. Вылет исчез после удаления из папки текстур *.thm файлов от ТЧ.
Сообщение отредактировал N1kname0000 - Среда, 26.02.2020, 17:38
Всем привет. В чём может быть причина такого вылета в Припяти: ... ! Unknown command: ERROR:_[XR_PATROL]_attempt_to_add_mor_then_7_npc._[pri_respawn_freedom15029] ! Unknown command: dbg:[XR_PATROL]_attempt_to_add_mor_then_7_npc._[pri_respawn_freedom15029]
FATAL ERROR
[error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...alker shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)
stack trace:
Я так понимаю вылет из-за того, что спавнится больше 7-ми свободовцев, но распаковав алл.спавн я вижу что в респавне написано max_spawn = 2. Что за дела?
Добавлено (28.02.2020, 00:04) --------------------------------------------- Короче, такая фигня не только со свободой, а и с военными и с долгом.
Добавлено (03.03.2020, 17:44) --------------------------------------------- Нашёл костыль для проблемы, нужно поэкспериментировать с min_count и max_count. Или попробовать закоментить их;