Редактирование: Типичные ошибки и методы их устранения

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 2: Строка 2:
  
 
==xrAI==
 
==xrAI==
<syntaxhighlight lang="text">[error]Expression    : tpGraphs.size()
 
[error]Function      : CGraphMerger::CGraphMerger
 
[error]File          : X:\xray\utils\xrAI\xr_graph_merge.cpp
 
[error]Line          : 599
 
[error]Description  : empty [levels] section in configs!</syntaxhighlight>
 
Секция уровня не добавлена в game_levels.ltx
 
----
 
 
<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: Строка 11:
 
[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 на клавиатуре.
Явная – если в логе вы видите нижнюю секцию с текстом про <code>Some ai-node is not connected to AI-map</code>. Значит, одна (или множество) нод не соединены с остальной ИИ-сеткой. Не допускайте создания отдельных островков нод, всегда соединяйте их с основной ИИ-сеткой, и удаляйте отдельно стоящие и вырожденные ноды (в ЛЕ выделяются красным) нажатием кнопки Select 0-Link на панели AI Map и клавиши Delete на клавиатуре.<br />
+
----
Если же в логе тьма-тьмущая строк вида <code>! AI-node [-216.650, -0.023, 198.450] not connected to AI-map</code>, а в конце нет внятного сообщения об ошибке, лишь какой-то мутный стектрейс, то скорее всего, компилятор рухнул, воспринимая каждую ноду ИИ-карты как несвязную, и не успел дойти до стадии загрузки точек графа. Нужно проверить, есть ли на уровне точки графа, если нет, то добавить и переэкспортировать спаун.
+
<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: Строка 27:
 
[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">[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<br />
 
Нужно экспортировать ИИ-карту из LevelEditor: Compile->Make AI Map
 
 
----
 
----
 
<syntaxhighlight lang="text">! Cannot build GAME path! (object esc_tutorial_wounded0826)
 
<syntaxhighlight lang="text">! Cannot build GAME path! (object esc_tutorial_wounded0826)
Строка 144: Строка 135:
  
 
==Геометрия уровней==
 
==Геометрия уровней==
Вылет на этапе загрузки шейдеров при попытке запуска уровня на r1:
+
Ошибка при попытке запуска уровня на r1:
 
<syntaxhighlight lang="text">Expression    : fatal error
 
<syntaxhighlight lang="text">Expression    : fatal error
 
Function      : CBlender_default::Compile
 
Function      : CBlender_default::Compile
Строка 151: Строка 142:
 
Description  : <no expression>
 
Description  : <no expression>
 
Arguments    : Not enought textures for shader, base tex: floor\floor_dirty_gr_02</syntaxhighlight>
 
Arguments    : Not enought textures for shader, base tex: floor\floor_dirty_gr_02</syntaxhighlight>
Вызван некорректными настройками .thm соответствующей текстуры – у неё установлен флаг Implicit Lighted, то есть лайтмапы для неё считаются как для террейна. Из-за этого же в папке с уровнем появилась папка floor, в которую скопировалась эта текстура. А крашится потому, что у террейна один лайтмап, а не два, как у шейдера default.
+
Вызвана некорректными настройками .thm соответствующей текстуры – у неё установлен флаг Implicit Lighted, то есть лайтмапы для неё считаются как для террейна. Из-за этого же в папке с уровнем появилась папка floor, в которую скопировалась эта текстура. А крашится потому, что у террейна один лайтмап, а не два, как у default шейдера
<br />
 
Без перекомпиляции уровня исправить это можно с помощью [[level. compiler/decompiler (level. cdc) | распаковщика файла .level]]. Для этого распаковать файл .level из папки с уровнем, найти в FSL_SHADERS.ltx секцию вида
 
<syntaxhighlight lang="ini">[58]
 
shader = default
 
textures = floor\floor_dirty_gr_02,floor\floor_dirty_gr_02_lm</syntaxhighlight>
 
и сменить в ней шейдер c лайтмапного default на вершинный def_vertex, а лайтмапную текстуру (_lm) вовсе убрать. Получится так:
 
<syntaxhighlight lang="ini">[58]
 
shader = def_shaders\def_vertex
 
textures = floor\floor_dirty_gr_02</syntaxhighlight>
 
Запаковать файл, переименовать в .level и скопировать с заменой в папку с уровнем.
 
 
----
 
----
 
<syntaxhighlight lang="text">Expression    : fs
 
<syntaxhighlight lang="text">Expression    : fs

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии GNU Free Documentation License 1.3 или более поздняя (см. xrWiki:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)