MythicMobs
Überblick
MythicMobs verbindet das Plugin MythicMobs mit TypeWriter. Die Mobs und Skills werden weiterhin in MythicMobs definiert; TypeWriter entscheidet, wann und für wen sie erscheinen. Du kannst aus einer Sequence einen Mob spawnen oder despawnen, einen Skill wirken, reagieren, wenn ein Spieler einen Mob tötet oder mit ihm interagiert, Kills als Quest-Objective zählen oder eine Region Mobs spawnen lassen, solange Spieler in der Nähe sind.
Mobs können privat sein. Ein Mob, der mit onlyVisibleForPlayer oder einer visibilityGroup gespawnt wird, ist nur für den Spieler oder die Gruppe sichtbar, kann von niemand anderem verletzt, anvisiert oder angeklickt werden, und seine Sounds und Partikel sind für andere Spieler verborgen. Dadurch sind persönliche Bosskämpfe und Quest-Mobs pro Spieler auf einem gemeinsamen Server möglich.
Seit 0.12 kann die Sichtbarkeit auch TypeWriter-Facts folgen: Mit visibilityCriteria wird ein Mob nur von den Spielern gesehen, anvisiert und verletzt, die die Criteria erfüllen, laufend neu geprüft. Eine private, von Facts gesteuerte Arena braucht keine Gruppe.
Die Erweiterung läuft auf Paper und Folia und benötigt für das Kill-Objective die TypeWriter-Erweiterung Quest. Das eigentliche Quell-Repository ist Typewriter-MythicMobs.
Funktionen
- Spawnen und Despawnen — spawne einen Mob an einer Position mit einem Level oder entferne jeden aktiven Mob eines Typs.
- Skills wirken — führe einen MythicMobs-Skill als Spieler aus, aus einer Action oder einem Cinematic-Segment.
- Mob-Events — starte Sequences, wenn ein Spieler einen Mob tötet, von einem Mob getötet wird oder einen Mob mit Rechtsklick anklickt.
- Kill-Objective — ein Quest-Objective, das MythicMobs-Kills nach Name oder regulärem Ausdruck zählt und auch Kills durch Projektile und gezähmte Haustiere zählt.
- Regions-Spawner — spawnt Mobs in einer oder mehreren Boxen, wenn Spieler nahe sind, mit Obergrenze, Cooldown und Aufwärmzeit. Eine optionale
groupbeschränkt ihn auf die Mitglieder einer Gruppe, wobei jede Gruppe ihren eigenen Zyklus hat. - Private Mobs — Sichtbarkeit auf einen Spieler, eine Gruppe oder die Spieler beschränkt, die Criteria (Facts) erfüllen, einschließlich Schaden, Zielerfassung, Interaktion, Sounds und Partikel.
- Cinematic-Mobs — spawne während einer Cinematic einen Mob, der für alle anderen Spieler verborgen ist, und wirke Skills auf einer Zeitleiste.
- Mob-Anzahl-Fact — wie viele Mobs eines Typs gerade aktiv sind, für Dialoge und Bedingungen.
Installation
- Installiere MythicMobs auf dem Server.
- Installiere die offizielle TypeWriter-Erweiterung
Quest. - Empfohlen: Installiere PacketEvents. Es wird verwendet, um die Sounds und Partikel privater Mobs zu verbergen. Ohne es protokolliert die Erweiterung
PacketEvents not loaded — sound isolation disabled, und private Mobs bleiben optisch privat, aber nicht stumm. - Lege die MythicMobs-Erweiterungs-JAR in
plugins/Typewriter/extensions/ab. - Starte den Server neu.
Erste Schritte
So lässt du einen Boss nur für den Spieler erscheinen, der eine Quest angenommen hat, und schließt ein Objective ab, wenn er stirbt:
- Erstelle in MythicMobs den Mob, zum Beispiel
CryptKing. - Öffne im TypeWriter-Web-Panel eine Sequence-Seite und füge eine Spawn Mob-Action hinzu.
- Setze
mobNameaufCryptKing,levelauf1,spawnLocationauf die Stelle (erfasse die Position im Spiel) und aktiviereonlyVisibleForPlayer. - Verknüpfe einen Trigger oder ein Criteria, damit die Action beim Start der Quest läuft.
- Öffne die Quest-Seite und füge ein MythicMob Kill Objective hinzu. Verknüpfe die
questund einenfact(einen cachefähigen Fact, der den Fortschritt speichert), setzemythicMobNameaufCryptKingundamountauf1und schreibe dendisplay-Text. - Optional: Setze
onCompleteauf eine Sequence, die die Belohnung vergibt. - Veröffentliche (Publish) und teste: Andere Spieler können den Boss weder sehen noch treffen noch hören.
Verwende Mob Death Event mit einem mobName und verknüpfe triggers mit der Sequence, die laufen soll. Es wird ausgelöst, wenn ein Spieler der Töter des Mobs ist.
Kampf, der nur für bestimmte Spieler sichtbar ist
Eine private Arena: Nur die Spieler, die bestimmte Facts erfüllen, sehen den Mob, werden von ihm anvisiert und können gegen ihn kämpfen.
- Erstelle einen Fact (zum Beispiel
in_arena) und setze ihn für die Spieler, die die Arena betreten. - Füge eine Spawn Mob-Action hinzu und trage diesen Fact in
visibilityCriteriaein. Die Criteria werden allevisibilityRefreshInterval(standardmäßig 1 Sekunde) neu geprüft: Ein Spieler, der die Arena verlässt, verliert den Mob sofort, und der Mob lässt sein Ziel fallen. - Starte den Kampf über einen Trigger deiner Wahl.
- Beende ihn mit einer Despawn Mob-Action mit
scopeaufVISIBLE_TO_PLAYER(entfernt nur die Mobs, die der Spieler sieht), oder lass den Mob mitabandonRange(größer als 0) undabandonDelayvon selbst verschwinden: Er wird entfernt, wenn kein berechtigter Spieler während der Verzögerung in Reichweite bleibt. Der Web-Editor füllt neue Dauern mit 1 Sekunde vor, prüfe alsoabandonDelay. - Optional: Setze
collidableauffalse, um Kollision und Schieben zu entfernen. Das gilt dann für alle.
Aller Schaden im Zusammenhang mit einem eingeschränkten Mob (Nahkampf, Projektile, MythicMobs-Skills, Feuer) wird gegenüber nicht berechtigten Spielern blockiert, und umgekehrt. Projektile fliegen hindurch.
Skills ohne Schaden (Trank, Wurf...) lassen sich keinem Spieler zuordnen. Füge ihnen die MythicMobs-Zielbedingung typewritervisible (Alias twvisible) hinzu: Sie ist nur wahr, wenn das Ziel den Auslöser sehen darf.
Inline, als Bedingung des Targeters. Behalte die zwei Leerzeichen nach [ und das eine vor ], MythicMobs braucht sie:
Skills:
- potion{type=SLOW;duration=100} @PlayersInRadius{r=10;conditions=[ - twvisible true ]} ~onTimer:40
Schreibe nicht ?twvisible ans Zeilenende: MythicMobs prüft diese Bedingungen am Mob, nicht an den Spielern, die er anvisiert.
Oder in einem Metaskill. Seine eigenen Zeilen haben keinen Targeter: Sie laufen auf jedem Ziel, das die Bedingung erfüllt hat.
# Mobs-Datei
Skills:
- skill{s=ArenaBossSlow} @PlayersInRadius{r=10} ~onTimer:40
# Skills-Datei
ArenaBossSlow:
TargetConditions:
- twvisible
Skills:
- potion{type=SLOW;duration=100}
twvisible false im Targeter ist das Gegenteil: nur die Spieler, die den Mob nicht sehen dürfen.
MythicMobs liest seine Dateien, bevor Typewriter lädt. Kommt twvisible darin vor, führt die Extension beim Serverstart einmal /mm reload aus, du musst also nichts tun. Die Bedingung funktioniert nach einem Typewriter-Reload weiter. Ist Typewriter gestoppt, lässt sie alle Spieler durch und protokolliert eine Warnung, die um ein /mm reload bittet.
Grenzen. Die Kollision ist alles oder nichts. Skills ohne Schaden werden ohne twvisible nicht gefiltert. Sounds und Partikel, die weit vom Mob entfernt abgespielt werden, werden nicht ausgeblendet. Ein Mob, dessen Quell-Entry gelöscht wird, bleibt für alle ausgeblendet. Nach einem Serverneustart wird ein Mob mit abandonRange entfernt, wenn sich innerhalb von abandonDelay kein berechtigter Spieler nähert.
So funktioniert es
Konfiguration
Die meisten Einstellungen sind Entry-Felder. Zwei Verhaltensweisen solltest du kennen:
-
Automatische Isolation. Setze in der MythicMobs-Mob-Datei
Options.VisibilityGroup: nearby, damit ein Mob beim Spawnen nur für den nächsten Spieler (innerhalb von 100 Blöcken) sichtbar ist. Mobs, die mit den GründenNATURAL,RANDOModerRANDOM_SPAWNspawnen, werden genauso behandelt, auch ohne die Option. Mobs, die bereits durch einen TypeWriter-Entry eingeschränkt sind, bleiben unberührt. -
Mob-Zuordnung. Die
mobName-Felder der Events sind reguläre Ausdrücke, die gegen den internen MythicMobs-Namen abgeglichen werden, im Mob Death Event und im MythicMob Interact Event ohne Beachtung der Groß- und Kleinschreibung. Verwende.*, um jeden Mob zu treffen. -
Anzeigeformat des Ziels. Die Zeile des MythicMob Kill Objective im Quest-Tracker ist nicht fest im Code verankert. Sie wird aus zwei TypeWriter-Snippets gelesen, die in
plugins/Typewriter/snippets.ymlbearbeitet werden:advancedQuest.display(laufend, standardmäßig<display> (<current>/<required>)in Grautönen) undadvancedQuest.completed(Menge erreicht, standardmäßig✔, dann das durchgestrichene<display>und der Fortschritt). Platzhalter:<display>(das Felddisplaydes Ziels),<current>und<required>; PlaceholderAPI-Platzhalter werden ebenfalls aufgelöst. Die beiden Schlüssel werden mit den anderen BTC-Ziel-Erweiterungen geteilt, eine Änderung gestaltet also jedes zählende Ziel neu.
Entries
14 Einträge, aus dem Quellcode der Erweiterung generiert.
Aktionen3
- Despawn Mythicmobs MobDespawn a mob from MythicMobs
- Execute Mythicmob SkillExecutes a MythicMobs skill
- Spawn Mythicmobs MobSpawn a mob from MythicMobs
Ereignisse3
- Mythicmobs Interact EventMythicMob Interact Event
- Mythicmobs Kill Player EventMythicMob Kill Player Event
- On Mythic Mob DieWhen a player kill a MythicMobs mob.
Ziele1
- Mythicmob Kill ObjectiveAn objective to kill MythicMobs mobs
Fakten4
- Mythic Mob Count FactCount the number of active Mythic Mobs of the specified type
- Mythicmob FactionMythicMob Faction
- Mythicmob LevelMythicMob Level
- Mythicmob StanceMythicMob Stance
Cinematics2
- Mythicmob CinematicSpawn a MythicMob during a cinematic
- Mythicskill CinematicTrigger a MythicSkill during a cinematic
Definitionen1
- Mythic SpawnerMythicMobs Spawner with Corner System
MythicMob Faction, MythicMob Level und MythicMob Stance liefern im aktuellen Release immer 0. Sie sind für eine spätere Version reserviert: Baue keine Bedingungen darauf auf.
Fehlerbehebung
Nichts spawnt. mobName muss der interne MythicMobs-Name eines existierenden Mobs sein. Ist der Mob unbekannt, tut Spawn Mob stillschweigend nichts. Vergleiche ihn mit dem Namen der Mob-Datei in MythicMobs.
Fehler „Skill ... not found“ im Log. Execute Skill und Skill Cinematic werfen diesen Fehler, wenn skillName kein MythicMobs-Skill ist. Meldet das Log, der Skill „is not usable at this time“, ist er im Cooldown oder seine Bedingungen sind fehlgeschlagen.
Ein Spawner spawnt nie. Der Spieler muss sich innerhalb von defaultActivationRange (standardmäßig 24 Blöcke, gemessen bis zur Mitte der Region) einer Region befinden. Der Spawner wird einmal pro Sekunde geprüft und startet etwa fünf Sekunden nach dem Serverstart. Prüfe außerdem criteria, ob warmup verstrichen ist, ob der Cooldown (defaultCooldown, in Ticks) abgelaufen ist und ob die Mob-Anzahl in Reichweite unter defaultMaxMobs liegt. Setze den mobType korrekt: Andernfalls meldet das Log Cannot find MythicMob ....
Andere Spieler sehen einen privaten Mob weiterhin. Die Sichtbarkeit gilt nur für Mobs, die durch TypeWriter-Entries, durch die Option nearby oder durch natürliches Spawnen entstehen. Andere Mobs bleiben öffentlich. Die Spawn-Action benötigt außerdem einen Spieler: Ist visibilityGroup gesetzt, der Spieler aber in keiner Gruppe, fällt der Mob auf nur den auslösenden Spieler zurück.
Das Kill-Objective zählt nicht. Das Objective zählt nur, solange die quest für den Spieler aktiv ist und der Spieler (oder sein Projektil oder gezähmtes Haustier) den Kill ausführt. Ist mobs nicht leer, wird mythicMobName ignoriert. Prüfe, ob der fact ein cachefähiger Fact-Entry ist.
Das Kill-Player-Event wird nie ausgelöst. MythicMob Kill Player Event gleicht mythicMobType als regulären Ausdruck mit Beachtung der Groß- und Kleinschreibung mit dem internen Namen des Mobs ab, der den Tod verursacht hat. Lass es leer, um jeden MythicMob zu treffen.
Verwandte Erweiterungen
- MythicMobs NPC — verwende MythicMobs-Mobs als interaktive NPCs.