Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

130 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

H-Manhunt Banner

H-Manhunt

Плагин Manhunt для актуальных версий Minecraft, сделанный с упором на удобную и динамичную игру.

GitHub Repo Paper Java License


Что такое Manhunt?

Tip

Manhunt (Охота на игрока) - популярный режим в Minecraft, который многие знают по серии роликов Dream "Minecraft Speedrunner VS Hunter".

Суть режима:

  • Спидраннер: Один или несколько игроков должны как можно быстрее убить Дракона Края. Их задача - выжить и довести прохождение до конца.
  • Охотники: Группа игроков должна остановить спидраннера и убить его раньше, чем падет Дракон. У охотников бесконечные жизни и Компас, который всегда указывает на местоположение спидраннера.

Note

H-Manhunt - это плагин, с которым можно запустить Manhunt на серверах Paper (1.21+) и играть в него с друзьями. Здесь есть не только классическая охота, но и дополнительные механики, которые делают игру разнообразнее.


Совместимость

Статус
Серверное ядро Paper 1.21+
Проверено на Paper 1.21.11 (build 99)
Java 21
Ядро Поддержка
Paper Основная платформа
Форки Paper (Purpur, Pufferfish) Обычно совместимы, без гарантии
Spigot / Bukkit Не поддерживаются

Основные возможности

  • Быстрое управление: Роли охотников и спидраннеров удобно настраиваются через команды /manhunt.
  • Продвинутый трекинг: Компас умеет отслеживать либо ближайшую цель, либо конкретного выбранного игрока.
  • Межпространственная охота: При включённом compass.track-portals компас не теряет цель после перехода в Незер или Энд и показывает последний портал.
  • Система пауз: Матч можно поставить на паузу через голосование, если возникли технические проблемы или просто нужен перерыв.
  • Способности (Casual Mode): Для охотников доступны особые навыки, например Warp Shadows - быстрый варп в сторону цели, который помогает не терять темп погони.

Команды

Команда Описание
/manhunt add <role> <player> ... Добавить игроков в роль
/manhunt add <role> @a Добавить всех онлайн-игроков
/manhunt remove <player> ... Удалить игроков из матча
/manhunt remove @a Удалить всех из матча
/manhunt start Запустить матч
/manhunt reset Сбросить матч
/manhunt pause Поставить на паузу
/manhunt unpause Снять паузу
/manhunt list Список участников и ролей
/manhunt rules <rule> [value] Посмотреть/изменить правило
/manhunt worlds status Посмотреть состояние пула матч-миров
/manhunt worlds prepare Запустить подготовку партии матч-миров
/manhunt worlds clear Очистить неактивные миры пула
/manhunt help Справка

Конфигурация (config.yml)

