Top.Mail.Ru

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

[Скопировать ссылку]
admin Опубликовано 2024-10-21 22:39:29 | Показать все сообщения |Режим чтения Распечатать Назад Вперед
Роль AI в сборке L2J_Mobius
; o# }' S# t) ?9 I; a0 W1 s, w6 e- f6 |& F9 c( _0 T
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
% R7 b4 H5 o& @& ?+ T( T$ z; kВ L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
/ W% U! n2 _; W. CОсновные классы AI:
  • AbstractAI.java8 f1 V" [3 ~- V! o( Y  q
    • Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
    • Задачи AbstractAI:6 n% y9 p2 b* t( d$ @' s
      • Определение целей NPC.
      • Реакция на действия игроков (например, атаки).
      • Обработка передвижения NPC.
        4 l* A4 ^+ }  u
    Пример метода из AbstractAI:
    3 U$ e. Y5 a, a% \3 @
: h( D+ }/ c  ^# ~3 B6 o  N& e
6 ~  \) u) p" H* S) p" A3 b  r
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель); q: y. ]# B% y  S" [+ t; e- W
  2.     // Устанавливаем намерение NPC атаковать цель0 o' K* R  h* c3 L9 l/ `
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  6 `( s1 p/ _2 r7 g$ p
  4. }
    8 @2 M  z1 r+ |$ q( X  s
Скопировать код
    2. AttackableAI.java
+ S; l0 L" W6 e6 ]+ d4 x0 i& O) E& ?
8 I% a; q, g* @
  • Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
  • Задачи AttackableAI:$ A+ }( H0 r/ w- J
    • Реакция на атаку игрока.
    • Преследование цели.
    • Использование умений (магических или физических) в бою.# H9 A9 ?3 h; h& l% R# X
Пример логики атаки NPC:
: f3 w  f  I( s" {
  1. @Override0 F4 Y: f4 N' C* G" n% s8 V
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий). `$ k3 O' j1 i9 U& C
  3.     // Добавляем атакующего в список целей( {; I$ \  d9 K
  4.     getActor().addDamageHate(attacker, 0, 1);  
    % ^5 c, g+ W7 A9 W$ F8 {3 H& ~
  5.     // Если NPC не занят другим действием, инициируем атаку
    + v) h: A9 X; F3 T2 o+ h
  6.     if (!getActor().isAttackingNow()) {. \8 Y& H8 a$ s9 a& \# E
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    ' v0 q  e! E0 U" U4 Y
  8.     }( v1 U' G5 y2 W. v8 V9 R# u# N- ?
  9. }2 a6 ?2 N) `+ Q" w2 Z# {& F7 q0 X
Скопировать код
3. NpcAI.java! A' C2 x( n, z0 }5 B% A+ O6 [

3 Q0 E9 f% m) t( f
  • Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
  • Задачи NpcAI:3 b+ z  ^5 S+ [: h: A* t1 z0 x
    • Открытие окна диалога при взаимодействии с игроком.
    • Вызов событий или скриптов при выполнении квестов.
      $ z/ W- _( Q$ x# Y3 n
Пример взаимодействия с игроком:
: d* O  w5 P, z* t9 G
  1. @Override
    7 p4 G9 E' z5 W: B
  2. protected void onEvtThink() {, h' L/ ^% h! t6 |* b7 ?; U6 O8 ^2 T# K
  3.     if (_actor.isNpc()) {, ?. U) `' u9 F6 T) f, h' F% H
  4.         // Открываем окно диалога при взаимодействии с NPC9 Z& H1 L7 x" E% o0 X% G6 Y
  5.         _actor.showChatWindow(player);- k# |( @& p, ?( `) U$ g
  6.     }
    % X/ V1 U  z0 s5 q, |8 q
  7. }
    / g4 V3 z& D. e
Скопировать код
Как AI влияет на игровой процесс?/ q3 N/ H( q: V7 t2 L
  • Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
  • Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
  • Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.
    4 J6 r  _) v0 i8 Q$ o
Примеры использования AI в игре:: b! ?7 J1 A2 G  ^6 D9 f
  • Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
  • Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
  • Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.
    & {" T% r: P# u+ a1 X
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.0 U, M( v/ A( i- C( |/ p

/ T  B- s+ [& fP.S.+ M5 [  E3 l8 Q: ~: s1 [! o% i
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
: o4 u4 i7 [1 a4 v% @4 G, A8 G
. C. p0 n) _1 U: e6 F. F( d9 u& ^  }! ?. [! r6 s8 W  O3 Y
' P' x6 T7 W% L# N; V$ n. z
Из группы: Lineage 2

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

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

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

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

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

638638758

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

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

admin@artace.ru Онлайн

QR-код

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