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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius
) W0 v8 D6 |' Y1 n[attach]504[/attach]/ U/ |7 B% V+ g- f% J# _
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
9 [2 Y, b; }) V! d1 Q+ O! |В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
; M. {# r" P6 N) |+ nОсновные классы AI:8 E5 I- R9 b4 [
1 A' x5 ?7 H( Z/ E0 c# n8 M" Z' V6 O
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)
    . E, S8 p. q' Y& s% w
  2.     // Устанавливаем намерение NPC атаковать цель
    ; s0 W. r) i4 S
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    5 X  W* h2 \1 n, S6 g* Y& x
  4. }3 {2 e' ?. I, |
Скопировать код
    2. AttackableAI.java
$ Q8 K& b0 l  C: x2 o
* Z4 T4 z+ h! w9 w' `5 y8 ?Пример логики атаки NPC:: @1 K# v- Q7 f
  1. @Override% x0 j) R. h/ @1 d
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий); h" I# I9 j* @2 }9 }9 m
  3.     // Добавляем атакующего в список целей5 _! H( R6 ~. j( p& n8 }( A, w  n2 b
  4.     getActor().addDamageHate(attacker, 0, 1);  2 c% A2 k) ?  C7 M8 ?$ V
  5.     // Если NPC не занят другим действием, инициируем атаку* f8 p: g3 Y# h
  6.     if (!getActor().isAttackingNow()) {
    / t/ l: L# q2 ]1 D  f, @+ Z
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего  I( Z$ b: `% E
  8.     }
    . |' N" K; L8 D+ n
  9. }
    # l1 m1 c2 ~7 j
Скопировать код
3. NpcAI.java  v# y& l  t' A! c& N, P

3 x2 I2 S  C1 ?7 F4 z7 w4 D, Q' QПример взаимодействия с игроком:
7 {" u' N% z- T0 b/ K1 s4 T
  1. @Override
    8 ~3 P% m% z2 _/ t
  2. protected void onEvtThink() {
    0 j* Q1 G& N) `) x4 M/ K
  3.     if (_actor.isNpc()) {$ Q, S  U  w( J  T" y
  4.         // Открываем окно диалога при взаимодействии с NPC/ u* Q+ c5 l) O
  5.         _actor.showChatWindow(player);3 P0 }' U, O; @6 L! G) r
  6.     }
    ' r9 }/ m7 g* @
  7. }
    4 p; h* N- F: L* L
Скопировать код
Как AI влияет на игровой процесс?
+ m& Z- T  p7 N; s, U5 w# [3 ]Примеры использования AI в игре:3 j( H. _! o, y+ g" `1 h
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным., y- @+ b' b' B. f, t3 B
' [0 n) R1 h' l7 W  i
P.S.1 V* E5 c' a) [5 `  E) q, S: u4 l
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?; d' \, s/ b% J- x, G: L
+ C  F9 C! Y+ q& j5 P3 k

4 f3 r& |& W) ]$ o8 W. u; u8 m# ?( l8 l2 g
[groupid=76]Lineage 2[/groupid]




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