3vtiger | Дата: Четверг, 05.05.2016, 09:32 | Сообщение # 1 |
Line от 400 и более Line 400- Expression : assertion failed Function : CActorCondition::UpdateTutorialThresholds File : E:\stalker\sources\trunk\xr_3da\xrGame\ActorCondition.cpp Line : 404 Description : ai().script_engine().functor Причина: В _g.script есть набор колбеков, вызываемые движком. Это on_actor_psy, on_actor_radiation и т.д. Так вот вылет говорит о том, что один из таких колбеков не был найден. Лечение: Верните колбеки на место или верните дефолтный _g.script. 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 (т.е. вызов завершился неудачей), то возникает данный вылет. Наиболее вероятная причина - у вас отсутствуют права на чтение файла. 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. Лечение: Возможно, стоит увеличить размер файла подкачки. 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]Сталкер." И ещё, такой вылет, как говорили давно разработчики, связан с использованием "трейнеров". Expression : assertion failed Function : CLocatorAPI::archive::open File : D:\prog_repository\sources\trunk\xrCore\LocatorAPI.cpp Line : 410 Description : size>0 Причина: Вот так сюрприз - архив оказался пустым! То есть совсем пустым - размер файла в байтах равен нулю. Будьте в следующий раз аккуратнее с клавишей Delete и не открывайте без необходимости файлы для записи. Лечение: Переустановка игры должна исправить положение. 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. Expression : assertion failed Function : CResourceManager::_CreateTexture File : D:\prog_repository\sources\trunk\Layers\xrRender\ResourceManager_Resources.cpp Line : 424 Description : _Name && _Name[0] Причина: Может быть связанно с геометрией уровня (частично это подтверждается тем, что Свалка и Агропром (которые базируются на ЧН версии) работают сполне нормально, а вот Тёмная Лощина и Кордон (которые "вытянуты" из ТЧ) не запускаются и игра вылетает с этим логом). Решение: Сменить рендер. Я такой вылет получил на DirectX 9.0c, на 9.0 и статическом освещении у меня его не было. 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. Раньше вылет был наверно следствие кривых рук, уж простите, сейчас же с появлением движковых правок добавляющих новые слоты вполне естественен. Лечение: Добавьте недостающий элемент по аналогии с имеющимися. 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, файл геометрии локации и т.д. Лечение: Попробуйте загрузить последнее сохранение. Если не помогает - снизьте графические настройки игры. 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). Попытки оптимизации текстур без учета этого, приводят к существенному росту нагрузки, вплоть до вылетов... 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() 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 больше чем слот. Лечение: Найти и исправить ошибку. 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 файл на батник, появиться текстовый файл с весьма подробным описанием модели, где среди прочего будут имена костей. 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.Вообще, у этого вида вылетов долгая и захватывающая история. Как оказалось, почти ВСЕ строки в игре подвержены подобному "разукрашиванию". Не стали исключением и строки сообщений, отправляемые в чат игроками в мультиплеере. Из-за этого любой игрок получил возможность введением специальным образом заданного сообщения устроить на сервере вылет у всех игроков сразу. Expression : assertion failed Function : CKinematicsAnimated::Load File : E:\stalker\sources\trunk\xr_3da\SkeletonAnimated.cpp Line : 589 Description : set_cnt Причина: В SDK в меню Motion в поле Motion reference присоединили больше массивов анимации, чем поддерживает движок. Для ТЧ это 3 массива, для ЧН/ЗП - 4 или 5( не проверено). Лечение: Исправить количество прописанных файлов анимации у модели посредством SDK. Expression : fatal error Function : CKinematiicsAnimated::Load File : E:\stalker\sources\trunk\xr_3da\SkeletonAnimated.cpp line : 602 Description : Arguments : Can't find motion file 'monsters\zombi_animation.omf' Причина: Игра не может найти указанный файл с анимациями. Лечение: Проверьте правильность написание имени файла и его пути. Либо найдите и удалите/исправьте модель, которая использует данный файл анимаций. 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) Причина: Если в ошибке указано имя функции, то игра не может определить данную функцию в указанном файле. Причин на это три: либо её действительно нет; либо её имя написано с ошибкой; либо в некоторых случаях, функция находится ниже по коду от того места, где идёт её вызов. Если же в ошибке указано имя файла, то либо файла не существует (возможно неправильное имя файла), либо в указанном файле синтаксическая ошибка. Лечение: Найти и исправить ошибку. 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) Возможен и такой вариант вылета при отсутствующей функции Вылет ЗП: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 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 вей-поинтов. Лечение: внимательность, внимательность и еще раз внимательность... 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-шники с "чужой" локалью. Лечение: Будьте внимательнее. Expression : error handler is invoked! Function : invalid_parameter_handler File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp Line : 815 Description : Возможно повреждение игрового архива (например, возникнет, если "забыть" указать entry_point в хидере) Expression : error handler is invoked! Function : invalid_parameter_handler File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp Line : 815 Description : Причина: вылет скорее всего связан с функцией формирования лога игры, и может возникать по разным причинам, но чаще всего когда в какую то движковую функцию был передан nil или же когда в конфиге указаны пустые значения. Пример #1: Вызвать движковую функцию установки метки на карту, и забыть этой функции передать текст с описанием (nil) Пример #2: В конфиге предмета указать пустое имя "inv_name = " - при попытке взять предмет появиться вылет. Лечение: найти источник вылета и устранить его. Expression : fatal error Function : WinMain File : D:\prog_repository\sources\trunk\xrEngine\x_ray.cpp Line : 946 Description : Arguments : stack overflow Жук появляется сразу после проверки диска,где зелёная заставка, т.е игра даже не включается. Причина: Накопление очень большого объёма сейвов (У меня их было 1600,или же 3200 файлов,т.е 1.6 гигабайта(!)) Решение: удалите ПОЧТИ все свои сейвы,оставьте штуки 2-3,что бы продолжить играть. |
|