Причины вылетов игры (разбираем логи) — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Причины вылетов игры (разбираем логи) — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
м (Откат правок 5.228.2.203 (обсуждение) к версии 176.73.208.222)
(Ваш первый заработок 60 минут. Без рисков законно!)
Строка 1: Строка 1:
Привет всем! Игра S.T.A.L.K.E.R., а конкретно сам движок X-Ray довольно капризный, и зачастую как в процессе модификации, так и во время игры игра «вылетает». Чтобы мы знали причину вылета, движок нам оставляет лог вылета. Лог вылета можно посмотреть несколькими способами:
+
Пройдите 1 регистрацию, сделайте 2 действия
* В текстовом редакторе нажать Ctrl+V (Вставить)
+
и получайте от 8950 рублей каждые сутки в автоматическом режиме.  
* Посмотреть лог игры включая лог вылета в файле xray_имя_пользователя.log в папке C:\Documents and Settings\All Users\Документы\STALKER-***\logs
+
* Посмотреть непосредственно в окне багтрекера (только в ЧН и ЗП).
+
Мы гарантируем:  
Ну приступим. Начнём с простых:
+
- Первый заработок в течении 60 минут.  
--------------
+
- Стабильный доход 24 часа в сутки.  
<pre>
+
- Поступление денег без задержек.  
Expression    : wave&&wave->length()
+
- Для России, стран СНГ и Европы.  
Function      : CSoundRender_Source::LoadWave
+
- Без вложений и установки ПО.  
File          : E:\stalker\patch_1_0004\xrSound\SoundRender_Source_loader.cpp
+
- Специально для новичков и людей без опыта.  
Line          : 65
+
   
Description  : Can't open wave file:
+
Более подробная информация у нас на сайте. ( prosto.zarplatt.ru )
Arguments    : d:\stalker\gamedata\sounds\music\sound.ogg
+
</pre>
+
Здесь игра не может открыть звуковой OGG-файл под названием sound в папке d:\stalker\gamedata\sounds\music\
+
--------------
+
<pre>
+
Expression    : fatal error
+
Function      : CRender::texture_load
+
File          : E:\stalker\patch_1_0004\xr_3da\xrRender\Texture.cpp
+
Line          : 295
+
Description  : <no expression>
+
Arguments    : Can't find texture 'act\act_corp_monolit'
+
</pre>
+
Не может найти текстуру act_corp_monolit из папки textures\act
+
--------------
+
<pre>
+
Expression    : fatal error
+
Function      : CModelPool::Instance_Load
+
File          : E:\stalker\patch_1_0004\xr_3da\xrRender\ModelPool.cpp
+
Line          : 111
+
Description  : <no expression>
+
Arguments    : Can't find model file 'physics\mesh.ogf'.
+
</pre>
+
Не найдена трёхмерная OGF-модель mesh.ogf из папки meshes\physics.
+
--------------
+
<pre>
+
Expression    : SG
+
Function      : CRender::model_CreateParticles
+
File          : E:\stalker\patch_1_0004\xr_3da\xrRender_R2\r2.cpp
+
Line          : 330
+
Description  : Particle effect or group doesn't exist
+
Arguments    : hit_fx\hit_water_00
+
</pre>
+
Не найдена система частиц (партикл) hit_water_00 в директории hit_fx файла particles.xr (подробно опишу позже).
+
--------------
+
<pre>
+
Expression    : fatal error
+
Function      : CResourceManager::_GetBlender
+
File          : E:\stalker\patch_1_0004\xr_3da\ResourceManager.cpp
+
Line          : 49
+
Description  : <no expression>
+
Arguments    : Shader 'models\antigas_glass' not found in library.
+
</pre>
+
Не найден шейдер models\antigas_glass в библиотеке шейдеров.
+
--------------
+
<pre>
+
Expression    : fs
+
Function      : CResourceManager::_CreateVS
+
File          : E:\stalker\patch_1_0004\xr_3da\ResourceManager_Resources.cpp
+
Line          : 185
+
Description  : shader file doesnt exist
+
Arguments    : d:\stalker\gamedata\shaders\r2\deffer_impl_flat.vs
+
</pre>
+
Не найден файл шейдера deffer_impl_flat.vs.
+
<tt>--Added by Герр. Роммель
+
Да нет. Тут проблема вся в том, что неправильно закомпилился шейдер, при компиляции уровня на качестве, более высоком чем Draft. Нужно скачивать исправление шейдеров от товарища Haron.
+
Для ЗП (ЧН) это может ещё быть из-за отсутствия thm-ок для текстур террейна уровня!</tt>
+
--------------
+
<pre>
+
Expression : fatal error
+
Function : out_of_memory_handler
+
File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp
+
Line : 336
+
Description : <no expression>
+
Arguments : Out of memory. Memory request: 55965 K
+
</pre>
+
Нехватка оперативной памяти.
+
--------------
+
<pre>
+
Expression : fatal error
+
Function : CInifile::r_string
+
File :E:\stalker\sources\trunk\xrCore\Xr_ini.cpp
+
Line : 352
+
Description : <no expression>
+
Arguments : Can't find variable ammo_mag_size in [wpn_addon_grenade_launcher]
+
</pre>
+
Не найдена переменная ammo_mag_size в секции [wpn_addon_grenade_launcher].
+
--------------
+
<pre>
+
Expression    : fatal error
+
Function      : CScriptEngine::lua_error
+
File          : D:\xray-svn\xr_3da\xrGame\script_engine.cpp
+
Line          : 74
+
Description  : <no expression>
+
Arguments    : LUA error: C stack overflow
+
</pre>
+
Переполнение стека. Смотрим внимательно: lua_error. Ошибка, возможно, в скриптах.
+
--------------
+
<pre>
+
Expression : vertex || show_restrictions(m_object)
+
Function : CPatrolPathManager::select_point
+
File : E:\stalker\sources\trunk\xr_3da\xrGame\patrol_path_manager.cpp
+
Line : 155
+
Description : any vertex in patrol path [sniper_3_walk] in inaccessible for object [stalker_0002]
+
</pre>
+
Какая то вершина (вейпоинт) пути sniper_3_walk стоит в неположенном месте (например не на аи-сетке). Объект stalker_0002 (в данном случае сталкер) который якобы двигался по пути sniper_3_walk попал на эту точку, а заодно ушёл за аи-сетку. Этого движок не терпит.
+
 
