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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius
- v8 p/ E' Q; }) l! E8 j" D& z[attach]504[/attach]/ P7 }2 N( l0 ^
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).) r3 G* _/ X/ o7 G- s/ V
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
) x# }3 @) B5 X% SОсновные классы AI:
: k' A9 W: Y0 I  k2 N, r. t
+ B4 T% a4 _) n. |: k
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)
    * H3 z0 x) S. s; c0 J$ g3 v
  2.     // Устанавливаем намерение NPC атаковать цель
    * P( c7 G  G* _0 l! z$ {& w9 t: B6 {" a
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    + v% n( f- `( y. g* Y
  4. }
    * j$ ]% _2 I& d6 P) M# |
Скопировать код
    2. AttackableAI.java
( h4 L: k, z4 C3 g
+ g1 u% B  i0 H- N. cПример логики атаки NPC:
" r- x% Y9 k# `; ^9 O+ Y
  1. @Override4 f; g" f- e8 i$ `
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    " L6 w& W+ H5 i5 F3 o! W' p) w" j4 ?
  3.     // Добавляем атакующего в список целей
    1 o0 u& W) i" m) I8 N$ N1 x
  4.     getActor().addDamageHate(attacker, 0, 1);  
    ' l5 K$ C/ g" j/ B8 ^
  5.     // Если NPC не занят другим действием, инициируем атаку6 F8 i* N4 s  y" T- `- j
  6.     if (!getActor().isAttackingNow()) {$ e  `, R0 q- `2 ^# h( U/ {& D7 V
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего" U- f2 E' Y' b! L
  8.     }
    ) w3 z$ ^4 a/ D; V' W0 d6 O0 a6 w
  9. }
      ?& P( |, J# ~$ M- U
Скопировать код
3. NpcAI.java) P7 _  x# ?' l: `2 c* _/ B+ T

+ o0 a7 o- x9 C$ NПример взаимодействия с игроком:- g+ Z. K/ \/ y7 u( x$ e* u- N
  1. @Override2 y5 P8 I7 L; h
  2. protected void onEvtThink() {
      k& B" `- E8 A* j* W: g" N" Z+ z; s
  3.     if (_actor.isNpc()) {  \9 R& v6 O, K6 i
  4.         // Открываем окно диалога при взаимодействии с NPC
    ' J1 x/ F# T8 W, Y; a  ^
  5.         _actor.showChatWindow(player);& q$ Q! Q; [5 H+ B0 ^
  6.     }
    9 |# i" i9 G& {3 e2 [6 N0 ?: U
  7. }
    : u, ]: A) x/ |9 M
Скопировать код
Как AI влияет на игровой процесс?
6 s3 `$ |: l- W! _Примеры использования AI в игре:
+ n, z7 Z- E% i* V/ sИтог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
. Y# C: B9 y9 A' `7 S  u" q% t6 M+ X8 Q) U5 i8 i" n9 W9 J' K
P.S.$ |" i/ G  o" p$ O: i
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
3 C' F9 u3 H  w$ y! I! v
3 q4 {* A/ e6 H. B" x
7 f* Q; m* N. g3 Y
/ U9 B/ [: ]9 T& C0 j[groupid=76]Lineage 2[/groupid]




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