Pular para o conteúdo principal

Criar Eventos

webapp_banner.jpg

Este guia é para o EliteMobs 10 e versões posteriores

O que são Eventos Customizados?

Eventos Customizados aqui se referem a eventos que ocorrem aleatoriamente dentro do jogo, seja com base em ações dos jogadores ou com um gatilho temporizado. O plugin já vem pré-carregado com vários Eventos Customizados, como o evento Balrog, o evento Kraken e os eventos Treasure Goblin, para citar alguns.

Este sistema é chamado de Eventos Customizados porque os eventos não só podem ser customizados como também criados do zero. O que se segue é um guia sobre como criar e customizar seus próprios eventos.

Criando Seus Eventos Customizados

Os arquivos de configuração de evento customizado devem ser criados em: plugins/EliteMobs/customevents/

Os arquivos devem usar o formato .yml. O nome do arquivo (sem a extensão .yml) se torna o identificador do evento.

Exemplo: my_cool_event.yml é referenciado como my_cool_event

Configurações comuns

As configurações a seguir podem/devem ser usadas tanto para eventos de ação quanto para eventos temporizados.


isEnabled

Define se o evento está ativado.

ChaveValoresPadrão
isEnabledBooleantrue
Exemplo
isEnabled: true

eventType

Define o tipo do evento.

ChaveValoresPadrão
eventTypeDEFAULT / BREAK_BLOCK / FISH / TILL_SOIL / TIMEDnenhum

Note que BREAK_BLOCK, FISH e TILL_SOIL são Eventos de Ação e TIMED são Eventos Temporizados. DEFAULT é para eventos disparados por outros meios ou condições especiais.

Exemplo
eventType: BREAK_BLOCK

bossFilenames

Define a lista de bosses que serão spawnados. Obrigatório!

ChaveValoresPadrão
bossFilenamesString Listnenhum
Exemplo
bossFilenames:
- balrog.yml
- my_event_boss.yml

announcementPriority

Define a prioridade de anúncio.

ChaveValoresPadrão
announcementPriorityInteger0
Exemplo
announcementPriority: 1

startMessage

Define a mensagem enviada no início do evento.

ChaveValoresPadrão
startMessageStringnenhum
Exemplo
startMessage: An event has started!

create_events_start_message.jpg


endMessage

Define a mensagem enviada no final do evento.

ChaveValoresPadrão
endMessageStringnenhum
Exemplo
endMessage: An event has ended!

create_events_end_message.jpg


eventStartCommands

Define os comandos que rodam no início do evento.

ChaveValoresPadrão
eventStartCommandsString Listnenhum
Exemplo
eventStartCommands:
- say The event now starts!!
- "$chance=0.5$ say What a spawn!"

create_events_start_commands.jpg


eventEndCommands

Define os comandos que rodam no final do evento.

ChaveValoresPadrão
eventEndCommandsString Listnenhum
Exemplo
eventEndCommands:
- say The event ends, so sad.
- "$chance=0.5$ say Too slow bud!"

create_events_end_commands.jpg


Exemplo de Configuração de Evento
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!

Exemplo Completo de Evento Temporizado
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

Eventos de Ação

Eventos que têm uma chance de rodar quando uma ação específica, como quebrar um bloco ou pescar, acontece.

Nota: Os eventos de ação aplicam automaticamente um cooldown por jogador para impedir que o mesmo jogador dispare eventos repetidamente. O cooldown tem um padrão de 4 minutos e é configurável através de actionEventMinimumCooldownMinutes no events.yml.

chance

Define a chance de o evento acontecer quando a ação ocorre.

ChaveValoresPadrão
chanceValor entre 0.0 e 1.00
Exemplo
chance: 0.001

breakableMaterials

Define a lista de materiais a verificar se a ação estiver definida como BREAK_BLOCK.

ChaveValoresPadrão
breakableMaterialsLista de materiaisnenhum
Exemplo
breakableMaterials:
- BEEHIVE
- BIRCH_WOOD

Exemplo de Configuração
chance: 0.001
breakableMaterials:
- COAL_ORE

Define uma chance de 0,1% de rodar o evento quando um bloco de minério de carvão é quebrado, assumindo que o tipo de evento seja BREAK_BLOCK.


Exemplo Completo de Evento de Ação
isEnabled: true
eventType: BREAK_BLOCK
bossFilenames:
- "mining_boss.yml"
announcementPriority: 2
startMessage: "You've awakened something..."
chance: 0.001
breakableMaterials:
- DIAMOND_ORE
- EMERALD_ORE

Eventos Temporizados

Eventos Temporizados são eventos que acontecem em intervalos de tempo configuráveis. Uma vez que o cooldown de um evento temporizado termina, um evento temporizado aleatório é escolhido da lista de eventos temporizados com base no peso do evento.

spawnType

Define o Spawn Customizado usado pelo evento, que define onde o boss pode spawnar.

ChaveValoresPadrão
spawnTypeFilenamenenhum
Exemplo
spawnType: nether_spawn.yml

localCooldown

Define a quantidade de tempo, em minutos, antes que este evento possa ser escolhido novamente.

ChaveValoresPadrão
localCooldownDouble0
Exemplo
localCooldown: 120

globalCooldown

Define a quantidade de tempo, em minutos, antes que o próximo evento seja escolhido.

ChaveValoresPadrão
globalCooldownDouble0
Exemplo
globalCooldown: 60

weight

Define o peso do evento, afetando a chance de ele ser escolhido em relação a outros eventos. Recomendado: 100.

O sistema de peso determina a probabilidade relativa de seleção do evento. Por exemplo:

  • Evento A com peso 100 vs Evento B com peso 50 = o Evento A tem o dobro de chance de ser selecionado
  • Peso maior = maior chance de ser escolhido
  • O agendador de eventos temporizados começa cerca de 5 minutos após o início do servidor e, em seguida, verifica uma vez por minuto se o cooldown global já passou e se um evento pode ser escolhido
ChaveValoresPadrão
weightDouble0
Exemplo
weight: 60.5

eventDuration

Define a duração máxima do evento, em minutos.

ChaveValoresPadrão
eventDurationDouble0
Exemplo
eventDuration: 30

endEventWithBossDeath

Define se o evento termina com a morte do boss.

ChaveValoresPadrão
endEventWithBossDeathBooleantrue
Exemplo
endEventWithBossDeath: true

eventEndTime

Define o horário dentro do jogo (em ticks) em que o evento termina. Use o sistema de tempo do Minecraft, onde 0=amanhecer, 6000=meio-dia, 12000=anoitecer, 18000=meia-noite, 23000=madrugada. Defina como -1 para desabilitar o término baseado no horário.

ChaveValoresPadrão
eventEndTimeInteger (0-24000, -1 para desabilitar)-1
Exemplo
eventEndTime: 23000

minimumPlayerCount

Define a quantidade mínima de jogadores online antes que o evento comece.

ChaveValoresPadrão
minimumPlayerCountInteger1
Exemplo
minimumPlayerCount: 5

Note que os eventos são enfileirados, ou seja, eles só começarão quando as condições definidas no spawnType forem atendidas.

Exemplo de Configuração de Eventos
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