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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius
) [9 d$ f! S) @4 c9 {[attach]504[/attach]9 g& V$ ^9 _. B; N
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).& E5 K0 q2 C4 q3 c
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
" \! t+ L' E" e; W) f4 ^' Q# w8 xОсновные классы AI:6 V/ H2 z8 V" k2 I: k. v$ Q9 L
7 N! a# J+ N5 G
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)
    0 j% q2 F/ j" P& }) s; Q
  2.     // Устанавливаем намерение NPC атаковать цель
    " B# w4 m! C* w- p& M7 `) b
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    ' g. e- r+ Y/ a  m: j
  4. }
    " y/ b$ K& t7 n( H) ]' `! M( f0 a
Скопировать код
    2. AttackableAI.java% M. ]0 e8 C; _/ f5 H

3 B6 v+ H, m- ]Пример логики атаки NPC:& b1 {& O# N! y) `
  1. @Override- L9 }) D1 b) L8 Q0 {7 A
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)7 h0 n- L  y% c& C2 C3 G# F& Y9 ~
  3.     // Добавляем атакующего в список целей% o: Z% b- ^8 K1 J* B/ h5 d6 M2 K
  4.     getActor().addDamageHate(attacker, 0, 1);  / }2 e& A4 ]2 \1 T. W
  5.     // Если NPC не занят другим действием, инициируем атаку( O1 h/ x6 i3 ]
  6.     if (!getActor().isAttackingNow()) {
    / V. j% \# J* S# M, ?) z& m+ ~& U
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    1 x/ S7 l0 k! x2 j8 G, F
  8.     }* C' c; U  ^7 F, @4 B
  9. }" h7 _, g2 ^1 f
Скопировать код
3. NpcAI.java' g# e; P- ^4 p! d: t9 M# ]

$ a1 C$ |$ ]. e0 @0 wПример взаимодействия с игроком:! ], V) J+ e' C
  1. @Override4 k: {7 I9 _' m* u, w7 Z: {2 W
  2. protected void onEvtThink() {$ k& h3 k, _% c5 L6 q' Y
  3.     if (_actor.isNpc()) {: x, l" ^6 C. @/ P5 J$ i. F! p
  4.         // Открываем окно диалога при взаимодействии с NPC
    * P$ Z- {5 g/ l( V" Q9 U: A
  5.         _actor.showChatWindow(player);' s& }" K7 Y6 m+ W5 Q8 ^: \
  6.     }
    : v# F0 I: w! L# Y; N( E5 D
  7. }
    & C4 y2 ?# m* P% O( G* x% N0 t
Скопировать код
Как AI влияет на игровой процесс?
* g/ ~: ~1 W% l- j9 TПримеры использования AI в игре:
$ |& [5 p+ u  t2 @: xИтог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
9 q9 t+ [) M/ s4 C7 @5 N3 E
8 J! x8 R6 z, }0 O/ P; {& qP.S.. ?% M/ j8 Z: r9 K* m
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
! E. Y3 i$ ~1 x, j/ k& w2 r& }5 d% L/ X: K
# O5 R& ]* |7 K
+ W7 b% u. ~; y) F% g% Z7 J. R! q5 @
[groupid=76]Lineage 2[/groupid]




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