Типичные ошибки и методы их устранения — различия между версиями
RedPython (обсуждение | вклад) м |
RedPython (обсуждение | вклад) |
||
Строка 34: | Строка 34: | ||
Аномалия расположена не на ИИ-сетке. | Аномалия расположена не на ИИ-сетке. | ||
+ | ==Редакторы== | ||
+ | <syntaxhighlight lang="text">Expression : assertion failed | ||
+ | Function : IReader::advance | ||
+ | File : x:\clearsky\src\engine\xrcore\FS.h | ||
+ | Line : 276 | ||
+ | Description : (Pos<=Size) && (Pos>=0)</syntaxhighlight> | ||
+ | Такой вылет был, когда в папке с СДК оказался левый .xdb-архив. | ||
==Игра== | ==Игра== |
Версия 02:10, 2 августа 2017
Для поиска по страничке используйте Ctrl+F
Содержание
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 : assertion failed
Function : IReader::advance
File : x:\clearsky\src\engine\xrcore\FS.h
Line : 276
Description : (Pos<=Size) && (Pos>=0)
Такой вылет был, когда в папке с СДК оказался левый .xdb-архив.
Игра
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
, в таком случае спавн будет соответствовать учтённому в сохранении.
[error]Expression : cross_table().header().level_guid() == level_graph().header().guid()
[error]Function : CAI_Space::load
[error]File : ai_space.cpp
[error]Line : 110
[error]Description : cross_table doesn't correspond to the AI-map
Аналогично предыдущему вылету: данные из спавна не соответствуют новой ИИ-сетке. Нужно пересобрать спавн.
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). Подробности тут
Симуляция
! [LUA][ERROR] ERROR: Insufficient smart_terrain jobs test_smartterrain
В смарте трётся слишком много народу. Нужно либо уменьшить количество групп (faction_*.ltx), либо уменьшить количество персонажей в группе (squad_descr_*.ltx), либо создать в смарте дополнительные работы, чтобы бездельники смогли их занять.
[error]Expression : vertex || show_restrictions(m_object)
[error]Function : CPatrolPathManager::select_point
[error]File : patrol_path_manager.cpp
[error]Line : 155
[error]Description : any vertex in patrol path [esc_south_checkpoint_st_patrol_2_walk] is inaccessible for object [sim_default_military_00323]
Похоже, что точки пути patrol находятся вне рестриктора, накрывающего смарт, и неписи не могут попасть на работу. Нужно расширить рестриктор, чтобы он накрывал эти точки.