Ключ Тип По умолчанию Описание
gameplay.day-on-start boolean true Установить день при старте матча
gameplay.weather-clear-on-start boolean true Очистить погоду при старте матча
gameplay.head-start-seconds int 0 Фора спидраннерам (секунды)
gameplay.speedrunners-lives int 1 Количество жизней спидраннеров
gameplay.spectator-after-death boolean true Переводить погибших в spectator
gameplay.teleport-on-start boolean true Телепорт участников в одну точку перед стартом
compass.track-portals boolean true Отслеживать цель между измерениями
gameplay.friendly-fire boolean true Урон по союзникам
compass.menu-enabled boolean false Выбор цели через GUI-меню
compass.track-nearest-mode boolean true Режим трекинга ближайшего спидраннера
gameplay.clear-inventories boolean true Очищать инвентари при старте
gameplay.take-away-ops boolean true Временно снимать OP во время матча
permissions.enabled boolean false Проверять права на команды
compass.bossbar-radar boolean false BossBar-радар союзников
gameplay.pause-enabled boolean true Разрешить паузу/возобновление
match-worlds.enabled boolean false Включить автоматическое создание отдельного матч-мира
match-worlds.pool.enabled boolean true Использовать заранее подготовленную партию матч-миров
match-worlds.pool.batch-size int 10 Сколько комплектов миров готовить за одну партию
match-worlds.pool.world-prefix string manhunt_pool_ Префикс имён миров в пуле
match-worlds.pool.prepare-on-startup-if-empty boolean true При старте сервера готовить партию, если READY-миров нет
match-worlds.pool.prepare-startup-delay-seconds int 10 Задержка перед автоподготовкой после запуска сервера
match-worlds.pool.delay-between-worlds-seconds int 20 Пауза между подготовкой отдельных комплектов мира
match-worlds.pool.unload-ready-worlds boolean true Держать лучший READY-комплект загруженным, остальные выгружать на диск
match-worlds.pool.generate-on-start-if-empty boolean false Разрешить запуск подготовки при /manhunt start, если пул пуст
match-worlds.pool.delete-used-worlds boolean true Удалять использованный комплект после сброса матча
match-worlds.auto-generate.world-prefix string manhunt_match_ Префикс имени для новых миров
match-worlds.auto-generate.keep-latest-worlds int 2 Сколько последних автосозданных миров хранить
match-worlds.auto-generate.max-attempts int 4 Сколько сидов пробовать при подборе мира
match-worlds.auto-generate.min-score-to-accept int 90 Порог качества мира для мгновенного принятия
match-worlds.auto-generate.accept-best-candidate-if-threshold-missed boolean true Брать лучший мир, если идеальный не найден
match-worlds.auto-generate.fixed-seeds list [] Список ручных сидов вместо случайных
match-worlds.auto-generate.village.prefer-smith-building boolean true Предпочитать деревни с weaponsmith/toolsmith/armorer-постройкой
match-worlds.auto-generate.village.require-smith-building boolean true Считать деревню подходящей только если в ней найден smith-building
match-worlds.auto-generate.village.smith-search-radius-blocks int 64 Радиус проверки деревни на smith-building вокруг её центра
match-worlds.auto-generate.rare-structure-search-radius-chunks int 32 Радиус поиска редких структур вроде особняка и башни илладжеров
match-worlds.auto-generate.anchor-weights.village int 100 Вес деревни при случайном выборе якорной структуры
match-worlds.auto-generate.anchor-weights.ruined-portal int 100 Вес разрушенного портала при случайном выборе якорной структуры
match-worlds.auto-generate.anchor-weights.shipwreck int 100 Вес корабля при случайном выборе якорной структуры
match-worlds.auto-generate.anchor-weights.pillager-outpost int 100 Вес башни илладжеров при случайном выборе якорной структуры
match-worlds.auto-generate.anchor-weights.woodland-mansion int 100 Вес особняка илладжеров при случайном выборе якорной структуры
match-worlds.auto-generate.start-distance-from-anchor int 100 На каком расстоянии от ключевой структуры ставить стартовую точку и спавн матча
casual.enabled boolean true Способности охотников (Shift + ПКМ по компасу)
casual.warp-shadows.cooldown-seconds int 300 Кулдаун Warp Shadows (секунды)
casual.warp-shadows.max-distance int 200 Дистанция до цели после варпа
casual.warp-shadows.buffer-zone int 40 Порог, ближе которого варп не срабатывает

При запуске сервер автоматически синхронизирует config.yml с актуальным вариантом из jar:

  • добавляются только новые ключи;
  • существующие пользовательские значения не перезаписываются;
  • комментарии и порядок сохраняются;
  • на случай сбоя создается резервная копия config.yml.bak.

Автоматическая генерация матч-мира

H-Manhunt можно перевести в режим полной автоматизации старта матча. По умолчанию плагин использует пул заранее подготовленных матч-миров: тяжёлая генерация и поиск структур выполняются до матча, а /manhunt start берёт уже готовый комплект.

Один комплект пула включает:

  • overworld;
  • Nether;
  • End;
  • выбранную стартовую точку;
  • score мира;
  • подсказку для спидраннера.

