Top.Mail.Ru

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

[Скопировать ссылку]
admin Опубликовано 2024-10-21 22:39:29 | Показать все сообщения |Режим чтения Распечатать Назад Вперед
Роль AI в сборке L2J_Mobius
2 x( L$ Z; A( l" F3 ^* v4 a! X; d( N- c. d' E
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).0 C3 t4 F! v& S9 Q  S
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.0 v3 v! d- a4 l/ F
Основные классы AI:
  • AbstractAI.java
    * o5 A: \' k. F4 A7 u
    • Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
    • Задачи AbstractAI:
      . q0 R  k+ l/ A9 K, G
      • Определение целей NPC.
      • Реакция на действия игроков (например, атаки).
      • Обработка передвижения NPC.$ J. }* u) n! ?3 M& K9 w4 }6 i7 p
    Пример метода из AbstractAI:; d( R3 A2 O) q) |
7 r- ]& F" q7 m/ Z
# w* I' v. F1 I6 ?
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)6 K8 E% k8 y3 ]# A1 D8 O) ^
  2.     // Устанавливаем намерение NPC атаковать цель
    , R. l% x4 R/ o! G$ ]7 z$ F& k
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  * _9 I; m4 P  @; Z, G3 l& c6 b. U
  4. }
    2 [. v, H9 q& p& I" Z( m1 O" w$ e
Скопировать код
    2. AttackableAI.java! C. s) v0 j/ J1 v
+ Q5 C4 t$ K) y' L" [  o' R* s
  • Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
  • Задачи AttackableAI:) c- I$ S7 B7 u+ c, ~
    • Реакция на атаку игрока.
    • Преследование цели.
    • Использование умений (магических или физических) в бою.
      " f/ c5 S( q% y, c
Пример логики атаки NPC:0 N( K5 B, z) C) e
  1. @Override+ |5 @. G2 i+ Y
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    ! a+ y1 |8 m% l+ z7 u  b2 ^
  3.     // Добавляем атакующего в список целей
    / H! P( \; ~$ p* W) C8 F
  4.     getActor().addDamageHate(attacker, 0, 1);  6 v2 J3 ~: p8 i  S7 {
  5.     // Если NPC не занят другим действием, инициируем атаку
    # t. z# V$ E' n0 x6 W4 _" S. e
  6.     if (!getActor().isAttackingNow()) {4 Z& z+ J( Z. ]1 h6 ~( x1 [
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего  l2 ~! z# L$ n5 y1 f& q7 h4 I  [
  8.     }
    % H0 I& m6 z' s0 r" _& m/ z+ P
  9. }, o" X. Z6 U3 P  a* x
Скопировать код
3. NpcAI.java
. s& ~0 ]# {) p' H; `- R5 q4 G5 N
  • Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
  • Задачи NpcAI:
    : X* _- B7 o  j
    • Открытие окна диалога при взаимодействии с игроком.
    • Вызов событий или скриптов при выполнении квестов.8 ~* N: f7 [% X0 u% {" Z
Пример взаимодействия с игроком:  e; {; R  T8 j% b: z, n+ V
  1. @Override' H- ^* x2 u6 W) @& ~
  2. protected void onEvtThink() {
    $ {* f) n9 j$ h1 }
  3.     if (_actor.isNpc()) {3 F; f; l4 B9 `' i. a; x5 W% v
  4.         // Открываем окно диалога при взаимодействии с NPC0 R- ^& u2 R9 e. H# k0 p
  5.         _actor.showChatWindow(player);, o2 ]# _7 N# b
  6.     }6 N7 Y/ [2 k* z% l  z: T+ R
  7. }/ v1 M5 w9 M+ h8 A
Скопировать код
Как AI влияет на игровой процесс?
2 _7 d4 |' }1 h+ R  S% g/ e# X
  • Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
  • Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
  • Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.( e# v9 B- i$ b; h
Примеры использования AI в игре:
' c; l8 B' @/ G; d/ z
  • Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
  • Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
  • Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.
    1 Z1 E$ D' X: i; p5 ]  R
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.* L* G# ?! r* ^- ~5 M5 }

! g5 ~' n3 c: RP.S.
+ {  Q* b4 d# U$ E. PКажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?/ @; e5 o" v  {2 c  a
8 }; s0 F. p8 M. ^3 n3 N8 w
8 v# \0 ~+ `9 ~  B% ]- U
. W5 Z5 M5 ?8 a% ^
Из группы: Lineage 2

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

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

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

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

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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