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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius
( e2 ^) ?* _& L( B  v[attach]504[/attach]
% F& f9 T# p% I; x/ ?В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
+ i3 M, }( z- eВ L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
9 S6 g2 K9 C9 E. e, ]1 y6 M6 ?Основные классы AI:
+ X  t/ Q! p" }0 {3 c6 l3 Q- ?/ b9 X- Q& P3 n/ ~- ^
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)5 d- \2 t9 t% {. ^0 @3 _
  2.     // Устанавливаем намерение NPC атаковать цель
    4 k1 g% p# ~% A6 [7 G/ q
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    / E) b9 Y  }2 l$ K( I
  4. }8 m, F- F3 z2 O# D, D, H
Скопировать код
    2. AttackableAI.java' G. V  x( i! }2 k/ l

* h5 d$ z; z8 r8 m5 P; TПример логики атаки NPC:
# T7 B$ R, X& P$ X) Z' R: R9 O
  1. @Override
    ; b$ j, g# N3 A: t1 V% Q
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    # U6 k8 {/ w6 ^, R
  3.     // Добавляем атакующего в список целей( V9 h5 C, H, N
  4.     getActor().addDamageHate(attacker, 0, 1);  
    3 n# ?, D3 s5 _6 X# {9 P
  5.     // Если NPC не занят другим действием, инициируем атаку9 N; p4 n! u' {2 I6 j
  6.     if (!getActor().isAttackingNow()) {7 X% c0 N, O! j* L% B
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего" f% Q* j* c* \1 ~2 e
  8.     }
      e# e* s% k+ f& T( o
  9. }4 S$ H) ?1 E2 l% y  r& L4 T
Скопировать код
3. NpcAI.java: M) x0 j: s6 F# u
  K- S/ o, `* D4 J: e3 ~. l
Пример взаимодействия с игроком:
' \& w" a* I- K8 G* x( p
  1. @Override( j: S9 j* ~" }" g
  2. protected void onEvtThink() {8 I$ K# ]* H( r( H7 ]
  3.     if (_actor.isNpc()) {
    ( y! _# {! [7 }2 ^; B
  4.         // Открываем окно диалога при взаимодействии с NPC0 s: P! l  [$ J# k9 f, k
  5.         _actor.showChatWindow(player);
    1 {) R/ G/ o3 ^; T* o* J
  6.     }
    2 e- v3 F6 f  U2 Z. Z
  7. }
    % T6 C+ t. {6 e& H" d
Скопировать код
Как AI влияет на игровой процесс?8 A6 T# B2 _5 ~+ J9 ^
Примеры использования AI в игре:8 h' L9 A, Y6 A, |8 w
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.+ X. w% q2 z7 G8 z' T2 Q

8 B- e2 M8 X3 b0 Y3 m* N0 dP.S.3 l# d8 c. _! W; V$ N) Y: C6 D
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?* h( O# ^$ U- N) k* }2 K) e2 U

) [+ I" A. y) ~2 b" F1 }' R; H
# y# _# N5 x5 V5 ?+ P+ c6 o8 E2 D* _
[groupid=76]Lineage 2[/groupid]




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