Название: Роль AI в L2J_Mobius [Версия для печати] Автор: admin Время: 2024-10-21 22:39 Название: Роль AI в L2J_Mobius Роль AI в сборке L2J_Mobius - \( a/ o* E; p, ~" k0 ][attach]504[/attach] 2 t, N9 g+ G2 S3 }4 [" b3 H( uВ игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект). : d* Y* W. ?. U4 K* jВ L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях. : U) j8 ]) b1 v. oОсновные классы AI:
AbstractAI.java 8 G" ?* ~ [' `- K# k: B, D, F6 H
Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
Задачи AbstractAI:5 ]9 u# y y( r1 K0 g
Определение целей NPC.
Реакция на действия игроков (например, атаки).
Обработка передвижения NPC.; {& M S( y* |$ E
Пример метода из AbstractAI:6 {% h; B M, _7 |* v! Z2 F
- p u, j% w7 o8 X, p6 a* B
2 f9 f) }6 c4 k& e+ L
public void onIntentionAttack(Creature target) { // public void наНамерениеАтаковать(Существо цель) ) w3 K7 R4 H* W! w
// Устанавливаем намерение NPC атаковать цель/ r# `8 j; ^0 j$ C, h F8 E
Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
Задачи AttackableAI: X: [/ F: z3 P( V3 H: q
Реакция на атаку игрока.
Преследование цели.
Использование умений (магических или физических) в бою. . T3 K7 t/ J1 Q) h1 @1 t5 Q% P
Пример логики атаки NPC: - _3 G* v. W1 R# U5 |/ \
@Override 3 x) H" n- G! q; p
protected void onEvtAttacked(Creature attacker) { // public void наСобытиеАтаки(Существо атакующий) 5 A2 I; F/ _1 l
// Добавляем атакующего в список целей) w. J( {3 [# o3 a7 z
getActor().addDamageHate(attacker, 0, 1); 9 Y( _1 i A" o8 I7 K$ t
// Если NPC не занят другим действием, инициируем атаку $ f/ U9 S9 _9 O: I' k$ c
if (!getActor().isAttackingNow()) {& V! Q# z. L. m; i. [5 ~
onIntentionAttack(attacker); // Нападаем на атакующего 4 @, l* M7 `6 P3 a+ c; ]$ Z
}* V; A Q7 j. I; e/ b; }/ `" t4 T
} ( i5 _: s, P+ q) l z# X9 Z
Скопировать код
3. NpcAI.java . f9 J3 K7 O" p 2 {, L. N- y2 Y9 F0 c
Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
Задачи NpcAI:8 {, ^# Q2 J# c- G; a
Открытие окна диалога при взаимодействии с игроком.
Вызов событий или скриптов при выполнении квестов.' p9 U9 I7 t3 W% a) n$ D
Пример взаимодействия с игроком:1 @2 m. M/ C8 G4 {
@Override% I0 U" V1 `2 p- L# c7 {
protected void onEvtThink() { * L8 C9 A. A2 _0 t
if (_actor.isNpc()) { ( h" f. e4 }: i5 z& m+ S
// Открываем окно диалога при взаимодействии с NPC8 T' k5 T- B% L" D' P8 d9 P
_actor.showChatWindow(player); 6 ]% l) }+ X( L* J2 u
} ) C6 l0 m+ o4 `/ D0 c- \7 Q$ n$ J7 o
} ( t4 C9 T3 e- s6 b) ?
Скопировать код
Как AI влияет на игровой процесс? : `) F& X; n' a4 m8 y* g& M
Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.: Q; n1 B- m5 V+ m6 T. ]/ c0 e
Примеры использования AI в игре: $ f5 K# Y' x; Q/ V. I6 }! Y0 e2 B# X
Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.2 m7 U& N; E8 t. j$ F. |3 H
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным. 9 }+ j2 @: V. l; |- m& ~! l * a0 \3 L3 k5 n/ }2 Z0 c; r9 IP.S. j( M8 y0 X7 m( }
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?7 Y, |+ i5 J; l S7 g
0 R2 n. M4 k/ P0 V9 | i$ q& l
. {* X* G( z/ @+ F* f% V8 z! @ {0 H
5 w, E0 i- C# M. M
[groupid=76]Lineage 2[/groupid]
Добро пожаловать artace.ru - творческий сектор (https://artace.ru/)