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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius5 R' h( j( R1 y- j: [
[attach]504[/attach]
0 k! V% @$ k: s, n9 C+ e7 J' ~В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).% C) @7 ~# u: w" Y% \1 o% ?4 }: ?
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
6 h, h& _  o& X4 Z) FОсновные классы AI:
# U8 q; m6 F: _3 g. X. b
# J& c4 E- _) O
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)0 c7 k  f- ^/ _1 h
  2.     // Устанавливаем намерение NPC атаковать цель- m4 L; S  P+ e: _3 e$ r; m# e
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    % Y! g* ]# \) d) z
  4. }
    , Y% z; X7 b* F! E! S
Скопировать код
    2. AttackableAI.java
, t1 b' y; F% X, A3 i  P! J' j- Q) k: W6 N
Пример логики атаки NPC:
& J2 F* v' u) |6 b  j" k' t1 t
  1. @Override
    - i9 L: r9 u" w: a/ f, ~2 P
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    & I9 m3 S" ^# k4 i, q8 t: F
  3.     // Добавляем атакующего в список целей1 D7 l7 T. `4 c2 y
  4.     getActor().addDamageHate(attacker, 0, 1);  1 w; \5 y( U+ e
  5.     // Если NPC не занят другим действием, инициируем атаку# C7 s7 m6 \4 K# }' M" y" {
  6.     if (!getActor().isAttackingNow()) {
    3 S- F' h& l8 J) J# W+ R# }) L0 ^, E
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего* L* _$ Q' C( G" e. ?% S; G
  8.     }) ?! c9 b% D) c6 ?5 S
  9. }! _1 W  h; l7 V, l
Скопировать код
3. NpcAI.java
) H, S8 _. R5 D4 P* |" a8 r
! @6 Z& _8 A4 g' GПример взаимодействия с игроком:8 q: N0 i* G5 \$ G
  1. @Override: B( L$ p9 k& I  ^. e, G2 K. K# t1 D
  2. protected void onEvtThink() {* Y$ T8 q0 C7 ~0 ?3 X8 P
  3.     if (_actor.isNpc()) {4 ?- T. s% U/ [  R. h
  4.         // Открываем окно диалога при взаимодействии с NPC" z! D7 ]" i1 y! U
  5.         _actor.showChatWindow(player);- n/ G6 J$ W7 q) s* j8 {
  6.     }3 U7 V- e& J& z! M
  7. }3 {) a  h% ~4 R* }
Скопировать код
Как AI влияет на игровой процесс?
+ O% p" m& n* Q! tПримеры использования AI в игре:4 K& m* h) R5 P  \$ }" U
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
/ ]8 |( i+ p- g, T3 q' j/ t6 R; q4 _4 z. a2 X
P.S.4 I- S& n' h% p4 _$ _8 W, ?+ k3 b- h
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? 😄
) l2 h/ |& m4 D' A  o
; y5 f/ L* D; d: {4 S2 N6 W: `5 G, u' j6 K  X# k
3 A6 ?, J& b$ T( c- @: O
[groupid=76]Lineage 2[/groupid]




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