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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius
- \( a/ o* E; p, ~" k0 ][attach]504[/attach]
2 t, N9 g+ G2 S3 }4 [" b3 H( uВ игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
: d* Y* W. ?. U4 K* jВ L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
: U) j8 ]) b1 v. oОсновные классы AI:- p  u, j% w7 o8 X, p6 a* B
2 f9 f) }6 c4 k& e+ L
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)
    ) w3 K7 R4 H* W! w
  2.     // Устанавливаем намерение NPC атаковать цель/ r# `8 j; ^0 j$ C, h  F8 E
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  0 S/ }. q% ^4 R: ~* X/ U
  4. }+ [# ]& F0 L. T2 R6 J
Скопировать код
    2. AttackableAI.java- `8 y3 R) ]) H+ M* ]% [

: S& ~3 a, j# C0 X$ J. D  f' ~Пример логики атаки NPC:
- _3 G* v. W1 R# U5 |/ \
  1. @Override
    3 x) H" n- G! q; p
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    5 A2 I; F/ _1 l
  3.     // Добавляем атакующего в список целей) w. J( {3 [# o3 a7 z
  4.     getActor().addDamageHate(attacker, 0, 1);  
    9 Y( _1 i  A" o8 I7 K$ t
  5.     // Если NPC не занят другим действием, инициируем атаку
    $ f/ U9 S9 _9 O: I' k$ c
  6.     if (!getActor().isAttackingNow()) {& V! Q# z. L. m; i. [5 ~
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    4 @, l* M7 `6 P3 a+ c; ]$ Z
  8.     }* V; A  Q7 j. I; e/ b; }/ `" t4 T
  9. }
    ( i5 _: s, P+ q) l  z# X9 Z
Скопировать код
3. NpcAI.java
. f9 J3 K7 O" p
2 {, L. N- y2 Y9 F0 cПример взаимодействия с игроком:1 @2 m. M/ C8 G4 {
  1. @Override% I0 U" V1 `2 p- L# c7 {
  2. protected void onEvtThink() {
    * L8 C9 A. A2 _0 t
  3.     if (_actor.isNpc()) {
    ( h" f. e4 }: i5 z& m+ S
  4.         // Открываем окно диалога при взаимодействии с NPC8 T' k5 T- B% L" D' P8 d9 P
  5.         _actor.showChatWindow(player);
    6 ]% l) }+ X( L* J2 u
  6.     }
    ) C6 l0 m+ o4 `/ D0 c- \7 Q$ n$ J7 o
  7. }
    ( t4 C9 T3 e- s6 b) ?
Скопировать код
Как AI влияет на игровой процесс?
: `) F& X; n' a4 m8 y* g& MПримеры использования AI в игре:
$ f5 K# Y' x; Q/ V. I6 }! Y0 e2 B# XИтог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
9 }+ j2 @: V. l; |- m& ~! l
* a0 \3 L3 k5 n/ }2 Z0 c; r9 IP.S.  j( M8 y0 X7 m( }
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?7 Y, |+ i5 J; l  S7 g
0 R2 n. M4 k/ P0 V9 |  i$ q& l
. {* X* G( z/ @+ F* f% V8 z! @  {0 H
5 w, E0 i- C# M. M
[groupid=76]Lineage 2[/groupid]




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