Aller au contenu principal

Créer des Événements

webapp_banner.jpg

Ce guide concerne EliteMobs 10 et les versions ultérieures

Que sont les Événements personnalisés ?

Les Événements personnalisés désignent ici des événements qui se produisent aléatoirement en jeu, qu'ils soient basés sur les actions des joueurs ou déclenchés par un minuteur. Le plugin est livré préchargé avec un certain nombre d'Événements personnalisés, tels que l'événement Balrog, l'événement Kraken et les événements Gobelin du trésor, pour n'en citer que quelques-uns.

Ce système s'appelle Événements personnalisés car les événements peuvent non seulement être personnalisés mais aussi créés de toutes pièces. Ce qui suit est un guide expliquant comment créer et personnaliser vos propres événements.

Créer vos Événements personnalisés

Les fichiers de configuration d'événement personnalisé doivent être créés dans : plugins/EliteMobs/customevents/

Les fichiers doivent utiliser le format .yml. Le nom du fichier (sans l'extension .yml) devient l'identifiant de l'événement.

Exemple : my_cool_event.yml est référencé par my_cool_event

Paramètres de configuration communs

Les paramètres suivants peuvent/doivent être utilisés à la fois pour les événements d'action et les événements à minuterie.


isEnabled

Définit si l'événement est activé.

CléValeursDéfaut
isEnabledBooleantrue
Exemple
isEnabled: true

eventType

Définit le type d'événement.

CléValeursDéfaut
eventTypeDEFAULT / BREAK_BLOCK / FISH / TILL_SOIL / TIMEDaucun

Notez que BREAK_BLOCK, FISH et TILL_SOIL sont des Événements d'action et que TIMED correspond aux Événements à minuterie. DEFAULT est destiné aux événements déclenchés par d'autres moyens ou des conditions spéciales.

Exemple
eventType: BREAK_BLOCK

bossFilenames

Définit la liste des boss qui seront générés. Obligatoire !

CléValeursDéfaut
bossFilenamesString Listaucun
Exemple
bossFilenames:
- balrog.yml
- my_event_boss.yml

announcementPriority

Définit la priorité d'annonce.

CléValeursDéfaut
announcementPriorityInteger0
Exemple
announcementPriority: 1

startMessage

Définit le message envoyé au début de l'événement.

CléValeursDéfaut
startMessageStringaucun
Exemple
startMessage: An event has started!

create_events_start_message.jpg


endMessage

Définit le message envoyé à la fin de l'événement.

CléValeursDéfaut
endMessageStringaucun
Exemple
endMessage: An event has ended!

create_events_end_message.jpg


eventStartCommands

Définit les commandes qui s'exécutent au début de l'événement.

CléValeursDéfaut
eventStartCommandsString Listaucun
Exemple
eventStartCommands:
- say The event now starts!!
- "$chance=0.5$ say What a spawn!"

create_events_start_commands.jpg


eventEndCommands

Définit les commandes qui s'exécutent à la fin de l'événement.

CléValeursDéfaut
eventEndCommandsString Listaucun
Exemple
eventEndCommands:
- say The event ends, so sad.
- "$chance=0.5$ say Too slow bud!"

create_events_end_commands.jpg


Exemple de configuration d'événement
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!

Exemple complet d'événement à minuterie
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

Événements d'action

Des événements qui ont une chance de se déclencher lorsqu'une action spécifique, comme casser un bloc ou pêcher, se produit.

Note : les événements d'action appliquent automatiquement un temps de recharge par joueur pour empêcher un même joueur de déclencher des événements à répétition. Le temps de recharge est de 4 minutes par défaut et est configurable via actionEventMinimumCooldownMinutes dans events.yml.

chance

Définit la chance que l'événement se produise lorsque l'action se produit.

CléValeursDéfaut
chanceValeur entre 0.0 et 1.00
Exemple
chance: 0.001

breakableMaterials

Définit la liste des matériaux à vérifier si l'action est définie sur BREAK_BLOCK.

CléValeursDéfaut
breakableMaterialsListe de matériauxaucun
Exemple
breakableMaterials:
- BEEHIVE
- BIRCH_WOOD

Exemple de configuration
chance: 0.001
breakableMaterials:
- COAL_ORE

Définit une chance de 0,1 % de déclencher l'événement lorsqu'un bloc de minerai de charbon est cassé, en supposant que le type d'événement est BREAK_BLOCK.


Exemple complet d'événement d'action
isEnabled: true
eventType: BREAK_BLOCK
bossFilenames:
- "mining_boss.yml"
announcementPriority: 2
startMessage: "You've awakened something..."
chance: 0.001
breakableMaterials:
- DIAMOND_ORE
- EMERALD_ORE

Événements à minuterie

Les Événements à minuterie sont des événements qui se produisent à des intervalles de temps configurables. Une fois le temps de recharge d'un événement à minuterie écoulé, un événement à minuterie aléatoire est choisi dans la liste des événements à minuterie en fonction du poids de l'événement.

spawnType

Définit l'Apparition personnalisée utilisée par l'événement, qui détermine où le boss peut apparaître.

CléValeursDéfaut
spawnTypeFilenameaucun
Exemple
spawnType: nether_spawn.yml

localCooldown

Définit la durée, en minutes, avant que cet événement puisse être à nouveau choisi.

CléValeursDéfaut
localCooldownDouble0
Exemple
localCooldown: 120

globalCooldown

Définit la durée, en minutes, avant que le prochain événement soit choisi.

CléValeursDéfaut
globalCooldownDouble0
Exemple
globalCooldown: 60

weight

Définit le poids de l'événement, affectant la probabilité qu'il soit choisi plutôt que d'autres événements. Recommandé : 100.

Le système de poids détermine la probabilité relative de sélection d'un événement. Par exemple :

  • L'événement A avec un poids de 100 contre l'événement B avec un poids de 50 = l'événement A a deux fois plus de chances d'être sélectionné
  • Plus le poids est élevé, plus la chance d'être choisi est grande
  • Le planificateur d'événements à minuterie démarre environ 5 minutes après le démarrage du serveur, puis vérifie une fois par minute si le temps de recharge global s'est écoulé et qu'un événement peut être choisi
CléValeursDéfaut
weightDouble0
Exemple
weight: 60.5

eventDuration

Définit la durée maximale de l'événement, en minutes.

CléValeursDéfaut
eventDurationDouble0
Exemple
eventDuration: 30

endEventWithBossDeath

Définit si l'événement se termine avec la mort du boss.

CléValeursDéfaut
endEventWithBossDeathBooleantrue
Exemple
endEventWithBossDeath: true

eventEndTime

Définit l'heure en jeu (en ticks) à laquelle l'événement se termine. Utilisez le système temporel de Minecraft où 0=aube, 6000=midi, 12000=crépuscule, 18000=minuit, 23000=fin de nuit. Définissez sur -1 pour désactiver la fin basée sur le temps.

CléValeursDéfaut
eventEndTimeInteger (0-24000, -1 pour désactiver)-1
Exemple
eventEndTime: 23000

minimumPlayerCount

Définit le nombre minimum de joueurs en ligne avant que l'événement ne démarre.

CléValeursDéfaut
minimumPlayerCountInteger1
Exemple
minimumPlayerCount: 5

Notez que les événements sont mis en file d'attente, ce qui signifie qu'ils ne démarreront qu'une fois les conditions définies dans le spawnType remplies.

Exemple de configuration d'événements
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