Лёгкий ИИ (назовём его LightAI) + вопросы сканирования

Теги:
 
+
-
edit
 

Balancer

администратор
★★★★★
1. Нужно реализовать примитивный AI, который будет иметь минимум кода (прямой наследник AbstractAI), обеспечивающий:

- Рэндомное перемещение моба/NPC при наличии оного в поле зрения игрока (наличие хотя бы одного игрока в радиусе 6144)

- Постоянное перемещение моба/NPC по заданному маршруту даже в отсутствии окружающих игроков (корабли и те же будущие "гуляющие" по карте NPC)

- Активация настоящего ИИ при приближении игрока на радиус активности моба (600... - в зависимости от агрорадиуса, например)

- Активация настоящего ИИ при атакующем или ином воздействии игрока на моба.

- Никакого сканирования объектов у неподвижного моба быть не должно.

- При перемещении моба в новое положение происходит пересканирование объектов, при необходимости нотифицирующее новые объекты о появлении этого перемещённого моба в их поле зрения.

Проблема постоянного сканирования мобами окрестностей решается частичным включением в этот процесс игрока.

- При перемещении игрока у него уже есть knownList, в котором хранятся известные ему объекты. При появлении нового объекта в поле зрения (6144) наряду с addKnownObject (посылка пакета этого объекта клиенту) требуется активация AI моба в Light-состояние, если до этого он был в состоянии IDLE. Это уже реализованое.

- Нужно добавить новое: при появлении моба в радиусе меньше типичного агрорадиуса (600) (а расстояния до объектов всё равно у игроков считаются при каждом их перемещении), мобу шлётся нотификация о его активации, после чего у него включается полноценный ИИ.

- Аналогично, при выходе моба за эти пределы, он должен пересмореть свои области видимости и, если нужно, включить лёгкий ИИ, или выключить его совсем (Idle состояние, если моб обычный и игроков в пределах их видимости нет).
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru