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

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

webapp_banner.jpg

Это руководство предназначено для EliteMobs 7.3.4 и выше

Что такое пользовательские события?

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

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

Создание ваших пользовательских событий

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

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

Пример: my_cool_event.yml ссылается как my_cool_event

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

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


isEnabled

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

КлючЗначенияПо умолчанию
isEnabledBooleantrue
Пример
isEnabled: true

eventType

Устанавливает тип события.

КлючЗначенияПо умолчанию
eventTypeDEFAULT / BREAK_BLOCK / FISH / TILL_SOIL / TIMEDnone

Обратите внимание, что BREAK_BLOCK, FISH и TILL_SOIL являются События действия, а TIMED - Временные события. DEFAULT предназначен для событий, запускаемых другими средствами или особыми условиями.

Пример
eventType: BREAK_BLOCK

bossFilenames

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

КлючЗначенияПо умолчанию
bossFilenamesString Listnone
Пример
bossFilenames:
- balrog.yml
- my_event_boss.yml

announcementPriority

Устанавливает приоритет объявления.

КлючЗначенияПо умолчанию
announcementPriorityIntegernone
Пример
announcementPriority: 1

startMessage

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

КлючЗначенияПо умолчанию
startMessageStringnone
Пример
startMessage: An event has started!

create_events_start_message.jpg


endMessage

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

КлючЗначенияПо умолчанию
endMessageStringnone
Пример
endMessage: An event has ended!

create_events_end_message.jpg


eventStartCommands

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

КлючЗначенияПо умолчанию
eventStartCommandsString Listnone
Пример
eventStartCommands:
- say The event now starts!!
- "$chance=0.5$ say What a spawn!"

create_events_start_commands.jpg


eventEndCommands

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

КлючЗначенияПо умолчанию
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

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

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

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

chance

Устанавливает шанс наступления события при выполнении действия.

КлючЗначенияПо умолчанию
chanceЗначение между 0.0 и 1.00
Пример
chance: 0.001

breakableMaterials

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

КлючЗначенияПо умолчанию
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

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

КлючЗначенияПо умолчанию
spawnTypeFilenamenone
Пример
spawnType: nether_spawn.yml

localCooldown

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

КлючЗначенияПо умолчанию
localCooldownInteger0
Пример
localCooldown: 120

globalCooldown

Устанавливает количество времени в минутах до того, как следующее событие будет выбрано.

КлючЗначенияПо умолчанию
globalCooldownInteger0
Пример
globalCooldown: 60

weight

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

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

  • Событие A с весом 100 против События B с весом 50 = Событие A в два раза более вероятно для выбора
  • Больший вес = больше шанс быть выбранным
  • События оцениваются примерно каждые 5 минут
КлючЗначенияПо умолчанию
weightDouble0
Пример
weight: 60.5

eventDuration

Устанавливает максимальную продолжительность события в минутах.

КлючЗначенияПо умолчанию
eventDurationInteger0
Пример
eventDuration: 30

endEventWithBossDeath

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

КлючЗначенияПо умолчанию
endEventWithBossDeathBooleantrue
Пример
endEventWithBossDeath: true

eventEndTime

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

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

minimumPlayerCount

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

КлючЗначенияПо умолчанию
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