+
То же самое произойдет если координаты(вейпоинт) пути sniper_3_walk совпадет с координатами места, где НПС запрещено находиться, будь то рестриктор или аномалия в схеме обхода аномалий.
+
Также этот вылет наблюдается при попытке отправить НПС за пределы места работ параметр out_rest = "имя_рестриктора" в файле загрузки работ гулага. Попробуйте любого сталкера из лагеря новичков отправить, допустим, к остановке - получите этот самый вылет.
+
--------------
+
<pre>
+
Expression : e_entity
+
Function : xrServer::Process_event_reject
+
File : E:\stalker\sources\trunk\xr_3da\xrGame\xrServer_process_event_reject.cpp
+
Line : 12
+
Description : entity not found. id_parent=7540 id_entity=44047 frame=2075050
+
</pre>
+
Возникают иногда произвольно при смерти неписей. Причина — движок, отрабатывая лут, изредка теряет серверный объект уничтожаемой вещи, в итоге происходит вылет.
+
--------------
+
<pre>
+
Expression : fatal error
+
Function : CScriptEngine::lua_error
+
File : D:\xray-svn\xr_3da\xrGame\script_engine.cpp
+
Line : 74
+
Description : <no expression>
+
Arguments : LUA error: e:\stalker\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)
+
</pre>
+
Ошибка распространённая. На первый взгляд кажется, что ошибка как раз в скриптах, но всё может быть иначе. В одной из пиратских версий игры этот вылет наблюдается особенно часто из-за криво модифицированного файла "XR_3DA.exe". Если же вы уверены, что у вас лицензионная версия игры, можно попробовать сделать так: открываем файл _g.script блокнотом, закомменчиваем 20 строку (ставим перед строкой --) и идём к тому месту где поймали вылет. Так мы получим более развёрнутый ответ.
+
[[Участник:Призрак]]: Автор прав в том что вылет очень распространен, но так его исправлять нельзя, так как nil передается в эту функцию только при каком-то форс-мажоре. Поэтому необходимо перейти в _g.script в функцию printf и перед log1(string.format(fmr,..)) дописать: get_console():execute("load "..fmt). После этого запустить еще раз игру и посмотреть при передачи какой строки игра вылетает. Потом найти эту строку в скриптах игры и прикинуть почему аргумент (у нас это аргумент №2 (bad argument #2)) равен nil.
+
 
+
 
+
--------------
+
<pre>
+
Expression    : assertion failed
+
Function      : _VertexStream::Lock
+
File          : E:\stalker\patch_1_0004\xr_3da\R_DStreams.cpp
+
Line          : 44
+
Description  : (bytes_need<=mSize) && vl_Count
+
</pre>
+
Проблема возникает при убийстве НПС\мутанта. Типичный вылет по нехватке ресурсов.
+
[[Участник:Призрак]] - Встречается в основном на больших локациях. Но не на всех. На болотах из ЧН такой вылет встречается, а вот с локации aver от Кости V такого вылета нет. Однако для данного вылета есть таблетка, в виде правленого экзешника. Искать на АМК-форуме.
+
--------------
+
<pre>
+
Expression    : fatal error
+
Function      : IRender_Visual::Load
+
File          : E:\stalker\patch_1_0004\xr_3da\FBasicVisual.cpp
+
Line          : 58
+
Description  : <no expression>
+
Arguments    : Invalid visual
+
</pre>
+
Неправильный визуал (модель) НПС.
+
--------------
+
<pre>
+
Expression    : !phrase_dialog->m_PhraseVector.empty()
+
Function      : CPhraseDialog::SayPhrase
+
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\PhraseDialog.cpp
+
Line          : 140
+
Description  : No available phrase to say, dialog[esc_dialog]
+
</pre>
+
В диалоге esc_dialog нет доступной для отображения фразы (скажем, все заткнуты инфопоршенами).
+
--------------
+
<pre>
+
Expression    : motion_ID.valid()
+
Function      : CKinematicsAnimated::ID_Cycle
+
File          : D:\prog_repository\sources\trunk\Layers\xrRender\SkeletonAnimated.cpp
+
Line          : 210
+
Description  : ! MODEL: can't find cycle:
+
Arguments    : death_init
+
</pre>
+
Игра не нашла в модели трёхмерную анимацию с именем death_init.
+
 
+
--------------
+
--------------
+
* Автор статьи — '''Pihan13'''
+
* Дополнил статью — '''Fireman3000'''
+
* Частично использовалась информация с сайта http://forum.stalker-simbion.ru/
+
 
+
<center> '''Не стесняемся — дополняем, если знаем о чём идёт речь.''' </center>
+
 
+
Дополнение к статье(От Fireman3000):
+
Извините, если я где-нибудь неправильно пишу. Уж не родился я Колмогором :(
+
 
+
--------------
+
<pre>
+
Expression    : fatal error
+
Function      : CScriptEngine::lua_error
+
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
+
Line          : 73
+
Description  : <no expression>
+
Arguments    : LUA error: ...hadow of chernobyl\gamedata\scripts\xr_danger.script:116: attempt to index field 'ignore_types' (a nil value)
+
</pre>
+
Причина вылета в том что игра не понимает значения 0 в danger_ignore.Проще говоря в логике какого то персонажа параметр danger_ignore = 0 либо в минусовом значении. Либо его вообще нету
+
 
+
P.S. Также может быть причина в том, что в логике у какого-то АИ что-то неправильно указано. Для исправления рекомендую вставить строчку перед 116: get_console():execute(self.object:name()). То имя в логе, которое будет последним после вылета, указывает на персонажа с кривой логикой. --[[Участник:Rekongstor|Rekongstor]] 14:01, 2 июня 2011 (UTC)
+
--------------
+
 
+
--------------
+
<pre>
+
Expression    : fatal error
+
Function      : CInifile::r_string
+
File          : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp
+
Line          : 352
+
Description  : <no expression>
+
Arguments    : Can't find variable class in [test_no_klass_npc]
+
</pre>
+
Не найден класс персонажа. Возможно, НПС не прописан под своим классом в gamedata\npc_profile.xml, либо в creatures\spawn_section.ltx, либо в gameplay\character_desc.xml
+
 
+
--------------
+
 
+
--------------
+
<pre>
+
Expression    : fatal error
+
Function      : CInifile::r_section
+
File          : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp
+
Line          : 342
+
Description  : <no expression>
+
Arguments    : Can't open section 'bandage_test_kick1'
+
</pre>
+
Игра не может найти секцию. Это может быть предмет, НПС и многое другое. Возможно, вы написали название с ошибками. Либо когда добавляли его в: продажу, скрипт, НПС , выпадение из НПС, а в редких случаях это может быть иммунитет чего либо(определить потом трудно). Часто такое бывает связано с названием секции.
+
 
+
--------------
+
 
+
--------------
+
<pre>
+
Expression    : fatal error
+
Function      : CInifile::r_string
+
File          : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp
+
Line          : 352
+
Description  : <no expression>
+
Arguments    : Can't find variable remove_time in [vehicle_btr]
+
</pre>
+
Не найдена переменная remove_time в секции [vehicle_btr]. А в данном случае ошибка в том что если вы делали предмет как физическую модель(то бишь, которую нельзя использовать, говорить и вообще он похож на декорации типа деревьев, столов и прочего хлама) то необходимо указывать remove_time в его секции.
+
 
+
--------------
+
 
+
--------------
+
<pre>
+
Expression    : fatal error
+
Function      : CScriptEngine::lua_error
+
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
+
Line          : 73
+
Description  : <no expression>
+
Arguments    : LUA error: ...dow of chernobyl\gamedata\scripts\test_kick.script:34: attempt to call method 'section' (a nil value)
+
</pre>
+
Метод обращения в игре не предусмотрен. Возможно, стоит пересмотреть подход к тому или иному скрипту.
+
 
+
--------------
+
 
+
--------------
+
<pre>
+
Expression    : rpoints[0].size()
+
Function      : game_sv_Deathmatch::Create
+
File          : D:\prog_repository\sources\trunk\xrGame\game_sv_deathmatch.cpp
+
Line          : 99
+
Description  : rpoints for players not found
+
</pre>
+
На мультиплеерной карте не найдены точки респавна игроков. В SDK должен быть красный пацанчик. Настроить Team = 0
+
 
+
--------------
+
 
+
--------------
+
 
+
<pre>Expression    : fatal error
+
Function      : xrServer::Process_update
+
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_process_update.cpp
+
Line          : 37
+
Description  : <no expression>
+
Arguments    : Beer from the creator of 'WP_SHOTG'</pre>
+
 
+
Такое иногда бывает, когда ты (ГГ) или НПС заряжает дробовик или другое оружие со значением tri_state_reload = true.
+
Это глюк. в игре что-то сбивается, и когда у дробовика максимальное количество заряженных патронов скажем 6, он заряжается за 6 и дальше.. дальше.. дальше.. и так пока не произойдёт вылет с вышеуказанным логом. вылет не значительный и редкий, но если он случается слишком часто, можно в конфигах всех дробовиков и ружей поменять значение tri_state_reload = true на tri_state_reload = false.
+
 
+
--------------
+
 
+
--------------
+
 
+
<pre>Expression    : fatal error
+
Function      : CInifile::r_string
+
File          : D:\prog_repository\sources\trunk\xrCore\Xr_ini.cpp
+
Line          : 477
+
Description  : <no expression>
+
Arguments    : Can't find variable bound_rect in [level_map]</pre>
+
 
+
Такой лог бывает когда подключаешь локацию из ТЧ в ЗП. Причина проста - в ЗП уровнях файл строчка bound_rect пишется в файле gamedata\levels\имя_уровня\level.ltx, а в ТЧ строка bound_rect для каждого уровня непосредственно в файле gamedata\config\game_maps_single.ltx ...
+
<br /> Исправить просто, нужно изменить файл gamedata\levels\имя_уровня\level.ltx в подключенной локации, просто перенести строку bound_rect из game_maps_single.ltx в level.ltx перед строчкой texture. 
+
 
+
--------------
+
 
+
--------------
+
 
+
By Призрак
+
<pre>Expression : hGame
+
Function : CEngineAPI::Initialize
+
File : E:\stalker\patch_1_0004\xr_3da\EngineAPI.cpp
+
Line : 65
+
Description : Game DLL raised exception during loading or there is no game DLL at all </pre>
+
Случается когда одна из dll некорректна. Например такой вылет бывает если подсунуть в ТЧ 1.0004 xrGame от 6 патча.
+
------------------
+
 
+
<pre>Expression    : assertion failed
+
Function      : CInventory::Eat
+
File          : E:\stalker\sources\trunk\xr_3da\xrGame\Inventory.cpp
+
Line          : 892
+
Description  : pIItem->m_pCurrentInventory==this</pre>
+
Вылет встречается только на 6 патче при попытке хаванья из трупа. Ищите, исправленную Kolmogor'om, xrGame.dll в Интернете
+
-----------------
+
<pre>[error]Expression    : error handler is invoked!
+
[error]Function      : invalid_parameter_handler
+
[error]File          : E:\stalker\sources\trunk\xrCore\xrDebugNew.cpp
+
[error]Line          : 804
+
[error]Description  : </pre>
+
Данный вылет бывает когда у какого либо из объектов установлено некорректное значение (читал, сам не получал его)
+
Или же если данный вылет происходит при вызове класса, то проблема в том что в методе __init() класса прописано super()
+
-----------------
+
<pre>Expression : !m_error_code
+
Function : raii_guard::~raii_guard
+
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
+
Line : 748
+
Description : d:\stalker cop\gamedata\scripts\bind_stalker.script:231: attempt to index global 'ИМЯ_ФАЙЛА' (a nil value)</pre>
+
Вылет происходит в двух случаях - когда скрипт пытается вызвать функцию из несуществующего файла или когда в файле допущена синтаксическая ошибка.
+
-----------------
+
<pre>Expression    : fatal error
+
Function      : CScriptEngine::lua_error
+
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
+
Line          : 73
+
Description  : <no expression>
+
Arguments    : LUA error: attempt to call a nil value</pre>
+
Происходит при попытке вызвать класс, которого не существует
+
-----------------
+
 
+
Небольшой пример из практики по определению ошибки в особых случаях(для начинающих):
+
Игра зависла, картинка на экране не меняется, на Ctrl + Alt+ Delete не реагирует. Только "Холодная перезагрузка" reset. Но при этом обычно в логе нет записи и обычным Ctrl + V ошибку не увидеть.
+
Я пользуюсь программой Punto Switcher. Есть в ней опция "дневник", она ведёт запись всех нажатий клавиш и по нажатию сочетаний клавиш содержимое памяти может записывать в дневник.
+
теперь когда игра зависла и картинка на экране не меняется, нажимаете Ctrl + Alt+ Delete. Внешне ничего не изменится, но ОС будет реагировать
+
на клавиши, нажимаете сочетание клавиш "записать в дневник". Делаете перезагрузку, открываете дневник - Ваша ошибка записана.
+
"дядя Саша"
+
--------------
+
 
+
--------------
+
By tracker.
+
 
+
<pre>Expression    : bone_id!=BI_NONE
+
Function      : SArtefactDetectorsSupport::SetVisible
+
File          : D:\prog_repository\sources\trunk\xrGame\Artefact.cpp
+
Line          : 525
+
Description  : link</pre>
+
 
+
Возникает при создании или добавлении чужих артефактов. В artefacts.ltx, в секции af_base есть параметр particles_bone=link. Это имя косточки, которая принимается за центр при проигрывании партикла. Если кость в артефакте называется по иному, например joint2, и это не указанно в секции нового арта, которая наследуется от базовой и подразумевает естественно наличие link, получаем вылет. Решается конвертированием модели арта в .object, просмотром в sdk и выяснением имени косточки с занесением в конфиг.
+
--------------
+
 
+
--------------
+
Безлоговый вылет.
+
--------------
+
Вылет, при котором лог отсутствует.
+
Причины такого вылета:
+
 
+
1.
+
Безлоговые вылеты бывают в основном из-за завышенных настроек видео.
+
Решение:
+
В папке с игрой открыть папку gamedata, папку config, в ней файл alife, открыть любым текстовым редактором (блокнотом, или лучше word pad'ом) и найти строку switch distance = и изменить значение на 5, сохранить изменения.
+
 
+
Это только одна (не сильно вероятная) причина безлогового вылета. если вы знаете ещё одну причину, пожалуйста напишите здесь.
+
 
+
2. Вторая причина неправильно указано название пути в логике НПС или он полностью отсутствует в файле way_ all.spawn. Вылетать будет когда дойдёт время до спавна этого НПС.(дС)
+
 
+
3. Также, безлоговые вылеты происходят из-за ошибок в диалогах.
+
--------------
+
Expression    : error handler is invoked!
+
Function      : invalid_parameter_handler
+
File          : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp
+
Line          : 815
+
Description  :
+
 
+
--------------
+
--------------
+
Вылет заканчивающийся строкой, то что выше не указываю роли не играет, здесь роль играет только "bad argument #3"
+
<pre>
+
  bad argument #3 to 'format' (string expected, got no value)
+
</pre>
+
 
+
Если это появилось значит у Вас ошибка в файле с расширением .ltx (обращаю внимание, не путать с файлами .script), которая находится между [....] квадратными скобками в файле. Это может быть секция предмета, секция логики, секция пути файла way_,  т.е. там где присутствуют квадратные скобки.(дС)
+
 
+
 
+
[[Категория:FAQ]]
+

Версия 16:49, 27 января 2017

Пройдите 1 регистрацию, сделайте 2 действия и получайте от 8950 рублей каждые сутки в автоматическом режиме.

Мы гарантируем: - Первый заработок в течении 60 минут. - Стабильный доход 24 часа в сутки. - Поступление денег без задержек. - Для России, стран СНГ и Европы. - Без вложений и установки ПО. - Специально для новичков и людей без опыта.

Более подробная информация у нас на сайте. ( prosto.zarplatt.ru )

Другие места
LANGUAGE