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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius
$ y% M% B0 l4 ~/ `6 Q[attach]504[/attach]8 s- n9 u, b* m: C+ M/ Y
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
1 B8 v* D2 q6 U* }, C7 y5 NВ L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.0 d  g$ f7 {' f  C( |
Основные классы AI:1 T5 k! r) E6 h* T- d4 c% P
; d( _% [0 s: ?) N( g% t
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)0 i0 }+ K  O7 d4 o% V1 e* u( a2 {7 M
  2.     // Устанавливаем намерение NPC атаковать цель, w$ \8 R8 f; l- R
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    ! N5 K. A' T  M
  4. }& C: @2 `8 {2 Q% y" g
Скопировать код
    2. AttackableAI.java# W' w) ?2 J5 ^

" ?0 i/ C' [0 W5 vПример логики атаки NPC:9 s& b  E2 o* L, o+ F
  1. @Override
    , ?9 s; J4 G7 L; z& ^
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)* g0 s) A# a) v9 e3 S; k, L
  3.     // Добавляем атакующего в список целей
    * h+ K) V% B) \3 ^: h
  4.     getActor().addDamageHate(attacker, 0, 1);  9 [' t+ D* F+ r/ Q) b: ?* l$ t9 S: }
  5.     // Если NPC не занят другим действием, инициируем атаку
    & w5 }$ f; U4 s# j- E$ `! c/ ]7 C. i
  6.     if (!getActor().isAttackingNow()) {
    + D4 K( G. Z0 O/ t$ |/ p
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    - q  L4 u/ x; r$ m
  8.     }8 |& y/ j7 W  Z0 Y* \9 V
  9. }+ m- c0 Y$ q- y; B
Скопировать код
3. NpcAI.java
; P0 l) |, i" h/ N$ `0 y8 [0 Y$ S9 M7 q' L1 A% _
Пример взаимодействия с игроком:; K, G: P# U% A4 P- k
  1. @Override
    8 ?3 i* K* d4 b3 T6 `5 d
  2. protected void onEvtThink() {1 {$ e' ]; f2 l# ~
  3.     if (_actor.isNpc()) {9 |' S& o! X7 w- ]
  4.         // Открываем окно диалога при взаимодействии с NPC
    : _4 A6 R8 T) X
  5.         _actor.showChatWindow(player);: u# |0 \5 X9 w+ J( \9 J
  6.     }0 j& R6 V* s7 U( a# Z
  7. }7 Z4 b. K& l" e5 \3 S. s& _
Скопировать код
Как AI влияет на игровой процесс?
; z) x" H/ Y( Z) R( m6 r3 v8 F  T4 OПримеры использования AI в игре:# ?. Q* G9 B' [# L- n
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным./ d, l. a# h- j
* |9 ^8 g& f' N* |) M; `
P.S.
6 Y' }7 l7 F( `7 ]& ]Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
4 |# G4 c+ }+ F) z) d, P% ]9 b
4 A$ p" c3 k& e: E; m
$ v- g& E' y7 J# A
, t5 ]) D$ d5 U4 _[groupid=76]Lineage 2[/groupid]




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