Название: Роль 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:
AbstractAI.java e3 [2 C& Y b" h5 X# ?
Это базовый класс, от которого наследуются все AI. Он содержит основные методы и логику, которые можно расширять для создания различных типов поведения NPC.
Задачи AbstractAI: ! J9 N( L; o, p* o) {* K0 c: f
Определение целей NPC.
Реакция на действия игроков (например, атаки).
Обработка передвижения NPC.( I0 i7 M, N. I2 K6 S1 S, S3 c h" Y
Пример метода из AbstractAI: 6 C. N$ M# T. P4 h3 g% s7 F
; }" B6 B" Q9 m/ C& V
) Q# \$ [9 t5 E; K* ~" L2 ?% m
public void onIntentionAttack(Creature target) { // public void наНамерениеАтаковать(Существо цель) ; q* O' H/ I% u9 I6 j
// Устанавливаем намерение NPC атаковать цель * H2 \. r) N( s7 b& a8 K) _9 c% D
setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); 9 I( y4 _7 i( i+ A, {4 h
} . B% }) V( |2 o( {
Скопировать код
2. AttackableAI.java. f. j7 k& P8 n3 m2 K4 Q! ]
$ i- z; y+ P' ` ?/ y6 i) N# K
Это расширение AbstractAI, которое управляет поведением атакуемых NPC. Этот класс отвечает за логику агрессивных существ (например, монстров), которые могут атаковать игроков или других NPC.
Задачи AttackableAI:4 C$ e: K: y) s3 e0 W0 X6 H
Реакция на атаку игрока.
Преследование цели.
Использование умений (магических или физических) в бою. ! [9 I% K- s9 _4 _, \+ @
Пример логики атаки NPC: & ]6 R' b3 Q& z7 P. A. `6 T
@Override ; A( ~( m1 ~" @7 I+ _! g5 I
protected void onEvtAttacked(Creature attacker) { // public void наСобытиеАтаки(Существо атакующий) # h7 a, w1 }. e' A& b6 E
// Добавляем атакующего в список целей# s9 L4 | Q& n$ n8 f3 }5 D( g
getActor().addDamageHate(attacker, 0, 1); . C# F/ ]+ T l; |6 T
// Если NPC не занят другим действием, инициируем атаку + U I- ]2 B6 |/ ^; {
if (!getActor().isAttackingNow()) { & U% z! K6 _* V" q3 \3 Q2 |0 C
onIntentionAttack(attacker); // Нападаем на атакующего ^; q* i+ K5 m+ u9 O& B9 e3 L
} + O: S" V- P) H3 S; O
} 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
Этот класс используется для мирных NPC, таких как торговцы, квестовые персонажи или персонажи, с которыми игроки могут взаимодействовать, но которые не участвуют в бою.
Задачи NpcAI: B3 z% B+ S8 O: W5 k1 ~
Открытие окна диалога при взаимодействии с игроком.
Вызов событий или скриптов при выполнении квестов.% d$ {9 Y# P6 ^' W0 F! a1 z
Пример взаимодействия с игроком: |- u5 m% c2 d. H, I$ {3 [
Как AI влияет на игровой процесс?9 w& Q. B* S7 l# V/ E0 y5 N2 J4 f
Реакции на действия игроков: Если игрок атакует NPC, AI решает, как NPC будет реагировать: атаковать в ответ, убегать или звать на помощь. Это зависит от типа AI (например, боевой или мирный).
Логика боя: В боевых ситуациях AI управляет тем, как NPC использует свои способности, выбирает цели и принимает решения в зависимости от ситуации. В бою AI может решить использовать определённое умение или сменить цель на другого игрока.
Поведение вне боя: AI также управляет действиями NPC, которые не участвуют в бою. Например, как NPC патрулируют территорию, как они следуют за игроками (в случае сопровождения), или как реагируют на вход в их зону агрессии.3 d6 h$ }- k* y2 C. \; O$ X) L
Примеры использования AI в игре:/ ~5 r; e5 _! V$ a J% x
Патрулирование и преследование: NPC могут перемещаться по заданным точкам патруля, а при обнаружении врага — начать его преследование и атаку. Это управляется через AttackableAI.
Умные боссы: Боссы в игре часто используют сложные AI-сценарии. Например, боссы могут менять свою тактику в зависимости от уровня здоровья, призывать помощников или использовать мощные способности при достижении определённых условий.
Интерактивные NPC: Мирные NPC, такие как торговцы или квестовые персонажи, используют NpcAI для взаимодействия с игроками. Они могут открывать окна торговли, запускать квесты или реагировать на специальные события.4 Q% s* f6 n, L" ]; i$ R
Итог: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/)