Top.Mail.Ru

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

[Скопировать ссылку]
admin Опубликовано 2024-10-21 22:39:29 | Показать все сообщения |Режим чтения Распечатать Назад Вперед
Роль AI в сборке L2J_Mobius
9 k% b: o* [2 }" X3 V0 }3 ^, I) }
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
- [% W1 e  V& M" ^! ~0 C9 h0 YВ L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
7 W6 ~7 }6 o6 k! _! J1 r# G' {3 ]Основные классы AI:
  • AbstractAI.java
    5 n+ z9 k3 L* \" w
    • Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
    • Задачи AbstractAI:! U. I; N2 R3 Y  ^" Q2 E4 Y
      • Определение целей NPC.
      • Реакция на действия игроков (например, атаки).
      • Обработка передвижения NPC.: o2 L, V$ v" _
    Пример метода из AbstractAI:
    / I- k# F" I/ A! ?. ?

5 \, h. D9 w# J2 J, h0 {" ^! G3 D+ U
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)
    9 m# a0 ?. @5 i, b
  2.     // Устанавливаем намерение NPC атаковать цель( L' D- K8 L+ J; M" g
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    / p% n5 J. c1 [. e
  4. }0 Y2 ^0 ~7 H1 C) V
Скопировать код
    2. AttackableAI.java2 h: H" h4 k7 r4 a' P5 i

( ?# e6 \3 M% N& ^
  • Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
  • Задачи AttackableAI:
    ! L4 V9 A: [% S" z  x9 X
    • Реакция на атаку игрока.
    • Преследование цели.
    • Использование умений (магических или физических) в бою./ i* d4 M( u! m: |: `+ J3 X
Пример логики атаки NPC:: [2 m3 {- E" Y4 U; v& g& _2 x* j: k$ L
  1. @Override2 ]% \' B& \) `1 A% K% ^6 F+ Q
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    " ~% s$ Y5 u1 M! I. I" L# J
  3.     // Добавляем атакующего в список целей% v. }7 W- r0 ~+ Z9 e$ Z
  4.     getActor().addDamageHate(attacker, 0, 1);  ' Y+ i( r4 v* h2 l
  5.     // Если NPC не занят другим действием, инициируем атаку
    ! q4 w. O' a2 h- A; p9 j) n9 y: R
  6.     if (!getActor().isAttackingNow()) {
    + L! L# l0 o1 c
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего: G' a% }: K; W# W& z
  8.     }% K6 _1 Y( [" q) k. g
  9. }
    ' H. |5 _2 J; M4 [6 H9 f) P; W
Скопировать код
3. NpcAI.java
9 {; k$ N# a* g  p( ~; O- s5 o) {: t; j
2 U0 [5 ^0 n% @
  • Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
  • Задачи NpcAI:
    . Z( I; b' a' M! _
    • Открытие окна диалога при взаимодействии с игроком.
    • Вызов событий или скриптов при выполнении квестов.
      , d. a  H3 a; z/ ?9 ?) C: B3 h" g# t/ C1 l
Пример взаимодействия с игроком:5 E( s5 M6 v# k1 i1 l
  1. @Override/ S4 i: R! e4 y' V  _! p
  2. protected void onEvtThink() {
    . O+ w  `0 L/ f6 E5 p% p; m
  3.     if (_actor.isNpc()) {
    , m3 U9 {" }3 v5 d. [$ \5 y
  4.         // Открываем окно диалога при взаимодействии с NPC
    . u2 ?8 X, W1 p  o, o6 h  K
  5.         _actor.showChatWindow(player);5 B1 N! H9 @+ E
  6.     }7 }' R% _' H9 @1 y/ U
  7. }
    % c% U  [8 M# x3 h! E) C
Скопировать код
Как AI влияет на игровой процесс?
! \# |2 A4 L; {! ~! x% E% O$ {
  • Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
  • Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
  • Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.& y# Z  O6 G- `6 n- K9 @4 \
Примеры использования AI в игре:
. S# f. b0 O: e# N8 b8 M  n* u. F
  • Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
  • Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
  • Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.
    8 _0 p+ Q; U/ C0 |' [  G8 o
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
* ^5 e& T4 A. }: H# H4 V+ M  l4 W$ m( l8 v$ Z2 |
P.S.
" \% i. W8 j" l4 aКажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
! z& J5 ~1 m! p, W! W0 j! S0 ^  m+ r3 P
0 H5 ~; n5 c# D* L9 c, F

, ?. n) F; S6 g0 ?* JИз группы: Lineage 2

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

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

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

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

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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