Сповіщення
Очистити все

Level.ai


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

Сітка АІ, сітка рівня (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 .


   
Цитата