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

Справочник вылетов


Рекомендуемые сообщения

Если у Вас случился вылет, возможно, здесь есть описание его причины, и как это исправить.

Если он здесь еще не описан, и Вы нашли его причину, опишите это здесь, по аналогии с имеющимся. Самое главное в описании: платформа (ТЧ, ЧН, ЗП), строка line : xxx, причина.

 

Все вылеты из этой темы собраны ЗДЕСЬ.

 

Поскольку публикаций по ПРИЧИНАМ вылетов я давно уже не вижу, а вижу исключительно флуд, тема закрыта. Если Вы обнаружили вылет, который здесь не описан, и знаете, как его лечить - напишите модераторам в л/c.

Изменено пользователем Dennis_Chikin
  • Полезно 2
Ссылка на комментарий

Вылет ЗП:

Лог:

[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 вей-поинтов.

Лечение: внимательность, внимательность и еще раз внимательность...

  • Сомнительно 1
Ссылка на комментарий

Такой лог уже выкладывали, но не указали, как лечить:



[error]Expression    : fatal error
[error]Function      : CBlender_default::Compile
[error]File          : D:\prog_repository\sources\trunk\Layers\xrRenderPC_R1\BlenderDefault.cpp
[error]Line          : 63
[error]Description   : <no expression>
[error]Arguments     : Not enought textures for shader, base tex: veh\veh_mi2

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

Лечение: заменить шейдер default на другой, например, на def_shaders\def_vertex.

Изменено пользователем Сталкер Лом
  • Спасибо 1
  • Полезно 1

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

Ссылка на комментарий

Исправьте пожалуйста вылет в шапке:

* Log file has been saved successfully!

* Saving spawns...
* Saving objects...
* [x-ray]: crt heap[397281 K], process heap[1220448 K]
* [x-ray]: economy: strings[60232 K], smem[29450 K]

FATAL ERROR

Expression    : fatal error
Function    : _out_of_memory
File        : E:\stalker\patch_1_0004\xrCore\xrDebugNew.cpp
Line        : 359
Description    : <no expression>
Arguments    : Out of memory. Memory request: 8192 K

Причина:

Судя из того, что вылет происходит при сохранении, и фигурирует число 8192, то можно предположить, что вылет следствие переполнения net-packet'а, то беж ошибка в скриптах. А может и игра где-то проглючила...

Лечение:

Попробуйте загрузить последнее сохранение. Если вылет стабильный - ищите ошибку в скриптах.

 

 

 

Дело в том, что скрипты не имеют никакого отношения к данной проблеме. Я тоже столкнулся с этой проблемой, когда упаковал ресурсы своего мода в db-архивы map_compressor'ом из SDK. Так вот, добавляя в gamedata(ведь gamedata имеет высший приоритет, чем db-архив) разные папки, я установил, что вылет происходит из-за моделей оружия(конкретнее какой искать желания не было). Также это подметил тов. !Sin в этом посте.

 

Как следствие всего вышесказанного:

Лог:



FATAL ERROR

Expression    : fatal error
Function      : out_of_memory_handler
File          : E:\priquel\sources\engine\xrCore\xrDebugNew.cpp
Line          : 323
Description   : <no expression>
Arguments     : Out of memory. Memory request: 4118772 K

Предполагаемая причина: модель оружия, запакованная с ошибкой в db-архив.

Лечение: не запаковывать модели оружия, или определить, какие именно модели некорректно запаковываются.

 

Совершенно разные вылеты, для разных частей игры.

ColR_iT

Изменено пользователем ColR_iT
  • Сомнительно 1
Ссылка на комментарий

"Дело в том, что скрипты не имеют никакого отношения к данной проблеме."

 

Дело в том, что к данной проблеме (равно как и к пресловутому "переполнению стека") имеет отношение вообще все, что не было диагностировано иным образом.

Кстати, рекомендую обратить внимание на разные значения в строке "line" и разные количества запрошенной памяти.

 

То есть, всем, кто сталкивается с таким сообщением, нужно обращать внимание на такие моменты, и пополнять список, если причина была установлена.

 

P.S. На версии движка тоже обращаем внимание: строки могут и отличаться.

 

Еще хочу сказать по поводу сообщения выше, там где указание строки в скрипте: эта самая строка в скрипте тем более может меняться, поскольку в модах постоянно вносятся разные изменения в самые разные места. Так что следует показывать содержание строки, не то, что ни кому( кроме автора сообщения) неизвестно где какая-то переменная с ни о чем не говорящим названием оказалась равна nil.

Изменено пользователем Dennis_Chikin
  • Согласен 1
Ссылка на комментарий

Вылет из ЗП.

 

stack trace:

 

0023:05B0D6B8 xrRender_R2.dll

0023:09595712 xrGame.dll, CDialogHolder::CDialogHolder()

 

Причина: Неправильно настроенные динамические элементы освещения (вшитые в all.spawn), например, нет визуала, нет анимации света и в таком духе.

Лечение: Удалить секции без визуалов и настроек анимации света, либо настроить их заново.

 

Я наткнулся на такой вылет, как скомпилировал Кордон с несколькими новыми источниками света, созданные мной. Мало опыта, либо просто забыли их настроить - вот результат. Поэтому, если будете искать подобное у себя в спавне, то в первую очередь, проверьте источники освещения, которые делали сами.

 

В дополнение к сказанному - данный вылет также может появиться, если прописать в конфиге прицел оружию, у мировой модели которого нету кости wpn_scope (полагаю с глушителем и гранатомётом аналогично)

  • Нравится 1
  • Сомнительно 1

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

Если в секции сквада есть spawn_point = way_point, но сам путь отсутствует в all.spawn. Такой сквад не заспавнишь, а если он ещё прописан в simulation.ltx, т.е создается при начале игры - то как только до него дойдёт очередь, стартовый спавн прервётся. При этом игра загружается, и только через некоторое время происходит вылет из-за переполнения буфера. Поэтому нужно добавить предстартовую проверку в sim_squad_scripted.script, в функцию function sim_squad_scripted:create_npc(spawn_smart) - выглядит так:



    if spawn_point == "self" then
        base_spawn_position = spawn_smart.position
        base_lvi = spawn_smart.m_level_vertex_id
        base_gvi = spawn_smart.m_game_vertex_id
    else
        if not level.patrol_path_exists(spawn_point) then -- проверка, на наличие пути в all.spawn
            abort("Path does not exist [%s]", spawn_point)
        end
        base_spawn_position = patrol(spawn_point):point(0)
        base_lvi = patrol(spawn_point):level_vertex_id(0)
        base_gvi = patrol(spawn_point):game_vertex_id(0)
    end

а также в _g.script, функция abort - разкомментировать строку error_log. Теперь если путь отсутствует, будет происходить вылет, с его именем в логе.

 

  • Нравится 2
  • Сомнительно 1
Ссылка на комментарий
Expression : assertion failed

Function : CTextureDescrMngr::LoadTHM

File : E:\stalker\patch_1_0004\xr_3da\TextureDescrManager.cpp

Line : 122

Description : F->find_chunk(THM_CHUNK_TYPE)

 

 

Причина:Имеются thm в папке текстуры.Их необходимо удалить.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

Попытка перевести объект ( sobj ) в оффлайн - онлайн, с целью вступления в силу изменённых данных нет-пакета объекта, при  этом объект находился в инвентарном ящике ( sobj.parent_id ~=  65535 )

 

alife ():set_switch_online  ( sobj.id, false)
alife ():set_switch_offline  ( sobj.id, true )

 

 

FATAL ERROR
 
[error]Expression    : assertion failed
[error]Function      : xrServer::Perform_destroy
[error]File          : D:\prog_repository\sources\trunk\xrGame\xrServer_sls_clear.cpp
[error]Line          : 12
[error]Description   : object->ID_Parent == 0xffff
 
 
stack trace:

 

Лечение: Необходимо переводит в оффлайн-онлайн сам инвентарный ящик 

alife ():set_switch_online  ( sobj.parent_id, false)
alife ():set_switch_offline ( sobj.parent_id, true )
Ссылка на комментарий

"D:\prog_repository\sources\trunk\xrGame\xrServer_sls_clear.cpp" - ЗП ?

 

Он же в ТЧ - внезапно, любимый всеми e-parent&e-entity и его разновидности.

Кстати, не обязательно, что именно ящик. ;)

  • Сомнительно 1
