MythicMobs NPC
Расширение MythicMobs NPC интегрирует сущности MythicMobs в систему NPC TypeWriter, позволяя создавать сложных, анимированных и интерактивных персонажей с полной поддержкой 3D-моделей.
Возможности
- Интеграция с MythicMobs — Используйте любого MythicMob как постоянного NPC с полной поддержкой конфигурации.
- Поддержка 3D-моделей — Нативная поддержка BetterModel и ModelEngine с автоматическим управлением видимостью моделей.
- Группы аудитории — Показывайте NPC определённым группам игроков через систему аудитории TypeWriter. Поддерживает
PlayerGroupдля персональных NPC. - Управление видимостью — Тонкое управление видимостью для каждого игрока с автоматической обработкой подключающихся игроков.
- Взаимодействия — Запускайте квесты и диалоги при взаимодействии с NPC, с настраиваемыми типами кликов.
- Анимации — Управляйте анимациями, стойками и состояниями движения через API ModelEngine/BetterModel.
Архитектура
Интеграция моделей
Расширение поддерживает рендеринг 3D-моделей как через BetterModel, так и через ModelEngine:
- BetterModel
- ModelEngine
BetterModel — предпочтительный поставщик моделей. Расширение использует нативный API EntityTrackerRegistry для оптимального управления видимостью:
- Использует
registry.spawnIfNotSpawned(player)для показа моделей - Использует
registry.remove(player)для скрытия моделей - Полная поддержка видимости моделей для каждого игрока
ModelEngine также поддерживается через API совместимости:
- Использует
setForceViewing/setForceHiddenдля данных базовой сущности - Автоматический откат, когда BetterModel недоступен
Примечание. Модель должна быть настроена в вашем YAML-файле MythicMob. TypeWriter автоматически управляет видимостью, но не применяет модели к сущностям.
Группы аудитории
Расширение поддерживает систему аудитории TypeWriter для управления видимостью NPC:
# При использовании PlayerGroup каждый игрок видит собственный экземпляр NPC
group: player_group_entry_id
При использовании PlayerGroup:
- У каждого игрока есть собственная выделенная сущность NPC
- NPC невидимы для игроков за пределами их аудитории
- Автоматическая обработка игроков, подключающихся или меняющих мир
Записи
- Определения сущностей — MythicMob NPC Definition: определить NPC на основе MythicMob. MythicMob NPC Instance: разместить NPC в мире.
- Действия — Show NPC: показать NPC игроку. Hide NPC: скрыть NPC от игрока.
- Факты и переменные — Проверяйте здоровье, присутствие и дистанцию NPC с помощью фактов. Используйте переменные для доступа к данным об уровне, силе и состоянии.
- События и кинематика — NPC Interact Event: срабатывает при клике. NPC Cinematic: использовать NPC в сценах.
Быстрый старт
- 1. Запускайте действия — Используйте записи-действия для взаимодействия с расширением: show_npc, hide_npc. Запускайте их из команд, NPC, событий или других записей. → show_npc → hide_npc
Параметры конфигурации
NPC Definition
| Option | Описание |
|---|---|
mobType | Внутреннее имя используемого MythicMob |
ticking | true для серверной стороны (реальная сущность), false для клиентской стороны (на основе пакетов) |
showDisplayName | Показывать ли табличку с именем над NPC |
cancelInteractAnimation | Отключить анимацию взмаха руки при взаимодействии |
NPC Instance
| Option | Описание |
|---|---|
spawnLocation | Где создавать NPC (поддерживает динамические позиции) |
group | Группа аудитории для управления видимостью |
activity | Запись активности сущности для поведения NPC |
Зависимости
| Extension | Обязательно | Назначение |
|---|---|---|
| QuestExtension | Обязательно | Основной движок квестов. |
| BasicExtension | Обязательно | Основные утилиты расширений. |
| EntityExtension | Обязательно | Фреймворк управления сущностями. |
| RoadNetworkExtension | Обязательно | Поиск пути NPC и дорожная сеть. |
| PlaceholderAPI | Опционально | Для полей @Placeholder. |