Top.Mail.Ru

[Руководство по Java для L2J] Роль AI в L2J_Mobius

[Скопировать ссылку]
admin Опубликовано 2024-10-21 22:39:29 | Показать все сообщения |Режим чтения Распечатать Назад Вперед
Роль AI в сборке L2J_Mobius
4 t5 V3 M1 l  ^  L! Q+ r! F! u. z9 p! ?6 o
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект)., m$ Z! {( z7 b8 k5 [6 @8 j8 d7 S/ o
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.- w$ I- m. R, a9 B# d
Основные классы AI:
  • AbstractAI.java- N  i& _4 m! L
    • Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
    • Задачи AbstractAI:& \' c' q, L: o8 v% K
      • Определение целей NPC.
      • Реакция на действия игроков (например, атаки).
      • Обработка передвижения NPC.
          o* L3 ]2 u1 f; N- r: Z% i) }0 H
    Пример метода из AbstractAI:
    % ?4 d+ k+ m! W) P) u
0 o9 z9 L. x" b6 D. `" ?

4 C- E+ d: B; p& ]
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)+ i4 x9 S; v, y9 x1 S
  2.     // Устанавливаем намерение NPC атаковать цель
    6 L- f$ p4 L, E% v' Y
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    5 o/ ?  k3 a- R/ ?
  4. }
    ) u. v& S7 W0 @
Скопировать код
    2. AttackableAI.java& G* q+ r; L3 {- @; p9 V

1 Q" P% V4 u( I8 |: n; R0 k6 o9 z
  • Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
  • Задачи AttackableAI:
    % o0 g- k# B3 j4 N4 u
    • Реакция на атаку игрока.
    • Преследование цели.
    • Использование умений (магических или физических) в бою.. P5 |" E" Q) R5 c4 @
Пример логики атаки NPC:8 Z. A5 r+ X# s; C1 ^$ u
  1. @Override3 v5 k) }$ |: W8 g8 @5 m/ o
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий); j! C4 a* C( o/ l$ [
  3.     // Добавляем атакующего в список целей
    . @9 [% M! k8 [+ Y5 }
  4.     getActor().addDamageHate(attacker, 0, 1);  
    8 w# [4 ^8 V" s/ G% J+ C  H4 P3 \
  5.     // Если NPC не занят другим действием, инициируем атаку
    $ n: ]% [! A9 p) N, L# f
  6.     if (!getActor().isAttackingNow()) {
    ) _- w0 m, H* ?) c. T
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    7 E- ^1 `5 t, ~6 C6 C- E' b
  8.     }
    7 Z6 z- x% _2 }  V# J, ^" Q6 D5 y
  9. }* {8 \- N, P, @- |/ K
Скопировать код
3. NpcAI.java
1 w/ b# n9 _& |7 L0 I+ |* F+ p  m6 X( f8 d+ x% c: c
  • Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
  • Задачи NpcAI:! N! ]5 L! I! D9 b+ ~1 g7 p1 k0 b4 @
    • Открытие окна диалога при взаимодействии с игроком.
    • Вызов событий или скриптов при выполнении квестов.
      / x" X3 W2 p* x$ l2 }' h
Пример взаимодействия с игроком:0 B: Y* y8 R; e7 d( M" D: X
  1. @Override
    ) ~# D: H& S! I1 \* ?
  2. protected void onEvtThink() {
    / w4 w! P* ?* W8 D, g
  3.     if (_actor.isNpc()) {
    8 P( y, q% `6 @, a0 \
  4.         // Открываем окно диалога при взаимодействии с NPC
    3 l; {! \; I% q% c6 ?: t9 h/ g
  5.         _actor.showChatWindow(player);9 U3 u1 L9 X$ g
  6.     }
    % G- O0 R( V! B, ^0 q3 S
  7. }# U! v$ ]" I) c+ Q! [
Скопировать код
Как AI влияет на игровой процесс?
: k0 Q  ~  H1 C
  • Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
  • Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
  • Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.5 |. |/ M& W8 Z: K5 k2 d
Примеры использования AI в игре:
. P( u: S; R. h: V/ i8 }
  • Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
  • Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
  • Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.' {$ B1 x/ s# E
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
/ J; C/ S, X# D* L& U1 N5 \# V: T- K
P.S.3 c, M8 A) I, f0 i
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?, H4 W0 b( o) f5 k, x$ \3 C
! `- o% I: N" w, p+ k; E
' Z5 M. {/ T2 {& @

* m% e% D+ U2 T. _2 q+ ~Из группы: Lineage 2

Сообщение слишком большое

Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться

x
Чтобы ответить, вам надо авторизироваться в системе Вход | Зарегистрироваться

Правил начисления баллов

Опубликовать
Сектор творческих людей
Горячая линия

638638758

С понедельника по воскресенье с 9:00 до 23:00

Обратной связь

admin@artace.ru Онлайн

QR-код

Powered by Discuz! X3.5© 2001-2021 Comsenz Inc.