Перейти к контенту

Справочник вылетов (Line 401 -)



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,что бы продолжить играть.


×
×
  • Создать...