Top.Mail.Ru

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

[Скопировать ссылку]
admin Опубликовано 2024-10-21 22:39:29 | Показать все сообщения |Режим чтения Распечатать Назад Вперед
Роль AI в сборке L2J_Mobius
- E) w# P, v) n# @( ?
' }" u. b8 G9 s0 rВ игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
0 v2 I. F. ?+ n4 M8 WВ L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
; Z) _7 V7 m3 KОсновные классы AI:
  • AbstractAI.java
    . _$ w, F- O( I  j) q
    • Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
    • Задачи AbstractAI:+ h6 F" y( g  D6 n' k
      • Определение целей NPC.
      • Реакция на действия игроков (например, атаки).
      • Обработка передвижения NPC.7 ?, r: H( [% I% K
    Пример метода из AbstractAI:, V* D& }1 B% z8 f1 D: d

: N  M2 @/ e$ Z, c$ G+ ^! K5 S- g- R( S9 r/ x
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)
    " ~6 V( r( q+ I
  2.     // Устанавливаем намерение NPC атаковать цель
    / P. l8 w& |: X2 |! T4 C
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    ( X1 y4 s) n" i1 N5 H
  4. }/ R: d. f& f9 V3 z, `/ z7 b1 k
Скопировать код
    2. AttackableAI.java
; d6 U+ S' T- L$ D6 d' i0 N! c; z$ u0 ]# Y% J
  • Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
  • Задачи AttackableAI:. @# l' `, O- {* A+ K) j* O
    • Реакция на атаку игрока.
    • Преследование цели.
    • Использование умений (магических или физических) в бою.) u: \& E  j9 a' \( f
Пример логики атаки NPC:
7 g  d: z7 ^+ N" \1 l
  1. @Override3 A5 E8 R8 D# X( _) S& L* C7 P& C: _
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    2 r2 v: }, L8 `! \
  3.     // Добавляем атакующего в список целей
    " @/ |. G* i9 w3 Q+ Q9 `
  4.     getActor().addDamageHate(attacker, 0, 1);  2 c; \4 s9 m2 o5 m* r2 V/ [
  5.     // Если NPC не занят другим действием, инициируем атаку
    " T6 X' C) z8 M# p3 S
  6.     if (!getActor().isAttackingNow()) {
    : o* I+ e- H/ C# o5 D" ~6 C- g
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    $ U# [* I% o  m" t# W. T. w
  8.     }# G( O& T) |: b9 ]
  9. }& C& m% ?2 Y# ~" i8 d
Скопировать код
3. NpcAI.java/ A* K$ B7 x0 b' ]  d- I* _" T9 U

3 G' R' H# L, `
  • Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
  • Задачи NpcAI:% T# q; H8 A: ^8 }
    • Открытие окна диалога при взаимодействии с игроком.
    • Вызов событий или скриптов при выполнении квестов.
      - M5 Q- T/ b  v* g( T4 m; x2 P+ U
Пример взаимодействия с игроком:9 e& f" D" u) `' m0 _4 Y' @
  1. @Override% G$ Q- @+ q, `
  2. protected void onEvtThink() {$ ?1 p& }, b' v4 y& A  I5 N
  3.     if (_actor.isNpc()) {
    9 Q9 i9 P/ Q  `6 \0 e
  4.         // Открываем окно диалога при взаимодействии с NPC% E1 T  @7 Q& {$ l7 F* V1 J
  5.         _actor.showChatWindow(player);, M; S1 Q4 J+ x8 I+ z* M8 D9 `
  6.     }- |0 R* u; S1 t$ x) F. s
  7. }% v5 ]! l! o% F- _+ Z# K
Скопировать код
Как AI влияет на игровой процесс?
+ O1 M2 _: _( Y# N8 K# k3 L
  • Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
  • Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
  • Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.
    6 `1 E6 k7 N2 U/ b% c+ x; }
Примеры использования AI в игре:
) v# U+ J7 E: {- f
  • Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
  • Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
  • Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.* C; v: l* Q9 c. q
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
, M; U0 n  W7 u* E1 g( h: N4 X3 s: {* L0 s- f8 `6 }
P.S.
7 |+ R) }2 M3 s! h: s/ jКажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?* g- e" k' W! j9 [1 \& W

8 z+ O- w0 S* R' [+ ~9 s% Y2 K0 R# j

  o' h/ @' `8 wИз группы: Lineage 2

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

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

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

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

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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