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

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

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

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

Если он здесь еще не описан, и Вы нашли его причину, опишите это здесь, по аналогии с имеющимся. Самое главное в описании: платформа (ТЧ, ЧН, ЗП), строка 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

3af419dd35e81a0.png

 

Те кто играют уже не забудут © Алексей Сытянов

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

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

3af419dd35e81a0.png

 

Те кто играют уже не забудут © Алексей Сытянов

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

3af419dd35e81a0.png

 

Те кто играют уже не забудут © Алексей Сытянов

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Мод, где не бывает одинаковых путей - Судьба Зоны.

...что хотел сказать, большинству мододелов. Послушайте.

Любите орехи? А вот первая ступенька. Пути. Там еще вторая, третья, их много... я давно всем показывал но никто не видит. Все любят, шорох орехов.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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
  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны.

...что хотел сказать, большинству мододелов. Послушайте.

Любите орехи? А вот первая ступенька. Пути. Там еще вторая, третья, их много... я давно всем показывал но никто не видит. Все любят, шорох орехов.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

"[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 пользователей

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

AMK-Team.ru

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