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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius  g6 L) x+ H1 x8 z9 k: X9 B$ d# n$ R
[attach]504[/attach]$ M/ p! z% K2 w& L7 O3 ~9 @  Q
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).  l* |' h- I8 W6 \
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.7 M+ r8 j) I8 q
Основные классы AI:' D' U$ m4 |4 S% [/ v

: x$ d# z. r2 X. x
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)9 ?: U+ P# `7 u+ P! J  t, F
  2.     // Устанавливаем намерение NPC атаковать цель
    ( n( G: `! @7 _+ m5 D
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  , U# F% {9 [* M
  4. }
    + l, c' |8 [- p  E1 o) Y* A6 J/ }
Скопировать код
    2. AttackableAI.java; o8 P7 |# I* K, U4 l/ f' o
" @9 j( G2 V9 |. ?2 n
Пример логики атаки NPC:2 a! ?5 a# y; N# a+ U' c) e6 M
  1. @Override, h6 Q0 ]# Y5 |- B
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    ' ^& f3 W& |: m3 q1 z
  3.     // Добавляем атакующего в список целей7 ^& _- n8 U& L  U5 g
  4.     getActor().addDamageHate(attacker, 0, 1);  " q8 d% |, I, s0 Y
  5.     // Если NPC не занят другим действием, инициируем атаку! b- P# v4 f+ E/ A9 F5 X2 n
  6.     if (!getActor().isAttackingNow()) {) o  X# C4 I. @3 Q1 M7 ~
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего
    # q) m) X5 W$ I
  8.     }
    8 k$ M, A$ \8 p5 Z# e, |" V
  9. }
    - ^1 U, A% x) f: Q1 j( s
Скопировать код
3. NpcAI.java
1 q5 m- g% \3 w9 e2 X* e' ~: K, c9 n" s; ?" ]4 v% m8 C2 Y% J1 R" `3 D
Пример взаимодействия с игроком:3 I! {+ |- b  o. |8 c9 I
  1. @Override" h, C% z; F, }) W6 a/ ~% |7 [
  2. protected void onEvtThink() {. W4 N9 d4 P1 x  x( D
  3.     if (_actor.isNpc()) {
    7 o# n( T. v* X$ f& }& B% V
  4.         // Открываем окно диалога при взаимодействии с NPC
    ' Z- F+ A: A0 E( @- i* U( k2 d
  5.         _actor.showChatWindow(player);- S& N3 ?% Y' Z+ ]( g; k; E
  6.     }
    " h/ a  @$ I/ R- P" V' y
  7. }
    : y9 d0 m- M- |2 x4 J% y3 j
Скопировать код
Как AI влияет на игровой процесс?- n7 q( \' C" [
Примеры использования AI в игре:
8 x+ w" Z' O! T) zИтог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.+ ?; n5 \' g# q) p% |* k9 `; T

. ?4 m1 H. |4 g* q5 L2 iP.S.3 T$ b6 [3 I6 p) w2 a- ~
Кажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?) _; @! l: Q1 ]2 f) M+ a
, c7 N: [! x0 A3 n0 Q3 E
! l& m* ?9 U2 S1 U

0 Q0 l! m3 r# t) f/ m[groupid=76]Lineage 2[/groupid]




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