Ссылка на комментарий

@ColR_iT, а почему нет разделения вылетов: ТЧ, ЧН, ЗП?

Хорошо бы было сделать.

 

У меня не было цели делать справочник для ЧН или ЗП, я с ними не работаю, поэтому ни проверить не собирать мне было банально нечего.

Если у кого имеется или появится желание оформить то, что есть в теме для остальных частей - я с удовольствием размещу в шапке.

ColR_iT

Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB

Ссылка на комментарий

@panzyuza, это ж не вылет. Ты "шапку" читал? Если у тебя FATAL ERROR нет, то у тебя безлоговый... не повезло. 

@ColR_iT, в принципе ты мог бы отфильтровать по этой строчке:

File: E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_process_event_reject.cpp
В ЧН и ЗП разумеется 1.0004 писать не будет.

 

Нет, не во всех случаях очевидно, и вообще лишней "угадайки" следует избегать. dc

Изменено пользователем Dennis_Chikin

Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB

Ссылка на комментарий

FATAL ERROR



[error]Expression : I != levels().end()
[error]Function : GameGraph::CHeader::level
[error]File : e:\stalker\sources\trunk\xr_3da\xrgame\game_graph_inline.h
[error]Line : 171
[error]Description : there is no specified level in the game graph : 153

 

 

