Перейти к основному содержимому

Перезарядка Elite Script

Перезарядка задаёт количество времени, которое должно пройти, прежде чем босс сможет снова выполнить тот же скрипт или любую другую способность*.

  • Примечание: некоторые способности в настоящее время не подвержены перезарядке.

Расположение в конфигурации

Перезарядки настраиваются в разделе Cooldowns elite-скрипта:

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
# No Cooldowns section - script always executes when event fires

У перезарядки есть два значения:

local

local задаёт время в тиках, прежде чем тот же самый скрипт сможет сработать снова. Пример:

Пример

local: 60

Задаёт возможность снова использовать способность через 3 секунды.

global

global задаёт время в тиках, прежде чем сможет сработать любой другой скрипт или способность[1]. Пример:

Пример

global: 20

Запрещает всем остальным способностям начинаться в течение 1 секунды.

[1] Примечание: это относится к устаревшим реализациям способностей (не к EliteScript). Все способности на основе 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 # Optional: Prevent other powers for 1 second

В этом сценарии событие EliteMobDamagedByPlayerEvent запускает действие SET_ON_FIRE. Без перезарядки это действие активировалось бы каждый раз, когда игрок ударяет моба.

Однако с локальной перезарядкой, установленной на 99999, действие сработает только один раз за 99999 тиков (83 минуты). Поскольку бой редко длится так долго, это фактически делает так, что скрипт выполняется только один раз за бой.

Глобальная перезарядка в этом случае не обязательна — если она опущена или равна 0, она не будет препятствовать выполнению других способностей.

Устранение неполадок

Недопустимые ключи перезарядки

Если вы используете нераспознанный ключ в разделе Cooldowns, в логах сервера появится предупреждение:

Failed to parse cooldown entry for script name [ScriptName] in config file [FileName]

Допустимые ключи: local, global (без учёта регистра)