Zum Hauptinhalt springen

EliteScript

webapp_banner.jpg

EliteScript ist ein umfassendes Scripting-System für MagmaGuy's Plugins, das erweiterte Anpassungsoptionen zum Erstellen dynamischer Verhaltensweisen für Bosse und andere Entitäten in Minecraft bietet.

Überblick

EliteScript ermöglicht es Serveradministratoren, komplexe, ereignisgesteuerte Verhaltensweisen für Custom-Bosse und Mobs zu erstellen. Das Scripting-System basiert auf fünf Kernkomponenten:

  • Events: Auslöser, die die Script-Ausführung starten (Schaden, Spawn, Tod, etc.)
  • Conditions: Anforderungen, die erfüllt sein müssen, damit Aktionen ausgeführt werden
  • Actions: Die auszuführenden Verhaltensweisen (Schaden, Teleport, Partikel spawnen, etc.)
  • Targets: Welche Entitäten oder Orte die Aktionen betreffen
  • Zones: Definierte Bereiche in der Welt für Targeting und Erkennung
  • Cooldowns: Zeitbeschränkungen, um Script-Spam zu verhindern

Elite Scripts können als eigenständige Power-Dateien oder direkt in Custom-Boss-Konfigurationsdateien hinzugefügt werden.

Schnellstart-Beispiel

Hier ist ein einfaches EliteScript, das einen Boss Blitze auf Spieler schlagen lässt, wenn er beschädigt wird:

eliteScript:
LightningStrike:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: STRIKE_LIGHTNING
Target:
targetType: DIRECT_TARGET
repeatEvery: 20
times: 3
Cooldowns:
local: 60
global: 20

Dieses Script wird ausgelöst, wenn ein Spieler den Boss beschädigt, und schlägt dann 3 Mal Blitze auf den Spieler (einmal pro Sekunde), mit einem 60-Tick-Cooldown, bevor es erneut ausgelöst werden kann.

Script-Komponenten

EliteScript bietet umfangreiche Anpassungen durch sein Komponentensystem. Für detaillierte Informationen zu jeder Komponente siehe die folgenden Seiten:

Kernkomponenten

  • Events - 13 Event-Typen einschließlich Schaden, Tod, Spawn, Kampf und zonenbasierte Auslöser
  • Actions - 35 Action-Typen zum Erstellen komplexer Verhaltensweisen
  • Targets - 17 Target-Typen zum Auswählen von Entitäten und Orten
  • Conditions - Filter- und Blockierungsbedingungen mit mehreren Prüfungstypen
  • Zones - 8 Zonenformen (Kugeln, Zylinder, Quader, Strahlen, Kegel, etc.)
  • Cooldowns - Lokale und globale Cooldown-Systeme
  • Relative Vectors - Erweiterte Positionierung und Bewegung

Häufige Anwendungsfälle

EliteScript wird häufig verwendet für:

  • Phasenbasierte Boss-Kämpfe: Unterschiedliche Angriffsmuster bei verschiedenen Gesundheitsprozentsätzen
  • Arena-Mechaniken: Zonenbasierter Schaden, Buffs oder Spawns in bestimmten Bereichen
  • Custom-Angriffe: Einzigartige Partikeleffekte, Projektile und Flächenangriffe
  • Umweltgefahren: Periodische Blitze, fallende Blöcke oder Feuer
  • Interaktive Mechaniken: Teleportation, Mob-Spawning und Weltmodifikation
  • Spielerkommunikation: Nachrichten, Titel, Action-Bars und Boss-Bars
  • Bedingte Verhaltensweisen: Unterschiedliche Aktionen basierend auf Spieleranzahl, Ort oder Boss-Status

Implementierung

Scripts können auf zwei Arten implementiert werden:

  1. Power-Dateien: Erstellen Sie eigenständige .yml-Dateien in ~/plugins/EliteMobs/powers/
  2. Custom-Boss-Dateien: Fügen Sie eliteScript:-Abschnitte direkt zu Custom-Boss-Konfigurationen hinzu

Für detaillierte Anleitungen zum Erstellen von Powers und Custom-Bossen siehe:

Performance-Überlegungen

Beim Erstellen von Scripts beachten Sie diese Best Practices:

  • Verwenden Sie Cooldowns, um Performance-Probleme durch rapid-fire Scripts zu vermeiden
  • Zonenbasierte Events (ZoneEnterEvent, ZoneLeaveEvent) sind rechenintensiv - verwenden Sie kleine Zonen und angemessene Cooldowns
  • Verwenden Sie Filterbedingungen, um unnötige Prüfungen zu reduzieren
  • Testen Sie Scripts gründlich, bevor Sie sie auf Produktionsservern einsetzen

Nächste Schritte

Um mit dem Erstellen Ihrer eigenen EliteScripts zu beginnen:

  1. Lesen Sie die Events-Seite, um zu verstehen, was Scripts auslösen kann
  2. Erkunden Sie die Actions-Seite, um zu sehen, welche Verhaltensweisen Sie erstellen können
  3. Lernen Sie über Targets, um zu steuern, was Ihre Aktionen betreffen
  4. Studieren Sie die Beispiele auf jeder Komponentenseite
  5. Beginnen Sie mit einfachen Scripts und fügen Sie schrittweise Komplexität hinzu