Роль AI в сборке L2J_Mobius5 o. M( N/ l+ j6 @
. I7 s4 n y' ~! b/ N8 x' o# f! uВ игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
* w+ T+ n Z1 B1 v6 WВ L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.. ~/ i+ k# m6 E2 `
Основные классы AI:- AbstractAI.java) }# e% w3 C# p B. s W* t5 t9 i/ o
- Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
- Задачи AbstractAI:
, l) g: u5 q9 I! A2 ^$ G {- Определение целей NPC.
- Реакция на действия игроков (например, атаки).
- Обработка передвижения NPC.
5 m7 R( \1 X- \( I7 R5 P. {; M5 f
Пример метода из AbstractAI:
4 |' k7 z9 _6 P
" a: k& T+ f/ k* b) u( ?
; H& c0 z' C5 u+ A+ F- public void onIntentionAttack(Creature target) { // public void наНамерениеАтаковать(Существо цель)0 P1 _9 U5 C7 U0 A
- // Устанавливаем намерение NPC атаковать цель
M5 |, G7 S, K P" d: d - setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
6 g4 N& O, l/ o: _4 {6 @ - }' f( D6 _! A' n
Скопировать код 2. AttackableAI.java" J; u# x; l# [: B, ]% M0 k& ]" D
: M9 t$ h$ X7 f- d
- Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
- Задачи AttackableAI:
8 o& c* \( N- [1 l+ Q- Реакция на атаку игрока.
- Преследование цели.
- Использование умений (магических или физических) в бою.
* k2 t: P; }* x1 d7 U! H
Пример логики атаки NPC:
0 L+ O4 H+ y5 s& W- @Override/ ~, b' n3 z" o: v
- protected void onEvtAttacked(Creature attacker) { // public void наСобытиеАтаки(Существо атакующий)
]8 D$ k. |/ { b) W2 y - // Добавляем атакующего в список целей* b$ \- m0 f/ u
- getActor().addDamageHate(attacker, 0, 1); ' A6 L1 y$ x1 u8 G3 {
- // Если NPC не занят другим действием, инициируем атаку
& K _- |7 N6 D; s; H - if (!getActor().isAttackingNow()) {4 z/ D% x- | Q. l
- onIntentionAttack(attacker); // Нападаем на атакующего4 B* f; d6 D* P
- }( f1 T4 V! k- {4 ?8 a3 y: O
- }
7 V8 |: R4 F I# F) M- H; Q, c$ g
Скопировать код 3. NpcAI.java
! @6 f% A9 e+ b) B5 N6 `- [
/ e$ J4 \1 f9 Z9 B8 U. p- Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
- Задачи NpcAI:
* r6 D/ A* r& }; z5 @- Открытие окна диалога при взаимодействии с игроком.
- Вызов событий или скриптов при выполнении квестов.
% }% q2 c2 J9 R. e! B
Пример взаимодействия с игроком:) N6 c/ j, B% w: }
- @Override; w2 |" O2 k$ _2 ^
- protected void onEvtThink() {
+ c* u) u" \4 w( B - if (_actor.isNpc()) {
7 ^' U$ o- E( c9 s1 W) h) j - // Открываем окно диалога при взаимодействии с NPC. j! C0 i$ E; D/ h# \' O
- _actor.showChatWindow(player);; v# ^% d) J2 ?) ^9 H
- }
4 H5 a2 I4 i0 F5 y! T8 h - }/ |' \: b+ P. t# K
Скопировать код Как AI влияет на игровой процесс?2 Q3 ^% \$ }! H" B2 N4 A
- Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
- Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
- Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.
; x) \% M; x5 o8 j Примеры использования AI в игре:1 s; ?- p. |% a! _5 x% {
- Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
- Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
- Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.) E7 Y; v3 F6 q
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
" s" l7 d- ]# w# e8 I( e9 `& O
1 B8 v+ k/ s3 q% TP.S.
9 v/ |6 v: l( l' i, W# r3 ~* f7 |Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?4 C! E& M4 J- Y- O' U2 l
5 B w, i" L) r$ ]
" ~8 N7 J" J; ?" I
. i" v7 I) x2 c% }6 ?3 ?
Из группы: Lineage 2 |
|