hiervard logo Что это такое? |  Особенности
Правила |  Проекту требуются...
Кто в игре? telnet://hiervard.ru:4000
telnet://193.41.218.12:4000
другие порты
Hiervard MUD

Информация
О мире
Об авторе мира.
О проекте.
Участники
Особенности
Карта мира
Требуются...
Статистика
Расы и профессии
Кто в игре
Загрузка сервера
Игрокам
ЧТО ЭТО?
ПРАВИЛА
FAQ
Термины
Справка
Навыки
Настройка zmud
Мультиподключения
Выбор имени
Транслит
Галерея
Подключение
Билдерам
13 правил
Анкета билдера
Зоны
[О принципах]
Правила
Временной срез
AI
Умения
DG-Script
Триггеры!
Погода
Богам
Слава и удача
Правила богов
Разное
Интересные факты
Проблема "Я"
Пожертвования
IRC канал
Ссылки

ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ В МИРЕ ХЬЕРВАРД

Часть 1. Вступление.

Этот документ описывает правила, которые нужно соблюдать при создании высокоинтеллектуальных монстров, способных серьезно потрепать нервы даже опытным игрокам. Ни для кого не секрет, что обычные "тупые" монстры всем изрядно надоели, поэтому для Хьервард МАД была разработана система искусственного интеллекта. Конечно, есть т. н. "триггеры", которые позволяют вытворять гораздо более сложные штуки, но все же некоторые вещи выходят за рамки возможностей триггеров. Да и писать межмонстровое взаимодействие на триггерах - занятие крайне неблагодарное. Для упрощения работы билдеров были созданы простые правила создания ИИ, которые будут изложены ниже.

Часть 2. Общие принципы.

ИИ в большой степени ориентирован на группы монстров, нежели на одиночек. Однако некоторые правила можно применять и к монстрам-соло. Вот шаги создания ИИ.

- создать группу монстров (или одиночного монстра), между которыми предполагается взаимодействие

- описать битвекторы ИИ для каждого монстра сообразно его предполагаемому поведению

- указать каждому монстру его роль в группе (имитируется обычная группа игроков)

- описать умения/заклинания, которыми владеет монстр

Все эти шаги будут изложены ниже.

Битвектор. Для того чтобы указать битвектор ИИ, нужно использовать ключевое слово "AI: " в е-спецификаторе моба. После него идет мнемоническая (буквенная) или числовая запись битвектора. Вот его флаги (для краткости я буду приводить только буквенную форму):

#ИмяОписание
a ЛИДЕР Ведет группу монстров
b ПОСЛЕДОВАТЕЛЬ Объединяется с лидером
c БЕРСЕРКЕР Использует атакующие умения/заклинания
d ЗАЩИТНИК Использует защищающие умения/заклинания
e ЦЕЛИТЕЛЬ Исцеляет других монстров и колдует улучшающую магию
f СПАСАТЕЛЬ Стремится спасать других монстров
g ВОР Пытается обокрасть игроков
h ЛУЧНИК Будет обстреливать игроков издалека
j СЛЕДОПЫТ Преследует убежавших игроков
k УБИЙЦА Пытается заколоть или задушить игрока
l МАРОДЕР Обирает трупы
m ВРАГ_КОЛДУНОВ Стремится в первую очередь убить вражеских колдунов
n ЗАЩИТНИК_КОЛД Стремится в первую очередь защищать союзных колдунов
o ВСАДНИК Оседлывает скаковых животных

Единственная тонкость тут: создание группы. Для этого достаточно, чтобы монстры появлялись на одной клетке, причем у одного из них стоял флаг ЛИДЕР, у остальных ПОСЛЕДОВАТЕЛЬ. Лидер автоматически сформирует группу.

Второй шаг в создании ИИ - это указание роли в группе. Для этого используется Е-ключ "PartyRole:", за которым следует число из таблицы:

#ИмяОписание
0"ТАНК" Принимает на себя вражеские атаки
1КОЛДУН В бою не участвует, пользуется защитой других
2"БАШЕР"(Условное название). Пытается сбить противника
3БОЕЦ Наносит физический вред противнику

Данный параметр преимущественно используется при взаимодействии монстров, например КОЛДУН будет лечить ТАНКА и усиливать БОЙЦА. Далее необходимо указать умения/заклинания, которыми владеет монстр. Используются E-спецификаторы "Skill: " и "Spell: ", за которыми следуют параметры в форме

   НОМЕР_УМЕНИЯ(заклинания) СТЕПЕНЬ_СОВЕРШЕНСТВА ВЕРОЯТНОСТЬ_ПРИМЕНЕНИЯ {i} (только для заклинания)

Ключ i (infinite), установленный в конце спецификатора "Spell" позволяет монстру не тратить ману на сотворение этого заклинания. Умения и заклинания легко разделить на группы (атакующие, защитные, лечебные и.т.д). В каждой такой группе сумма ВЕРОЯТНОСТЕЙ_ПРИМЕНЕНИЯ должна быть меньше или равна 100. Например есть БОЕЦ, который обладает умением "сбить - 30%" и "пнуть (70%)", а также "парировать 40%" и "блокировать щитом - 40%". Тогда при работе берсеркером он с вероятностью 3:7 будет сбивать/пинать, а при работе защитником - с вероятностью 2:2:1 будет парировать, закрываться или ничего не делать (недостаток 20%). Не рекомендуется превышать сумму в 100, так как возможно неожиданное поведение монстров.

Часть 3. Тонкости.

Сами по себе монстры помогать друг другу не будут. Для этого необходимо использовать стандартный флаг поведения ПОМОЩНИК. Помогать же они будут согласно битвектору ИИ.







Portions, © 2006-2017, NEON2 NCC
Все права принадлежат
Нику Перумову
????