Zum Hauptinhalt springen

MythicMobs NPC

MythicMobs-Mobs und BetterModel- oder ModelEngine-Modelle als interaktive NPCs, mit Cinematics und Questzielen.

Kostenpflichtigv5.0Entitäten & Modelle

Ü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​

  1. Installiere MythicMobs und PacketEvents auf dem Server.
  2. 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.
  3. 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.
  4. Beziehe die Erweiterung aus den Stores (siehe die Buttons im Übersichtsfeld oben) und lege die JAR in plugins/Typewriter/extensions/ ab.
  5. Starte den Server neu. Die Konsole gibt MythicmobsNPCExtension has been successfully initialized aus.
  6. 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:

  1. Erstelle in MythicMobs einen Mob mit dem internen Namen Blacksmith (mit seinem Modell, falls du eines verwendest) und lade MythicMobs neu.
  2. Öffne im TypeWriter-Web-Panel eine Static-Seite und füge eine MythicMob NPC Definition hinzu. Setze displayName auf den über dem Kopf angezeigten Namen und mobType auf Blacksmith.
  3. Füge eine MythicMob NPC Instance hinzu. Verknüpfe definition mit der Definition und setze spawnLocation (mit Rotation) auf die Stelle, an der der NPC steht.
  4. Füge ein MythicMob NPC Interact Event hinzu. Verknüpfe definition mit derselben Definition und lass shiftType auf ANY.
  5. Verknüpfe in seinen triggers einen Dialog-Entry (zum Beispiel einen gesprochenen Dialog) von einer Sequence-Seite.
  6. 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.

Den Modus wählen

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.

SnippetStandardZweck
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#40000000Hintergrundfarbe des Namensschilds und des Markers.
quest.objective.interact_mythicmob_npcInteract with <entity>Standardtext des Interact-Objectives.
advancedQuest.display<display> (<current>/<required>), in GrautönenZeile 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_delay500Millisekunden, die der Spieler wegsehen kann, bevor ihn der Look-at-Bound zurückdreht.
mythicmob_type_look_at_interaction_bound.look_back_delay500Dasselbe für den Look-at-Bound nach Mob-Typ.

Entries​

38 Einträge, aus dem Quellcode der Erweiterung generiert.

Aktionen4
Ereignisse3
Ziele3
Fakten6
Cinematics4
Entitäten2
Entitätsdaten4
Interaktionsgrenzen3
Variablen9

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.