Benutzerdefinierte Beutetabelle
Das gemeinsame Beuteformat definiert benutzerdefinierte Gegenstände, Vanilla-Gegenstände, Währung und Befehle für Bosse, Schatztruhen, Quests und Arenen. Jeder Eintrag hat einen eigenen Zufallswurf; die Tabelle wählt nicht nur einen erfolgreichen Eintrag aus.
Für die automatische Ausrüstungsabdeckung über Klassen und Schwierigkeitsgrade hinweg siehe automatische Klassenbeute. Ihr separater Grundwurf kann neben uniqueLootList stattfinden. Belasse selbst erstellte Relikte, geskriptete Ausrüstung und andere besondere Belohnungen hier. Einträge für Gegenstände mit itemType: CLASS_LOOT sind Kandidaten der Klassenbeuteauswahl und werden bei gewöhnlichen Boss-Todeswürfen übersprungen. Andere Einträge behalten ihre unabhängigen Würfe.
Bitte beachte, dass dies das neueste Format ist und dasjenige, dessen Verwendung empfohlen wird, aber es existieren einige alternative ältere Formate.
Hinweis: Die Unterstützung des Legacy-Formats ist mit der durch Doppelpunkte getrennten Syntax weiterhin verfügbar: filename.yml:chance:permission. Für neue Konfigurationen wird jedoch das unten gezeigte moderne Format empfohlen.
In dieser Legacy-Syntax sind Chance und Berechtigung optional; ein bloßes filename.yml droppt das Item daher zu 100 %. Ein Legacy-Eintrag mit mehr als drei durch Doppelpunkte getrennten Teilen wird abgelehnt.
Jeder Eintrag wird beim Laden seiner Datei geprüft. Ein unbekannter oder doppelter Schlüssel, ein Schlüssel ohne Wert, eine chance, die keine endliche Zahl ist, ein amount, currencyAmount, wave oder itemLevel, das keine ganze Zahl ist, oder ein ungültiges Material führt zur Ablehnung dieses Eintrags mit der Warnung Failed to parse entry ... due to invalid: <reason>; der Rest der Tabelle wird trotzdem geladen. Bei Schlüsseln spielt Groß-/Kleinschreibung keine Rolle.
Verwende den Schlüssel der zuständigen Funktion: uniqueLootList für Bosse, lootList für Schatztruhen, customRewards für Quests oder rawArenaReward für Arenen. Quest-customRewards akzeptiert Zeichenfolgeneinträge; verwende dort die durch Doppelpunkte getrennte Form filename=...:chance=... statt YAML-Maps.
Alle vier Eintragstypen funktionieren bei benutzerdefinierter Boss-Beute (uniqueLootList). Bei gewöhnlichen Einträgen richtet sich die Ausgabe nach putLootDirectlyIntoPlayerInventory:
| Eintragstyp | putLootDirectlyIntoPlayerInventory: false (Standard) | putLootDirectlyIntoPlayerInventory: true |
|---|---|---|
Elite-Gegenstand (filename) | Persönlicher Bodendrop oder gemeinsame Ausrüstungsabstimmung | Persönliches Inventar oder gemeinsame Ausrüstungsabstimmung |
Vanilla-Gegenstand (material) | Bodendrop | Inventar; Überlauf fällt beim Spieler auf den Boden |
Elite-Münzen (currencyAmount) | Einsammelbarer Münzregen | Direkte Währungsgutschrift |
Befehl (command=) | Ausführung durch die Konsole | Ausführung durch die Konsole |
Bossbelohnungen werden für jeden erfassten Schadensteilnehmer separat gewürfelt, ausgenommen Spieler mit Beutesperre für diesen instanzierten Boss. Dieser Weg für selbst definierte Beute verlangt keine zusätzliche Schadensschwelle von 10 %. Nahe Gruppenmitglieder, die gemeinsame Beteiligung ohne eigenen Schaden erhalten, bekommen über diesen Weg nur Elite-Gegenstände außerhalb der Ausrüstung, keine Vanilla-, Währungs- oder Befehlseinträge. Ein ausgelöster Antiexploit-Schutz unterdrückt diese Todesbeute.
Bosse, die über die EliteMobs-API für instanzierte Bosse in der Instanz eines anderen Plugins gespawnt werden, ignorieren putLootDirectlyIntoPlayerInventory und starten nie eine Gruppen- oder Beuteabstimmung. Ihre Beute fällt immer wie in der Spalte false beim Boss auf den Boden, Elite-Gegenstände als persönliche Drops, und bleibt so in der Welt dieser Instanz.
Schatztruhen verwenden dieselbe Boden-/Inventareinstellung; Quests und Arenen geben direkt aus. Alle vier Quellen unterstützen die folgenden Typen; Quests akzeptieren nur Zeichenfolgeneinträge. Boss-Befehlsbeute läuft pro erfolgreichem Teilnehmerwurf. Die separate Syntax für Boss-Todesbefehle steht unter onDeathCommands.
Elite-Gegenstände ausgeben:
| Schlüssel | Details | Werte | Standard |
|---|---|---|---|
filename | Legt den Dateinamen des zu verwendenden benutzerdefinierten Gegenstands fest. | Dateiname | keiner |
Beispiel
uniqueLootList:
- filename: magmaguys_toothpick.yml
Dadurch lässt der Mob 1x MagmaGuy's Toothpick mit einer Drop-Chance von 100 % fallen.
Allgemeine Einstellungen:
| Schlüssel | Details | Werte | Standard |
|---|---|---|---|
chance | Ein unabhängiger Wurf pro Eintrag; 1.0 entspricht 100 %. Verwende Werte von 0.0 bis 1.0. | Dezimalzahl | 1.0 |
amount | Anzahl der Gegenstandskopien oder Befehlsausführungen nach erfolgreichem Wurf. Multipliziert keine Währung; dafür gilt currencyAmount. | Ganzzahl | 1 |
permission | Legt die Berechtigung fest, die Spieler für diese Beute benötigen. Wird von Elite-Gegenstands-, Währungs- und Befehlseinträgen unterstützt. Vanilla-Gegenstandseinträge lesen sie in keinem der beiden Formate aus. | Zeichenfolge | keine |
Bei amount <= 0 oder chance <= 0 wird nicht gewürfelt; eine nicht numerische oder nicht endliche chance führt beim Laden der Datei zur Ablehnung des Eintrags. Eine chance über 1.0 besteht immer; gemeint ist keine Prozentzahl wie 50. Nach einem Erfolg würfelt die Ausgabe nicht erneut pro Kopie. Questvorschauen machen eigene Zufallswürfe und reservieren nicht die späteren Belohnungen.
Beispiel
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
amount: 10
permission: elitemobs.loot.rare
Dadurch lässt der Mob 10x MagmaGuy's Toothpick mit einer Drop-Chance von 50 % fallen, aber nur für Spieler mit der Permission elitemobs.loot.rare.
Elite-Münzen ausgeben:
| Schlüssel | Details | Werte | Standard |
|---|---|---|---|
currencyAmount | Legt die Menge der ausgegebenen Münzen fest. | Ganzzahl | keine |
currencyAmount muss eine ganze Zahl sein und für eine Ausgabe positiv sein. Ein positives amount multipliziert den Betrag nicht, aber amount <= 0 deaktiviert den Eintrag. Ein currencyAmount von null oder kleiner wird in beiden Formaten geladen, gibt aber nichts aus.
Direkte Währungsbelohnungen laufen durch die Wirtschaftsverwaltung und tilgen zuerst Spielschulden. Bodenausgaben verwenden einen einsammelbaren Münzregen und können den Harvester-Bonus erhalten; direkte Währungseinträge wenden diesen Bonus nicht an. Die Münzen werden beim Einsammeln gutgeschrieben, nicht schon beim erfolgreichen Wurf.
Beispiel
uniqueLootList:
- currencyAmount: 344
chance: 0.5
Damit hat jeder berechtigte Boss-Teilnehmer eine Chance von 50 % auf eine Grundbelohnung von 344 Elite-Münzen. Verwende lootList für denselben Eintrag in einer Schatztruhe.
Vanilla-Gegenstände ausgeben:
| Schlüssel | Details | Werte | Standard |
|---|---|---|---|
material | Legt das Gegenstandsmaterial fest. Bei Materialnamen spielt Groß-/Kleinschreibung in beiden Formaten keine Rolle. type wird als Alias akzeptiert; werden sowohl material als auch type gesetzt, wird der Eintrag abgelehnt. | Material | keines |
Beispiel
uniqueLootList:
- material: APPLE
chance: 0.3
amount: 5
Dadurch lässt der Mob 5 Äpfel mit einer Drop-Chance von 30 % fallen.
Boden- und Inventarausgabe verwenden jeweils einen Eintragswurf. Bei Erfolg werden hier alle 5 Äpfel ausgegeben. Die direkte Ausgabe unterstützt Bosse, Truhen, Quests und Arenen und legt Inventarüberlauf beim Spieler auf den Boden. AIR-Materialien und nicht positive Mengen geben nichts aus. Vanilla-Einträge prüfen permission nicht.
Befehle bei der Beuteausgabe ausführen:
Du kannst Konsolenbefehle ausführen, wenn Beute droppt. Dies ist nützlich, um mit anderen Plugins zu integrieren oder benutzerdefinierte Belohnungen bereitzustellen. Befehlseinträge akzeptieren das durch Doppelpunkte getrennte String-Format und, außer in Quest-customRewards, YAML-Maps.
| Schlüssel | Details | Werte | Standard |
|---|---|---|---|
command | Legt den auszuführenden Konsolenbefehl fest. Verwende %player% als Platzhalter für den Namen des Spielers. | Zeichenfolge | keiner |
Im String-Format darf der Befehl kein : enthalten, weil der Eintrag an diesem Zeichen aufgeteilt wird. Ein = im Befehl ist kein Problem. Verwende eine YAML-Map, wenn der Befehl einen Doppelpunkt benötigt.
Befehlseinträge würfeln chance wie andere Einträge einmal. Bei Erfolg wird der Befehl amount-mal ausgeführt. Es gibt keinen zweiten oder invertierten Wurf:
chance=1.0(Standard) besteht immer.chance=0.5besteht in 50 % der Fälle.amount=3führt den Befehl dreimal aus, wenn dieser eine Wurf besteht.
Der Spieler benötigt permission, und der Befehl darf nicht leer sein. Die eigenen Anforderungen des Befehls gelten weiterhin. Er läuft als Konsole; verwende %player% für den Empfänger.
Beispiel
customRewards:
- command=give %player% diamond 1:chance=0.5:amount=1:permission=elitemobs.loot.command
Diese Questbelohnung führt bei der Abgabe in 50 % der Fälle give <player> diamond 1 über die Konsole aus. %player% wird zum Spielernamen; der Spieler benötigt elitemobs.loot.command. Dieselbe Zeichenfolge funktioniert auch in der uniqueLootList eines Bosses, mit einem eigenen Wurf pro berechtigtem Teilnehmer.
Arena-Belohnungen:
Wenn du Arena-Beutetabellen erstellst, achte bitte darauf, deine Beutetabelle mit rawArenaReward: anstatt mit uniqueLootList: zu beginnen.
| Schlüssel | Details | Werte | Standard |
|---|---|---|---|
wave | Abgeschlossene Arenawelle, die diesen Eintrag vergibt. Jeder Eintragstyp akzeptiert sie in beiden Formaten. | Integer | -1 |
itemLevel | Legt das Level des Beute-Drops fest. Wird nur von Arenen verwendet und ist nur für Elite-Item-Einträge (filename) von Bedeutung. Wird in beiden Formaten akzeptiert. | Integer | 1 |
- Nur Einträge mit einem
wave-Wert von1oder höher werden überhaupt als Wellenbelohnungen registriert. Ein Arena-Belohnungseintrag ohnewavewird zwar geparst und akzeptiert, aber keine Welle wird ihn jemals ausgeben. itemLevelhat den Standardwert1, nicht das Arena- oder Spielerlevel. Einscalable-Elite-Item, das von einer Arena ohne explizitesitemLevelvergeben wird, droppt daher als Item auf Level 1.
Beispiel
rawArenaReward:
- material: BREAD
wave: 1
amount: 10
chance: 0.5
- filename=magmaguys_toothpick.yml:wave=1:itemLevel=2
Nach Welle 1 hat der Broteintrag einen einzelnen Wurf mit 50 %. Bei Erfolg erhält der Spieler 10 Brote; Überlauf landet auf dem Boden. Der benutzerdefinierte Eintrag hat 100 % Chance und fordert einmal MagmaGuy's Toothpick auf Gegenstandslevel 2 an; seine Skalierbarkeit bestimmt weiterhin das erzeugte Level. Berechtigung und Levelunterschied werden von der Arena vor diesen Belohnungen geprüft.
Die beiden Einträge verwenden unterschiedliche Formate nur, um beide zu zeigen; wave und itemLevel funktionieren in beiden Formaten.
Instanzierte Dungeons:
| Schlüssel | Details | Werte | Standard |
|---|---|---|---|
difficultyID | Filtert einen Elite-Gegenstand anhand der aktuellen Dungeon-Schwierigkeit des Empfängers; YAML-Maps erlauben auch ID-Listen. | Zeichenfolge, Zahl oder Liste | keine |
difficultyID wird für Elite-Gegenstandseinträge (filename) sowohl in YAML-Maps als auch im durch Doppelpunkte getrennten Zeichenfolgenformat gelesen. Maps unterstützen außerdem Listen wie difficultyID: [normal, hard]. Vanilla-, Währungs- und Befehlseinträge lehnen es als unbekannten Schlüssel ab. IDs und Namen folgen der Schwierigkeitsauflösung des Dungeons: 0/1/2, Normal/Hard/Mythic oder die Easy/Medium/Hard-Konvention des Pakets. Unbekannte IDs behalten den exakten Vergleich bei. Eine leere Liste oder eine leere ID führt beim Laden der Datei zur Ablehnung des Eintrags.
Der Filter wird für Elite-Gegenstandsbelohnungen aus Bossen, Schatztruhen, Quests und Arenen geprüft. Er beschränkt nur Spieler, die sich gerade in einer Dungeon-Instanz befinden; außerhalb wird er ignoriert. Ein Boss, der über die API für instanzierte Bosse in der Instanz eines anderen Plugins gespawnt wird, wird nach dem Schwierigkeitsgrad gefiltert, den dieses Plugin ihm zugewiesen hat. Eine normale Arena-Instanz ist keine Dungeon-Instanz. Truhen-, Quest- und Arenabelohnungen bleiben persönlich und gelangen nicht in eine gemeinsame Ausrüstungsabstimmung.
Bei Bossausgaben verhält sich der Eintrag wie folgt:
- Der Dungeon-Schwierigkeitsgrad passt zur
difficultyID: Ausrüstung gelangt in die gemeinsame Gruppen-Beutetabelle des Bosses. Andere Belohnungen behalten die persönliche Ausgabe. Berechtigte Kampfteilnehmer des Bosses können gemeinsame Ausrüstung beanspruchen; Spieler mit einer bestehenden Sperre für diesen Boss werden vor der Abstimmung entfernt. - Der Dungeon-Schwierigkeitsgrad passt nicht: Der Eintrag wird übersprungen.
- Der Spieler befindet sich überhaupt nicht in einem instanzierten Dungeon:
difficultyIDwird ignoriert. Ausrüstung verwendet Bedarf/Gier für Gruppen, wenn mindestens zwei berechtigte Gruppenmitglieder in der Nähe sind, andernfalls die normale persönliche Ausgabe. Andere Belohnungen bleiben persönlich.
Ohne difficultyID-Filter kann Ausrüstung weiterhin in die Gruppenbeute gelangen; der durch dieses Feld aktivierte Dungeon-Zweig für gemeinsame Tabellen läuft jedoch nicht. Klassenbeutekandidaten verwenden die oben beschriebenen eigenen Auswahl- und Schwierigkeitsregeln.
Beispiel
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
difficultyID: 1
Dadurch lässt der Mob 1x MagmaGuy's Toothpick mit einer Drop-Chance von 50 % fallen, wenn die Spieler den Boss auf Schwierigkeitsgrad 1 besiegt haben.