Top.Mail.Ru

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

[Скопировать ссылку]
admin Опубликовано 2024-10-21 22:39:29 | Показать все сообщения |Режим чтения Распечатать Назад Вперед
Роль 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
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)0 P1 _9 U5 C7 U0 A
  2.     // Устанавливаем намерение NPC атаковать цель
      M5 |, G7 S, K  P" d: d
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    6 g4 N& O, l/ o: _4 {6 @
  4. }' 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
  1. @Override/ ~, b' n3 z" o: v
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
      ]8 D$ k. |/ {  b) W2 y
  3.     // Добавляем атакующего в список целей* b$ \- m0 f/ u
  4.     getActor().addDamageHate(attacker, 0, 1);  ' A6 L1 y$ x1 u8 G3 {
  5.     // Если NPC не занят другим действием, инициируем атаку
    & K  _- |7 N6 D; s; H
  6.     if (!getActor().isAttackingNow()) {4 z/ D% x- |  Q. l
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего4 B* f; d6 D* P
  8.     }( f1 T4 V! k- {4 ?8 a3 y: O
  9. }
    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: }
  1. @Override; w2 |" O2 k$ _2 ^
  2. protected void onEvtThink() {
    + c* u) u" \4 w( B
  3.     if (_actor.isNpc()) {
    7 ^' U$ o- E( c9 s1 W) h) j
  4.         // Открываем окно диалога при взаимодействии с NPC. j! C0 i$ E; D/ h# \' O
  5.         _actor.showChatWindow(player);; v# ^% d) J2 ?) ^9 H
  6.     }
    4 H5 a2 I4 i0 F5 y! T8 h
  7. }/ |' \: 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

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

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

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

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

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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