Название: Роль AI в L2J_Mobius [Версия для печати] Автор: admin Время: 2024-10-21 22:39 Название: Роль AI в L2J_Mobius Роль AI в сборке L2J_Mobius + d) ^0 E. b% e' O5 ^$ H[attach]504[/attach]8 g* p( h, k/ [
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).) `( c i2 h; z/ }% c' t. I$ C
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.1 t% X/ E5 i9 i7 ? Основные классы AI:
AbstractAI.java * `( S6 g4 Q6 d2 \" Q( C
Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
Задачи AbstractAI:5 G- Q7 a+ }0 ~0 B7 a* k* R- A
Определение целей NPC.
Реакция на действия игроков (например, атаки).
Обработка передвижения NPC. + M/ c- ]$ k W/ [4 v
Пример метода из AbstractAI:- H6 c4 Q$ S: q% m" B s4 [
. Z! ?0 s. j. }8 Y , o; i: I& F+ l1 P$ Z; N7 y
public void onIntentionAttack(Creature target) { // public void наНамерениеАтаковать(Существо цель) $ R( Q$ A; t! S6 H; h
// Устанавливаем намерение NPC атаковать цель " W) D4 b4 a. ^; }
2. AttackableAI.java ! Z5 t3 O) `0 e- r7 a2 C* q- G% m5 o2 R: o- T
Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
Задачи AttackableAI:6 x1 y# Y& g8 I' M/ `3 y
Реакция на атаку игрока.
Преследование цели.
Использование умений (магических или физических) в бою.8 y/ y; z# o9 s, n6 z8 x
Пример логики атаки NPC: 0 t! j9 H5 c& X+ r/ ?$ s' P
@Override0 `5 M, N/ V( t: ?
protected void onEvtAttacked(Creature attacker) { // public void наСобытиеАтаки(Существо атакующий)! k+ m) r# y0 h P! o* ~
// Добавляем атакующего в список целей 9 X- K/ d6 w/ p" m r
// Если NPC не занят другим действием, инициируем атаку+ D1 b$ s" H9 }, E
if (!getActor().isAttackingNow()) {, u: H$ }& F$ F) _2 l3 }7 i
onIntentionAttack(attacker); // Нападаем на атакующего 0 K7 E. Q) T# B5 |
} ; \3 D! X: J. p5 B% f: F
}" s- ?6 x1 a) w6 b& u1 P' U
Скопировать код
3. NpcAI.java , K4 o( N Q" J5 W- @! T' x3 C/ @( V) ]6 s% h: X# B+ }: m* Z/ b' a
Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
Задачи NpcAI: & [; G: P: D0 E' E9 V0 p
Открытие окна диалога при взаимодействии с игроком.
Вызов событий или скриптов при выполнении квестов.% n1 f7 `# n5 J$ H# T
Пример взаимодействия с игроком:4 q; z! e) O7 E" ?$ q/ ^ u; p
@Override# t( S& L+ ], E+ i& Z* M$ l: u( p' X
protected void onEvtThink() {8 Q& Q3 }! |. e
if (_actor.isNpc()) {0 r% o1 M: }2 v& l& f) n
// Открываем окно диалога при взаимодействии с NPC- f, i# ^$ P$ \6 v8 x* Z7 q
Как AI влияет на игровой процесс?. x. L6 m7 }+ t- ]& j3 z/ F
Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии. " g5 t% s+ X2 `" e& _: c' y
Примеры использования AI в игре:2 a0 U0 e6 `7 F5 ~3 J5 n& [
Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.: c& l$ E4 X( H# p
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.3 U% H( W( Q. |3 T& k, v
# D B" u* `- VP.S. 6 J/ @1 R( N# q- c5 z/ _Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ? ' I: ^9 }1 K. A7 x1 W$ M/ t 2 R- e2 g% k( R4 Q! h' `4 _% Z8 b9 k
& B) _/ G# D* w, f
[groupid=76]Lineage 2[/groupid]
Добро пожаловать artace.ru - творческий сектор (https://artace.ru/)