Top.Mail.Ru

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

[Скопировать ссылку]
admin Опубликовано 2024-10-21 22:39:29 | Показать все сообщения |Режим чтения Распечатать Назад Вперед
Роль AI в сборке L2J_Mobius
" b* R4 ~' J3 ?5 V6 t
3 {0 q) w  n4 gВ игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).% n" h$ a! m1 ?
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
$ j  E  i* d4 H% _0 rОсновные классы AI:
  • AbstractAI.java: V# d3 M7 s( l" {6 t  d0 C4 ~- r
    • Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
    • Задачи AbstractAI:- g, V& @8 [) s0 _- ^
      • Определение целей NPC.
      • Реакция на действия игроков (например, атаки).
      • Обработка передвижения NPC.5 K5 @0 u' U$ s7 K0 g: l" D
    Пример метода из AbstractAI:7 S+ E3 [/ m( E! Y7 J9 K1 z0 L

6 j8 i8 h) q2 q5 [3 U0 h0 v" j6 n2 w
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)- F9 E7 Y2 K; r; S  @: J6 k
  2.     // Устанавливаем намерение NPC атаковать цель6 @  L7 F$ I. B- O0 o3 V
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  , @" n' z  r# Y& |7 n
  4. }8 l3 P( K- ^9 W* {
Скопировать код
    2. AttackableAI.java
, b% T* ~' Z" N  j  \# {
  P: ^- D! \! b, _- e2 t. N
  • Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
  • Задачи AttackableAI:3 {/ U: L' U+ N4 h; Y9 d6 Z
    • Реакция на атаку игрока.
    • Преследование цели.
    • Использование умений (магических или физических) в бою.
      , K/ |; A( Y* e5 i0 w5 y
Пример логики атаки NPC:
* j! \: W/ y% u' w! a( S& ?3 M9 C; I
  1. @Override
    / ]+ E- Z. Z# @* H- ?
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)1 B* z3 y1 S; g
  3.     // Добавляем атакующего в список целей
      O" }/ l& e1 G' R2 v% K0 J
  4.     getActor().addDamageHate(attacker, 0, 1);  
    ( e  s: Z7 {% h: r+ }
  5.     // Если NPC не занят другим действием, инициируем атаку
    7 s1 U6 \& D/ J
  6.     if (!getActor().isAttackingNow()) {$ H3 I. l0 n8 |, m* c; L
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    - ?3 Z" F3 e0 J: z+ V
  8.     }
    2 `' K* ~# d6 v& \/ N+ x
  9. }
    ; @8 j: D  c+ Z2 d0 Z5 W; P
Скопировать код
3. NpcAI.java* r" _9 Y  ]9 D2 g- Y) `; o+ R
# _& `7 v0 V0 d& X# h( m6 N
  • Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
  • Задачи NpcAI:& g+ T5 p. ]$ H+ y! V  B
    • Открытие окна диалога при взаимодействии с игроком.
    • Вызов событий или скриптов при выполнении квестов.+ M5 s+ T; S! V9 E! x; ^9 l2 ]
Пример взаимодействия с игроком:
* T9 _. B1 e% n
  1. @Override
      I* g- y3 O% F. Z, E
  2. protected void onEvtThink() {! K8 s0 |* \: m0 \5 [7 P- X
  3.     if (_actor.isNpc()) {% b( s/ G  q/ L; d- w' `
  4.         // Открываем окно диалога при взаимодействии с NPC
    " B" n4 h& f" |
  5.         _actor.showChatWindow(player);# c1 E4 r4 V- ?) ~3 t& I- n
  6.     }9 s/ l9 b4 q) o
  7. }$ @6 M8 t! g3 m1 s: G
Скопировать код
Как AI влияет на игровой процесс?2 G: V, O1 d3 a& v: ?2 z
  • Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
  • Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
  • Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.
    ) s$ `8 n: s; h" _1 P
Примеры использования AI в игре:, _# ~% ?: y( Q( W- x" x
  • Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
  • Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
  • Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.  Q" i+ N2 i$ E. V$ b  [
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
9 s( }: y8 M0 [5 X1 v  R$ U  O5 v7 M/ N  ^1 B
P.S.# R3 V: w3 M  q1 C
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
7 W: v5 n7 X9 Y* U$ k/ T% b# k+ x% Q
% Y& W" D0 @7 r3 I
. D3 x% z# v( S) ?' t, z  k$ Y
Из группы: Lineage 2

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

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

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

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

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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