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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius" `7 Z. |6 D; H" n3 m# F7 w
[attach]504[/attach]- O/ [, d2 ^$ {* P9 P2 s, j
В игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).2 ?1 s% K1 O, ]3 Z# w1 j
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях., T# l) T9 B9 s/ m
Основные классы AI:
( ]2 C; c/ f; q" i$ ?8 Z0 h7 V
% f/ k- P  {* E  W/ ?
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)
    3 E" V1 ^! d0 H4 Y# N' z
  2.     // Устанавливаем намерение NPC атаковать цель
    , d" k; w9 m0 p5 a
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  / E3 ~7 C! R- ]$ l
  4. }
    9 |9 L' b4 H" h( [( W2 a
Скопировать код
    2. AttackableAI.java
" k& e6 U% v, M6 R0 L5 P) d5 K/ ^) ~( {3 s% m( F
Пример логики атаки NPC:: V' S  Z% t; S
  1. @Override
    9 Z% G) R- W; {+ n! W4 f
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)
    9 q. @+ }1 O( [& ^" X
  3.     // Добавляем атакующего в список целей) Z; R5 n) t  h% I# ^0 {; i
  4.     getActor().addDamageHate(attacker, 0, 1);  8 I: z6 J+ C. x, V: O
  5.     // Если NPC не занят другим действием, инициируем атаку9 Q+ P, C/ r& d2 X1 d* q) [
  6.     if (!getActor().isAttackingNow()) {3 L/ _. |: }& C
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего# |# ?8 y. x; r
  8.     }
    * Y2 S+ X) y- z4 K
  9. }
    / d6 B- o" r% a) |4 `
Скопировать код
3. NpcAI.java
) Y  I# Z5 T2 t: M9 ?- _( P# b7 Y: l/ x8 [1 n+ ?. z
Пример взаимодействия с игроком:
! n( @" m( P* ^
  1. @Override
    # k) H" m; u  R
  2. protected void onEvtThink() {+ M' t+ r; m: T: b
  3.     if (_actor.isNpc()) {
    4 t' S& V  ]  H4 s/ r, m' Z, i% A
  4.         // Открываем окно диалога при взаимодействии с NPC
    9 b/ _" x0 R1 b9 [
  5.         _actor.showChatWindow(player);
    , B$ E# U0 o& S& q
  6.     }/ |5 l  O2 T& k. o+ b+ S
  7. }: p( |/ Y! H/ o0 ^5 C
Скопировать код
Как AI влияет на игровой процесс?
0 B+ \- S; ^: r" R$ _4 V8 Q4 W& NПримеры использования AI в игре:
+ w# Z& r; z$ X+ q% l& MИтог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
9 G/ c: m+ M4 [0 G, d6 i5 \' @0 k" _' q
P.S.
3 i. u3 ^1 j" w" G% O6 e+ rКажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
) U2 Q0 R+ Y# z+ H6 @" T' c; ]1 ^2 }% G8 I: o7 N& Z8 i) N
) N2 z2 q1 P* U9 ~  r

% _  L" }% v* L! l7 q[groupid=76]Lineage 2[/groupid]




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