Top.Mail.Ru

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

[Скопировать ссылку]
admin Опубликовано 2024-10-21 22:39:29 | Показать все сообщения |Режим чтения Распечатать Назад Вперед
Роль AI в сборке L2J_Mobius" _/ p# ]' K* A9 H$ F, |  \* s3 N

, h$ _6 u" U: X9 X# @* JВ игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).( X1 F& b$ h1 V7 e2 l& j4 I+ B
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.$ H) s6 P3 T  t; t- n
Основные классы AI:
  • AbstractAI.java* i/ I# Y( {0 I7 \& z" j
    • Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
    • Задачи AbstractAI:
      . ~! V; Y( `! R5 o+ c% ^0 J
      • Определение целей NPC.
      • Реакция на действия игроков (например, атаки).
      • Обработка передвижения NPC.) k$ D3 ~9 @% t5 `
    Пример метода из AbstractAI:
    : f( W# H% H& h' N) f+ C' d% \% E1 S
% c1 c, P! l2 _7 }) n+ h

0 z  R" T- ?3 V5 h( w
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)
    & }: G& \4 f0 Y3 j7 E
  2.     // Устанавливаем намерение NPC атаковать цель
    5 U9 i) A/ k) j% S2 |" K; L2 b8 K
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  : _7 u4 k  x+ Y) T$ N
  4. }; Y$ z4 g0 q% A! ?8 I9 _, m
Скопировать код
    2. AttackableAI.java. V/ Y6 ]4 B; l0 e

, `7 E( d! g& x7 w
  • Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
  • Задачи AttackableAI:' C# Z  R' r2 L# z
    • Реакция на атаку игрока.
    • Преследование цели.
    • Использование умений (магических или физических) в бою.
      ! P7 J! K' G4 R5 L
Пример логики атаки NPC:0 g( }" }4 N( J- L. I+ G. q  d
  1. @Override
    , ]9 e% Q, c8 f/ R& g
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)/ ~2 {/ N4 Z" ]6 M9 O: g' L
  3.     // Добавляем атакующего в список целей
    ! S1 k  A9 t9 v( ?
  4.     getActor().addDamageHate(attacker, 0, 1);  
    $ S$ F' f! v3 l6 x7 P
  5.     // Если NPC не занят другим действием, инициируем атаку
    5 W1 V. D6 V6 J/ }# n
  6.     if (!getActor().isAttackingNow()) {
      h6 z5 Y/ G  b! b$ y- W; t# B
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    . g6 \' k$ `8 s4 [, W; T! k% Y+ t
  8.     }: o( S. `+ u% r# n; A
  9. }
    ; m1 V( @+ R4 r4 m
Скопировать код
3. NpcAI.java
" ?$ b1 o5 z: S" d& a: ]* k/ _' j  Z& G6 V' A/ l
  • Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
  • Задачи NpcAI:( K7 |( [4 A, j- H# |! O) K
    • Открытие окна диалога при взаимодействии с игроком.
    • Вызов событий или скриптов при выполнении квестов.
      ' I' @: p0 z% j8 E3 e% n
Пример взаимодействия с игроком:+ p0 ^6 O& J3 j+ {
  1. @Override  U# D5 X& ]. \
  2. protected void onEvtThink() {( n" W, t, |* ]2 i2 B
  3.     if (_actor.isNpc()) {# I4 u( ~9 P; i; q9 g
  4.         // Открываем окно диалога при взаимодействии с NPC
    9 _- ]% }6 h9 N) B( N4 Y
  5.         _actor.showChatWindow(player);) p" @* I" A/ U1 j" q/ c
  6.     }
    6 w/ c; B# F4 r" j9 _$ {
  7. }
    ) e+ X, l; p' J9 |+ n( N1 r9 |
Скопировать код
Как AI влияет на игровой процесс?2 v. u# x: c6 `# c
  • Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
  • Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
  • Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.4 D& H' K- {( P
Примеры использования AI в игре:
/ f* t* C  J2 M  E$ e: L8 t+ |
  • Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
  • Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
  • Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.- }' Y1 N* {0 Y$ }7 _
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.) ?# w7 X" i! _
3 Y1 ^. Y0 t1 H( g6 V
P.S.3 @9 ^' Z, ^5 T5 U/ z' u; g4 z+ u  R
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?3 z9 T" O0 Y1 e- E; d9 m3 Q  q+ }

0 o( e5 Z& a: h' h8 D5 {
5 V+ I" q  M* x0 Q: O1 i! v
% s/ J/ ~" e: _3 B2 G- }/ UИз группы: Lineage 2

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

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

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

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

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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