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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius
( A. N7 m3 I; S0 R9 o# n[attach]504[/attach]* `3 _6 W2 P: h" c+ U$ [9 e" N
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).( D- r: n. b+ y+ a) N& D6 h1 _
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
$ w/ F) h# m# G$ iОсновные классы AI:' O6 |9 X( L4 i$ {! m: h8 p" v

; T: m4 @  Y+ |  V- K
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)/ x) g" D! z8 L2 X4 T9 v* u% |
  2.     // Устанавливаем намерение NPC атаковать цель9 t3 N0 ]4 p/ f* p6 G2 c  \
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    ) r$ R: f1 V! A2 ^" z9 ?7 m
  4. }
    % ?1 \& `5 E; _& S0 P# H( w. p
Скопировать код
    2. AttackableAI.java7 v* F: [7 A7 c( i7 U; k6 {( N; \7 D

# f7 @) ?# {* U+ oПример логики атаки NPC:
" P1 ?& T  U" ?1 M+ b
  1. @Override
    5 O6 f' \5 V! }
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    . Z  n  R0 w$ c6 C6 b; j# M0 A
  3.     // Добавляем атакующего в список целей( o% U8 \. {' O
  4.     getActor().addDamageHate(attacker, 0, 1);  
    & a8 _# P$ W1 g/ D( B- @
  5.     // Если NPC не занят другим действием, инициируем атаку5 I$ B, P9 c" O: D: u+ H* j
  6.     if (!getActor().isAttackingNow()) {+ V' f5 r& l: Z* U
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    5 J  L$ R- W6 a+ Z3 C$ S
  8.     }" r, n6 p; q% Q# t3 Q( U( q
  9. }
    . j' B. w" S0 c
Скопировать код
3. NpcAI.java0 y; t* K; o- Z! f' ^+ R4 ^3 a8 M

) h/ j1 s! D- w+ d( |Пример взаимодействия с игроком:
9 i. a( g8 R4 f; i
  1. @Override
    ) X4 N6 j' ^" U: i
  2. protected void onEvtThink() {
    ' }/ m$ `  F) @: g
  3.     if (_actor.isNpc()) {7 ~8 r! l) ^# T
  4.         // Открываем окно диалога при взаимодействии с NPC7 V1 a- a% F" d
  5.         _actor.showChatWindow(player);
    / V7 v0 }! P3 ?" _
  6.     }
    - [; t1 Y; H" v9 ^
  7. }
    ( E0 Q: Y$ N! l9 M5 D, i/ S
Скопировать код
Как AI влияет на игровой процесс?$ f+ H# c% }8 i& D! l
Примеры использования AI в игре:
. R2 O' Y+ P) v+ W' D, N  \Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.) l  r3 t2 T2 [  H4 t0 b6 o
* }0 F; q1 E& w( b6 I8 P7 X
P.S.* _/ `# l' Q/ X
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? 😄
* Z& h; N: U3 j: R6 w/ h2 {0 F& b. G8 q# g* F1 {9 _
! P# v1 O0 Z( ]5 O

4 d; ~: h$ f- E0 L( T% [8 L[groupid=76]Lineage 2[/groupid]




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