Zum Hauptinhalt springen

Schwierigkeitsgrade in instanzierten Dungeons

Instanzierte Dungeons verfügen über eine spezielle Einstellung, mit der sich unterschiedliche Schwierigkeitsgrade für den Dungeon einfach festlegen lassen.

Funktionsweise

Schwierigkeitsgrade können einen levelSync-Wert festlegen, inspiriert vom Level-Sync-System aus Final Fantasy 14. Dieser verändert die Item-Stufe im Pfad für zwischengespeicherte Spieler-Items. Das Item im Spielerinventar wird nicht umgeschrieben.

Level-Sync ist keine allgemeine Ausrüstungsobergrenze

Die aktuellen Berechnungen für Nahkampfangriff und Rüstungsverteidigung lesen das unveränderte Item-Level. Auch die Kampfmomentaufnahme für Projektile liest den unveränderten Waffenangriff; geworfene Dreizacke lesen ihr Item-Level beim Aufprall. Verlasse dich nicht allein auf levelSync, um Waffen- und Rüstungsausstattungen anzugleichen.

Sharpness und Power tragen zu einem separaten Ausrüstungs-Angriffsmultiplikator bei. Jedes berechtigte ausgerüstete Item trägt 0.025 * (Sharpness level + Power level) bei; diese Beiträge werden über die sechs Ausrüstungsplätze summiert. Level-Sync begrenzt diesen Verzauberungsbeitrag nicht. Es handelt sich um einen Multiplikatorbeitrag, keine feste Anzahl von Schadenspunkten.

Die Basisgesundheit von Bossen verdoppelt sich vor Gesundheitsgrenzen alle fünf Level. Spielerangriff verwendet dagegen eigene Berechnungen für Fertigkeiten, Items, Verzauberungen und Klassen. Lies vor dem Abstimmen von Begegnungen das Schadenssystem. Verwende neben Level-Sync schwierigkeitsabhängige Powers, Bosswerte und Belohnungen und prüfe die tatsächliche Ausrüstung der Spieler.

Gruppensystem

EliteMobs bietet Gruppen für die aktuelle Sitzung. Gewöhnliche Einladungen erlauben bis zu fünf Mitglieder; automatisch zusammengestellte Dungeon-Gruppen können mehr zugelassene Teilnehmer umfassen. Wählt ein Mitglied einen instanzierten Dungeon, speichert EliteMobs die aktuelle Mitgliederliste und startet eine anklickbare Bereitschaftsabfrage. Der Initiator gilt automatisch als bereit; alle anderen müssen den genauen Dungeon und Schwierigkeitsgrad bestätigen, bevor die Weltvorbereitung beginnt. Bei dynamischen Dungeons enthält die Abfrage außerdem das gewählte Level. Ablehnung, Zeitüberschreitung, eine geänderte Mitgliederliste, nicht verfügbare Mitglieder, fehlende Berechtigungen, Kapazitätsprobleme, Konflikte mit aktiven Instanzen oder eine abgebrochene EliteMobs-Vorprüfung MatchJoinEvent brechen den Gruppeneintritt ab, statt nur einen Teil der Gruppe zu bewegen. Das PlayerJoinDungeonEvent von EliteMobs ist eine nicht abbrechbare Benachrichtigung nach dem Eintritt.

Persönliche Item-Verzauberungsherausforderungen bleiben solo, weil die Herausforderung das Item des Initiators vorübergehend verwaltet.

Autoren können Kräfte wählen, die mit mehr Spielern gefährlicher werden. Dungeon-Bosse erhalten außerdem einen Lebenspunkte-Bonus anhand der Teilnehmerzahl der Instanz zum Zeitpunkt der Gesundheitsberechnung, einschließlich des Matchstarts. Die Formel lautet: scaledHealth = baseHealth * 0.75 * playerCount. Bei 2 Spielern hat der Boss beispielsweise das 1,5-Fache seiner Grundlebenspunkte, bei 3 Spielern das 2,25-Fache und bei 5 Spielern das 3,75-Fache.

