Типичные ошибки и методы их устранения — различия между версиями

Материал из xrWiki
Перейти к: навигация, поиск
Строка 63: Строка 63:
 
[error]Description  : <no expression>
 
[error]Description  : <no expression>
 
[error]Arguments    : LUA error: x:\gamedata\scripts\_g.script:973: bad argument #2 to 'format' (string expected, got nil)</syntaxhighlight>
 
[error]Arguments    : LUA error: x:\gamedata\scripts\_g.script:973: bad argument #2 to 'format' (string expected, got nil)</syntaxhighlight>
Самый мерзкий и жопошный вылет, который указывает только на то, что игра вылетела, но не на причину креша.
+
Самый мерзкий и жопошный вылет, который указывает только на то, что игра вылетела, но не на причину креша. Возникает потому, что в релизной версии игры разрабы отрубили команды log и assert. В качестве костыля можно использовать такие решения: [http://www.gameru.net/forum/index.php?s=&showtopic=67052&view=findpost&p=1607546], [http://www.gameru.net/forum/index.php?s=&showtopic=67052&view=findpost&p=1607620]
 
----
 
----
 
<syntaxhighlight lang="ini">[error]Expression    : !save_guid || (*save_guid == header().guid()) || ignore_save_incompatibility()
 
<syntaxhighlight lang="ini">[error]Expression    : !save_guid || (*save_guid == header().guid()) || ignore_save_incompatibility()
Строка 70: Строка 70:
 
[error]Line          : 110
 
[error]Line          : 110
 
[error]Description  : Saved game doesn't correspond to the spawn : DELETE SAVED GAME!</syntaxhighlight>
 
[error]Description  : Saved game doesn't correspond to the spawn : DELETE SAVED GAME!</syntaxhighlight>
Файл сохранения не соответствует спавну. Можно обойти ключом -ignore_save_incompatibility  
+
Файл сохранения не соответствует спавну, нужно пересобрать спавн. Можно обойти ключом <code>-ignore_save_incompatibility</code>, в таком случае спавн будет соответствовать учтённому в сохранении.
 +
----
 +
<syntaxhighlight lang="ini">
 +
Expression : fatal error
 +
Function : out_of_memory_handler
 +
File : .\xrDebugNew.cpp
 +
Line : 318
 +
Description : <no expression>
 +
Arguments : Out of memory. Memory request: 3506347 K</syntaxhighlight>
 +
Движок пытается прочесть какой-то левый архив или просто файл с расширением сталкирского архива (*.db, *.xdb). Подробности [http://www.gameru.net/forum/index.php?s=&showtopic=67034&view=findpost&p=1608736 тут]
 +
 
  
 
[[Категория:Справка]]
 
[[Категория:Справка]]

Версия 18:26, 24 января 2017

xrAI

[error]Expression    : F
[error]Function      : xrLoad
[error]File          : .\compiler_load.cpp
[error]Line          : 272
[error]Description   : x:\gamedata\levels\escape\build.aimap

В папке с уровнем gamedata\level\escape отсутствует build.aimap Нужно экспортировать ИИ-карту из LevelEditor: Compile->Make AI Map


[error]Expression    : assertion failed
[error]Function      : CGameGraphBuilder::save_cross_table
[error]File          : .\game_graph_builder.cpp
[error]Line          : 351
[error]Description   : graph().header().vertex_count() > tCrossTableCell.tGraphIndex

На карте отсутствуют точки графа. Нужно добавить хотя бы одну: Spawn Element -> AI\graph point и экспортировать level.game: Compile -> Make Game


[error]Expression    : assertion failed
[error]Function      : CVertexAllocatorFixed<2097152>::CDataStorage<struct CVertexPath<1>::DataStoragePath<struct CVertexManagerFixed<unsigned int,unsigned int,8>::VertexManager<struct CDataStorageSingleLinkedList<0>::SingleLinkedList<struct CDataStorageDoubleLinkedList<0>::DoubleLinkedList<struct CDataStorageBucketList<unsigned int,unsigned int,8192,0>::BucketList<struct CDijkstra<float,struct CDataStorageBucketList<unsigned int,unsigned int,8192,0>,struct CVertexManagerFixed<unsigned int,unsigned int,8>,struct CVertexAllocatorFixed<2097152>,1,struct CVertexPath<1>,struct AStar::_Vertex<float,class CEmptyClassTemplate>::_vertex,struct CBuilderAllocatorConstructor,struct CManagerBuilderAllocatorConstructor,struct CDataStorageConstructor,unsigned int>::_Vertex>::_vertex>::_vertex>::_vertex>::_vertex>::_vertex>::create_vertex
[error]File          : x:\clearsky\src\engine\utils\xrai\vertex_allocator_fixed_inline.h
[error]Line          : 51
[error]Description   : m_vertex_count < reserved_vertex_count - 1

Эту ошибку можно обойти ключом -no_separator_check

По какой причине она вообще возникает и не допустить её возникновения?


[error]Expression    : !m_border.empty()
[error]Function      : CSpaceRestrictorWrapper::build_border
[error]File          : .\space_restrictor_wrapper.cpp
[error]Line          : 215
[error]Description   : space restrictor has no border
[error]Arguments     : esc_zone_mine_gravitational_weak_0009

Аномалия расположена не на ИИ-сетке.


Игра

Expression    : m_attack_animation.valid()
Function      : CVisualZone::net_Spawn
File          : E:\priquel\sources\engine\xrGame\ZoneVisual.cpp
Line          : 34
Description   : object[esc_burning_fluff_strong]: cannot find attack animation[] in model[dynamics\anomalies\burning_fluff_01]

На карте присутствует динамическая модель, у которой предусмотрена, но не задана анимация атаки. Нужно задать её в LevelEditor'е в свойствах спаун-объекта в поле Attack animation.


Expression    : fs
Function      : CResourceManager::_CreateVS
File          : E:\priquel\sources\engine\Layers\xrRender\ResourceManager_Resources.cpp
Line          : 203
Description   : shader file doesnt exist
Arguments     : x:\gamedata\shaders\r2\deffer_impl_lmh_bump-hq.vs

Expression    : R
Function      : CResourceManager::_CreatePS
File          : E:\priquel\sources\engine\Layers\xrRender\ResourceManager_Resources.cpp
Line          : 309
Description   : x:\gamedata\shaders\r2\deffer_impl_lmh_bump.ps

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


[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp
[error]Line          : 180
[error]Description   : <no expression>
[error]Arguments     : LUA error: x:\gamedata\scripts\_g.script:973: bad argument #2 to 'format' (string expected, got nil)

Самый мерзкий и жопошный вылет, который указывает только на то, что игра вылетела, но не на причину креша. Возникает потому, что в релизной версии игры разрабы отрубили команды log и assert. В качестве костыля можно использовать такие решения: [1], [2]


[error]Expression    : !save_guid || (*save_guid == header().guid()) || ignore_save_incompatibility()
[error]Function      : CALifeSpawnRegistry::load
[error]File          : E:\priquel\sources\engine\xrGame\alife_spawn_registry.cpp
[error]Line          : 110
[error]Description   : Saved game doesn't correspond to the spawn : DELETE SAVED GAME!

Файл сохранения не соответствует спавну, нужно пересобрать спавн. Можно обойти ключом -ignore_save_incompatibility, в таком случае спавн будет соответствовать учтённому в сохранении.


Expression : fatal error
Function : out_of_memory_handler
File : .\xrDebugNew.cpp
Line : 318
Description : <no expression>
Arguments : Out of memory. Memory request: 3506347 K

Движок пытается прочесть какой-то левый архив или просто файл с расширением сталкирского архива (*.db, *.xdb). Подробности тут