Top.Mail.Ru

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

[Скопировать ссылку]
admin Опубликовано 2024-10-21 22:39:29 | Показать все сообщения |Режим чтения Распечатать Назад Вперед
Роль AI в сборке L2J_Mobius
* f) f. M* Z4 u% q: J/ h0 H/ L
! v/ v" N) c/ e& u/ bВ игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
6 N2 p! V1 x9 g- ^6 HВ L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.' [+ k/ R2 z4 X& N5 C
Основные классы AI:
  • AbstractAI.java
    % k7 J$ `1 v' c: y9 o
    • Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
    • Задачи AbstractAI:  Q  Q# X# w) F. Z, T" |  k
      • Определение целей NPC.
      • Реакция на действия игроков (например, атаки).
      • Обработка передвижения NPC.4 T8 ]) a0 v' Y
    Пример метода из AbstractAI:. U0 o/ |: r" Q  \! W4 v
3 F& d  A, u5 n' @

' g2 k8 i& F6 W+ n; J/ o6 a
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)2 t. F0 @: t) S1 r) D
  2.     // Устанавливаем намерение NPC атаковать цель
    2 n! P% d+ l; G' p
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    / p: j) Y, L) _0 [5 F6 o. o
  4. }
    : S9 Q# a7 X7 [) K- p# W- ^( z
Скопировать код
    2. AttackableAI.java
' ~$ n+ |& q+ ?/ r+ |
+ s& p4 e& S" V9 f- ?
  • Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
  • Задачи AttackableAI:
    9 _6 S' \: P! x$ X+ c
    • Реакция на атаку игрока.
    • Преследование цели.
    • Использование умений (магических или физических) в бою.
      2 S! P( y  u9 J/ J" K4 d# {2 I
Пример логики атаки NPC:7 o8 c% w( j% {! I& [  h
  1. @Override8 E0 k1 D( S3 m% `
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)/ w" n  b: X4 r: @3 B! i( Z. |
  3.     // Добавляем атакующего в список целей
    % z, Y  j& u" ^2 k9 r
  4.     getActor().addDamageHate(attacker, 0, 1);  1 |  [# `" f- N; I, T. G. l
  5.     // Если NPC не занят другим действием, инициируем атаку
    ! a. |) v3 B% ~" g! Y3 R3 w
  6.     if (!getActor().isAttackingNow()) {( K+ V  t; o& M" |- q* Q3 g! s
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего- i1 k( B7 p7 k4 w  w/ ]9 @; [
  8.     }2 n& i& n/ L  U) _. X+ j$ p/ `
  9. }
    2 z3 \1 F1 {% y: e  ]% W
Скопировать код
3. NpcAI.java
; N9 n" p' c. i2 t6 h: N' o  X4 a' e' A! }0 u  X
  • Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
  • Задачи NpcAI:3 o8 Y  P' w4 I5 ]' i
    • Открытие окна диалога при взаимодействии с игроком.
    • Вызов событий или скриптов при выполнении квестов.. e4 N. r- Z& e* V9 U: l
Пример взаимодействия с игроком:/ _. i6 U: |. q
  1. @Override
    / J( V0 T: \, O0 v6 Z7 R
  2. protected void onEvtThink() {
    7 c% ?9 [! a* U
  3.     if (_actor.isNpc()) {
    3 A+ O3 N) l7 p  t
  4.         // Открываем окно диалога при взаимодействии с NPC3 U( |. z8 S( d8 v: P" G' G
  5.         _actor.showChatWindow(player);1 h# O8 Q* N' h7 U6 j4 X% g
  6.     }8 |0 q  V1 z0 S3 O
  7. }
    ! ~$ x3 {1 a5 g2 t2 t
Скопировать код
Как AI влияет на игровой процесс?
9 `4 X& H: y8 K. _* ~# n+ q# v9 w
  • Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
  • Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
  • Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.
    6 \5 A  T6 x( ]' M1 [5 t- H
Примеры использования AI в игре:& C' F# C& n' p! z) l5 D
  • Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
  • Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
  • Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.8 N0 ~* R- Q# ]# p& M9 g
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
' h; I) A2 M& e2 O% K) O3 U& S2 g. r$ G  p1 @& r
P.S.
* c; g/ x; j: EКажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
. W- S) ^; a3 ~! [; K* a1 o; X9 ~" E1 p, d

4 T+ c2 x- x- U7 ]1 q# d  l. j  |, S4 o- l9 `( y' x. ?
Из группы: Lineage 2

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

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

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

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

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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