Название: Роль AI в L2J_Mobius [Версия для печати] Автор: admin Время: 2024-10-21 22:39 Название: Роль AI в L2J_Mobius Роль AI в сборке L2J_Mobius5 R' h( j( R1 y- j: [
[attach]504[/attach] 0 k! V% @$ k: s, n9 C+ e7 J' ~В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).% C) @7 ~# u: w" Y% \1 o% ?4 }: ?
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях. 6 h, h& _ o& X4 Z) FОсновные классы AI:
AbstractAI.java5 D7 e& ^ e% \, v
Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
Задачи AbstractAI: , l- f% E7 S# y9 [' r; g5 Q
Определение целей NPC.
Реакция на действия игроков (например, атаки).
Обработка передвижения NPC.; C" K0 o o0 A& Z; s, z
Пример метода из AbstractAI: - f- e. n8 X9 n
# U8 q; m6 F: _3 g. X. b # J& c4 E- _) O
public void onIntentionAttack(Creature target) { // public void наНамерениеАтаковать(Существо цель)0 c7 k f- ^/ _1 h
// Устанавливаем намерение NPC атаковать цель- m4 L; S P+ e: _3 e$ r; m# e
setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); % Y! g* ]# \) d) z
} , Y% z; X7 b* F! E! S
Скопировать код
2. AttackableAI.java , t1 b' y; F% X, A3 i P! J' j- Q) k: W6 N
Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
Задачи AttackableAI:% F# C7 r( W0 q" r4 a5 F9 P {+ v
Реакция на атаку игрока.
Преследование цели.
Использование умений (магических или физических) в бою. 0 G% _/ C0 _9 a* O% T! ]
Пример логики атаки NPC: & J2 F* v' u) |6 b j" k' t1 t
@Override - i9 L: r9 u" w: a/ f, ~2 P
protected void onEvtAttacked(Creature attacker) { // public void наСобытиеАтаки(Существо атакующий) & I9 m3 S" ^# k4 i, q8 t: F
// Добавляем атакующего в список целей1 D7 l7 T. `4 c2 y
getActor().addDamageHate(attacker, 0, 1); 1 w; \5 y( U+ e
// Если NPC не занят другим действием, инициируем атаку# C7 s7 m6 \4 K# }' M" y" {
if (!getActor().isAttackingNow()) { 3 S- F' h& l8 J) J# W+ R# }) L0 ^, E
onIntentionAttack(attacker); // Нападаем на атакующего* L* _$ Q' C( G" e. ?% S; G
}) ?! c9 b% D) c6 ?5 S
}! _1 W h; l7 V, l
Скопировать код
3. NpcAI.java ) H, S8 _. R5 D4 P* |" a8 r ! @6 Z& _8 A4 g' G
Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
Задачи NpcAI: ( i* J, {8 Q; t8 n1 a
Открытие окна диалога при взаимодействии с игроком.
Вызов событий или скриптов при выполнении квестов. - g" j- b) d. C% m! Y
Пример взаимодействия с игроком:8 q: N0 i* G5 \$ G
Как AI влияет на игровой процесс? + O% p" m& n* Q! t
Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.7 L6 h. O6 K4 d
Примеры использования AI в игре:4 K& m* h) R5 P \$ }" U
Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.5 e) W8 T) u; v; {$ p
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным. / ]8 |( i+ p- g, T3 q' j/ t6 R; q4 _4 z. a2 X P.S.4 I- S& n' h% p4 _$ _8 W, ?+ k3 b- h
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? 😄 ) l2 h/ |& m4 D' A o ; y5 f/ L* D; d: {4 S2 N6 W: `5 G, u' j6 K X# k
3 A6 ?, J& b$ T( c- @: O
[groupid=76]Lineage 2[/groupid]
Добро пожаловать artace.ru - творческий сектор (https://artace.ru/)