Arguments lua error stack overflow

Привет всем! Игра S.T.A.L.K.E.R., а конкретно сам движок X-Ray довольно капризный, и зачастую как в процессе модификации, так и во время игры игра «вылетает». Чтобы мы знали причину вылета, движок нам оставляет лог вылета. Лог вылета можно посмотреть несколькими способами:

Привет всем! Игра S.T.A.L.K.E.R., а конкретно сам движок X-Ray довольно капризный, и зачастую как в процессе модификации, так и во время игры игра «вылетает». Чтобы мы знали причину вылета, движок нам оставляет лог вылета. Лог вылета можно посмотреть несколькими способами:

  • В текстовом редакторе нажать Ctrl+V (Вставить)
  • Посмотреть лог игры включая лог вылета в файле xray_имя_пользователя.log в папке C:Documents and SettingsAll UsersДокументыSTALKER-***logs
  • Посмотреть непосредственно в окне багтрекера (только в ЧН и ЗП).

Ну приступим. Начнём с простых:


Expression    : wave&&wave->length()
Function      : CSoundRender_Source::LoadWave
File          : E:stalkerpatch_1_0004xrSoundSoundRender_Source_loader.cpp
Line          : 65
Description   : Can't open wave file:
Arguments     : d:stalkergamedatasoundsmusicsound.ogg

Здесь игра не может открыть звуковой OGG-файл под названием sound в папке d:stalkergamedatasoundsmusic


Expression    : fatal error
Function      : CRender::texture_load
File          : E:stalkerpatch_1_0004xr_3daxrRenderTexture.cpp
Line          : 295
Description   : <no expression>
Arguments     : Can't find texture 'actact_corp_monolit'

Не может найти текстуру act_corp_monolit из папки texturesact


Expression    : fatal error
Function      : CModelPool::Instance_Load
File          : E:stalkerpatch_1_0004xr_3daxrRenderModelPool.cpp
Line          : 111
Description   : <no expression>
Arguments     : Can't find model file 'physicsmesh.ogf'.

Не найдена трёхмерная OGF-модель mesh.ogf из папки meshesphysics.


Expression    : SG
Function      : CRender::model_CreateParticles
File          : E:stalkerpatch_1_0004xr_3daxrRender_R2r2.cpp
Line          : 330
Description   : Particle effect or group doesn't exist
Arguments     : hit_fxhit_water_00

Не найдена система частиц (партикл) hit_water_00 в директории hit_fx файла particles.xr (подробно опишу позже).


Expression    : !m_bAutoRemove
Function      : CParticlesObject::Init
File          : D:prog_repositorysourcestrunkxrGameParticlesObject.cpp
Line          : 50
Description   : Can't set auto-remove flag for looped particle system.
Arguments     : snow_stepsstep

Не установлен интервал (время) проигрывания группы/эффекта партиклов. В Particle Group -> End Time(s) укажите время, через которое частицы должны исчезнуть. Заодно проверьте particle effect -> Kill Old -> Age limit.


Expression    : fatal error
Function      : CResourceManager::_GetBlender
File          : E:stalkerpatch_1_0004xr_3daResourceManager.cpp
Line          : 49
Description   : <no expression>
Arguments     : Shader 'modelsantigas_glass' not found in library.

Не найден шейдер modelsantigas_glass в библиотеке шейдеров.


Expression    : fs
Function      : CResourceManager::_CreateVS
File          : E:stalkerpatch_1_0004xr_3daResourceManager_Resources.cpp
Line          : 185
Description   : shader file doesnt exist
Arguments     : d:stalkergamedatashadersr2deffer_impl_flat.vs

Тут проблема вся в том, что неправильно закомпилился шейдер, при компиляции уровня на качестве, более высоком чем Draft. Нужно скачивать исправление шейдеров от товарища Haron.
Для ЗП (ЧН) это может ещё быть из-за отсутствия thm-ок для текстур террейна уровня!


Expression : fatal error
Function : out_of_memory_handler
File : D:prog_repositorysourcestrunkxrCorexrDebugNew.cpp
Line : 336
Description : <no expression>
Arguments : Out of memory. Memory request: 55965 K 

Нехватка оперативной памяти.


[error]Expression : assertion failed
[error]Function : CBuild::Load
[error]File : .Build_Load.cpp
[error]Line : 98
[error]Description : B.dwMaterialGame<65536

Неправильно настроены шейдеры. В настройках шейдера, во вкладке R2-A поставьте текстуру, которая вдальнейшем будет накладываться
на террейн.


Expression : fatal error
Function : CInifile::r_string
File :E:stalkersourcestrunkxrCoreXr_ini.cpp
Line : 352
Description : <no expression>
Arguments : Can't find variable ammo_mag_size in [wpn_addon_grenade_launcher]

Не найдена переменная ammo_mag_size в секции [wpn_addon_grenade_launcher].


Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : D:xray-svnxr_3daxrGamescript_engine.cpp
Line          : 74
Description   : <no expression>
Arguments     : LUA error: C stack overflow

Переполнение стека. Смотрим внимательно: lua_error. Ошибка, возможно, в скриптах.


Expression : vertex || show_restrictions(m_object)
Function : CPatrolPathManager::select_point
File : E:stalkersourcestrunkxr_3daxrGamepatrol_path_manager.cpp
Line : 155
Description : any vertex in patrol path [sniper_3_walk] in inaccessible for object [stalker_0002]

Какая то вершина (вейпоинт) пути sniper_3_walk стоит в неположенном месте (например не на аи-сетке). Объект stalker_0002 (в данном случае сталкер) который якобы двигался по пути sniper_3_walk попал на эту точку, а заодно ушёл за аи-сетку. Этого движок не терпит.

То же самое произойдет если координаты(вейпоинт) пути sniper_3_walk совпадет с координатами места, где НПС запрещено находиться, будь то рестриктор или аномалия в схеме обхода аномалий.
Также этот вылет наблюдается при попытке отправить НПС за пределы места работ параметр out_rest = «имя_рестриктора» в файле загрузки работ гулага. Попробуйте любого сталкера из лагеря новичков отправить, допустим, к остановке — получите этот самый вылет.


Expression : e_entity
Function : xrServer::Process_event_reject
File : E:stalkersourcestrunkxr_3daxrGamexrServer_process_event_reject.cpp
Line : 12
Description : entity not found. id_parent=7540 id_entity=44047 frame=2075050

Возникают иногда произвольно при смерти неписей. Причина — движок, отрабатывая лут, изредка теряет серверный объект уничтожаемой вещи, в итоге происходит вылет.


Expression : fatal error
Function : CScriptEngine::lua_error
File : D:xray-svnxr_3daxrGamescript_engine.cpp
Line : 74
Description : <no expression>
Arguments : LUA error: e:stalkergamedatascripts_g.script:20: bad argument #2 to 'format' (string expected, got no value)

Ошибка распространённая. На первый взгляд кажется, что ошибка как раз в скриптах, но всё может быть иначе. В одной из пиратских версий игры этот вылет наблюдается особенно часто из-за криво модифицированного файла «XR_3DA.exe». Если же вы уверены, что у вас лицензионная версия игры, можно попробовать сделать так: открываем файл _g.script блокнотом, закомменчиваем 20 строку (ставим перед строкой —) и идём к тому месту где поймали вылет. Так мы получим более развёрнутый ответ.

