Zum Hauptinhalt springen

Events erstellen

webapp_banner.jpg

Diese Anleitung ist für EliteMobs 10 und später

Was sind benutzerdefinierte Events?

Benutzerdefinierte Events beziehen sich hier auf Events, die zufällig im Spiel auftreten, sei es basierend auf Spieleraktionen oder mit einem zeitgesteuerten Auslöser. Das Plugin wird mit einer Reihe von benutzerdefinierten Events vorab geladen, wie zum Beispiel dem Balrog-Event, dem Kraken-Event und den Treasure-Goblin-Events, um nur einige zu nennen.

Dieses System wird Custom (benutzerdefinierte) Events genannt, weil die Events nicht nur angepasst, sondern auch von Grund auf neu erstellt werden können. Was folgt, ist eine Anleitung, wie du deine eigenen Events erstellst und anpasst.

Deine benutzerdefinierten Events erstellen

Konfigurationsdateien für benutzerdefinierte Events sollten hier erstellt werden: plugins/EliteMobs/customevents/

Dateien müssen das .yml-Format verwenden. Der Dateiname (ohne die Endung .yml) wird zur Event-Kennung.

Beispiel: my_cool_event.yml wird als my_cool_event referenziert

Allgemeine Konfigurationseinstellungen

Die folgenden Einstellungen können/sollten sowohl für Aktions- als auch für zeitgesteuerte Events verwendet werden.


isEnabled

Legt fest, ob das Event aktiviert ist.

KeyWerteStandard
isEnabledBooleantrue
Beispiel
isEnabled: true

eventType

Legt den Typ des Events fest.

KeyWerteStandard
eventTypeDEFAULT / BREAK_BLOCK / FISH / TILL_SOIL / TIMEDkeiner

Beachte, dass BREAK_BLOCK, FISH und TILL_SOIL Aktions-Events sind und TIMED zeitgesteuerte Events sind. DEFAULT ist für Events, die durch andere Mittel oder besondere Bedingungen ausgelöst werden.

Beispiel
eventType: BREAK_BLOCK

bossFilenames

Legt die Liste der Bosse fest, die gespawnt werden. Erforderlich!

KeyWerteStandard
bossFilenamesString-Listekeiner
Beispiel
bossFilenames:
- balrog.yml
- my_event_boss.yml

announcementPriority

Legt die Ankündigungspriorität fest.

KeyWerteStandard
announcementPriorityInteger0
Beispiel
announcementPriority: 1

startMessage

Legt die Nachricht fest, die zu Beginn des Events gesendet wird.

KeyWerteStandard
startMessageStringkeiner
Beispiel
startMessage: An event has started!

create_events_start_message.jpg


endMessage

Legt die Nachricht fest, die am Ende des Events gesendet wird.

KeyWerteStandard
endMessageStringkeiner
Beispiel
endMessage: An event has ended!

create_events_end_message.jpg


eventStartCommands

Legt die Befehle fest, die zu Beginn des Events ausgeführt werden.

KeyWerteStandard
eventStartCommandsString-Listekeiner
Beispiel
eventStartCommands:
- say The event now starts!!
- "$chance=0.5$ say What a spawn!"

create_events_start_commands.jpg


eventEndCommands

Legt die Befehle fest, die am Ende des Events ausgeführt werden.

KeyWerteStandard
eventEndCommandsString-Listekeiner
Beispiel
eventEndCommands:
- say The event ends, so sad.
- "$chance=0.5$ say Too slow bud!"

create_events_end_commands.jpg


Event-Konfigurationsbeispiel
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!

Vollständiges Beispiel für ein zeitgesteuertes Event
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

Aktions-Events

Events, die eine Chance haben, ausgeführt zu werden, wenn eine bestimmte Aktion eintritt, wie das Abbauen eines Blocks oder das Angeln.

Hinweis: Aktions-Events wenden automatisch einen Cooldown pro Spieler an, um zu verhindern, dass derselbe Spieler wiederholt Events auslöst. Der Cooldown beträgt standardmäßig 4 Minuten und ist über actionEventMinimumCooldownMinutes in events.yml konfigurierbar.

chance

Legt die Chance fest, dass das Event eintritt, wenn die Aktion eintritt.

