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

Создание событий

webapp_banner.jpg

Это руководство для EliteMobs 10 и новее

Что такое Кастомные события?

Кастомные события здесь относятся к событиям, которые происходят в игре случайным образом, будь то на основе действий игрока или по триггеру-таймеру. Плагин поставляется с рядом предзагруженных Кастомных событий, таких как событие Балрога, событие Кракена и события Гоблина сокровищ, и это лишь некоторые из них.

Эта система называется Кастомными событиями, потому что события можно не только настраивать, но и создавать с нуля. Ниже приведено руководство о том, как создавать и настраивать свои собственные события.

Создание ваших Кастомных событий

Конфигурационные файлы кастомных событий следует создавать в: plugins/EliteMobs/customevents/

Файлы должны использовать формат .yml. Имя файла (без расширения .yml) становится идентификатором события.

Пример: my_cool_event.yml указывается как my_cool_event

Общие настройки конфигурации

Следующие настройки можно/следует использовать как для событий-действий, так и для событий по времени.


isEnabled

Задаёт, включено ли событие.

KeyValuesDefault
isEnabledBooleantrue
Пример
isEnabled: true

eventType

Задаёт тип события.

KeyValuesDefault
eventTypeDEFAULT / BREAK_BLOCK / FISH / TILL_SOIL / TIMEDnone

Учтите, что BREAK_BLOCK, FISH и TILL_SOIL — это События-действия, а TIMED — это События по времени. DEFAULT предназначен для событий, вызываемых иными способами или особыми условиями.

Пример
eventType: BREAK_BLOCK

bossFilenames

Задаёт список боссов, которые будут заспавнены. Обязательно!

KeyValuesDefault
bossFilenamesString Listnone
Пример
bossFilenames:
- balrog.yml
- my_event_boss.yml

announcementPriority

Задаёт приоритет объявлений.

KeyValuesDefault
announcementPriorityInteger0
Пример
announcementPriority: 1

startMessage

Задаёт сообщение, отправляемое в начале события.

KeyValuesDefault
startMessageStringnone
Пример
startMessage: An event has started!

create_events_start_message.jpg


endMessage

Задаёт сообщение, отправляемое в конце события.

KeyValuesDefault
endMessageStringnone
Пример
endMessage: An event has ended!

create_events_end_message.jpg


eventStartCommands

Задаёт команды, выполняющиеся в начале события.

KeyValuesDefault
eventStartCommandsString Listnone
Пример
eventStartCommands:
- say The event now starts!!
- "$chance=0.5$ say What a spawn!"

create_events_start_commands.jpg


eventEndCommands

Задаёт команды, выполняющиеся в конце события.

KeyValuesDefault
eventEndCommandsString Listnone
Пример
eventEndCommands:
- say The event ends, so sad.
- "$chance=0.5$ say Too slow bud!"

create_events_end_commands.jpg


Пример конфигурации события
isEnabled: true
bossFilenames:
- "cool_boss.yml"
- "other_cool_boss.yml"
announcementPriority: 3
startMessage: "Cool event is starting!"
endMessage: "Cool event is ending!"
eventStartCommands:
- say The event started!
eventEndCommands:
- say The event ended!

Полный пример события по времени
isEnabled: true
eventType: TIMED
bossFilenames:
- "my_timed_boss.yml"
announcementPriority: 3
startMessage: "A timed event has started!"
endMessage: "The timed event has ended!"
eventStartCommands:
- say The timed event began!
eventEndCommands:
- say The timed event concluded!
spawnType: "my_spawn_location.yml"
localCooldown: 120
globalCooldown: 30
weight: 100
eventDuration: 15
endEventWithBossDeath: true
minimumPlayerCount: 1

События-действия

События, у которых есть шанс запуститься, когда происходит определённое действие, например ломание блока или рыбалка.

