Редактирование: Типичные ошибки и методы их устранения
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
− | Для поиска по страничке используйте | + | Для поиска по страничке используйте Ctrl+F |
==xrAI== | ==xrAI== | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<syntaxhighlight lang="text">! AI-node [87.500, 9.188, 160.300] not connected to AI-map | <syntaxhighlight lang="text">! AI-node [87.500, 9.188, 160.300] not connected to AI-map | ||
Строка 18: | Строка 12: | ||
[error]Line : 273 | [error]Line : 273 | ||
[error]Description : Some ai-node is not connected to AI-map. See log for details.</syntaxhighlight> | [error]Description : Some ai-node is not connected to AI-map. See log for details.</syntaxhighlight> | ||
− | + | Одна (или множество) нод не соединены с остальной ИИ-сеткой. Не допускайте создания отдельных островков нод, всегда соединяйте их с основной ИИ-сеткой, и удаляйте отдельно стоящие и вырожденные ноды (в ЛЕ выделяются красным) нажатием кнопки Select 0-Link на панели AI Map и клавиши Delete на клавиатуре. | |
− | + | ---- | |
− | + | <syntaxhighlight lang="text">[error]Expression : F | |
+ | [error]Function : xrLoad | ||
+ | [error]File : .\compiler_load.cpp | ||
+ | [error]Line : 272 | ||
+ | [error]Description : x:\gamedata\levels\escape\build.aimap</syntaxhighlight> | ||
+ | В папке с уровнем gamedata\level\escape отсутствует build.aimap | ||
+ | Нужно экспортировать ИИ-карту из LevelEditor: Compile->Make AI Map | ||
---- | ---- | ||
<syntaxhighlight lang="text">[error]Expression : assertion failed | <syntaxhighlight lang="text">[error]Expression : assertion failed | ||
Строка 28: | Строка 28: | ||
[error]Description : graph().header().vertex_count() > tCrossTableCell.tGraphIndex</syntaxhighlight> | [error]Description : graph().header().vertex_count() > tCrossTableCell.tGraphIndex</syntaxhighlight> | ||
На карте отсутствуют точки графа. Нужно добавить хотя бы одну: Spawn Element -> AI\graph point и экспортировать level.game: Compile -> Make Game | На карте отсутствуют точки графа. Нужно добавить хотя бы одну: Spawn Element -> AI\graph point и экспортировать level.game: Compile -> Make Game | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
---- | ---- | ||
<syntaxhighlight lang="text">! Cannot build GAME path! (object esc_tutorial_wounded0826) | <syntaxhighlight lang="text">! Cannot build GAME path! (object esc_tutorial_wounded0826) | ||
Строка 73: | Строка 65: | ||
[error]Description : M != (*K).second->m_tVertexMap.end()</syntaxhighlight> | [error]Description : M != (*K).second->m_tVertexMap.end()</syntaxhighlight> | ||
Одной из точек графа для [[level changer|перехода между уровнями]] задана связь с другой, несуществующей (или с несуществующим именем). При возникновении такой ошибки в первую очередь стоит проверить наличие собственно точки графа на уровне через Object List в режиме Spawn, затем наличие ИИ-сетки под ней, и уж в последнюю очередь настройки. | Одной из точек графа для [[level changer|перехода между уровнями]] задана связь с другой, несуществующей (или с несуществующим именем). При возникновении такой ошибки в первую очередь стоит проверить наличие собственно точки графа на уровне через Object List в режиме Spawn, затем наличие ИИ-сетки под ней, и уж в последнюю очередь настройки. | ||
+ | ---- | ||
+ | <syntaxhighlight lang="text">[error]Expression : !object->used_ai_locations() || ai().level_graph().valid_vertex_id(object->m_tNodeID) | ||
+ | [error]Function : CALifeSwitchManager::add_online | ||
+ | [error]File : X:\xray\xrGame\alife_switch_manager.cpp | ||
+ | [error]Line : 64 | ||
+ | [error]Description : Invalid vertex for object | ||
+ | [error]Arguments : sim_default_military_1_sniper1561</syntaxhighlight> | ||
+ | Причиной этого вылета может быть то, что точка пути (вейпойнт), на которой должен заспавниться персонаж, находится вне ИИ-сетки. Сам по себе лог малоинформативен. | ||
== Красные строки в логе == | == Красные строки в логе == | ||
<syntaxhighlight lang="text">! level_path().failed() during navigation</syntaxhighlight> | <syntaxhighlight lang="text">! level_path().failed() during navigation</syntaxhighlight> | ||
− | Путь непися пролегает через | + | Путь непися пролегает через область без нод ИИ-сетки. Нужно либо добавить ноды в пустое пространство, либо изменить путь так, чтобы он проходил в обход этой области. |
==Редакторы== | ==Редакторы== | ||
Строка 84: | Строка 84: | ||
Line : 276 | Line : 276 | ||
Description : (Pos<=Size) && (Pos>=0)</syntaxhighlight> | Description : (Pos<=Size) && (Pos>=0)</syntaxhighlight> | ||
− | Такой вылет был, когда в папке с СДК оказался левый .xdb-архив | + | Такой вылет был, когда в папке с СДК оказался левый .xdb-архив. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Игра== | ==Игра== | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<syntaxhighlight lang="text">[error]Expression : false | <syntaxhighlight lang="text">[error]Expression : false | ||
[error]Function : CXml::Load | [error]Function : CXml::Load | ||
Строка 120: | Строка 94: | ||
В указанном файле ошибка синтаксиса: где-то не закрыт тег. | В указанном файле ошибка синтаксиса: где-то не закрыт тег. | ||
---- | ---- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<syntaxhighlight lang="text">Expression : m_attack_animation.valid() | <syntaxhighlight lang="text">Expression : m_attack_animation.valid() | ||
Function : CVisualZone::net_Spawn | Function : CVisualZone::net_Spawn | ||
Строка 208: | Строка 123: | ||
[error]Arguments : LUA error: x:\gamedata\scripts\ph_door.script:36: attempt to index field 'joint' (a nil value)</syntaxhighlight> | [error]Arguments : LUA error: x:\gamedata\scripts\ph_door.script:36: attempt to index field 'joint' (a nil value)</syntaxhighlight> | ||
Ошибка возникла, когда в модели двери все кости имели тип rigid. Но для двери или ворот хотя бы одна кость должна иметь тип joint, чтобы дверь могла открываться. | Ошибка возникла, когда в модели двери все кости имели тип rigid. Но для двери или ворот хотя бы одна кость должна иметь тип joint, чтобы дверь могла открываться. | ||
+ | ---- | ||
+ | <syntaxhighlight lang="text">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</syntaxhighlight> | ||
+ | Конкретно эти ошибки вылезают в ЧН при попытке запуска на втором рендере, если геометрия уровня скомпилирована на низких настройках. | ||
+ | Чтобы игра не валилась, нужно подсунуть [https://files.xray-engine.org/shaders/r2_deffer_impl_lmh_pseudofix.7z те файлы, что она хочет]. Доподлинно неизвестно, что должно было быть в этих шейдерах, так что по ссылке .ps/.vs с обычными инклюдами внутри. | ||
+ | ---- | ||
+ | <syntaxhighlight lang="text"> | ||
+ | [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)</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="text">[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!</syntaxhighlight> | ||
+ | Файл сохранения не соответствует спавну, нужно пересобрать спавн. Можно обойти ключом <code>-ignore_save_incompatibility</code>, в таком случае спавн будет соответствовать учтённому в сохранении. | ||
+ | ---- | ||
+ | <syntaxhighlight lang="text">[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</syntaxhighlight> | ||
+ | Аналогично предыдущему вылету: данные из спавна не соответствуют новой ИИ-сетке. Нужно пересобрать спавн. | ||
+ | ---- | ||
+ | <syntaxhighlight lang="text"> | ||
+ | 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 тут] | ||
== Симуляция == | == Симуляция == | ||
Строка 219: | Строка 181: | ||
---- | ---- | ||
<syntaxhighlight lang="ini">! [LUA][ERROR] ERROR: Insufficient smart_terrain jobs test_smartterrain</syntaxhighlight> | <syntaxhighlight lang="ini">! [LUA][ERROR] ERROR: Insufficient smart_terrain jobs test_smartterrain</syntaxhighlight> | ||
− | В лагере трётся слишком много народу. Нужно либо уменьшить количество групп ('''faction_*.ltx'''), либо уменьшить количество персонажей в группе ('''squad_descr_*.ltx'''), либо (что правильнее) создать в смарте дополнительные работы, чтобы бездельники смогли их занять. | + | В лагере трётся слишком много народу. Нужно либо уменьшить количество групп ('''faction_*.ltx'''), либо уменьшить количество персонажей в группе ('''squad_descr_*.ltx'''), либо (что правильнее)создать в смарте дополнительные работы, чтобы бездельники смогли их занять. |
---- | ---- | ||
<syntaxhighlight lang="text">[error]Expression : vertex || show_restrictions(m_object) | <syntaxhighlight lang="text">[error]Expression : vertex || show_restrictions(m_object) | ||
Строка 247: | Строка 209: | ||
[error]Description : <no expression> | [error]Description : <no expression> | ||
[error]Arguments : LUA error: x:\gamedata\scripts\sim_faction_brain_mutant.script:90: attempt to index field '?' (a nil value)</syntaxhighlight>Такая ошибка вылезла, когда на карту был добавлен спейсрестриктор без каких-либо настроек. | [error]Arguments : LUA error: x:\gamedata\scripts\sim_faction_brain_mutant.script:90: attempt to index field '?' (a nil value)</syntaxhighlight>Такая ошибка вылезла, когда на карту был добавлен спейсрестриктор без каких-либо настроек. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Сетевая игра == | == Сетевая игра == | ||
Строка 271: | Строка 217: | ||
[error]Description : rpoints for players not found</syntaxhighlight> | [error]Description : rpoints for players not found</syntaxhighlight> | ||
На карте отсутствуют точки респавна для игроков. | На карте отсутствуют точки респавна для игроков. | ||
+ | |||
[[Категория:Справка]] | [[Категория:Справка]] |