Сітка АІ, сітка рівня (Compile->Make AI), ноди якими переміщається ІІ, з допомогою неї АІ може орієнтуватися і переміщатися левелом.
XRAI.EXE білда 2215
Сам процес використання компілятора xrai.exe . Ключі у порядку використання.
xrai.exe -draft -f <level> - чорнове компілювання сітки ai
xrai.exe -verify <level> - перевіримо на правильність
xrai.exe -f <level> - фінальне компілювання
xrai.exe -g <level> - компілюємо off-line ai, graph та cross table
xrai.exe -m - отримуємо game.graph (мікс з level.graph та level.gct)
xrai.exe -s - об'єднання level.spawn, level.ai, level.game в all.spawn
Верифікація відбувається успішно, причому перевіряючи рівні з фінальної версії. Теж все читає і видає позитивний результат, але при остаточному компілюванні (-f) помилка не видається – просто висить на завантаженні рівня.
Для успішної компіляції сам компілятор повинен бути інтегрований з грою (або повинні бути папки з конфігами і скриптами - gamedataconfig і gamedatascript).
Під час компіляції завантажуються такі скрипти:
gamedata\scripts...
class_registrator.script
script _G.script
smart_terrain.script
se_respawn.script
se_switcher.script
se_stalker.script
se_car.script
se_zones.script
se_item.script - з оригінальним чомусь працювати не хоче. Але починає, якщо видалити кілька значень із нього – треба розбиратися.
se_artefact.script
se_monster.script
game_registrator.script
Новий рівень обов'язково треба додати до наступних файлів, щоб компілятор (і гра потім) їх бачили:
gamedata\config...
game_levels.ltx - секція [levels] та [levelXX], за образом та подобою існуючих.
game_graphs.ltx
game_maps_single.ltx
Тепер, коротко, про використання xrAI.exe Створимо, наприклад, два рівня, щоб точки переходу були одна на одну. Візьмемо, наприклад, рівні з SDK (або створимо свої, кому як простіше). Додамо їх у зазначені файли (game_levels.ltx, game_graphs.ltx, game_maps_single.ltx) Видалимо всі об'єкти секції spawn.
Додамо graph_point - точку, де з'являтиметься актор, при переході на цей рівень з іншого, де вказуємо поточний рівень та назву точки, на яку посилатиметься level_changer з іншого рівня.
Додамо level_changer - де вказуємо, який рівень має здійснюватися перехід і назва точки, де він з'являється. Згенеруємо сітку прохідності AI. Скомпілюємо рівні з редактора. Скомпілюємо рівень, використовуючи xrLC та xrDO_light.
Тепер черга xrAI: За ідеєю, ми мали додати ще й актора на перший рівень. Але тут, при компіляції із ключем -g, видається помилка. Видно чогось не вистачає в конфігах - треба розбиратися.
xrai.exe -draft -f <level>
xrai.exe -g <level>
Теж саме і для другого рівня.
Після чого:
xrai.exe -m - отримуємо game.graph
з ключем -s видається помилка - також треба розбиратися.
По ідеї потрібно додати level_changer до all.spawn з потрібними координатами.
Тепер про те, що отримуємо в результаті:
level.ai – формат не змінився, порівняно з 2215.
level.graph – змінився заголовок, сам формат, на перший погляд, не змінився.
level.gct.raw - 100% дублікат level.gct
level.gct - треба розбиратися, формат подібний до того ж, але при компіляції видає, що версії не сумісні.
game.graph - здавалося б змінився лише тип даних (з integer на int16), але тут треба дивитися докладніше.
Щоб скомпілювати хоча б:
level.ai
level.gsc
level.graph
компілятором з білда 2215, краще мати розпаковану gamedata - використовуються файли з папки
gamedata\config\scripts
gamedata\scripts
У файлі gamedata\scripts\se_item.script видалити рядки починаючи з: class "se_weapon_shotgun" (cse_alife_item_weapon_shotgun) і до class "se_item" (cse_alife_item).
Є ще дещо:
Не вистачає багатьох класів в xrai від 2215, тому при компіляції з ключем -s він лається на їх відсутність. Компілятор з ключем -m використовує level.gct.raw , перейменовуючи його потім у level.gct
PS Простіше зробити конвертер, але треба докладно розбирати game.graph .