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

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

Автор: admin    Время: 2024-10-21 22:39
Название: Роль AI в L2J_Mobius
Роль AI в сборке L2J_Mobius9 Y- `, D9 S7 x; s; u6 N
[attach]504[/attach]
* F) d7 X: M6 B. {8 `3 sВ игре Lineage 2, NPC (неигровые персонажи) играют ключевую роль: они могут быть монстрами, торговцами, квестовыми персонажами и другими существами, взаимодействующими с игроками. Для того чтобы NPC могли динамично реагировать на действия игроков, в игре используется AI (Artificial Intelligence — искусственный интеллект).* [2 _# z1 e7 B
В L2J_Mobius, AI определяет, как NPC будут вести себя в определённых ситуациях: как они реагируют на атаки, следят за игроками, взаимодействуют с другими объектами игрового мира, и какие действия они предпринимают в различных игровых ситуациях.: t  F: _# Y/ m2 _# P4 t8 P( \* m
Основные классы AI:- o! z5 p3 R( g
4 z! \& r+ J9 j2 l* N- D5 y7 v
  1. public void onIntentionAttack(Creature target) {  // public void наНамерениеАтаковать(Существо цель)/ j; g( C) j0 d6 W
  2.     // Устанавливаем намерение NPC атаковать цель9 c6 d3 u) M+ S2 c, O5 F3 y) a5 l3 o
  3.     setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);  
    * C4 _0 }4 c# D, |2 l- D
  4. }  K! q) m" J9 B  f
Скопировать код
    2. AttackableAI.java+ z9 n6 a' @, n$ A/ A# u- k

7 {! ]$ A5 a8 R0 V6 i* `# E, i2 mПример логики атаки NPC:
9 l3 u9 n& }9 p3 x' `( ?+ Z
  1. @Override8 W$ `2 t2 Y. r; [" ]1 K
  2. protected void onEvtAttacked(Creature attacker) {  // public void наСобытиеАтаки(Существо атакующий)5 W0 _* x+ P. V9 G
  3.     // Добавляем атакующего в список целей
    & }  D* c/ v9 }+ M
  4.     getActor().addDamageHate(attacker, 0, 1);  
    " x8 a5 U5 v3 J
  5.     // Если NPC не занят другим действием, инициируем атаку
    8 E. R3 U7 z& l: v9 w
  6.     if (!getActor().isAttackingNow()) {
    % O$ c" ?) x/ ~2 \
  7.         onIntentionAttack(attacker);  // Нападаем на атакующего3 q! N$ `9 E$ K
  8.     }
    4 G. W8 Z; |* k8 R2 `4 v6 \
  9. }
    : `" ^" N7 M6 z; f- ]
Скопировать код
3. NpcAI.java
6 ]" T& V$ W3 U+ [" @% O
0 q( \; o8 y. D; Z: y7 s5 d, LПример взаимодействия с игроком:) |, T- [& m. G2 O& w  r" }! A
  1. @Override
    : \6 {8 V+ _6 T) N; g0 ?. V. Z
  2. protected void onEvtThink() {
    4 T/ M" W4 |; i3 R
  3.     if (_actor.isNpc()) {
    ) x; D- O* ]: U3 x
  4.         // Открываем окно диалога при взаимодействии с NPC0 ], \+ \0 x# M8 d; ^. S
  5.         _actor.showChatWindow(player);
    4 Q$ N/ F) N7 Z: C
  6.     }- c$ c" U& }, O: g
  7. }( H/ M: _/ P* g1 V
Скопировать код
Как AI влияет на игровой процесс?
8 H$ w" G! L9 z; G1 pПримеры использования AI в игре:8 r" d" @& j5 D/ \) i6 {
Итог:AI в L2J_Mobius — это ключевой элемент, который делает NPC живыми и динамичными. С помощью AI можно управлять как агрессивными монстрами, так и мирными NPC, настраивая их поведение в зависимости от различных условий. Основные классы AI, такие как AbstractAI, AttackableAI и NpcAI, позволяют гибко настраивать поведение NPC, делая игровой процесс интересным и разнообразным.
2 v# X: T$ |. x, v1 d+ s+ x" e+ ?" _
P.S.
8 I( E7 W7 y+ g( j5 s+ K  T8 l" c, QКажется, что иногда NPC умнее, чем мы думаем... будьте осторожны, вдруг они планируют захват сервера? ?
" {4 u; M( L5 J5 W0 f6 W; S% n- \2 A. m. @5 }
) T/ e1 j. i6 N

' v9 A* u1 }8 e& R[groupid=76]Lineage 2[/groupid]




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