KeyWerteStandard
chanceWert zwischen 0.0 und 1.00
Beispiel
chance: 0.001

breakableMaterials

Legt die Liste der zu prüfenden Materialien fest, wenn die Aktion auf BREAK_BLOCK gesetzt ist.

KeyWerteStandard
breakableMaterialsListe von Materialienkeiner
Beispiel
breakableMaterials:
- BEEHIVE
- BIRCH_WOOD

Konfigurationsbeispiel
chance: 0.001
breakableMaterials:
- COAL_ORE

Legt eine Chance von 0,1 % fest, dass das Event ausgeführt wird, wenn ein Kohleerz-Block abgebaut wird, vorausgesetzt, der Event-Typ ist BREAK_BLOCK.


Vollständiges Beispiel für ein Aktions-Event
isEnabled: true
eventType: BREAK_BLOCK
bossFilenames:
- "mining_boss.yml"
announcementPriority: 2
startMessage: "You've awakened something..."
chance: 0.001
breakableMaterials:
- DIAMOND_ORE
- EMERALD_ORE

Zeitgesteuerte Events

Zeitgesteuerte Events sind Events, die in konfigurierbaren Zeitintervallen stattfinden. Sobald der Cooldown für ein zeitgesteuertes Event abgelaufen ist, wird ein zufälliges zeitgesteuertes Event aus der Liste der zeitgesteuerten Events basierend auf dem Gewicht des Events ausgewählt.

spawnType

Legt den benutzerdefinierten Spawn fest, der vom Event verwendet wird und definiert, wo der Boss spawnen kann.

KeyWerteStandard
spawnTypeFilenamekeiner
Beispiel
spawnType: nether_spawn.yml

localCooldown

Legt die Zeit in Minuten fest, bevor dieses Event erneut ausgewählt werden kann.

KeyWerteStandard
localCooldownDouble0
Beispiel
localCooldown: 120

globalCooldown

Legt die Zeit in Minuten fest, bevor das nächste Event ausgewählt wird.

KeyWerteStandard
globalCooldownDouble0
Beispiel
globalCooldown: 60

weight

Legt das Gewicht des Events fest, das die Chance beeinflusst, dass es gegenüber anderen Events ausgewählt wird. Empfohlen: 100.

Das Gewichtssystem bestimmt die relative Wahrscheinlichkeit der Event-Auswahl. Zum Beispiel:

  • Event A mit Gewicht 100 vs. Event B mit Gewicht 50 = Event A wird doppelt so wahrscheinlich ausgewählt
  • Höheres Gewicht = höhere Chance, ausgewählt zu werden
  • Der Scheduler für zeitgesteuerte Events startet etwa 5 Minuten nach dem Serverstart und prüft dann einmal pro Minute, ob der globale Cooldown abgelaufen ist und ein Event ausgewählt werden kann
KeyWerteStandard
weightDouble0
Beispiel
weight: 60.5

eventDuration

Legt die maximale Dauer des Events in Minuten fest.

KeyWerteStandard
eventDurationDouble0
Beispiel
eventDuration: 30

endEventWithBossDeath

Legt fest, ob das Event mit dem Tod des Bosses endet.

KeyWerteStandard
endEventWithBossDeathBooleantrue
Beispiel
endEventWithBossDeath: true

eventEndTime

Legt die Spielzeit (in Ticks) fest, zu der das Event endet. Verwende Minecrafts Zeitsystem, wobei 0=Morgendämmerung, 6000=Mittag, 12000=Abenddämmerung, 18000=Mitternacht, 23000=späte Nacht. Setze auf -1, um das zeitbasierte Ende zu deaktivieren.

KeyWerteStandard
eventEndTimeInteger (0-24000, -1 zum Deaktivieren)-1
Beispiel
eventEndTime: 23000

minimumPlayerCount

Legt die Mindestanzahl an Online-Spielern fest, bevor das Event startet.

KeyWerteStandard
minimumPlayerCountInteger1
Beispiel
minimumPlayerCount: 5

Beachte, dass Events in eine Warteschlange gestellt werden, was bedeutet, dass sie erst starten, wenn die im spawnType definierten Bedingungen erfüllt sind.

Events-Konfigurationsbeispiel
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