Возникает при попытке взять имя уровня по его ID c помощью вызова alife():level_name(level_id), если число level_id не соответствует ни одному из существующих уровней.

Ссылка на комментарий

Есть же оффлайн версия: http://www.amk-team.ru/forum/index.php?showtopic=12730&p=814844

Изменено пользователем Murarius

Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB

Ссылка на комментарий

Вылет из-за мировой модели оружия

Expression : _valid( c )

Function : CPhysicsShellHolder::correct_spawn_pos

File : D:\prog_repository\sources\trunk\xrGame\PhysicsShellHolder.cpp

Line : 178

Desсription : object: wpn_ak1030024 model: dynamics\weapons\wpn_ak103\wpn_ak103

 

Скажите в чём суть данного вылета и как его исправить!!!

 

Движок X-Ray 1.6 Engine (Зов Припяти)

 

http://www.amk-team.ru/forum/index.php?showtopic=8230&p=341839 - не то ?

Хотя, судя по строке - что-то там же, но другое.dc

 

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

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

@RefeR, движок в данном случае не особо и важен, это классика и проявляется она на всех версиях игры. Причина - некорректно проставлены параметры для просчета физики в указанной модели. Игра спавнит наш объект, пытается начать просчитывать для него физику, но так как физическая оболочка у него не настроена, имеем то, что имеем. Кстати, в случае с оружием оно может совершенно корректно работать, пока находится в руках или в рюкзаке, но как только мы его попытаемся выбросить - получим вылет.
Исправляется следующим образом:
1) загружаем модель в АЕ СДК, переходим на вкладку Bones
2) в разделе Global ищем пункт Generate Shape и жмем на кнопку All напротив него
3) Теперь надо указать у каждой кости, которая имеет привязанный меш, тип примитива, используемого игрой для просчета физики этого меша. Для этого проходимся по всем таким костям и в разделе Bone->Shape выставляем тип ограничивающего примитива, отличный от None (т.е. Type = Box, Sphere или Cylinder). Важно: если указать отличный от None тип примитива у кости без привязанного меша, то СДК при попытке экспорта модели сообщит об этом в логе: "Bone 'xxx' has invalid shape."
4) Экспортируем модель, вылет должен уйти.

Движок я попросил указывать, поскольку как минимум логи разные. dc

Изменено пользователем Dennis_Chikin
  • Нравится 3
Ссылка на комментарий
FATAL ERROR
 
[error]Expression    : m_textures.find(def_texture_name)!=m_textures.end()
[error]Function      : CUITextureMaster::FindItem
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\ui\UITextureMaster.cpp
[error]Line          : 156
[error]Description   : wpn_bm16f_410
 

stack trace:

 

 

ТЧ, 1,0004. + Луа-расширение RvP. Такая необычная реакция на неправильно указанное имя текстуры в xml-описателе.

  • Нравится 1
  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

Отловил вылет, мне аж понравилось распутывать механизм его возникновения.

Лог достаточно банальный

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ...ing\s.t.a.l.k.e.r\gamedata\scripts\inv_system.script:1674: attempt to call function 'GetCommand_TakeSlot' (a nil value)
 

stack trace:

 

 

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

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

