Extractioncraft Loot-System
Extractioncraft hat ein mehrschichtiges Loot-System, das auf drei Konzepten aufbaut: Inhaltspakete referenzieren Loot-Tabellen, Loot-Tabellen referenzieren Loot-Pools, und Loot-Pools definieren die tatsächlichen Items, die droppen können.
Übersicht
Content Package
-> chestLootTables / barrelLootTables (weighted selection)
-> Loot Table
-> lootTable entries (each has a chance to roll)
-> Loot Pool
-> eliteMobsLoot / vanillaLoot (weighted selection of one item)
Loot-Tabellen
Loot-Tabellen-Konfigurationen befinden sich im Ordner loot_tables/. Jede Datei definiert eine Liste von Loot-Pool-Einträgen, wobei jeder Eintrag eine unabhängige Chance hat, ein Item zu erzeugen.
| Schlüssel | Typ | Standard | Beschreibung |
|---|---|---|---|
isEnabled | Boolean | true | Ob diese Loot-Tabelle aktiv ist |
spawnPools | String-Liste | [] | BetterStructures-Spawn-Pool-Namen. Wenn ein EliteMob, der einem passenden Spawn-Pool zugeordnet ist, getötet wird, wird diese Loot-Tabelle für seine Drops verwendet. |
lootTable | Objektliste | [] | Jeder Eintrag referenziert einen Loot-Pool-Dateinamen und eine chance (0.0 bis 1.0) |
Loot-Tabellen-Eintragsformat
lootTable:
- filename: my_loot_pool.yml
chance: 0.5
- filename: another_pool.yml
chance: 0.2
Jeder Eintrag wird unabhängig gewürfelt. Eine chance von 0.5 bedeutet eine 50%-ige Wahrscheinlichkeit, dass dieser Pool einen Drop erzeugt.
Loot-Pools
Loot-Pool-Konfigurationen befinden sich im Ordner loot_pools/. Jeder Pool definiert eine Menge möglicher Items. Wenn ein Pool gewürfelt wird, wird ein Item basierend auf gewichteter Wahrscheinlichkeit ausgewählt.
| Schlüssel | Typ | Standard | Beschreibung |
|---|---|---|---|
isEnabled | Boolean | true | Ob dieser Loot-Pool aktiv ist |
eliteMobsLoot | Objektliste | [] | EliteMobs-Custom-Items, die droppen können |
vanillaLoot | Objektliste | [] | Vanilla-Minecraft-Items, die droppen können |
EliteMobs-Loot-Eintrag
eliteMobsLoot:
- filename: my_elite_item.yml
weight: 1.0
- filename: another_item.yml
weight: 0.5
Der filename referenziert eine EliteMobs-Custom-Item-Konfiguration. Das weight bestimmt die relative Drop-Wahrscheinlichkeit unter allen Einträgen im Pool.
Vanilla-Loot-Eintrag
vanillaLoot:
- material: DIAMOND
weight: 1.0
- material: GOLD_INGOT
weight: 2.0
Das material ist ein Bukkit Material-Enum-Name. Das weight funktioniert genauso wie bei Elite-Loot-Einträgen. Alle Elite- und Vanilla-Einträge in einem Pool konkurrieren in einer einzigen gewichteten Auswahl.
Container-Loot (Truhen und Fässer)
Während eines Matches werden Truhen und Fässer von BetterStructures platziert. Wenn ein Spieler eine Truhe oder ein Fass mit Rechtsklick öffnet:
- Der Spieler muss 3 Sekunden lang stillstehen, während sich der Behälter öffnet.
- Bewegung bricht die Interaktion ab.
- Bei Erfolg wird eine Loot-Tabelle aus der
chestLootTables- oderbarrelLootTables-Liste des Inhaltspakets ausgewählt (gewichtete Auswahl). - Die Einträge der ausgewählten Loot-Tabelle werden jeweils unabhängig gewürfelt, und resultierende Items droppen am Standort des Behälters.
- Der Behälter wird nach dem Looten zerstört (durch Luft ersetzt).
Behälter zeigen alle 10 Ticks Portal-Partikel an, solange sie in einem Match aktiv sind, um sie für Spieler sichtbar zu machen.
Mob-Kill-Loot
Wenn ein EliteMob während eines Matches stirbt, prüft das Plugin seinen BetterStructures-Spawn-Pool. Jede Loot-Tabelle, deren spawnPools-Liste den Spawn-Pool des Mobs enthält, generiert Drops am Todesort des Mobs. Das Level des Mobs wird an EliteMobs für levelgerechte Item-Generierung weitergegeben.
Item-Verhalten bei Extraktion
- Spieler, die sich erfolgreich extrahieren, behalten alle Items. Items in ihrem Inventar werden beim Verlassen mit Seelenbindung (EliteMobs Soulbind-Verzauberung) versehen.
- Spieler, die die Extraktion nicht schaffen (verlassen, Verbindung trennen oder vom Weltrand erfasst werden), verlieren alle Inventar-Items, wenn
deleteItemsOnFailToExtractinconfig.ymlauftruegesetzt ist.