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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius
+ d) ^0 E. b% e' O5 ^$ H[attach]504[/attach]8 g* p( h, k/ [
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).) `( c  i2 h; z/ }% c' t. I$ C
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.1 t% X/ E5 i9 i7 ?
Основные классы AI:
. Z! ?0 s. j. }8 Y
, o; i: I& F+ l1 P$ Z; N7 y
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)
    $ R( Q$ A; t! S6 H; h
  2.     // Устанавливаем намерение NPC атаковать цель
    " W) D4 b4 a. ^; }
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  $ P$ t1 W8 P1 I5 H" ^9 g; z
  4. }
    - Y9 _5 k+ s" I; `* m
Скопировать код
    2. AttackableAI.java
! Z5 t3 O) `0 e- r7 a2 C* q- G% m5 o2 R: o- T
Пример логики атаки NPC:
0 t! j9 H5 c& X+ r/ ?$ s' P
  1. @Override0 `5 M, N/ V( t: ?
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)! k+ m) r# y0 h  P! o* ~
  3.     // Добавляем атакующего в список целей
    9 X- K/ d6 w/ p" m  r
  4.     getActor().addDamageHate(attacker, 0, 1);  
    - G4 x" O9 j) M+ j( @* y$ I  p" {
  5.     // Если NPC не занят другим действием, инициируем атаку+ D1 b$ s" H9 }, E
  6.     if (!getActor().isAttackingNow()) {, u: H$ }& F$ F) _2 l3 }7 i
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    0 K7 E. Q) T# B5 |
  8.     }
    ; \3 D! X: J. p5 B% f: F
  9. }" s- ?6 x1 a) w6 b& u1 P' U
Скопировать код
3. NpcAI.java
, K4 o( N  Q" J5 W- @! T' x3 C/ @( V) ]6 s% h: X# B+ }: m* Z/ b' a
Пример взаимодействия с игроком:4 q; z! e) O7 E" ?$ q/ ^  u; p
  1. @Override# t( S& L+ ], E+ i& Z* M$ l: u( p' X
  2. protected void onEvtThink() {8 Q& Q3 }! |. e
  3.     if (_actor.isNpc()) {0 r% o1 M: }2 v& l& f) n
  4.         // Открываем окно диалога при взаимодействии с NPC- f, i# ^$ P$ \6 v8 x* Z7 q
  5.         _actor.showChatWindow(player);
    * c1 L3 v4 h# c& c% X! n7 y
  6.     }
    8 g+ X6 J! q( r( E
  7. }
    : d1 O* X# e' }8 H8 F+ |
Скопировать код
Как AI влияет на игровой процесс?. x. L6 m7 }+ t- ]& j3 z/ F
Примеры использования AI в игре:2 a0 U0 e6 `7 F5 ~3 J5 n& [
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.3 U% H( W( Q. |3 T& k, v

# D  B" u* `- VP.S.
6 J/ @1 R( N# q- c5 z/ _Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
' I: ^9 }1 K. A7 x1 W$ M/ t
2 R- e2 g% k( R4 Q! h' `4 _% Z8 b9 k
& B) _/ G# D* w, f
[groupid=76]Lineage 2[/groupid]




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