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

Время восстановления Elite Script

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

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

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

Время восстановления настраивается в разделе Cooldowns элитного скрипта:

eliteScript:
ScriptName:
Events:
- [конфигурация события]
Actions:
- [конфигурация действия]
Cooldowns:
local: [значение или диапазон]
global: [значение или диапазон]

Примечание: Ключи конфигурации не чувствительны к регистру (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 (без учета регистра)