Top.Mail.Ru

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

[Скопировать ссылку]
admin Опубликовано 2024-10-21 22:39:29 | Показать все сообщения |Режим чтения Распечатать Назад Вперед
Роль AI в сборке L2J_Mobius3 t* {& {  H" I$ F- T2 ^! }
2 i; G) m9 p3 \! Z
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
7 `" }! A) K6 n, t, {/ y* V) \В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
! C8 R0 V' ?& J8 ^& dОсновные классы AI:
  • AbstractAI.java
    - i- l4 e; ]9 [% [  r
    • Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
    • Задачи AbstractAI:) s! d. }/ s$ s$ q7 P2 [& s
      • Определение целей NPC.
      • Реакция на действия игроков (например, атаки).
      • Обработка передвижения NPC.
        , [" Q* ]1 ], u
    Пример метода из AbstractAI:- n; A$ F$ h  S: ]! _# Q+ O+ x/ b, r

. H( E8 m* r5 @: c( L' a9 P2 m" D. A! ]4 h7 c3 G" E8 j
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)8 t, g8 C  {; S& F+ Z
  2.     // Устанавливаем намерение NPC атаковать цель
    * N5 p5 _. x2 B' t) \+ I' l  w, W( ~
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  . I7 o, b, W7 ^3 J
  4. }
    6 P+ _! f6 r- w
Скопировать код
    2. AttackableAI.java) I7 k3 I. ?5 D: {) M* i

# r' q% V$ T4 X  \
  • Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
  • Задачи AttackableAI:3 c- L0 g) J- N* g7 W
    • Реакция на атаку игрока.
    • Преследование цели.
    • Использование умений (магических или физических) в бою.
      " {) Z* G& d  x/ F& t
Пример логики атаки NPC:
/ A' _- X/ h/ E8 G$ Q
  1. @Override2 v  x; z! p& W9 e- i+ k( \
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    8 A" _% L% v. Q: D% ]
  3.     // Добавляем атакующего в список целей
    / M6 F4 O/ Q' c3 P5 W+ V& A
  4.     getActor().addDamageHate(attacker, 0, 1);  3 y# @2 D2 q9 q* o  ^! M: B9 m
  5.     // Если NPC не занят другим действием, инициируем атаку
    % |' ^/ {5 [" W$ W- O
  6.     if (!getActor().isAttackingNow()) {
    * N5 y4 k* V: S, e1 l
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего" p$ u: t6 A) ]
  8.     }
    ( N1 E1 {7 x+ o& x
  9. }2 A$ t) p$ m, T& _1 O$ Q+ h" [
Скопировать код
3. NpcAI.java' O! Z2 N9 S3 A  y- \# q

6 H) w4 N7 [; `* T  a, Q4 N& d
  • Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
  • Задачи NpcAI:4 B( T+ W0 H: ]2 U. N
    • Открытие окна диалога при взаимодействии с игроком.
    • Вызов событий или скриптов при выполнении квестов.# t9 g9 k+ r; I% k/ {, V4 u* a
Пример взаимодействия с игроком:2 j/ f1 o+ F( `1 e' a
  1. @Override
    1 m. P# j( G- I7 K% }* t3 w
  2. protected void onEvtThink() {" n5 ^. c5 ]4 e6 `3 x+ _& i
  3.     if (_actor.isNpc()) {
    " p& L6 [8 c/ `7 I- z4 d
  4.         // Открываем окно диалога при взаимодействии с NPC
    - ?& y$ f3 `% P* j+ s& r
  5.         _actor.showChatWindow(player);/ z7 h; l) D6 u. w) ?( ~" {
  6.     }
    / ^: y! R8 ?! N5 j9 j' k* m
  7. }
    7 k3 S! U4 @% C2 c
Скопировать код
Как AI влияет на игровой процесс?" }9 {: ]& R4 v
  • Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
  • Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
  • Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.* [5 C2 C* Z) C/ R  s" R" d
Примеры использования AI в игре:1 E* F  ?# a3 e; t! S! S
  • Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
  • Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
  • Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.# D; P5 ]9 T9 x% V- ?/ t6 q$ m; O
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.1 b6 t! B3 s+ }6 M6 w/ y! F& D
; V, v$ q5 P4 J8 }. M
P.S.2 y+ S6 ^% \  o9 I, w! }
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
$ r9 R9 P5 w$ T4 u' [( d5 M* x; r

1 J$ e7 e: K- s5 t% ^) z9 `. `0 h
' p( K+ n, @* g! ?8 hИз группы: Lineage 2

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

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

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

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

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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