Справочник вылетов (Line 401 -)
Questions
Line 404
Expression : assertion failed Function : CActorCondition::UpdateTutorialThresholds File : E:\stalker\sources\trunk\xr_3da\xrGame\ActorCondition.cpp Line : 404 Description : ai().script_engine().functor<LPCSTR>(cb_name,fl)
Причина:
В _g.script есть набор колбеков, вызываемые движком. Это on_actor_psy, on_actor_radiation и т.д. Так вот вылет говорит о том, что один из таких колбеков не был найден.
Лечение:
Верните колбеки на место или верните дефолтный _g.script.
Line 406
Expression : assertion failed Function : CLocatorAPI::archive::open File : D:\prog_repository\sources\trunk\xrCore\LocatorAPI.cpp Line : 406 Description : hSrcFile!=INVALID_HANDLE_VALUE
При инициализации архива игра использует функцию WinAPI CreateFileA, при этом вызов выглядит примерно так:
hSrcFile = CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0);
Если при этом функция вернула значение, равное INVALID_HANDLE_VALUE (т.е. вызов завершился неудачей), то возникает данный вылет. Наиболее вероятная причина - у вас отсутствуют права на чтение файла.
Line 408
Expression : assertion failed Function : CLocatorAPI::archive::open File : D:\prog_repository\sources\trunk\xrCore\LocatorAPI.cpp Line : 408 Description : hSrcMap!=INVALID_HANDLE_VALUE
После успешного открытия файла-архива, игра пытается спроецировать его в память. Для этого используется функция CreateFileMapping, вызов которой происходит следующим образом:
hSrcMap = CreateFileMapping(hSrcFile, NULL, PAGE_READONLY, 0,0, NULL)
Вылет происходит из-за того, что попытка проецирования файла закончилась неудачно, т.е. функция возвратила значение =INVALID_HANDLE_VALUE. Возможно, стоит увеличить размер файла подкачки.
Line 410
Expression : assertion failed Function : CUILine::GetLength_inclusiveWord_1 File : E:\stalker\patch_1_0004\xr_3da\xrGame\ui\UILine.cpp Line : 410 Description : pos.word_1.exist()
Причина:
Это один из "старейших" вылетов в Сталкере ТЧ. В каком-то ui файле .xml динамично образуются "пустые" строки. Также не лишним будет проверить .xml файлы на наличие синтаксических ошибок или пустую строку текста или даже неправильный язык кодирования.
Также данный вылет возможен, когда в сообщение делаешь цветной текст и переносишь строку. Пример:
"Какой-нибудь текст.%c[255,0,200,0]\\nСталкер."
Если это произошло, "передвиньте" символ переноса следующим образом:
"Какой-нибудь текст.\\n%c[255,0,200,0]Сталкер."
И ещё, такой вылет, как говорили давно разработчики, связан с использованием "трейнеров".
[hr]
Expression : assertion failed Function : CLocatorAPI::archive::open File : D:\prog_repository\sources\trunk\xrCore\LocatorAPI.cpp Line : 410 Description : size>0
Вот так сюрприз - архив оказался пустым! То есть совсем пустым - размер файла в байтах равен нулю. Будьте в следующий раз аккуратнее с клавишей Delete и не открывайте без необходимости файлы для записи ;).
Переустановка игры должна исправить положение.
Line 422
Expression : sz<(tgt_sz-1) Function : IReader::r_string File : E:\priquel\sources\engine\xrCore\FS.cpp Line : 422 Description : Dest string less than needed.
Я бы не сказал, что вылет достаточно редкий. Причина его - движок пытается скопировать исходную строку в буфер, а размер этого буфера меньше длины копируемой строки. Рано или поздно возникает у тех, кто любит писать в одну строку конфига ОЧЕНЬ много (больше 4К) символов. Например, он прекрасно знаком любителям хитроумных скриптов на подмену секций оружия, которые запихивают все их названия в mp_ranks
Line 424
[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 и статическом освещении у меня его не было.
Line 426
Expression : xml_doc.NavigateToNode(path,index) Function : CUIXmlInit::InitDragDropListEx File : E:\stalker\sources\trunk\xr_3da\xrGame\ui\UIXmlInit.cpp Line : 426 Description : XML node not found Arguments : dragdrop_knife
Причина:
Данный вылет, в отличии от аналогичного 172, говорит более конкретно - не хватает элемента слота, в данном случае для ножа, в файле inventory_new(16).xml. Раньше вылет был наверно следствие кривых рук, уж простите, сейчас же с появлением движковых правок добавляющих новые слоты вполне естественен.
Лечение:
Добавьте недостающий элемент по аналогии с имеющимися.
Line 462
Expression : data Function : CVirtualFileReader::CVirtualFileReader File : E:\stalker\sources\trunk\xrCore\FS.cpp Line : 462 Description : ...\gamedata\textures\wpn\wpn_gauss.dds Arguments : Not enough storage is available to process this command
Причина:
Нехватка памяти для обработки указанной текстуры. Вместо текстуры может быть практически любой файл: звук, модель, all.spawn, файл геометрии локации и т.д.
Лечение:
Попробуйте загрузить последнее сохранение. Если не помогает - снизьте графические настройки игры.
Line 493
Expression : Ran out of memory Function : CRender::texture_load File : D:\prog_repository\sources\trunk\Layers\xrRenderDX10\dx10Texture.cpp Line : 493 Description : D3DX11CreateTextureFromMemory ( HW.pDevice,S->pointer(),S->length(), &LoadInfo, 0, &pTexture2D, 0 ) Arguments : d:\s.t.a.l.k.e.r. - Зов Припяти\gamedata\textures\veh\veh_gaz_22.dds
Возникает рандомно и жалуется на любые текстуры, то бишь не на какую-нибудь конкретную свежедобавленную, а вообще на любые.
Причина: ?
Решение: ?
Есть подозрение, что движок вылетает при построении мипмапов (mipmaps - масштабных копий) текстур. Чтобы уменьшить кол-во занимаемой видеопамяти (и нагрузку на движок в целом) крайне рекомендуется делать текстуры с мипмапами. Даже если текстура одной размерности (н-р 512*512) без них, все равно движок строит масштабные копии сам (256*256 ... и вплоть до 1*1). Попытки оптимизации текстур без учета этого, приводят к существенному росту нагрузки, вплоть до вылетов...
Line 502
Expression : fatal error Function : CInifile::r_section File : D:\prog_repository\sources\trunk\xrCore\Xr_ini.cpp Line : 502 Description : Arguments : Can't open section 'up_sect_fifthc_ak74u'. Please attach [*.ini_log] file to your bug report
Достаточно хитрая разновидность вылета в ЧН\ЗП, возникающая при попытке добавления нового апгрейда. Можно очень долго сидеть и чесать голову, почему из двух секций, расположенных рядом в одном файле, одна читается, а вторая - нет.
Лечение:
По умолчанию в ЧН/ЗП все конфиги апгрейдов необходимо инклудить в две(!) ветки. Первая берет начало в system.ltx, вторая - в item_upgrades.ltx.
Кроме того, можно заставить игру обходиться без инклудов файлов во вторую ветку. Для этого в файле inventory_upgrades.script необходимо найти строку
local char_ini = ini_file("item_upgrades.ltx")
и заменить её на
local char_ini = system_ini()
Line 508
Expression : 0 Function : CUICellContainer::FindFreeCell File : E:\stalker\patch_1_0004\xr_3da\xrGame\ui\UIDragDropListEx.cpp Line : 508 Description : there are no free room to place item
Причина:
Попытка вставить в слот предмет который в этот слот не влезает, т.е. у предмета inv_grid_width и inv_grid_height больше чем слот.
Лечение:
Найти и исправить ошибку.
Line 525-527
Expression : bone_id!=BI_NONE Function : SArtefactDetectorsSupport::SetVisible File : D:\prog_repository\sources\trunk\xrGame\Artefact.cpp Line : 525 Description : link
Причина:
Неправильно указано имя кости для артефакта.
Лечение:
В artefacts.ltx, в секции af_base есть параметр particles_bone=link. Это имя косточки, которая принимается за центр при проигрывании партикла. Если кость в артефакте называется по иному, например joint2, и это не указанно в секции нового арта, которая наследуется от базовой и подразумевает естественно наличие link, получаем вылет. Решается конвертированием модели арта в .object, просмотром в SDK и выяснением имени косточки с занесением в конфиг. Если "не дружите" с SDK, то можете воспользоваться вот этим perl-скриптом: ссылка, распаковываете архив и кидаете .ogf файл на батник, появиться текстовый файл с весьма подробным описанием модели, где среди прочего будут имена костей.
[hr]
Expression : npos != comma1_pos Function : CUILines::GetColorFromText File : E:\priquel\sources\engine\xrGame\ui\UILines.cpp Line : 525 Description : CUISubLine::GetColorFromText -- can't find first comma
Expression : npos != comma2_pos Function : CUILines::GetColorFromText File : E:\priquel\sources\engine\xrGame\ui\UILines.cpp Line : 526 Description : CUISubLine::GetColorFromText -- can't find second comma
Expression : npos != comma3_pos Function : CUILines::GetColorFromText File : E:\priquel\sources\engine\xrGame\ui\UILines.cpp Line : 527 Description : CUISubLine::GetColorFromText -- can't find third comma
Фактически, это - 3 разновидности одного вылета. Начать надо с того, что в игре существует возможность назначения цвета тексту путем специальной служебной последовательности символов внутри этого текста. Эта последовательность имеет вид %с[color], где color может быть либо текстовым названием цвета, либо четырьмя разделенными запятыми числами, задающими цвет в формате RGBA. Если цвет задан некорректно - то мы имеем счастье наблюдать один из вышеуказанных вылетов.
Лечение:
Найти некорректно заданный цвет, и исправить
P.S.Вообще, у этого вида вылетов долгая и захватывающая история. Как оказалось, почти ВСЕ строки в игре подвержены подобному "разукрашиванию". Не стали исключением и строки сообщений, отправляемые в чат игроками в мультиплеере. Из-за этого любой игрок получил возможность введением специальным образом заданного сообщения устроить на сервере вылет у всех игроков сразу.
Line 589
Expression : assertion failed Function : CKinematicsAnimated::Load File : E:\stalker\sources\trunk\xr_3da\SkeletonAnimated.cpp Line : 589 Description : set_cnt<MAX_ANIM_SLOT
Причина:
В SDK в меню Motion в поле Motion reference присоединили больше массивов анимации, чем поддерживает движок. Для ТЧ это 3 массива, для ЧН/ЗП - 4 или 5( не проверено).
Лечение:
Исправить количество прописанных файлов анимации у модели посредством SDK.
Line 602
Expression : fatal error Function : CKinematiicsAnimated::Load File : E:\stalker\sources\trunk\xr_3da\SkeletonAnimated.cpp line : 602 Description : <no expression> Arguments : Can't find motion file 'monsters\zombi_animation.omf'
Причина:
Игра не может найти указанный файл с анимациями.
Лечение:
Проверьте правильность написание имени файла и его пути. Либо найдите и удалите/исправьте модель, которая использует данный файл анимаций.
Line 748
Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...\gamedata\scripts\xxx.script:<номер_строки>: attempt to index global 'имя_функции|имя_файла' (a nil value)
Причина:
Если в ошибке указано имя функции, то игра не может определить данную функцию в указанном файле. Причин на это три: либо её действительно нет; либо её имя написано с ошибкой; либо в некоторых случаях, функция находится ниже по коду от того места, где идёт её вызов.
Если же в ошибке указано имя файла, то либо файла не существует (возможно неправильное имя файла), либо в указанном файле синтаксическая ошибка.
Лечение:
Найти и исправить ошибку.
[hr]
Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...- cop\gamedata\scripts\ui_si.script:383: attempt to perform arithmetic on a string value
Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...- cop\gamedata\scripts\ui_si.script:383: attempt to compare string with number
Причина:
В одном из скриптов Вы пытаетесь выполнять арифметические операции со строкой либо сравнивать её с числом .
Лечение:
Возможно, вы забыли вызвать tostring, либо вместо операции '..' (конкатенация строк) использовали '+' (сложение чисел).
Если ничего из вышеописанного вы не делали, то так как LUA - язык с динамической типизацией, вполне возможно, что что-то изменило тип вашей переменной
Уточнение:
Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...- cop\gamedata\scripts\ui_si.script:383: attempt to call global 'qwe' (a nil value)
Возможен и такой вариант вылета при отсутствующей функции
[hr]
Вылет ЗП:
[error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ...l.k.e.r. - Зов Припяти\gamedata\scripts\utils.script:355: attempt to perform arithmetic on local 't_pos' (a nil value) stack trace: 0023:69737365 DINPUT8.dll
Причина: как правило, ошибки в описаниях анимаций в точках look вей-поинтов.
Лечение: внимательность, внимательность и еще раз внимательность...
Line 764
Expression : error handler is invoked! Function : handler_base File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp Line : 764 Description : application is aborting
Возникает на этапе загрузки игры.
Возможная причина:
Что-то намудрили с анимациями объекта. Возможно, число костей в объекте не соответствует числу костей в анимации (например, прописан путь к чужому ОМФу). Также может возникать, если перемудрить с настройками костей в АЕ.
Кроме того, если нам посчастливится (например, я наблюдал это при попытке экспортить ОМФ с худовыми анимациями рук с использованием "родной" ЧНовской их модели, пропущенной через всем известным "конвертер всего и вся"), то можем увидеть такое:
Expression : fatal error Function : mem_usage_impl File : E:\priquel\sources\engine\xrCore\memory_usage.cpp Line : 156 Description : Arguments : bad node in heap
и даже такое:
Expression : fatal error Function : out_of_memory_handler File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp Line : 336 Description : Arguments : Out of memory. Memory request: 4063232 K
Кстати, вызывать вылеты "Out of memory" может и некорректно собранный игровой db-архив. Причина может быть в файлах, подвергшихся паковке. Например, будем получать вылет по памяти при попытке упаковать файлы револьвера GP100 из Gosuke Weapon Mod для ЧН. Другой пример - когда-то давно в ТЧ мной было замечено подобное поведение при попытке подсунуть игре db-шники с "чужой" локалью.
Лечение:
Будьте внимательнее.
Line 815
Expression : error handler is invoked! Function : invalid_parameter_handler File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp Line : 815 Description :
Возможно повреждение игрового архива (например, возникнет, если "забыть" указать entry_point в хидере)
[hr]
[error]Expression : error handler is invoked! [error]Function : invalid_parameter_handler [error]File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp [error]Line : 815 [error]Description :
Причина: вылет скорее всего связан с функцией формирования лога игры, и может возникать по разным причинам, но чаще всего
когда в какую то движковую функцию был передан nil или же когда в конфиге указаны пустые значения.
Пример #1: Вызвать движковую функцию установки метки на карту, и забыть этой функции передать текст с описанием (nil)
Пример #2: В конфиге предмета указать пустое имя "inv_name = " - при попытке взять предмет появиться вылет.
Лечение: найти источник вылета и устранить его.
Line 946
Expression : fatal error Function : WinMain File : D:\prog_repository\sources\trunk\xrEngine\x_ray.cpp Line : 946 Description : <no> Arguments : stack overflow
Жук появляется сразу после проверки диска,где зелёная заставка, т.е игра даже не включается.
Причина
Накопление очень большого объёма сейвов (У меня их было 1600,или же 3200 файлов,т.е 1.6 гигабайта(!))
Решение
удалите ПОЧТИ все свои сейвы,оставьте штуки 2-3,что бы продолжить играть.