Hinweis: Die Lebenspunkte-Skalierung greift nur, wenn sich 2 oder mehr Spieler in der Instanz befinden. Einzelspieler treffen auf Bosse mit den Standard-Lebenspunkten.

Einen Schwierigkeitsgrad definieren

Schwierigkeitsgrade werden in der Paket-YAML des instanzierten Dungeons unter /plugins/EliteMobs/content_packages/ definiert, gegebenenfalls in einem Paketunterordner. Setze difficulties neben andere Einstellungen auf oberster Ebene wie contentLevel und name.

Sehen wir uns ein Beispiel an:

difficulties:
- levelSync: 60
name: normal
- levelSync: 50
name: hard
- levelSync: 40
name: mythic

Damit werden drei Schwierigkeitsgrade festgelegt. name liefert die Menübezeichnung. levelSync und id sind optional; ohne levelSync wird keine Level-Synchronisierung angewendet. Erkannte Schwierigkeitsnamen können wie unten beschrieben eine fehlende ID liefern. Verwende in neuen Paketen vorzugsweise ausdrückliche IDs.

name ist der Name des Schwierigkeitsgrads, so wie er in der Schwierigkeitseinstellung im Spiel erscheint. Der Name ist frei wählbar.

levelSync legt die Stufenobergrenze für die oben beschriebenen Item-Pfade fest. Es begrenzt nicht jede Schadens- oder Verteidigungsberechnung.

Du kannst so viele oder so wenige Schwierigkeitsgrade definieren, wie du möchtest. Füge der Einstellung difficulties einfach Einträge im selben Format hinzu oder entferne sie.

Relativer Level-Sync​

Level-Sync kann statt absoluter Zahlen relative Werte verwenden. Setze den Wert immer in Anführungszeichen. YAML wandelt ein unzitiertes +5 in die gewöhnliche Ganzzahl 5 um. Das führende + fehlt dann bereits, wenn EliteMobs den Wert liest: levelSync: +5 wird unbemerkt zu einer absoluten Synchronisierung auf Level 5, und levelSync: +0 zu einer absoluten 0, die Level-Sync ganz deaktiviert. Unzitierte negative Werte wie levelSync: -10 bleiben zufällig erhalten, weil das - bestehen bleibt und EliteMobs sie weiterhin relativ liest. Nur durchgängige Anführungszeichen sind eindeutig:

difficulties:
- levelSync: '+5'
name: easy
- levelSync: '+0'
name: normal
- levelSync: '-10'
name: hard

Relative Werte werden aus dem Basis-Inhaltslevel des Dungeons berechnet; das Ergebnis wird nie kleiner als 1. Hat ein Dungeon beispielsweise das Inhaltslevel 60:

  • levelSync: '+5' wird zu 65
  • levelSync: '+0' wird zu 60
  • levelSync: '-10' wird zu 50

Das ist besonders nützlich für dynamische Dungeons, deren Inhaltslevel variieren kann. Dort steht das Inhaltslevel erst beim Erstellen der Instanz fest; der relative Wert wird zu diesem Zeitpunkt aufgelöst.

Ein absolutes levelSync: 0 oder ein Wert, den EliteMobs nicht lesen kann, bedeutet keine Level-Synchronisierung für diesen Schwierigkeitsgrad.

Optionales Feld für die Schwierigkeits-ID​

Setze für jeden Schwierigkeitseintrag eine id für Power- und Beutefilter. Die numerische Standardzuordnung lautet 0 = NORMAL, 1 = HARD, 2 = MYTHIC.

Die aktuelle Implementierung erkennt außerdem Normal/Hard/Mythic und die alten Bezeichnungen Easy/Medium/Hard unabhängig von Großschreibung, Farbformatierung und umgebenden Leerzeichen. Das gesamte Paket bestimmt das Schema: Eine ausdrückliche ID Normal oder Mythic wählt das Standardschema. Andernfalls wählt eine ID Easy oder Medium das alte Schema; Namen wählen es nur, wenn Easy oder Medium ohne Normal oder Mythic vorkommt. Die Erkennung erfolgt vor der Übersetzung; numerische IDs behalten immer ihre feste Bedeutung. Ein erkannter Name liefert eine fehlende ID oder die Schwierigkeitsstufe zu einer eigenen ID.

Unbekannte Definitionen erzeugen eine Konsolenwarnung mit dem Paketdateinamen. Eigene IDs werden für selbst konfigurierte Filter nach Normalisierung von Großschreibung, Farben und Leerzeichen verglichen. Bei automatischer Beute hat eine ausdrückliche Zuordnung der ursprünglichen ID in ClassLootSettings.yml Vorrang, gefolgt von der aufgelösten Stufe und dem konfigurierten Standard. Gib ungewöhnlichen Namen ausdrückliche IDs, statt auf eine erratene Bedeutung zu vertrauen.

difficulties:
- levelSync: 60
name: normal
id: 0
- levelSync: 50
name: hard
id: 1

Kräfte abhängig vom Schwierigkeitsgrad​

Bosse lassen sich so konfigurieren, dass sie bestimmte Kräfte nur bei bestimmten Schwierigkeitsgraden besitzen. Sehen wir uns ein Beispiel an:

powers:
- filename: invulnerability_fire.yml
difficultyID:
- 1
- 2

Hinweis: Dies ist Teil der Konfigurationsdatei des benutzerdefinierten Bosses!

In diesem Fall besitzt der Boss die Feuerimmunität nur bei Schwierigkeitsgraden mit der ID 1 und 2.

difficultyID akzeptiert eine ID oder eine YAML-Liste für Kräfte und selbst konfigurierte Beute. Ein leerer oder ungültiger Kräftefilter passt zu keinem Schwierigkeitsgrad; in einem Beuteeintrag führt eine leere Liste oder eine leere ID dazu, dass dieser Eintrag beim Laden der Datei abgelehnt wird. Kräftefilter gelten für instanzierte Bosse mit Dungeon-Zuordnung und für Bosse, die über die API für instanzierte Bosse in der Instanz eines anderen Plugins gespawnt werden; dabei gilt der von diesem Plugin zugewiesene Schwierigkeitsgrad. Einen gewöhnlichen Boss in der offenen Welt beschränken sie nicht.

Beute abhängig vom Schwierigkeitsgrad​

Bosse lassen sich so konfigurieren, dass sie Beute abhängig vom Schwierigkeitsgrad eines instanzierten Dungeons fallen lassen. Sehen wir uns ein Beispiel an:

uniqueLootList:
- filename: himiko_boss_drop_axe_tank_normal.yml
chance: 0.05
difficultyID: 0

Hinweis: Dies ist Teil der Konfigurationsdatei des benutzerdefinierten Bosses!

In einem Dungeon erlaubt dieser Eintrag himiko_boss_drop_axe_tank_normal.yml bei Schwierigkeit 0 mit einem 5-%-Wurf, unter den üblichen Beutebedingungen. Die Prüfung verwendet den aktuellen Dungeon des Empfängers; außerhalb eines Dungeons blockiert sie den Eintrag nicht. Berechtigte Ausrüstung wird über die Dungeon-Gruppenbeute verteilt, andere Items bleiben persönlich. Siehe Gruppenbeute.

Belohnungen für Normal, Hard und Mythic abstimmen​

Das Beispiel oben beschränkt eine eigene Item-Datei auf einen Schwierigkeitsgrad. Um jeder Klasse passende Ausrüstung zu geben, ohne drei Versionen jedes Items zu pflegen, verwende automatische Klassenbeute. Sie wählt Verzauberungsprofile nach Schwierigkeit und Rang aus, während Name und Lore jedes Items an einer Stelle bleiben.

Der Leitfaden enthält eine Tabelle der Obergrenzen für primäre Verzauberungen und die Budgetformel für tatsächlich ausgewürfelte Drops. Eine höhere Schwierigkeit multipliziert nicht automatisch Boss-HP oder Beutewerte. Level-Sync, Powers, Bosswerte und Belohnungsprofile steuern jeweils ihren eigenen Teil der Begegnung.