Примечание: события-действия автоматически применяют перезарядку для каждого игрока, чтобы один и тот же игрок не запускал события многократно. Перезарядка по умолчанию равна 4 минутам и настраивается через actionEventMinimumCooldownMinutes в events.yml.

chance

Задаёт шанс того, что событие произойдёт при выполнении действия.

KeyValuesDefault
chanceЗначение между 0.0 и 1.00
Пример
chance: 0.001

breakableMaterials

Задаёт список материалов для проверки, если действие установлено в BREAK_BLOCK.

KeyValuesDefault
breakableMaterialsСписок материаловnone
Пример
breakableMaterials:
- BEEHIVE
- BIRCH_WOOD

Пример конфигурации
chance: 0.001
breakableMaterials:
- COAL_ORE

Задаёт 0.1%-ный шанс запуска события при разрушении блока угольной руды, при условии что тип события — BREAK_BLOCK.


Полный пример события-действия
isEnabled: true
eventType: BREAK_BLOCK
bossFilenames:
- "mining_boss.yml"
announcementPriority: 2
startMessage: "You've awakened something..."
chance: 0.001
breakableMaterials:
- DIAMOND_ORE
- EMERALD_ORE

События по времени

События по времени — это события, которые происходят с настраиваемыми временными интервалами. Как только перезарядка события по времени заканчивается, из списка событий по времени выбирается случайное событие на основе веса события.

spawnType

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

KeyValuesDefault
spawnTypeFilenamenone
Пример
spawnType: nether_spawn.yml

localCooldown

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

KeyValuesDefault
localCooldownDouble0
Пример
localCooldown: 120

globalCooldown

Задаёт количество времени в минутах, прежде чем будет выбрано следующее событие.

KeyValuesDefault
globalCooldownDouble0
Пример
globalCooldown: 60

weight

Задаёт вес события, влияющий на шанс того, что оно будет выбрано вместо других событий. Рекомендуется: 100.

Система весов определяет относительную вероятность выбора события. Например:

  • Событие A с весом 100 против События B с весом 50 = Событие A вдвое вероятнее будет выбрано
  • Выше вес = выше шанс быть выбранным
  • Планировщик событий по времени запускается примерно через 5 минут после старта сервера, а затем раз в минуту проверяет, истекла ли глобальная перезарядка и можно ли выбрать событие
KeyValuesDefault
weightDouble0
Пример
weight: 60.5

eventDuration

Задаёт максимальную длительность события в минутах.

KeyValuesDefault
eventDurationDouble0
Пример
eventDuration: 30

endEventWithBossDeath

Задаёт, заканчивается ли событие со смертью босса.

KeyValuesDefault
endEventWithBossDeathBooleantrue
Пример
endEventWithBossDeath: true

eventEndTime

Задаёт внутриигровое время (в тиках), когда событие заканчивается. Используйте систему времени Minecraft, где 0=рассвет, 6000=полдень, 12000=сумерки, 18000=полночь, 23000=поздняя ночь. Установите -1, чтобы отключить завершение по времени.

KeyValuesDefault
eventEndTimeInteger (0-24000, -1 для отключения)-1
Пример
eventEndTime: 23000

minimumPlayerCount

Задаёт минимальное количество онлайн-игроков, прежде чем событие начнётся.

KeyValuesDefault
minimumPlayerCountInteger1
Пример
minimumPlayerCount: 5

Учтите, что события ставятся в очередь, то есть они начнутся только когда будут выполнены условия, заданные в spawnType.

Пример конфигурации событий
isEnabled: true
bossFilenames:
- "cool_boss.yml"
- "other_cool_boss.yml"
announcementPriority: 3
startMessage: "Cool event is starting!"
endMessage: "Cool event is ending!"
eventStartCommands:
- say The event started!
eventEndCommands:
- say The event ended!
spawnType: "myCoolSpawn.yml"
localCooldown: 30
globalCooldown: 15
weight: 100
eventDuration: 20
endEventWithBossDeath: true
eventEndTime: 10000
minimumPlayerCount: 5