artace.ru - творческий сектор

Название: Роль AI в L2J_Mobius [Версия для печати]

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius
. P  \3 {6 {+ s2 W[attach]504[/attach]- N6 T% O- J/ o3 B
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
+ P2 e, A+ n7 f* v' F) g# YВ L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях./ t1 ^' q& I  H- F, B9 R7 c
Основные классы AI:
# P- {# V$ W3 p- m; x% E0 w) @, S$ r1 e3 R8 C4 Z2 a
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)6 F4 `5 T, [  `( ~# v
  2.     // Устанавливаем намерение NPC атаковать цель) y& h% l* X8 }( A0 o
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    * V" z6 c' R4 v
  4. }
    8 X* H2 U. M, W5 F' Z8 I) `
Скопировать код
    2. AttackableAI.java: W0 D$ I5 |. j6 K; n2 j

% p4 y0 |/ f3 }3 tПример логики атаки NPC:
8 @  f+ {6 T8 L1 I2 p! w
  1. @Override* D/ t+ O2 X+ V. f/ z( T! }
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    4 M/ k: A7 r- h" g# S
  3.     // Добавляем атакующего в список целей, J" ]3 M( s9 D; z  s. t
  4.     getActor().addDamageHate(attacker, 0, 1);  5 I% L$ k, W" R5 |7 }$ @4 ]
  5.     // Если NPC не занят другим действием, инициируем атаку; g- m0 b: ]6 F! o7 r3 f
  6.     if (!getActor().isAttackingNow()) {
    ) |) O" T6 H4 O
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    , F& A9 n. g* \( L0 u
  8.     }
    + ?9 C, L+ ?" p: V8 D
  9. }9 n# [7 x, V. P: K, {
Скопировать код
3. NpcAI.java
5 ~; g% p5 f/ A% l9 n0 k
# o$ L( a2 E* E, P. G" M( S. Q+ i- WПример взаимодействия с игроком:' K" U6 {5 l8 d& @
  1. @Override
    7 |. Z( V  H; W
  2. protected void onEvtThink() {
    3 _# E- w: Z: A# Q0 L" U  [
  3.     if (_actor.isNpc()) {# v7 r1 Q1 ]6 n! n0 }  m8 T
  4.         // Открываем окно диалога при взаимодействии с NPC4 x# t7 d* b7 f* D
  5.         _actor.showChatWindow(player);+ e* T1 h- J* j. |/ V4 f
  6.     }
    6 S& |3 f7 C! k# a
  7. }5 Q$ _7 j: t* q) L: U$ L* V# q
Скопировать код
Как AI влияет на игровой процесс?. S7 X5 @& P- D# l  M! M
Примеры использования AI в игре:
, ~! o/ S6 H' h9 c0 ~Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным./ T  _/ Q0 K' R3 {- \. [
% f1 s4 t- e1 p+ ^& p" I) M! _  I
P.S.! e5 q0 i5 K, u. \) }# v4 E
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?# k+ M  I1 R+ ?2 G

* U) x' V/ o" P1 T. G& J5 p+ B4 r" j& x6 c" ]% X1 D1 p0 f/ X# _
+ x; L: A4 v: }0 W
[groupid=76]Lineage 2[/groupid]




Добро пожаловать artace.ru - творческий сектор (https://artace.ru/) Powered by Discuz! X3.5