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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius
! L; r6 T3 g: s& T) g: n8 f$ i6 _[attach]504[/attach]
  Z$ x( {3 G# B: P" BВ игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).. r6 w: t' V# y7 q1 d
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.+ r3 k- Q3 d7 }9 H1 ^  w; ?
Основные классы AI:
( Y6 B- S9 h' v- c2 m6 w1 r' P
1 _2 a/ p! Y! C6 {1 k2 l( r
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)8 j% y& m; ~; @) Q
  2.     // Устанавливаем намерение NPC атаковать цель
    , D7 T% h% T5 v8 y  E4 N- k& J
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    & T4 Y2 ^( b' P2 s' K8 v' V
  4. }
    ' F% J3 Q- Y  J
Скопировать код
    2. AttackableAI.java' `4 G8 q# t0 y6 Z( b# p- A3 R

+ V% ^- _4 w- H# A) T3 M. G/ pПример логики атаки NPC:
7 {" @7 Y& Q9 B, b' Y
  1. @Override0 Q) L; h2 ~# R6 m. [$ ?  e
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)2 s3 X. v( J: W4 i' q
  3.     // Добавляем атакующего в список целей
    ! G2 ^8 j; y3 k7 R& }6 h+ A- u* Y5 f# N, R
  4.     getActor().addDamageHate(attacker, 0, 1);  
    " \) y- ?; t' z
  5.     // Если NPC не занят другим действием, инициируем атаку" i9 z- T( b4 W
  6.     if (!getActor().isAttackingNow()) {
    " C% }  x% M$ H2 P
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего  c' c/ e" k' d, q5 W
  8.     }# n6 y! G. k& Y5 I" \" q# d, T
  9. }* ?: Z3 e+ F  J
Скопировать код
3. NpcAI.java
. d2 I4 B- a0 d7 Q% C7 A' r/ d# y
5 L% s5 o( u5 L) [6 Y2 W# C$ mПример взаимодействия с игроком:/ r1 w4 }3 ]) D/ |
  1. @Override$ z8 j( A* h: N1 O( @
  2. protected void onEvtThink() {
    ; Y" ?4 F/ {+ d$ h
  3.     if (_actor.isNpc()) {
    $ q6 P0 Z2 d) O+ V- D2 @
  4.         // Открываем окно диалога при взаимодействии с NPC/ K; e& e3 i/ g* w- X$ I. {! u
  5.         _actor.showChatWindow(player);( P5 f; X& g0 C1 ~- S: i5 d: h
  6.     }8 h3 |( W9 U9 W
  7. }+ U0 |; \& X$ L. K
Скопировать код
Как AI влияет на игровой процесс?, w+ T5 |+ p$ Q. B6 B3 y
Примеры использования AI в игре:, i1 L, a4 |  c7 @8 A3 t
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
% Z: k0 b/ G5 Z' m$ D$ N) ~" u8 a0 S/ n' \9 y+ L
P.S.
& C2 w* ~+ }, b' q1 e" AКажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
. ?9 X# I( c& Q: R$ @
/ M% W8 i9 ?% i& r) `! ]( b4 ^! b+ e: y* F

' r, t. p; M/ {+ g[groupid=76]Lineage 2[/groupid]




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