Если пул отключён через match-worlds.pool.enabled: false, /manhunt start работает в legacy-режиме и сам:

  • создаёт новый overworld через Paper WorldCreator;
  • создаёт связанные Nether и End;
  • перебирает несколько сидов;
  • оценивает каждый мир по эвристике вокруг спавна;
  • выбирает лучший вариант и переносит туда игроков;
  • ставит старт не прямо в структуре, а на расстоянии от неё.

При оценке мира учитывается то, что обычно делает ранний Manhunt бодрее и удобнее на старте:

  • хороший стартовый биом;
  • близкая деревня, причём по умолчанию только деревня с кузнечной smith-постройкой;
  • разрушенный портал;
  • корабль;
  • редкие дополнительные цели: особняк и башня илладжеров;
  • наличие дерева;
  • выразительный рельеф.

Это уже скорее подбор мира под быстрый забег, а не обычная работа multiworld-плагина: мир не создаётся наугад, а выбирается под нужный темп игры.

Важно: всё это работает на собственной логике H-Manhunt, без зависимости от сторонних multiworld-плагинов.

Дополнительно:

  • стартовая точка выбирается случайно по весам среди найденных структур;
  • по умолчанию все якорные структуры имеют одинаковый вес, поэтому корабль, портал, деревня и редкие структуры выбираются равноправно;
  • спидраннер получает короткую подсказку по направлению к ближайшей полезной структуре.

Команды управления пулом:

Команда Описание
/manhunt worlds status Показать количество READY/PREPARING/ACTIVE/USED/FAILED миров
/manhunt worlds prepare Запустить подготовку новой партии вручную
/manhunt worlds clear Удалить неактивные миры пула
/manhunt worlds clear --all Удалить весь пул, включая активный комплект

Как работает Warp Shadows?

Warp Shadows (Варп тени) - это способность охотника, которая позволяет телепортироваться в сторону спидраннера. Она нужна, чтобы сократить дистанцию, когда цель ушла слишком далеко и погоня начинает замедляться.

Охотник не появляется прямо рядом с целью: он приземляется на расстоянии casual.warp-shadows.max-distance блоков и дальше продолжает преследование сам. Если охотник уже достаточно близко, то есть ближе чем maxDistance + bufferZone, варп не сработает - способность не даёт нечестного преимущества в ближнем бою.

Активация: Shift + ПКМ по компасу охотника → меню способностей → Варп тени.

Если спидраннер ушёл в другое измерение, то есть в Незер или Энд, и включён compass.track-portals: true, варп работает по тому же принципу: способность берёт последние сохранённые координаты цели в мире охотника и телепортирует к точке последнего портала. Благодаря этому охотник не теряет след даже при переходах между измерениями.

Warp Shadows - визуальное объяснение механики телепорта

Схема работы Warp Shadows

Если спидраннер ушёл в шахту, а охотник остаётся на поверхности, вектор телепорта пойдёт по диагонали вниз, прямо через камень. Расчётная точка варпа окажется внутри породы, но алгоритм findSafeLocation автоматически просканирует пространство вверх и переместит охотника в ближайшую безопасную точку с двумя блоками воздуха - на поверхность или прямо в шахту, если там есть свободное место.

Warp Shadows - случай, когда цель в шахте под землёй

Варп когда спидраннер в шахте: вектор уходит под землю, охотник приземляется на поверхности


Права доступа

Работают только при permissions.enabled: true

Permission Описание
manhunt.manhunt Доступ ко всем командам
manhunt.add Добавление игроков
manhunt.remove Удаление игроков
manhunt.start Запуск матча
manhunt.reset Сброс матча
manhunt.pause Пауза без голосования
manhunt.unpause Снятие паузы без голосования
manhunt.list Просмотр состава
manhunt.rules Просмотр/изменение правил
manhunt.worlds Управление пулом подготовленных матч-миров
manhunt.help Справка

Credits

Оригинальный проект: Matistan / MinecraftManhunt

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages