Zum Hauptinhalt springen

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üsselTypStandardBeschreibung
isEnabledBooleantrueOb diese Loot-Tabelle aktiv ist
spawnPoolsString-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.
lootTableObjektliste[]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üsselTypStandardBeschreibung
isEnabledBooleantrueOb dieser Loot-Pool aktiv ist
eliteMobsLootObjektliste[]EliteMobs-Custom-Items, die droppen können
vanillaLootObjektliste[]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:

  1. Der Spieler muss 3 Sekunden lang stillstehen, während sich der Behälter öffnet.
  2. Bewegung bricht die Interaktion ab.
  3. Bei Erfolg wird eine Loot-Tabelle aus der chestLootTables- oder barrelLootTables-Liste des Inhaltspakets ausgewählt (gewichtete Auswahl).
  4. Die Einträge der ausgewählten Loot-Tabelle werden jeweils unabhängig gewürfelt, und resultierende Items droppen am Standort des Behälters.
  5. 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 deleteItemsOnFailToExtract in config.yml auf true gesetzt ist.