Top.Mail.Ru

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

[Скопировать ссылку]
admin Опубликовано 2024-10-21 22:39:29 | Показать все сообщения |Режим чтения Распечатать Назад Вперед
Роль AI в сборке L2J_Mobius
2 p5 i  F, l, ]4 o  V, h  o& [% n+ A: U0 L$ y# O6 ?! G
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
" r) w0 j6 o* G7 A) B1 g4 JВ L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
9 I: u- m9 c8 C) KОсновные классы AI:
  • AbstractAI.java& d5 ^* C- W* {4 D* k( F
    • Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
    • Задачи AbstractAI:
      3 m8 U% K, l* G, s6 x
      • Определение целей NPC.
      • Реакция на действия игроков (например, атаки).
      • Обработка передвижения NPC.$ i7 ?. ]* X' M
    Пример метода из AbstractAI:
    + _9 Z4 ^5 t0 [2 |$ Y8 K
: H! u2 M; T' b' M# _
1 U4 U/ ~, _3 A: @
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)
    " w& o7 r. c3 }0 n. U& |
  2.     // Устанавливаем намерение NPC атаковать цель1 X3 [; |% r- R' Q5 d
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    0 z5 \- ?" U4 I/ s
  4. }& j1 a0 w/ r7 |
Скопировать код
    2. AttackableAI.java
* }4 a: F' ~9 [4 x' q
( H5 I7 d( V, G& z/ e0 ~! O
  • Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
  • Задачи AttackableAI:
    " }" v( B5 S, k2 X/ T
    • Реакция на атаку игрока.
    • Преследование цели.
    • Использование умений (магических или физических) в бою.2 Y* ?' s# W" Z% h1 e
Пример логики атаки NPC:: s3 @  o* B1 Y9 Q) c
  1. @Override! g; X- [8 a" a
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)# q# _$ O( r/ N3 E6 c* V
  3.     // Добавляем атакующего в список целей- w3 {; \5 C$ M' C& P2 W+ F
  4.     getActor().addDamageHate(attacker, 0, 1);    ^6 F* Y& z' y! f
  5.     // Если NPC не занят другим действием, инициируем атаку, v. }# I0 k& t3 Q& Q" u4 Q) `( p
  6.     if (!getActor().isAttackingNow()) {
    . W- B1 J; M9 |
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    ' l3 f1 r5 M$ M/ g+ x# Z: }
  8.     }3 j9 Z. r3 _2 S9 A
  9. }
    % g4 y, y% O( W* ~$ p
Скопировать код
3. NpcAI.java
. o* I0 t% o& I$ g
! A: H# N, E3 S+ P7 K
  • Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
  • Задачи NpcAI:0 ]' n- e2 v& t7 _6 P, o$ u
    • Открытие окна диалога при взаимодействии с игроком.
    • Вызов событий или скриптов при выполнении квестов.
      ) x6 m& F# g; R' s0 T3 x
Пример взаимодействия с игроком:  _& `* I+ X2 a" o
  1. @Override
    0 y" j3 M, F. A: x% F
  2. protected void onEvtThink() {& N0 u( l! A* g& t8 B' ]
  3.     if (_actor.isNpc()) {* F: N0 Z$ M# ~6 f
  4.         // Открываем окно диалога при взаимодействии с NPC' Q. c0 W' k8 l' i
  5.         _actor.showChatWindow(player);
    : B9 `& S* E: R, ]
  6.     }
    * p" o4 l  X4 e, E
  7. }( V, L7 t/ U' V# x2 R, @+ l
Скопировать код
Как AI влияет на игровой процесс?/ }# O2 F* I4 N; v  h9 s
  • Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
  • Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
  • Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.
    . J3 N8 }$ f% ]5 b
Примеры использования AI в игре:, u$ f2 Q8 G. ^6 P
  • Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
  • Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
  • Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.. F% f: h4 _8 D9 p. Y, U, ]
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.# _; C" t* F% B5 `
. B& L3 D! C2 b2 W
P.S.
- u+ O9 \1 F5 |3 C# K" s# DКажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? 😄! A( `6 I* p  A2 E+ q" g7 j
& i. S# ]( T. z
, D2 L' R" e% }: n4 [7 y
0 u6 B) X" e+ ^  b  o
Из группы: Lineage 2

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

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

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

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

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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