Участник: Призрак: Автор прав в том что вылет очень распространен, но так его исправлять нельзя, так как nil передается в эту функцию только при каком-то форс-мажоре. Поэтому необходимо перейти в _g.script в функцию printf и перед log1(string.format(fmr,..)) дописать: get_console():execute(«load «..fmt). После этого запустить еще раз игру и посмотреть при передачи какой строки игра вылетает. Потом найти эту строку в скриптах игры и прикинуть почему аргумент (у нас это аргумент №2 (bad argument #2)) равен nil. Возможность такового вылета из — за слишком быстрой скорости актера, слишком высокому прыжку. (Редактировать: config/creatures/actor.ltx)


Expression    : assertion failed
Function      : _VertexStream::Lock
File          : E:stalkerpatch_1_0004xr_3daR_DStreams.cpp
Line          : 44
Description   : (bytes_need<=mSize) && vl_Count

Проблема возникает при убийстве НПСмутанта. Типичный вылет по нехватке ресурсов. Встречается в основном на больших локациях. Но не на всех. На болотах из ЧН такой вылет встречается, а вот с локации aver от Кости V такого вылета нет. Однако для данного вылета есть таблетка, в виде правленого экзешника. Искать на АМК-форуме.


Expression    : fatal error
Function      : IRender_Visual::Load
File          : E:stalkerpatch_1_0004xr_3daFBasicVisual.cpp
Line          : 58
Description   : <no expression>
Arguments     : Invalid visual

Неправильный визуал (модель) НПС.


Expression    : !phrase_dialog->m_PhraseVector.empty()
Function      : CPhraseDialog::SayPhrase
File          : E:stalkerpatch_1_0004xr_3daxrGamePhraseDialog.cpp
Line          : 140
Description   : No available phrase to say, dialog[esc_dialog]

В диалоге esc_dialog нет доступной для отображения фразы (скажем, все заткнуты инфопоршенами).


Expression    : motion_ID.valid()
Function      : CKinematicsAnimated::ID_Cycle
File          : D:prog_repositorysourcestrunkLayersxrRenderSkeletonAnimated.cpp
Line          : 210
Description   : ! MODEL: can't find cycle:
Arguments     : death_init

Игра не нашла в модели трёхмерную анимацию с именем death_init.


Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:stalkerpatch_1_0004xr_3daxrGamescript_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...hadow of chernobylgamedatascriptsxr_danger.script:116: attempt to index field 'ignore_types' (a nil value)

Причина вылета в том что игра не понимает значения 0 в danger_ignore.Проще говоря в логике какого то персонажа параметр danger_ignore = 0 либо в минусовом значении. Либо его вообще нету

P.S. Также может быть причина в том, что в логике у какого-то АИ что-то неправильно указано. Для исправления рекомендую вставить строчку перед 116: get_console():execute(self.object:name()). То имя в логе, которое будет последним после вылета, указывает на персонажа с кривой логикой.


Expression    : fatal error
Function      : CInifile::r_string
File          : E:stalkerpatch_1_0004xrCoreXr_ini.cpp
Line          : 352
Description   : <no expression>
Arguments     : Can't find variable class in [test_no_klass_npc]

Не найден класс персонажа. Возможно, НПС не прописан под своим классом в gamedatanpc_profile.xml, либо в creaturesspawn_section.ltx, либо в gameplaycharacter_desc.xml


Expression    : fatal error
Function      : CInifile::r_section
File          : E:stalkerpatch_1_0004xrCoreXr_ini.cpp
Line          : 342
Description   : <no expression>
Arguments     : Can't open section 'bandage_test_kick1'

Игра не может найти секцию. Это может быть предмет, НПС и многое другое. Возможно, вы написали название с ошибками. Либо когда добавляли его в: продажу, скрипт, НПС , выпадение из НПС, а в редких случаях это может быть иммунитет чего либо(определить потом трудно). Часто такое бывает связано с названием секции.


Expression    : fatal error
Function      : CInifile::r_string
File          : E:stalkerpatch_1_0004xrCoreXr_ini.cpp
Line          : 352
Description   : <no expression>
Arguments     : Can't find variable remove_time in [vehicle_btr]

Не найдена переменная remove_time в секции [vehicle_btr]. А в данном случае ошибка в том что если вы делали предмет как физическую модель(то бишь, которую нельзя использовать, говорить и вообще он похож на декорации типа деревьев, столов и прочего хлама) то необходимо указывать remove_time в его секции.


Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:stalkerpatch_1_0004xr_3daxrGamescript_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...dow of chernobylgamedatascriptstest_kick.script:34: attempt to call method 'section' (a nil value)

Метод обращения в игре не предусмотрен. Возможно, стоит пересмотреть подход к тому или иному скрипту.


Expression    : rpoints[0].size()
Function      : game_sv_Deathmatch::Create
File          : D:prog_repositorysourcestrunkxrGamegame_sv_deathmatch.cpp
Line          : 99
Description   : rpoints for players not found

На мультиплеерной карте не найдены точки респавна игроков. В SDK должен быть красный пацанчик. Настроить Team = 0


Expression    : fatal error
Function      : xrServer::Process_update
File          : E:stalkerpatch_1_0004xr_3daxrGamexrServer_process_update.cpp
Line          : 37
Description   : <no expression>
Arguments     : Beer from the creator of 'WP_SHOTG'

Такое иногда бывает, когда ты (ГГ) или НПС заряжает дробовик или другое оружие со значением tri_state_reload = true.
Это глюк. в игре что-то сбивается, и когда у дробовика максимальное количество заряженных патронов скажем 6, он заряжается за 6 и дальше.. дальше.. дальше.. и так пока не произойдёт вылет с вышеуказанным логом. вылет не значительный и редкий, но если он случается слишком часто, можно в конфигах всех дробовиков и ружей поменять значение tri_state_reload = true на tri_state_reload = false.


Expression    : fatal error
Function      : CInifile::r_string
File          : D:prog_repositorysourcestrunkxrCoreXr_ini.cpp
Line          : 477
Description   : <no expression>
Arguments     : Can't find variable bound_rect in [level_map]

Такой лог бывает когда подключаешь локацию из ТЧ в ЗП. Причина проста — в ЗП уровнях файл строчка bound_rect пишется в файле gamedatalevelsимя_уровняlevel.ltx, а в ТЧ строка bound_rect для каждого уровня непосредственно в файле gamedataconfiggame_maps_single.ltx …

Исправить просто, нужно изменить файл gamedatalevelsимя_уровняlevel.ltx в подключенной локации, просто перенести строку bound_rect из game_maps_single.ltx в level.ltx перед строчкой texture.


Expression : hGame
Function : CEngineAPI::Initialize
File : E:stalkerpatch_1_0004xr_3daEngineAPI.cpp
Line : 65
Description : Game DLL raised exception during loading or there is no game DLL at all

Случается когда одна из dll некорректна. Например такой вылет бывает если подсунуть в ТЧ 1.0004 xrGame от 6 патча.


Expression    : assertion failed
Function      : CInventory::Eat
File          : E:stalkersourcestrunkxr_3daxrGameInventory.cpp
Line          : 892
Description   : pIItem->m_pCurrentInventory==this

Вылет встречается только на 6 патче при попытке хаванья из трупа. Ищите, исправленную Kolmogor’om, xrGame.dll в Интернете


[error]Expression    : error handler is invoked!
[error]Function      : invalid_parameter_handler
[error]File          : E:stalkersourcestrunkxrCorexrDebugNew.cpp
[error]Line          : 804
[error]Description   : 

Данный вылет бывает когда у какого либо из объектов установлено некорректное значение (читал, сам не получал его)
Или же если данный вылет происходит при вызове класса, то проблема в том что в методе __init() класса прописано super()


Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:prog_repositorysourcestrunkxrServerEntitiesscript_storage.cpp
Line : 748
Description : d:stalker copgamedatascriptsbind_stalker.script:231: attempt to index global 'ИМЯ_ФАЙЛА' (a nil value)

Вылет происходит в двух случаях — когда скрипт пытается вызвать функцию из несуществующего файла или когда в файле допущена синтаксическая ошибка.


Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:stalkersourcestrunkxr_3daxrGamescript_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: attempt to call a nil value

Происходит при попытке вызвать класс, которого не существует


Небольшой пример из практики по определению ошибки в особых случаях(для начинающих):
Игра зависла, картинка на экране не меняется, на Ctrl + Alt+ Delete не реагирует. Только «Холодная перезагрузка» reset. Но при этом обычно в логе нет записи и обычным Ctrl + V ошибку не увидеть.
Я пользуюсь программой Punto Switcher. Есть в ней опция «дневник», она ведёт запись всех нажатий клавиш и по нажатию сочетаний клавиш содержимое памяти может записывать в дневник.
теперь когда игра зависла и картинка на экране не меняется, нажимаете Ctrl + Alt+ Delete. Внешне ничего не изменится, но ОС будет реагировать
на клавиши, нажимаете сочетание клавиш «записать в дневник». Делаете перезагрузку, открываете дневник — Ваша ошибка записана.
«дядя Саша»


Expression    : bone_id!=BI_NONE
Function      : SArtefactDetectorsSupport::SetVisible
File          : D:prog_repositorysourcestrunkxrGameArtefact.cpp
Line          : 525
Description   : link

Возникает при создании или добавлении чужих артефактов. В artefacts.ltx, в секции af_base есть параметр particles_bone=link. Это имя косточки, которая принимается за центр при проигрывании партикла. Если кость в артефакте называется по иному, например joint2, и это не указанно в секции нового арта, которая наследуется от базовой и подразумевает естественно наличие link, получаем вылет. Решается конвертированием модели арта в .object, просмотром в sdk и выяснением имени косточки с занесением в конфиг.


Expression    : error handler is invoked!
Function      : invalid_parameter_handler
File          : D:prog_repositorysourcestrunkxrCorexrDebugNew.cpp
Line          : 815
Description   : bad argument #3 to 'format' (string expected, got no value)

Вылет заканчивающийся строкой, то что выше не указываю роли не играет, здесь роль играет только «bad argument #3». Если это появилось значит у Вас ошибка в файле с расширением .ltx (обращаю внимание, не путать с файлами .script), которая находится между [….] квадратными скобками в файле. Это может быть секция предмета, секция логики, секция пути файла way_, т.е. там где присутствуют квадратные скобки.


Expression    : cross_table().header().level_guid() == level_graph().header().guid()
Function      : CAI_Space::load
File          : D:prog_repositorysourcestrunkxrGameai_space.cpp
Line          : 113
Description   : cross_table doesn't correspond to the AI-map

Скорее всего, отсутствует файл level.ai. Возможно после правки уровня в SDK и компиляции AI, вы забыли его скопировать в папку уровня. Важно помнить, что level.ai нужно обновлять для всех уровней, а не только для тех, которые подвергались правке.


Безлоговый вылет

Вылет, при котором лог отсутствует. Причины такого вылета:

1. Безлоговые вылеты бывают в основном из-за завышенных настроек видео.

Решение:
В папке с игрой открыть папку gamedata, папку config, в ней файл alife, открыть любым текстовым редактором (блокнотом, или лучше word pad’ом) и найти строку switch distance = и изменить значение на 5, сохранить изменения. Это только одна (не сильно вероятная) причина безлогового вылета. если вы знаете ещё одну причину, пожалуйста напишите здесь.

2. Вторая причина неправильно указано название пути в логике НПС или он полностью отсутствует в файле way_ all.spawn. Вылетать будет когда дойдёт время до спавна этого НПС.

3. Также, безлоговые вылеты происходят из-за ошибок в диалогах.



  • Автор статьи — Pihan13
  • Дополнительный справочник «вылетов» игры

Не стесняемся — дополняем, если знаем о чём идёт речь.

Expression: fatal error Function

Решение ошибки в fatal error Function в игре STALKER. Ошибка сопровождается полным завершением игры. Как правило сообщение появляется у игроков в модефицированной игры, типа «Народная солянка» или подобной.

Проблема связана с тем, что движок игры привередливый и при любой ошибке крашится. Но причина ошибки сохраняется в буфер обмена. Поэтому, сразу после вылета игры откройте текстовый редактор и вставьте содержимое файла.

fatal error

Expression — Тип ошибки.
Function — Функция, которая вызвала вылет игры
File — файл, в котором находится функция
Line — строка, в которой произошла ошибка
Description — описание ошибки
Arguments — аргумент, который привел к ошибке.

Далее гуглим тип ошибки или функцию: Expression: fatal error Function wave&&wave->length()

Как правило, расшифровку и решение каждой ошибки можно найти на форуме разработчика. Самые распространенные ошибки:

Expression : fatal error
Function : out_of_memory_handler

Причина: не хватает оперативной памяти

Expression: wave&&wave->length()
Function: CSoundRender_Source::LoadWave

Причина: Отсутствует звуковой ogg файл.

Expression: fatal error
Function: CRender::texture_load

Причина: Отстутвует текстура

Expression: fatal error
Function: CModelPool::Instance_Load

Причина: отстутсвует трёхмерная OGF-модель.

Expression: fatal error
Function: CScriptEngine::lua_error Arguments: LUA error: C stack overflow

Причина: Переполнение стека.

Expression: fatal error
Function: CInifile::r_section

Причина: Отсутствует секция. Название секции будет записано в Arguments.

Остальные причины вылета и их решения смотрите на форумах и справочниках, к примеру http://stalkerin.gameru.net/wiki/ и http://ap-pro.ru/forum/

Содержание

  1. Причины вылетов игры (разбираем логи)
  2. Материал из S.T.A.L.K.E.R. Inside Wiki
  3. Безлоговый вылет
  4. Error description no expression error arguments lua error c stack overflow
  5. Бар Реактор готов принять новых постояльцев! Место общения для гостей сайта

Причины вылетов игры (разбираем логи)

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

Привет всем! Игра S.T.A.L.K.E.R., а конкретно сам движок X-Ray довольно капризный, и зачастую как в процессе модификации, так и во время игры игра «вылетает». Чтобы мы знали причину вылета, движок нам оставляет лог вылета. Лог вылета можно посмотреть несколькими способами:

  • В текстовом редакторе нажать Ctrl+V (Вставить)
  • Посмотреть лог игры включая лог вылета в файле xray_имя_пользователя.log в папке C:Documents and SettingsAll UsersДокументыSTALKER-***logs
  • Посмотреть непосредственно в окне багтрекера (только в ЧН и ЗП).

Ну приступим. Начнём с простых:

Здесь игра не может открыть звуковой OGG-файл под названием sound в папке d:stalkergamedatasoundsmusic

Не может найти текстуру act_corp_monolit из папки texturesact

Не найдена трёхмерная OGF-модель mesh.ogf из папки meshesphysics.

Не найдена система частиц (партикл) hit_water_00 в директории hit_fx файла particles.xr (подробно опишу позже).

Не установлен интервал (время) проигрывания группы/эффекта партиклов. В Particle Group -> End Time(s) укажите время, через которое частицы должны исчезнуть. Заодно проверьте particle effect -> Kill Old -> Age limit.

Не найден шейдер modelsantigas_glass в библиотеке шейдеров.

Тут проблема вся в том, что неправильно закомпилился шейдер, при компиляции уровня на качестве, более высоком чем Draft. Нужно скачивать исправление шейдеров от товарища Haron. Для ЗП (ЧН) это может ещё быть из-за отсутствия thm-ок для текстур террейна уровня!

Нехватка оперативной памяти.

Неправильно настроены шейдеры. В настройках шейдера, во вкладке R2-A поставьте текстуру, которая вдальнейшем будет накладываться на террейн.

Не найдена переменная ammo_mag_size в секции [wpn_addon_grenade_launcher].

Переполнение стека. Смотрим внимательно: lua_error. Ошибка, возможно, в скриптах.

Какая то вершина (вейпоинт) пути sniper_3_walk стоит в неположенном месте (например не на аи-сетке). Объект stalker_0002 (в данном случае сталкер) который якобы двигался по пути sniper_3_walk попал на эту точку, а заодно ушёл за аи-сетку. Этого движок не терпит.

То же самое произойдет если координаты(вейпоинт) пути sniper_3_walk совпадет с координатами места, где НПС запрещено находиться, будь то рестриктор или аномалия в схеме обхода аномалий. Также этот вылет наблюдается при попытке отправить НПС за пределы места работ параметр out_rest = «имя_рестриктора» в файле загрузки работ гулага. Попробуйте любого сталкера из лагеря новичков отправить, допустим, к остановке — получите этот самый вылет.

Возникают иногда произвольно при смерти неписей. Причина — движок, отрабатывая лут, изредка теряет серверный объект уничтожаемой вещи, в итоге происходит вылет.

Ошибка распространённая. На первый взгляд кажется, что ошибка как раз в скриптах, но всё может быть иначе. В одной из пиратских версий игры этот вылет наблюдается особенно часто из-за криво модифицированного файла «XR_3DA.exe». Если же вы уверены, что у вас лицензионная версия игры, можно попробовать сделать так: открываем файл _g.script блокнотом, закомменчиваем 20 строку (ставим перед строкой —) и идём к тому месту где поймали вылет. Так мы получим более развёрнутый ответ.

Участник: Призрак: Автор прав в том что вылет очень распространен, но так его исправлять нельзя, так как nil передается в эту функцию только при каком-то форс-мажоре. Поэтому необходимо перейти в _g.script в функцию printf и перед log1(string.format(fmr. )) дописать: get_console():execute(«load «..fmt). После этого запустить еще раз игру и посмотреть при передачи какой строки игра вылетает. Потом найти эту строку в скриптах игры и прикинуть почему аргумент (у нас это аргумент №2 (bad argument #2)) равен nil. Возможность такового вылета из — за слишком быстрой скорости актера, слишком высокому прыжку. (Редактировать: config/creatures/actor.ltx)

Проблема возникает при убийстве НПСмутанта. Типичный вылет по нехватке ресурсов. Встречается в основном на больших локациях. Но не на всех. На болотах из ЧН такой вылет встречается, а вот с локации aver от Кости V такого вылета нет. Однако для данного вылета есть таблетка, в виде правленого экзешника. Искать на АМК-форуме.

Неправильный визуал (модель) НПС.

В диалоге esc_dialog нет доступной для отображения фразы (скажем, все заткнуты инфопоршенами).

Игра не нашла в модели трёхмерную анимацию с именем death_init.

Причина вылета в том что игра не понимает значения 0 в danger_ignore.Проще говоря в логике какого то персонажа параметр danger_ignore = 0 либо в минусовом значении. Либо его вообще нету

P.S. Также может быть причина в том, что в логике у какого-то АИ что-то неправильно указано. Для исправления рекомендую вставить строчку перед 116: get_console():execute(self.object:name()). То имя в логе, которое будет последним после вылета, указывает на персонажа с кривой логикой.

Не найден класс персонажа. Возможно, НПС не прописан под своим классом в gamedatanpc_profile.xml, либо в creaturesspawn_section.ltx, либо в gameplaycharacter_desc.xml

Игра не может найти секцию. Это может быть предмет, НПС и многое другое. Возможно, вы написали название с ошибками. Либо когда добавляли его в: продажу, скрипт, НПС , выпадение из НПС, а в редких случаях это может быть иммунитет чего либо(определить потом трудно). Часто такое бывает связано с названием секции.

Не найдена переменная remove_time в секции [vehicle_btr]. А в данном случае ошибка в том что если вы делали предмет как физическую модель(то бишь, которую нельзя использовать, говорить и вообще он похож на декорации типа деревьев, столов и прочего хлама) то необходимо указывать remove_time в его секции.

Метод обращения в игре не предусмотрен. Возможно, стоит пересмотреть подход к тому или иному скрипту.

На мультиплеерной карте не найдены точки респавна игроков. В SDK должен быть красный пацанчик. Настроить Team = 0

Такое иногда бывает, когда ты (ГГ) или НПС заряжает дробовик или другое оружие со значением tri_state_reload = true. Это глюк. в игре что-то сбивается, и когда у дробовика максимальное количество заряженных патронов скажем 6, он заряжается за 6 и дальше.. дальше.. дальше.. и так пока не произойдёт вылет с вышеуказанным логом. вылет не значительный и редкий, но если он случается слишком часто, можно в конфигах всех дробовиков и ружей поменять значение tri_state_reload = true на tri_state_reload = false.

Такой лог бывает когда подключаешь локацию из ТЧ в ЗП. Причина проста — в ЗП уровнях файл строчка bound_rect пишется в файле gamedatalevelsимя_уровняlevel.ltx, а в ТЧ строка bound_rect для каждого уровня непосредственно в файле gamedataconfiggame_maps_single.ltx .
Исправить просто, нужно изменить файл gamedatalevelsимя_уровняlevel.ltx в подключенной локации, просто перенести строку bound_rect из game_maps_single.ltx в level.ltx перед строчкой texture.

Случается когда одна из dll некорректна. Например такой вылет бывает если подсунуть в ТЧ 1.0004 xrGame от 6 патча.

Вылет встречается только на 6 патче при попытке хаванья из трупа. Ищите, исправленную Kolmogor’om, xrGame.dll в Интернете

Данный вылет бывает когда у какого либо из объектов установлено некорректное значение (читал, сам не получал его) Или же если данный вылет происходит при вызове класса, то проблема в том что в методе __init() класса прописано super()

Вылет происходит в двух случаях — когда скрипт пытается вызвать функцию из несуществующего файла или когда в файле допущена синтаксическая ошибка.

Происходит при попытке вызвать класс, которого не существует

Небольшой пример из практики по определению ошибки в особых случаях(для начинающих): Игра зависла, картинка на экране не меняется, на Ctrl + Alt+ Delete не реагирует. Только «Холодная перезагрузка» reset. Но при этом обычно в логе нет записи и обычным Ctrl + V ошибку не увидеть. Я пользуюсь программой Punto Switcher. Есть в ней опция «дневник», она ведёт запись всех нажатий клавиш и по нажатию сочетаний клавиш содержимое памяти может записывать в дневник. теперь когда игра зависла и картинка на экране не меняется, нажимаете Ctrl + Alt+ Delete. Внешне ничего не изменится, но ОС будет реагировать на клавиши, нажимаете сочетание клавиш «записать в дневник». Делаете перезагрузку, открываете дневник — Ваша ошибка записана. «дядя Саша»

Возникает при создании или добавлении чужих артефактов. В artefacts.ltx, в секции af_base есть параметр particles_bone=link. Это имя косточки, которая принимается за центр при проигрывании партикла. Если кость в артефакте называется по иному, например joint2, и это не указанно в секции нового арта, которая наследуется от базовой и подразумевает естественно наличие link, получаем вылет. Решается конвертированием модели арта в .object, просмотром в sdk и выяснением имени косточки с занесением в конфиг.

Вылет заканчивающийся строкой, то что выше не указываю роли не играет, здесь роль играет только «bad argument #3». Если это появилось значит у Вас ошибка в файле с расширением .ltx (обращаю внимание, не путать с файлами .script), которая находится между [. ] квадратными скобками в файле. Это может быть секция предмета, секция логики, секция пути файла way_, т.е. там где присутствуют квадратные скобки.

Скорее всего, отсутствует файл level.ai. Возможно после правки уровня в SDK и компиляции AI, вы забыли его скопировать в папку уровня. Важно помнить, что level.ai нужно обновлять для всех уровней, а не только для тех, которые подвергались правке.

Безлоговый вылет

Вылет, при котором лог отсутствует. Причины такого вылета:

1. Безлоговые вылеты бывают в основном из-за завышенных настроек видео.

Решение: В папке с игрой открыть папку gamedata, папку config, в ней файл alife, открыть любым текстовым редактором (блокнотом, или лучше word pad’ом) и найти строку switch distance = и изменить значение на 5, сохранить изменения. Это только одна (не сильно вероятная) причина безлогового вылета. если вы знаете ещё одну причину, пожалуйста напишите здесь.

2. Вторая причина неправильно указано название пути в логике НПС или он полностью отсутствует в файле way_ all.spawn. Вылетать будет когда дойдёт время до спавна этого НПС.

3. Также, безлоговые вылеты происходят из-за ошибок в диалогах.

Источник

Error description no expression error arguments lua error c stack overflow

Причина :

Игра не понимает значения 0 в danger_ignore. Проще говоря в логике какого-то персонажа параметр danger_ignore равен нулю, либо он отрицателен, либо его вообще нету. Также может быть причина в том, что у какого-то в логике что-то неправильно указано в секции danger.

Лечение :

Для исправления рекомендую перед 116 строкой (номер строки может отличаться) дописать следующий код:

То имя в логе, которое будет последним после вылета, указывает на персонажа с кривой логикой.

Причина :

Метод обращения в игре не предусмотрен. Возможно, стоит пересмотреть подход к тому или иному скрипту. Часто такое возможно, когда к серверному объекту применяют клиентские методы и наоборот.

Лечение :

Найти и исправить ошибку.

Причина :

Попытка выполнения арифметической операции над nil.

Лечение :

Найти и исправить ошибку. Обратите внимание на строку с указанным номером, попытка выполнения арифметической оперции над nil происходит именно в ней.

Причина :

Попытка сравнения числа с nil.

Лечение :

Найти и исправить ошибку. Обратите внимание на строку с указанным номером, попытка сравнения числа с nil происходит именно в ней.

Причина :

Попытка получить значение таблицы по ключу nil.

Лечение :

Найти и исправить ошибку. Обратите внимание на строку с указанным номером, попытка получения значения по ключу nil происходит именно в ней.

Причина :

Причину вылета назвать достаточно трудно, вероятно это что-то глубоко движковое. Такой вылет может вызывать передача клиенсткого объекта в функцию switch_offline.

Лечение :

В случае передачи клиентского объекта — устранить ошибку. Но определить причину в большинстве случаев крайне проблематично — попробуйте загрузить последнее сохранение.

Причина :

Происходит при попытке вызвать конструктор класса, которого не существует.

Лечение :

Найти и исправить ошибку.

Причина :

Ошибка также может появиться со строкой 74. Переполнение стека. Смотрим внимательно: lua_error. Ошибка возможно в скриптах.

Лечение :

Загрузка последнего сохранения.

Причина :

Попытка использовать для какого-то объекта, несуществующий метод. Зачастую путаница с серверными и клиентскими метода.

Лечение :

Найти и исправить ошибку.

Причина :

Единственной причиной данного вылета которую я нашёл, это попытка использовать для функции string.find в качестве шаблона «волшебный символ» открывающуюся круглую скобку, т.е. попытка найти скобку таким образом:

Лечение :

Для поиска открывающейся круглой скобки используйте параметр plain для данной функции со значением true, он выключает возможность поиска по шаблону и в таком случае производится поиск подстроки как есть:

Казалось бы, причина ясна — вызов функции, которой не существует. Однако функция есть, и называется именно так, и с ней все в порядке. как и с самим файлом скрипта тоже — в нем нет синтаксических ошибок, игра не ругается на него самого, заявляя что он ‘a nil value’

Причина оказалась вот в чем. В начале скрипта, есть таблица, такого вида:

а далее есть еще одна таблица. вот такого вида:

то есть, значения ее — функции. а ключами являются значения из первой таблицы.

Ну так вот. в первой таблице поменял имя одного из ключей. А во второй — забыл это сделать. Получилось что во второй таблице, одна из функций находится по ключу, который вообще то равен nil.
А причем же тут та функция, которую мы вызывали, и вылетели с нею в лог? да вообще ни при чем, она просто находилась в том же файле ниже по тексту.

Вывод — когда делаете в таблицах ключи вида массив/модуль.значение — убедитесь что это значение не равно nil ) а то сталкер об этом нормально не скажет.

Источник

Бар Реактор готов принять новых постояльцев!
Место общения для гостей сайта

Причины вылетов игры (разбираем логи) STALKER

Игра S.T.A.L.K.E.R., а конкретно сам движок X-Ray довольно капризный, и зачастую как в процессе модификации, так и во время игры игра «вылетает».

Чтобы мы знали причину вылета, движок нам оставляет лог вылета. Лог вылета можно посмотреть несколькими способами:
В текстовом редакторе нажать Ctrl+V (Вставить)

Посмотреть лог игры включая лог вылета в файле xray_имя_пользователя.log в папке C:Documents and SettingsAll UsersДокументыSTALKER-***logs
Посмотреть непосредственно в окне багтрекера (только в ЧН и ЗП).

Ну приступим. Начнём с простых:

Здесь игра не может открыть звуковой OGG-файл под названием sound в папке d:stalker

Не найден шейдер modelsantigas_glass в библиотеке шейдеров.

Нехватка оперативной памяти.

Не найдена переменная ammo_mag_size в секции [wpn_addon_grenade_launcher].

Переполнение стека. Смотрим внимательно: lua_error. Ошибка, возможно, в скриптах.

Какая то вершина (вейпоинт) пути sniper_3_walk стоит в неположенном месте (например не на аи-сетке). Объект stalker_0002 (в данном случае сталкер) который якобы двигался по пути sniper_3_walk попал на эту точку, а заодно ушёл за аи-сетку. Этого движок не терпит.

То же самое произойдет если координаты(вейпоинт) пути sniper_3_walk совпадет с координатами места, где НПС запрещено находиться, будь то рестриктор или аномалия в схеме обхода аномалий. Также этот вылет наблюдается при попытке отправить НПС за пределы места работ параметр out_rest = «имя_рестриктора» в файле загрузки работ гулага. Попробуйте любого сталкера из лагеря новичков отправить, допустим, к остановке — получите этот самый вылет.

Возникают иногда произвольно при смерти неписей. Причина — движок, отрабатывая лут, изредка теряет серверный объект уничтожаемой вещи, в итоге происходит вылет.

Ошибка распространённая. На первый взгляд кажется, что ошибка как раз в скриптах, но всё может быть иначе. Делаем так: открываем файл _g.script блокнотом, закомменчиваем 20 строку (ставим перед строкой —) и идём к тому месту где поймали вылет. Так мы получим более развёрнутый ответ. Участник:Призрак: Автор прав в том что вылет очень распространен, но так его исправлять нельзя, так как nil передается в эту функцию только при каком-то форс-мажоре. Поэтому необходимо перейти в _g.script в функцию printf и перед log1(string.format(fmr. )) дописать: get_console():execute(«load «..fmt). После этого запустить еще раз игру и посмотреть при передачи какой строки игра вылетает. Потом найти эту строку в скриптах игры и прикинуть почему аргумент (у нас это аргумент №2 (bad argument #2)) равен nil.

Неправильный визуал (модель) НПС.

В диалоге esc_dialog нет доступной для отображения фразы (скажем, все заткнуты инфопоршенами).

Игра не нашла в модели трёхмерную анимацию с именем death_init.

Причина вылета в том что игра не понимает значения 0 в danger_ignore.Проще говоря в логике какого то персонажа параметр danger_ignore = 0 либо в минусовом значении. Либо его вообще нету

P.S. Также может быть причина в том, что в логике у какого-то АИ что-то неправильно указано. Для исправления рекомендую вставить строчку перед 116: get_console():execute(self.object:name()). То имя в логе, которое будет последним после вылета, указывает на персонажа с кривой логикой. —Rekongstor 14:01, 2 июня 2011 (UTC)

Не найден класс персонажа. Возможно, НПС не прописан под своим классом в gamedatanpc_profile.xml, либо в creaturesspawn_section.ltx, либо в gameplaycharacter_desc.xml

Игра не может найти секцию. Это может быть предмет, НПС и многое другое. Возможно, вы написали название с ошибками. Либо когда добавляли его в: продажу, скрипт, НПС , выпадение из НПС, а в редких случаях это может быть иммунитет чего либо(определить потом трудно). Часто такое бывает связано с названием секции.

Не найдена переменная remove_time в секции [vehicle_btr]. А в данном случае ошибка в том что если вы делали предмет как физическую модель(то бишь, которую нельзя использовать, говорить и вообще он похож на декорации типа деревьев, столов и прочего хлама) то необходимо указывать remove_time в его секции.

Метод обращения в игре не предусмотрен. Возможно, стоит пересмотреть подход к тому или иному скрипту.

На мультиплеерной карте не найдены точки респавна игроков. В SDK должен быть красный пацанчик. Настроить Team = 0

Такое иногда бывает, когда ты (ГГ) или НПС заряжает дробовик или другое оружие со значением tri_state_reload = true. Это глюк. в игре что-то сбивается, и когда у дробовика максимальное количество заряженных патронов скажем 6, он заряжается за 6 и дальше.. дальше.. дальше.. и так пока не произойдёт вылет с вышеуказанным логом. вылет не значительный и редкий, но если он случается слишком часто, можно в конфигах всех дробовиков и ружей поменять значение tri_state_reload = true на tri_state_reload = false.

Такой лог бывает когда подключаешь локацию из ТЧ в ЗП. Причина проста — в ЗП уровнях файл строчка bound_rect пишется в файле gamedatalevelsимя_уровняlevel.ltx, а в ТЧ строка bound_rect для каждого уровня непосредственно в файле gamedataconfiggame_maps_single.ltx .
Исправить просто, нужно изменить файл gamedatalevelsимя_уровняlevel.ltx в подключенной локации, просто перенести строку bound_rect из game_maps_single.ltx в level.ltx перед строчкой texture.

Случается когда одна из dll некорректна. Например такой вылет бывает если подсунуть в

Вылет встречается только на 6 патче при попытке хаванья из трупа. Ищите, исправленную Kolmogor’om, xrGame.dll в Интернете

Данный вылет бывает когда у какого либо из объектов установлено некорректное значение (читал, сам не получал его) Или же если данный вылет происходит при вызове класса, то проблема в том что в методе __init() класса прописано super()

raii_guard
File : D:prog_repositorysourcestrunkxrServerEntitiesscript_storage.cpp
Line : 748
Description : d:stalker copgamedatascriptsbind_stalker.script:231: attempt to index global ‘ИМЯ_ФАЙЛА’ (a nil value)

Вылет происходит в двух случаях — когда скрипт пытается вызвать функцию из несуществующего файла или когда в файле допущена синтаксическая ошибка.

Происходит при попытке вызвать класс, которого не существует

Небольшой пример из практики по определению ошибки в особых случаях(для начинающих): Игра зависла, картинка на экране не меняется, на Ctrl + Alt+ Delete не реагирует. Только «Холодная перезагрузка» reset. Но при этом обычно в логе нет записи и обычным Ctrl + V ошибку не увидеть. Я пользуюсь программой Punto Switcher. Есть в ней опция «дневник», она ведёт запись всех нажатий клавиш и по нажатию сочетаний клавиш содержимое памяти может записывать в дневник. теперь когда игра зависла и картинка на экране не меняется, нажимаете Ctrl + Alt+ Delete. Внешне ничего не изменится, но ОС будет реагировать на клавиши, нажимаете сочетание клавиш «записать в дневник». Делаете перезагрузку, открываете дневник — Ваша ошибка записана. «дядя Саша»

Возникает при создании или добавлении чужих артефактов. В 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. Также, безлоговые вылеты происходят из-за ошибок в диалогах.

Вылет заканчивающийся строкой, то что выше не указываю роли не играет, здесь роль играет только «bad argument #3»
bad argument #3 to ‘format’ (string expected, got no value)

Если это появилось значит у Вас ошибка в файле с расширением .ltx (обращаю внимание, не путать с файлами .script), которая находится между [. ] квадратными скобками в файле. Это может быть секция предмета, секция логики, секция пути файла way_, т.е. там где присутствуют квадратные скобки.(дС)

Источник

Всем привет, мужики у меня такая проблема, подхожу к Ворону чтобы отдать мешок с травой от Дена

вылет с таким логом: переиграл несколько раз не помогло.Еще вылеты при переходах (Out of memory. Memory request: 64296 K) начали учащатся.

Expression : fatal error

Function : CScriptEngine::lua_error

File : E:stalkerpatch_1_0004xr_3daxrGamescript_engine.cpp

Line : 73

Description : <no expression>

Arguments : LUA error: ….e.rs.t.a.l.k.e.rgamedatascriptsxr_danger.script:105: attempt to index field ‘ignore_types’ (a nil value)

Что за беда? может знает кто и как это лечится.

Странноватый вылет. Попробуйте комметнуть на время проверку в этом скрипте

— elseif bd_type == danger_object.entity_corpse then

— if self.a.ignore_types[«corpse»] == true then

— printf(«DANGER [%s] [FALSE] ignore corpse», self.object:name())

— return false

— end

———————————————————————————————————————

Архара сори за тупизм, просто в этом скрипте и в этом месте две строки, вторую строку нужно удалить чтобы это вставить, или же подскажите плз по конкретней как это сделать.

Нет, из вашей сделать мою

Архара все сделал, все заработало (мешок сдал) спасибо.Погнал дальше.

Теперь эти изменения в скрипте пусть так и останутся?


Изменено 15 Декабря 2009 пользователем kalter

Calling a Lua function that contains an error causes a stack overflow and subsequent crash. If you call the function numerous times, it correctly reports the error. Continuing to call the function reports a C stack overflow, followed by «error in error handling». At this point, the lua stack grows in size and eventually, the program crashes. I am using Lua 5.3.

I did a good amount of error handling to be 100% sure that everything was working correctly. The important bit is the try-catch block in the while loop.

#include <sol.hpp>
#include <iostream>

int main()
{
    sol::state lua;
    lua.open_libraries(sol::lib::base);

    try {
        lua.script_file("example.lua");
    }
    catch (const sol::error& e) {
        std::cerr << e.what() << std::endl;
    }

    sol::function func = lua["test"];
    while (true)
    {
        // Causes stack overflow when errors are present in the function.
        try {
            if (func.valid())
            {
                func(); 
            }
            else
            {
                std::cerr << "Function is invalid" << std::endl;
            }
        }
        catch (const sol::error& e) {
            // Output the size of the Lua stack and the error message
            std::cerr << lua_gettop(lua.lua_state()) << ":t";
            std::cerr << e.what() << std::endl;
        }
    }
}

These are various lua files that cause the crash.

Console output reporting the Lua stack size and the exception (Repeat errors omitted):

6:      lua: error: example.lua:7: attempt to call a nil value (field 'bark')
6:      lua: error: example.lua:7: attempt to call a nil value (field 'bark')
10:     lua: error: example.lua:7: C stack overflow
6:      lua: error: example.lua:7: attempt to call a nil value (field 'bark')
6:      lua: error: example.lua:7: attempt to call a nil value (field 'bark')
8:      lua: error: error in error handling
10:     lua: error: error in error handling
12:     lua: error: error in error handling
14:     lua: error: error in error handling
Причины вылетов игры (разбираем логи)

Привет всем! Игра сталкер, а конкретно сам движок X-ray довольно капризный, и зачастую как в процессе модификации, так и во время игры игра «вылетает». Чтобы мы знали причину вылета, движок нам оставляет лог вылета. Лог вылета можно посмотреть несколькими способами:
В текстовом редакторе нажать Ctrl+V (Вставить)
Посмотреть лог игры включая лог вылета в файле xray_имя_пользователя.log в папке C:Documents and SettingsAll UsersДокументыSTALKER-***logs
Посмотреть непосредственно в окне багтрекера (только в ЧН и ЗП).

Ну приступим. Начнём с простых:
Expression : wave&&wave->length()
Function : CSoundRender_Source::LoadWave
File : E:stalkerpatch_1_0004xrSoundSoundRender_Source_loader.cpp
Line : 65
Description : Can’t open wave file:
Arguments : d:stalkergamedatasoundsmusicsound.ogg

Здесь игра не может найти звуковой OGG-файл под названием sound в папке d:stalkergamedatasoundsmusic
Expression : fatal error
Function : CRender::texture_load
File : E:stalkerpatch_1_0004xr_3daxrRenderTexture.cpp
Line : 295
Description : <no expression>
Arguments : Can’t find texture ‘actact_corp_monolit’

Не может найти текстуру act_corp_monolit из папки texturesact
Expression : fatal error
Function : CModelPool::Instance_Load
File : E:stalkerpatch_1_0004xr_3daxrRenderModelPool.cpp
Line : 111
Description : <no expression>
Arguments : Can’t find model file ‘physicsmesh.ogf’.

Не найдена трёхмерная OGF-модель mesh.ogf из папки meshesphysics.
Expression : SG
Function : CRender::model_CreateParticles
File : E:stalkerpatch_1_0004xr_3daxrRender_R2r2.cpp
Line : 330
Description : Particle effect or group doesn’t exist
Arguments : hit_fxhit_water_00

Не найдена система частиц (партикл) hit_water_00 в директории hit_fx файла particles.xr (подробно опишу позже).
Expression : fatal error
Function : CResourceManager::_GetBlender
File : E:stalkerpatch_1_0004xr_3daResourceManager.cpp
Line : 49
Description : <no expression>
Arguments : Shader ‘modelsantigas_glass’ not found in library.

Не найден шейдер modelsantigas_glass в библиотеке шейдеров.
Expression : fs
Function : CResourceManager::_CreateVS
File : E:stalkerpatch_1_0004xr_3daResourceManager_Resources.cpp
Line : 185
Description : shader file doesnt exist
Arguments : d:stalkergamedatashadersr2deffer_impl_flat.vs

Не найден файл шейдера deffer_impl_flat.vs. —Added by Герр. Роммель Да нет. Тут проблема вся в том, что неправильно закомпилился шейдер, при компиляции уровня на качестве, более высоком чем Draft. Нужно скачивать исправление шейдеров от товарища Haron
Expression : fatal error
Function : out_of_memory_handler
File : D:prog_repositorysourcestrunkxrCorexrDebugNew.cpp
Line : 336
Description : <no expression>
Arguments : Out of memory. Memory request: 55965 K

Нехватка оперативной памяти.
Expression : fatal error
Function : CInifile::r_string
File :E:stalkersourcestrunkxrCoreXr_ini.cpp
Line : 352
Description : <no expression>
Arguments : Can’t find variable ammo_mag_size in [wpn_addon_grenade_launcher]

Не найдена переменная ammo_mag_size в секции [wpn_addon_grenade_launcher].
Expression : fatal error
Function : CScriptEngine::lua_error
File : D:xray-svnxr_3daxrGamescript_engine.cpp
Line : 74
Description : <no expression>
Arguments : LUA error: C stack overflow

Переполнение стека. Смотрим внимательно: lua_error. Ошибка возможно в скриптах.
Expression : vertex || show_restrictions(m_object)
Function : CPatrolPathManager::select_point
File : E:stalkersourcestrunkxr_3daxrGamepatrol_path_manager.cpp
Line : 155
Description : any vertex in patrol path [sniper_3_walk] in inaccessible for object [stalker_0002]

Какая то вершина (вейпоинт) пути sniper_3_walk стоит в неположенном месте (например не на аи-сетке). Объект stalker_0002 (в данном случае сталкер) который якобы двигался по пути sniper_3_walk попал на эту точку, а заодно ушёл за аи-сетку. Этого движок не терпит.
Expression : e_entity
Function : xrServer::Process_event_reject
File : E:stalkersourcestrunkxr_3daxrGamexrServer_process_event_reject.cpp
Line : 12
Description : entity not found. id_parent=7540 id_entity=44047 frame=2075050

Возникают иногда произвольно при смерти неписей. Причина – движок отрабатывая лут изредка теряет серверный объект уничтожаемой вещи, в итоге происходит вылет.
Expression : fatal error
Function : CScriptEngine::lua_error
File : D:xray-svnxr_3daxrGamescript_engine.cpp
Line : 74
Description : <no expression>
Arguments : LUA error: e:stalkergamedatascripts_g.script:20: bad argument #2 to ‘format’ (string expected, got no value)

Ошибка распространённая. На первый взгляд кажется, что ошибка как раз в скриптах, но всё может быть иначе. Делаем так: открываем файл _g.script блокнотом, закоменчиваем 20 строку (ставим перед строкой —) и идём к тому месту где поймали вылет. Так мы получим более развёрнутый ответ.
Expression : assertion failed
Function : _VertexStream::Lock
File : E:stalkerpatch_1_0004xr_3daR_DStreams.cpp
Line : 44
Description : (bytes_need<=mSize) && vl_Count

Проблема возникает при убийстве НПСмутанта. Типичный вылет по нехватке ресурсов. Встречается в основном на больший локациях.
Expression : fatal error
Function : IRender_Visual::Load
File : E:stalkerpatch_1_0004xr_3daFBasicVisual.cpp
Line : 58
Description : <no expression>
Arguments : Invalid visual

Неправильный визуал (модель) НПС.
Expression : !phrase_dialog->m_PhraseVector.empty()
Function : CPhraseDialog::SayPhrase
File : E:stalkerpatch_1_0004xr_3daxrGamePhraseDialog.cpp
Line : 140
Description : No available phrase to say, dialog[esc_dialog]

В диалоге esc_dialog нет доступной для отображения фразы (скажем все заткнуты инфопоршенами).
Expression : motion_ID.valid()
Function : CKinematicsAnimated::ID_Cycle
File : D:prog_repositorysourcestrunkLayersxrRenderSkeletonAnimated.cpp
Line : 210
Description : ! MODEL: can’t find cycle:
Arguments : death_init

Игра не нашла в модели трёхмерную анимацию с именем death_init.
Автор статьи — Pihan13
Частично использовалась информация с сайта http://forum.stalker-simbion.ru/
Не стесняемся — дополняем, если знаем о чём идёт речь.

Информация для всех—решение вылетов(по крайней мере большинства). Ставите игру,патч,мод,запускаем. Если дошли до меню (уже хорошо)но игра не запустилась -XR_3DA вылетает то ставте «МИНИМАЛЬНЫЕ НАСТРОЙКИ ГРАФИКИ ,СТАТИЧНОЕ ОСВЕЩЕНИЕ ОБЬЕКТОВ,ОРИГИНАЛЬНОЕ РАЗРЕШЕНИЕ vid_mode 1024×768 НЕ МЕНЯЕМ. ДАЖЕ ЕСЛИ ОНИ УЖЕ СТОЯТ!!! ПОДВИГАЙТЕ ПЛАНКИ И НАЖМИТЕ ПРИМЕНИТЬ», если запустилась игра-отлично. Запускаем игру играем минут 5 ,сохраняем и выходите в винду. Копируем папку игры-у меня в С:Program FilesS.T.A.L.K.E.R. — Shadow of Chernobyl-В Любое удобное для вас место,Копируйте сохранение туда-же у меня в-С:documents and settingsall userstalker-shoc. СНОСИМ НАХРЕН ИГРУ, по возможности чистим остатки. Из той папки которую скопировали из поддиректории bin делаем ярлык на рабочий стол для XR_3DA.exe и запускаем игру. Результат-1) начинает работать сохранение, даже быстрое.можно сохранятся без консоли. 2) совет-при быстром сохранении на открытом пространстве упритесь мордой в стену,дерево,угол.помогает 95%. 3)Действия при вылетах: сбрасывайте настройки на»МИНИМАЛЬНЫЕ НАСТРОЙКИ ГРАФИКИ ,СТАТИЧНОЕ ОСВЕЩЕНИЕ ОБЬЕКТОВ,ОРИГИНАЛЬНОЕ РАЗРЕШЕНИЕ vid_mode 1024×768 НЕ МЕНЯЕМ. ДАЖЕ ЕСЛИ ОНИ УЖЕ СТОЯТ!!! ПОДВИГАЙТЕ ПЛАНКИ И НАЖМИТЕ ПРИМЕНИТЬ». Может сработать не с первого раза а с 3-5. Если это не помогает то вытаскивайте из скопированной ранее папки сохранений файл user.ltx а также папку logs и копируйте в с заменой в папку С:documents and settingsall userstalker-shoc. С помощью этих манипуляций можно вернуть к жизни даже «битые» сохранения с вероятностью 95%. РАБОТАЕТ СО ВСЕМИ МОДАМИ. В процессе игры настройки можно менять но при вылете смотри выше.При минимальных настройках XR_3DA всё находит и со всем справляется но в процессе игры при перемещении на другую локацию или загрузке сохранений все настройки «плавают» их нужно восстановить.проще сделать это с минимальных . если помогло вам помогите другим ,ссылка на автора желательна (qwertysher)

http://stalkerin.gameru.net/wiki/index.php/Причины_вылетов_игры_(разбираем_логи)

Понравилась статья? Поделить с друзьями:
  • Arithmetic overflow error converting expression to data type float
  • Arithmetic overflow error converting expression to data type datetime
  • Arithmetic overflow error converting expression to data type bigint
  • Arithmetic error java
  • Arithmetic error floating point overflow signalled