MythicMobs NPC
Überblick
MythicMobs NPC macht aus einem MythicMobs-Mob einen TypeWriter-NPC. Du gestaltest den Mob, sein Modell und seine Skills weiterhin in MythicMobs und platzierst ihn dann im Web-Panel in der Welt, als NPC-Definition (was der NPC ist) und NPC-Instanz (wo er steht und wer ihn sieht).
Ein NPC kann einen Namen über seinem Kopf anzeigen, Quest-Marker darstellen, einen Dialog starten, wenn ein Spieler ihn mit Rechtsklick anklickt, durch eine Action versteckt oder angezeigt werden, Animationen abspielen und in Cinematics auftreten. Modelle von BetterModel oder ModelEngine werden unterstützt.
Die Erweiterung läuft auf Paper. Standardmäßig erhält jeder Spieler seine eigene Kopie des NPCs (ticking aus), sodass die Cinematic oder die Verstecken-Action eines Spielers nie die anderen beeinflusst. Aktiviere ticking, um einen echten serverseitigen Mob zu erhalten, der umherlaufen kann.
Funktionen
- NPC-Definition und -Instanz — definiere einen MythicMob-NPC einmal und platziere ihn beliebig oft, mit gemeinsamer Audience, Audience pro Spieler oder pro Gruppe.
- Namensschild und Quest-Marker — ein schwebender Name und ein Marker
❗,❓oder💬, wenn der NPC ein Objective oder einen Dialog für den Spieler hat. - Interaktions-Events — starte Dialoge per Rechtsklick, gefiltert nach Schleichen, plus ein Event für Treffer in beide Richtungen.
- Quest-Objectives — mit einem NPC interagieren, Items von MythicMobs-Mobs looten oder Interaktionen mit einem Mob zählen.
- Facts und Variablen — Anwesenheit, Entfernung, Sichtbarkeit, Gesundheit, Bedrohungstabelle, Animationen, Level, Stärke, Fraktion, Haltung und jede MythicMobs-Variable.
- Anzeigen, verstecken und animieren — Actions zum Anzeigen oder Verstecken eines NPCs und zum Abspielen oder Stoppen einer ModelEngine- oder BetterModel-Animation.
- Cinematics — NPC-Fokuskamera, an einen Modell-Bone gebundene Kamera, von einem aufgezeichneten Band gesteuerter NPC und an einer Position gewirkte MythicMobs-Skills.
- Kamera- und Blick-Bounds — zwinge den Spieler, während einer Interaktion einen NPC oder den nächsten Mob eines Typs anzusehen.
- Haltungen (Stances) — Idle- und Geh-Haltungen für Tag und Nacht sowie Interaktions-, Angriffs- und andere Haltungen, über ModelEngine oder BetterModel.
Installation
- Installiere MythicMobs und PacketEvents auf dem Server.
- Stelle in TypeWriter sicher, dass die offiziellen Erweiterungen Entity, Basic, Quest und Road Network installiert sind. Der Build deklariert Quest und Road Network als Abhängigkeiten und nutzt die Erweiterungen Entity und Basic zur Laufzeit.
- Optional: Installiere BetterModel oder ModelEngine für 3D-Modelle. BetterModel wird zuerst geprüft, und ModelEngine wird verwendet, wenn BetterModel fehlt. Installiere Geyser, wenn Bedrock-Spieler die Bone-Kamera sehen sollen.
- Beziehe die Erweiterung aus den Stores (siehe die Buttons im Übersichtsfeld oben) und lege die JAR in
plugins/Typewriter/extensions/ab. - Starte den Server neu. Die Konsole gibt
MythicmobsNPCExtension has been successfully initializedaus. - Erstelle deine Mobs in MythicMobs (und hänge dort ihr Modell an). Die Erweiterung spawnt und zeigt sie, erstellt oder ändert das Modell aber nicht.
Erste Schritte
So platzierst du einen Schmied, der einen Dialog startet, wenn ein Spieler ihn mit Rechtsklick anklickt:
- Erstelle in MythicMobs einen Mob mit dem internen Namen
Blacksmith(mit seinem Modell, falls du eines verwendest) und lade MythicMobs neu. - Öffne im TypeWriter-Web-Panel eine Static-Seite und füge eine MythicMob NPC Definition hinzu. Setze
displayNameauf den über dem Kopf angezeigten Namen undmobTypeaufBlacksmith. - Füge eine MythicMob NPC Instance hinzu. Verknüpfe
definitionmit der Definition und setzespawnLocation(mit Rotation) auf die Stelle, an der der NPC steht. - Füge ein MythicMob NPC Interact Event hinzu. Verknüpfe
definitionmit derselben Definition und lassshiftTypeaufANY. - Verknüpfe in seinen
triggerseinen Dialog-Entry (zum Beispiel einen gesprochenen Dialog) von einer Sequence-Seite. - Veröffentliche und klicke den NPC mit Rechtsklick an. Über dem NPC erscheint für Spieler, die mit ihm sprechen können, ein Marker
💬.
Um ihn zum Quest-Ziel zu machen, füge ein Interact MythicMob NPC Objective mit entity auf die Definition gesetzt hinzu: Der Marker wird zu ❓ (oder ❗, wenn die Quest verfolgt wird), und ein Pfadstrom führt zum NPC.
Lass ticking bei statischen NPCs aus: Jeder Spieler sieht seine eigene Kopie, was Cinematics und die Sichtbarkeit pro Spieler benötigen. Aktiviere es nur, wenn der Mob sich auf dem Server bewegen oder kämpfen muss, und setze clientSideRadius über 0, damit seine KI aktiviert bleibt.
So funktioniert es
Die Definition enthält, was der NPC ist: Mob-Typ, Name, Optionen des Namensschilds, den Modus ticking und die Entity-Daten, die für jede Instanz gelten. Die Instanz enthält, wo er steht, ihre eigenen Entity-Daten, eine optionale activity (zum Beispiel einen Road-Network-Pfad) und eine group.
Facts, Variablen, die Actions zum Anzeigen und Verstecken und die Kamera-Entries beziehen sich alle auf eine Instanz. Sie finden den lebenden Mob des Mob-Typs der Definition, der sich innerhalb eines Suchradius um den Spawnpunkt der Instanz befindet (standardmäßig 5 Blöcke, festgelegt durch radius am Ziel).
Konfiguration
Texte und Offsets, die keine Entry-Felder sind, sind TypeWriter-Snippets. Bearbeite sie in plugins/Typewriter/snippets.
| Snippet | Standard | Zweck |
|---|---|---|
objective.entity.indicator.tracked | <gold><b>❗ | Marker, wenn der NPC das Ziel der verfolgten Quest ist. |
objective.entity.indicator.normal | <blue><b>❓ | Marker, wenn der NPC das Ziel eines aktiven Objectives ist. |
objective.entity.indicator.dialogue | <white><b>💬 | Marker, wenn der NPC eine verfügbare Interaktion hat. |
entity.nameplate | <other> dann <reset><display_name> | Layout des Namensschilds. <other> sind die Zeilen aus den Entity-Daten. |
entity.name.color | #40000000 | Hintergrundfarbe des Namensschilds und des Markers. |
quest.objective.interact_mythicmob_npc | Interact with <entity> | Standardtext des Interact-Objectives. |
advancedQuest.display | <display> (<current>/<required>), in Grautönen | Zeile der zählenden Ziele (Loot, Skill), solange sie laufen. Platzhalter: <display> (der display-Text des Ziels), <current>, <required>. Der Schlüssel wird mit den anderen BTC-Ziel-Erweiterungen geteilt, eine Änderung gestaltet also alle neu. |
advancedQuest.completed | ✔, dann das durchgestrichene <display> und (<current>/<required>) | Dieselbe Zeile, sobald amount erreicht ist. Dieselben Platzhalter. |
mythicmob_npc_look_at_interaction_bound.look_back_delay | 500 | Millisekunden, die der Spieler wegsehen kann, bevor ihn der Look-at-Bound zurückdreht. |
mythicmob_type_look_at_interaction_bound.look_back_delay | 500 | Dasselbe für den Look-at-Bound nach Mob-Typ. |
Entries
38 Einträge, aus dem Quellcode der Erweiterung generiert.
Aktionen4
- Mythicmob NPC HideHide a MythicMob NPC
- Mythicmob NPC Play AnimationPlays a ModelEngine animation on a MythicMob NPC
- Mythicmob NPC ShowShow a MythicMob NPC
- Mythicmob NPC Stop AnimationStops a ModelEngine animation on a MythicMob NPC
Ereignisse3
- Mythicmob NPC HitWhen a MythicMob NPC is hit or hits a player
- Mythicmob NPC InteractWhen the player clicks on a MythicMob NPC
- On Mythic Mob LootWhen a player loots an item from a MythicMob
Ziele3
- Interact Mythicmob NPC ObjectiveInteract with a MythicMob NPC
- Mythicmob Loot ObjectiveAn objective to loot specific items from MythicMobs mobs
- Mythicmob Skill ObjectiveMythicMob Skill Objective
Fakten6
- Mythicmob NPC Animation Playing FactReturns 1 when the specified ModelEngine animation is playing
- Mythicmob NPC Distance FactReturns the distance between the player and the MythicMobs NPC
- Mythicmob NPC Health Percentage FactReturns the NPC's current health percentage
- Mythicmob NPC Presence FactReturns 1 when the MythicMobs NPC is currently spawned
- Mythicmob NPC Threat Table Size FactReturns the size of the MythicMobs threat table
- Mythicmob NPC Visibility FactReturns 1 if the player can currently see the MythicMobs NPC
Cinematics4
- Mythicmob NPC Bone Camera CinematicAttach the cinematic camera to a bone of a MythicMob NPC's model
- Mythicmob NPC Camera CinematicFocus on a MythicMob NPC during a cinematic
- Mythicmob NPC Entity CinematicUse an animated MythicMob NPC in a cinematic
- Mythicmob NPC Skill CinematicTrigger a MythicSkill at a specific position during a cinematic
Entitäten2
- Mythicmob NPC DefinitionA MythicMob that can be used as an NPC
- Mythicmob NPC InstanceAn instance of a MythicMob NPC
Entitätsdaten4
- Modelengine Stance DataModelEngine stance configuration for day/night animations
- Mythicmob NPC AttachmentReplace a bone of a MythicMob NPC model with one from another model
- Mythicmob NPC Bone VisibilityControl MythicMob NPC bone visibility with criteria
- Mythicmob Speed DataChange the walking speed of a MythicMob
Interaktionsgrenzen3
- Mythicmob Look at Interaction BoundAn interaction which forces the player to look at the nearest MythicMob of a specific type
- Mythicmob NPC Camera BoundA camera bound that focuses on a MythicMob NPC with custom focus offset
- Mythicmob NPC Look at Interaction BoundAn interaction which forces the player to look at a MythicMob NPC
Variablen9
- Mythicmob NPC Active Animations VariableReturns the active ModelEngine animations for the MythicMobs NPC
- Mythicmob NPC Faction VariableReturns the MythicMobs NPC faction
- Mythicmob NPC Health Percentage VariableReturns the current health percentage of the MythicMobs NPC
- Mythicmob NPC Health VariableReturns the current health of the MythicMobs NPC
- Mythicmob NPC Level VariableReturns the MythicMobs NPC level
- Mythicmob NPC Max Health VariableReturns the maximum health of the MythicMobs NPC
- Mythicmob NPC Power VariableReturns the MythicMobs NPC power
- Mythicmob NPC Stance VariableReturns the current stance applied to the MythicMobs NPC
- Mythicmob NPC VariableReads a MythicMobs variable from the active NPC
Fehlerbehebung
Der NPC erscheint nie. Die Konsole gibt Could not spawn MythicMob NPC '<type>' at <location> aus, wenn mobType kein MythicMobs-Mob-Name ist oder das Spawnen fehlschlägt. mobType ist der interne Name des Mobs, mit derselben Groß- und Kleinschreibung wie in MythicMobs. Prüfe, ob MythicMobs den Mob geladen hat und ob der Chunk von spawnLocation geladen werden kann.
Die Erweiterung warnt, dass MythicMobs fehlt. Beim Start meldet das Log MythicMobs plugin not found! This extension requires MythicMobs to function properly. Installiere MythicMobs und starte neu.
Facts und Variablen liefern immer ihren Standardwert. Sie lösen den lebenden Mob in der Nähe des Spawnpunkts der Instanz auf. Hat sich der NPC weiter als radius (Standard 5 Blöcke) entfernt oder weicht der Mob-Typ ab, passt nichts, und der Fact liefert 0. Erhöhe radius im target.
Der Dialog startet beim Klick nicht. Das Interact-Event reagiert nur auf einen NPC, der von einer MythicMob NPC Instance platziert wurde, und definition muss die Definition der Instanz sein. interactionType wählt den Klick: RIGHT_CLICK, LEFT_CLICK oder ALL. Vor Version 4.9.1 wurden nur Rechtsklicks verarbeitet, und unter Paper 26.x nicht einmal diese: Aktualisiere die Erweiterung.
Spieler teilen sich den NPC nicht. Bei ticking aus und ohne group an der Instanz erhält jeder Spieler seine eigene Kopie, sodass die Verstecken-Action oder Cinematic eines Spielers andere nicht beeinflusst. Setze eine group an der Instanz, um den NPC innerhalb einer Party oder Gilde zu teilen.
Ein Bone wird nicht versteckt oder angehängt. Bone Visibility Data und Attachment Data werden auf das Modell angewendet, sobald es existiert, und nach jedem Respawn, mit ticking an und aus. Ein Bone- oder Modellname, den das Modell nicht kennt, wird übersprungen, und die Konsole protokolliert ihn: Prüfe die Namen am Modell.
Die Bone-Kamera zeigt nichts oder der Spieler behält die normale Ansicht. boneName muss am Modell existieren, und der Mob muss für diesen Spieler gespawnt sein. Verwende bei einer Entity Cinematic entityCinematic, damit die Kamera genau diesem Mob folgt. Die Kamera startet an den Augen des Spielers und rastet am Bone ein, sobald das Modell gefunden wird.
Das Modell flackert, wenn Spieler oder Kamera nah am NPC sind. Ursache ist das Culling von ModelEngine: ModelEngine prüft von den Füßen des Modells aus, ob es hinter dem Spieler (backcull) oder hinter Blöcken (blockedcull) liegt, und blendet es aus der Nähe fälschlich aus und wieder ein. Ab Version 4.9.1 schaltet die Erweiterung beide Cullings bei jedem NPC ab, sobald sein ModelEngine-Modell erkannt wird – es ist nichts zu konfigurieren. Flackert es weiterhin, suche in der Konsole nach der Warnung ModelEngine exposes no back/blocked cull setter: Deine ModelEngine-Version erlaubt der Erweiterung dann nicht, diese Einstellungen zu ändern. Füge in diesem Fall cullconfig{backcull=false;blockedcull=false} @self ~onSpawn zu den Skills des MythicMobs-Mobs hinzu, nach seiner model-Mechanik, und lass den NPC neu erscheinen. BetterModel-Modelle sind nicht betroffen.
Verwandte Erweiterungen
- MythicMobs — Spawn-, Skill- und Kill-Entries für reguläre MythicMobs-Mobs.
- BetterModel — BetterModel-Modelle als NPCs, mit demselben Cinematic-Ansatz.