Перезарядка Elite Script
Перезарядка задаёт количество времени, которое должно пройти, прежде чем босс сможет снова выполнить тот же скрипт или любую другую способность*.
- Примечание: некоторые способности в настоящее время не подвержены перезарядке.
Расположение Настроек
Перезарядка настраивается в разделе Cooldowns скрипта элиты:
eliteScript:
ScriptName:
Events:
- [event configuration]
Actions:
- [action configuration]
Cooldowns:
local: [value or range]
global: [value or range]
Примечание: Ключи конфигурации не чувствительны к регистру (local, Local, LOCAL — все работают).
Примечание о единицах: Все значения перезарядки указываются в тиках. В Minecraft 20 тиков в секунду, поэтому:
- 20 тиков = 1 секунда
- 60 тиков = 3 секунды
- 100 тиков = 5 секунд
- 99999 тиков ≈ 83 минуты
Значения по Умолчанию
Если раздел Cooldowns опущен, оба значения local и global по умолчанию равны 0, что означает, что скрипт полностью обходит систему перезарядки.
Обход Перезарядки
Скрипты без раздела Cooldowns или с обоими значениями local и global, установленными в 0, полностью обходят систему перезарядки. Это позволяет создавать поведение, вызываемое событиями, которое всегда должно выполняться независимо от состояния перезарядки босса.
Пример:
eliteScript:
AlwaysTeleportOnLowHealth:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: TELEPORT
Target:
targetType: SELF_SPAWN
# Нет раздела Cooldowns — скрипт всегда выполняется при срабатывании события
Перезарядка имеет два значения:
local
local задаёт время в тиках, через которое тот же скрипт сможет запуститься снова. Пример:
Пример
local: 60
Позволяет способности запуститься снова через 3 секунды.
global
global задаёт время в тиках, через которое любой другой скрипт или способность сможет запуститься снова[1]. Пример:
Пример
global: 20
Запрещает запуск всех остальных способностей в течение 1 секунды.
[1] Примечание: Это относится к устаревшим реализациям способностей (не EliteScripts). Все способности на основе EliteScript корректно поддерживают глобальную перезарядку. Некоторые из старых способностей в настоящее время не подвержены этому — работа над этим продолжается.
Примечание: сделав локальную перезарядку длиннее, а глобальную короче, вы можете гарантировать, что босс будет чередовать свои доступные способности! Никогда не делайте глобальную перезарядку длиннее, и рекомендуется оставлять хотя бы одну секунду локальной перезарядки, чтобы дать другим способностям шанс сработать.
Кроме того, если ваша способность имеет определённую продолжительность активности, вам следует использовать эту систему, чтобы предотвратить одновременный запуск других способностей, которые могут испортить вашу способность.
Рандомизация
Оба значения перезарядки local и global поддерживают рандомизацию с помощью синтаксиса диапазона. Это позволяет длительности перезарядки варьироваться, добавляя непредсказуемость поведению босса.
Пример:
Cooldowns:
local: 40-80
global: 10-30
Устанавливает локальную перезарядку случайным образом от 40 до 80 тиков (2-4 секунды) и глобальную случайным образом от 10 до 30 тиков (0,5-1,5 секунды).
Примечание: Значения выбираются случайным образом каждый раз при применении перезарядки.
Однократный Запуск Скриптов с Перезарядкой
Чтобы скрипты срабатывали только один раз при использовании События, которое может происходить несколько раз за бой, установите локальную перезарядку на большое число, например 99999. Этот пример демонстрирует концепцию:
Пример
eliteScript:
SetMeOnFireOnlyOnce:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_ON_FIRE
duration: 60
Target:
targetType: DIRECT_TARGET
Cooldowns:
local: 99999
# global: 20 # Необязательно: Предотвратить другие способности на 1 секунду
В этом сценарии EliteMobDamagedByPlayerEvent запускает действие SET_ON_FIRE. Без перезарядки действие активировалось бы каждый раз, когда игрок бьёт моба.
Однако при локальной перезарядке, установленной на 99999, действие сработает только раз в 99999 тиков (83 минуты). Поскольку бой редко длится так долго, это фактически делает скрипт выполняемым один раз за боевую встречу.
Глобальная перезарядка в этом случае необязательна — если она опущена или установлена в 0, она не помешает запуску других способностей.
Устранение Неполадок
Недопустимые Ключи Перезарядки
Если вы используете нераспознанный ключ в разделе Cooldowns, в логах сервера появится предупреждение:
Failed to parse cooldown entry for script name [ScriptName] in config file [FileName]
Допустимые ключи: local, global (без учёта регистра)