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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius; z+ f% ~: M, X3 _$ t, m
[attach]504[/attach]
7 F4 o5 d1 M, l; rВ игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).  j& l. `: W, R+ N) m
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.  Y% C" h" e7 ]' R6 Y6 X1 z1 T# M
Основные классы AI:
: {0 F9 _: \2 c* i9 h) {7 j: W, }2 }) o/ J4 F$ |" Y- s* M
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)
    5 J0 p  r* f" a, p- m  c
  2.     // Устанавливаем намерение NPC атаковать цель% D4 L7 t" b( `0 S- W7 F
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    & v5 \. w  P% n' z1 a2 @9 V3 S
  4. }3 ~, V/ ]6 z$ |6 Y/ [  ?. A  j
Скопировать код
    2. AttackableAI.java
0 d8 e6 x+ m$ f' e& j2 Q
- Y+ c% _, i7 q3 i- WПример логики атаки NPC:. l" }7 p! ~( f7 l2 Q( X" L7 G
  1. @Override& o. J  g5 J  H) e2 j. B1 ]+ F
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)  }- [0 \% T" o* M7 u
  3.     // Добавляем атакующего в список целей' i$ C! V3 V6 E+ f8 W1 A1 o
  4.     getActor().addDamageHate(attacker, 0, 1);  ( s% l& g+ p9 Z1 l, z; S
  5.     // Если NPC не занят другим действием, инициируем атаку$ B, N) _+ k7 b- n) n7 _7 F7 v
  6.     if (!getActor().isAttackingNow()) {
    0 B) k* f6 z" H3 N3 [$ y) i
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    . ^9 f8 L1 d2 V& _" @0 w
  8.     }
    0 ?, l# U& `4 n
  9. }
    5 I4 J: e$ a2 y2 m* S, i
Скопировать код
3. NpcAI.java5 ?9 a* E2 m( O
1 t2 }+ }, x& i% m9 P- p; m" N
Пример взаимодействия с игроком:$ k6 r  n1 `1 B$ O9 s$ y" C
  1. @Override
    ( r8 J: d  \3 c- M7 e8 R
  2. protected void onEvtThink() {
    - d' X* _1 N0 ~' d
  3.     if (_actor.isNpc()) {' U1 R5 C0 H5 n- j9 I$ P. e
  4.         // Открываем окно диалога при взаимодействии с NPC
    0 E' g, _0 h0 L3 Q% Z0 N, q
  5.         _actor.showChatWindow(player);
    ; F0 L* ^. r; A) }
  6.     }7 k5 v8 g4 j% [$ `/ N! Z' b+ F9 _
  7. }
    . }6 S  _( I& F9 ]" }/ e
Скопировать код
Как AI влияет на игровой процесс?
4 Y% Z! d2 \! o: O( EПримеры использования AI в игре:
3 ]' K. h7 Q/ f( Z- n; ^5 t( ?! B2 `Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
+ ^5 w" [0 J" J" a1 q/ Z6 \/ I3 n
P.S.
4 I0 w+ W0 g. jКажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
, C- V( z$ y/ n! j
+ H! s7 m4 e, H" f4 [7 P9 w: c5 \4 f0 u
8 ~  i6 }1 F2 ]1 C
[groupid=76]Lineage 2[/groupid]




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