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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius4 B) |- L! ~" z
[attach]504[/attach]
8 `* }1 A) \2 K3 q7 s+ b. G8 J" @В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).
. u$ I7 I$ ]$ w) RВ L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.
  c1 P! t6 z  ]' ^. H% uОсновные классы AI:; }" B6 B" Q9 m/ C& V

) Q# \$ [9 t5 E; K* ~" L2 ?% m
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)
    ; q* O' H/ I% u9 I6 j
  2.     // Устанавливаем намерение NPC атаковать цель
    * H2 \. r) N( s7 b& a8 K) _9 c% D
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  9 I( y4 _7 i( i+ A, {4 h
  4. }
    . B% }) V( |2 o( {
Скопировать код
    2. AttackableAI.java. f. j7 k& P8 n3 m2 K4 Q! ]

$ i- z; y+ P' `  ?/ y6 i) N# KПример логики атаки NPC:
& ]6 R' b3 Q& z7 P. A. `6 T
  1. @Override
    ; A( ~( m1 ~" @7 I+ _! g5 I
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    # h7 a, w1 }. e' A& b6 E
  3.     // Добавляем атакующего в список целей# s9 L4 |  Q& n$ n8 f3 }5 D( g
  4.     getActor().addDamageHate(attacker, 0, 1);  
    . C# F/ ]+ T  l; |6 T
  5.     // Если NPC не занят другим действием, инициируем атаку
    + U  I- ]2 B6 |/ ^; {
  6.     if (!getActor().isAttackingNow()) {
    & U% z! K6 _* V" q3 \3 Q2 |0 C
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего  ^; q* i+ K5 m+ u9 O& B9 e3 L
  8.     }
    + O: S" V- P) H3 S; O
  9. }
    1 U, @- g% p* S
Скопировать код
3. NpcAI.java# a' [9 \9 [- A0 g* t' d  X

! M8 o. Q( o: Z3 n4 W1 M1 cПример взаимодействия с игроком:  |- u5 m% c2 d. H, I$ {3 [
  1. @Override" K8 a9 Z. G: M( R8 e
  2. protected void onEvtThink() {
    9 E* g0 U0 ^: W% q) j4 i
  3.     if (_actor.isNpc()) {# v6 i' ^4 v0 D+ B
  4.         // Открываем окно диалога при взаимодействии с NPC
    ) b8 C: [% v# _- v* M
  5.         _actor.showChatWindow(player);
    ! s$ X, ?! ^" Y- Z# B9 O- l" x
  6.     }
    ( \5 P7 \( o5 l9 U2 Y" {" [
  7. }
    9 b2 d1 j) P) T  j4 z
Скопировать код
Как AI влияет на игровой процесс?9 w& Q. B* S7 l# V/ E0 y5 N2 J4 f
Примеры использования AI в игре:/ ~5 r; e5 _! V$ a  J% x
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.1 C$ x% A; W8 H1 j' B

5 j7 Y, t$ Y2 b! U5 U+ o7 \P.S.
* e  P  X! n, [$ S) ^6 AКажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?+ W% C2 u, `8 d- G- x

0 L- l3 f5 m0 y. b
+ ?  ~. O  b$ B8 j8 o* N, |, Z$ ~, ]% u
  f) f/ O4 t5 d) d( ]0 j[groupid=76]Lineage 2[/groupid]




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