tbl = {
    string_key1 = number,
    string_key2 = number,
...

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

tb_funcs = {
        [tbl.string_key1] = function(args...)
            ...
        end,
...

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

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

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

 

 

  • Нравится 2
  • Полезно 2

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

"[tbl.string_key1] ="

 

Запись в таблицу по некорректному индексу рушит namespace.

Вылеты получаются довольно забавные и порою догадаться в чем дело - нетривиально.

 

Для себя я пришел к принудительной инициализации:

-- "ручная" инициализация модулей, для контроля корректности
-- и обеспечения порядка инициализации для зависимых модулей

string_format = string.format

function log( ... ) _util.log( "_init", ... ) end
function abort( ... ) _util.abort( "_init", ... ) end


local t = {	-- последовательность важна !

["start"] = {	-- инициализация глобальных таблиц и менеджеров
	"_util",		-- служебные функции
	"_tbl_npc",		-- разные забавные особенности неписей
	"_tbl_protected",	-- защищенные предметы
	"_tbl_global",		-- соответствия классов и типов
	"_tbl_outfits",		-- костюмы
	"_tbl_levels",		-- уровни
	"_tbl_treasures",	-- тайники
	"_tbl_deathmgr",	-- лут
	"_tbl_sounds",		-- звуки
	"sound_theme",
	"amk_netpk",		-- работа с нетпакетом
	"xl_imgr",		-- кэши параметров предметов
	"amk"			-- управляющий скрипт амк (помойка на самом деле)
	},

["amk"] = {},	-- дополнения amk

["actor"] = {	-- скрипты, требующие актора
	"actor_data",		-- данные актора, нужны для всего онлайнового
	"ui_amk_options",	-- опции солянки
	--"fix_it",		-- правки глюков allspawn 2010.14.08
	"amk_timers",		-- таймеры (сохраняются в pstor)
	"xr_sound",		-- звук
	"news_manager",		-- типсы, init не нужен, но пусть будет
	"sr_psy_antenna",	-- пси-излучение, самоинициализируется, но для контроля вставим
	"bind_restrictor",	-- обновление рестрикторов (в основном всякие "разрывающиеся рюкзаки" и прочая ересь
	"amk_spawn",		-- спавн amk
	"inv_manager",		-- инвентарь актора
	"dialogs",		-- функции для диалогов
	"xl_offline",		-- состояние объектов в офлайне (требует level)
	"amk_anoms",		-- аномалии
	"bind_art",		-- арты, для детектора, и будет еще для "контейнеров"
	"death_manager",	-- лут
	"xl_online",		-- состояние объектов в онлайне
	"xr_box",		-- лут из ящиков
	-- не включать - init() дергается из конфигов -- "bind_physic_object"	-- всякая всячина, от ящиков до БТР
	"news_data",		-- тексты новостей
	"news_main",		-- новости
	"level_weathers",	-- смена погоды
	"ui_rad",		-- шкала радиации
	"actor_effects",	-- эффекты актора

	"treasure_manager",	-- тайники
	"task_manager",		-- квесты
	"dialog_manager",	-- диалоги
	"sr_territory",		-- стрельба на особых территориях, инициализация не нужна, но пусть будет
	"xl_relations",		-- сообщества и отношения
	"bind_heli",		-- вертолет
	"mob_combat",		-- схемы монстров, не нужно, но чтобы было, для контроля
	"mob_death", "mob_panic", "mob_trade", "mob_trader",
	"bind_monster",		-- онлайн-монстры
--	"xr_motivator",		-- онлайн-неписи
	"xr_wounded",		-- ранения, чтобы было
--	"sak",			-- функции сюжета и диалогов Сяка
	-- "amk_offline_alife",	-- офлайн, устарело
----	"tag_spb",		-- превращение трупов в зомби при выбросе
	"amk_mod"		-- большая помойка от АМК
	},

["np_pda"] = {	-- требуют netpacket_pda в онлайне
	"spawn_level_changer",	-- телепорты и принудительные смены уровня
	"bind_mteleport",	-- внутриуровневые телепорты, создание/удаление здесь же
----	"flamethrower",		-- огнемет
----	"repair_check",		-- ремонт и апгрейд
----	"aem_manager",		-- арена
--	"storyline",		-- сюжет
	"escape_dialog",
----	"braad_test",		-- функции сюжета, прибито гвоздями к all.spawn
	"kostya_dialog",	-- функции сюжета и диалогов
----	"new_dialog",		-- функции сюжета и диалогов
----	"wawka_dialog",		-- функции сюжета и диалогов
--	"arhara_dialog",	-- функции для диалогов Архары
	"actor_devices",	-- функции шмоток актора
--	-- "amk_artmod",	-- варка артов
--	-- "ui_pda_art_mod",	-- какой-то девайс для варки артов, устарело
	"biodetector",		-- детектор монстров (раньше не нужен)
	"sleep_manager"		-- сон
} }


local m_name = false


function check( blk )
	local f, pt1
	local tt = t[blk]
	local pt2 = profile_timer()
	pt2:start()
	for i = 1, #tt do
		if m_name then abort( "error in module [%s]", m_name ) end
		m_name = tt[i]
		f = _G[m_name].init
		if f then
			pt1 = profile_timer()
			pt1:start()
			if f() then
				pt1:stop()
				log( "init", "init %s [%s], ok (%s)", m_name, blk, pt1:time() )
			else
				pt1:stop()
				log( "warning", "init %s [%s], !true (%s)", m_name, blk, pt1:time() )
			end
			m_name = false
		else abort( "init, no %s.init() [%s]", m_name, blk )
	end	end
	pt2:stop()
	log( "init", "profile time: %s", pt2:time() )
end

 

  • Нравится 1
  • Сомнительно 1
Ссылка на комментарий

ТЧ, [error]Line : 804

 

- в общем случае - некорректный тип данных, либо слишком длинная строка.

Вообще, рекомендую следить, чтобы выводимое со всем возможным обрамлением (не важно, как и чем добавленным) ни в кое случае не превышало 250 байт.

 

И, да, пользуясь случаем, маленькое объявление:

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

  • Сомнительно 1
Ссылка на комментарий
Гость
Эта тема закрыта для публикации сообщений.
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...