Zuletzt angesehen: npc

Mod-Übersicht: NPCs

Beschreibung

npc_thumb.jpg
NPCs sind programmierbare Spielfiguren, die Informationen geben, Rätsel stellen oder das Storytelling einer Welt vertiefen. NPCs können standardmäßig von Lernbegleitenden und über Privilegien auch von Lernenden platziert, angepasst und mit Dialogen ausgestattet werden. NPCs sind aus den Modifikationen mobs_npc, simple_dialogs, mobconf und mtobjid aufgebaut.

Verwendung

Du kannst mit NPCs, die einen Dialog haben, sprechen, indem du sie mit der rechten Maustaste anklickst. NPCs lassen sich außerdem über Textbefehle erstellen und konfigurieren. Einem erstellten NPC kannst du einen Dialog geben, indem du ihn mit einem Holzstock programmierst. Dabei gibt es eine Vielzahl hilfreicher Funktionen, um dynamische Dialoge zu erstellen.

Konfiguration

NPCs platzieren (add_npc)

Benutze den Befehl add_npc <id> <position> [name] [textur] [dialog], um einen NPC zu erstellen. Die Parameter id und position müssen angegeben werden, sonst kann die Spielfigur nicht erstellt werden. Die Parameter name, textur und dialog sind optional. Wenn die optionalen Parameter nicht übergeben werden, erhält der NPC keinen Namen, ein zufälliges Aussehen und einen leeren Dialog. Die Position, der Name, das Aussehen und der Dialog lassen sich nach dem Erstellen mit weiteren Befehlen verändern.

Beispiel

/add_npc 10 -694,16,364
Erstellt einen NPC mit der ID 10 an den Koordinaten -694, 16, 364.

/add_npc 11 -694,16,362 Thea mobs_npc4.png
Erstellt einen NPC mit der ID 11 an den Koordinaten -694, 16, 362, setzt das Aussehen des NPCs auf mobs_npc4.png und den Namen auf Thea.

Parameter

Parameter Erläuterung
ID Jeder NPC hat eine ID-Nummer, über die dieser NPC gespeichert und angepasst wird. Du kannst mit /list_npcs die Spielfiguren in der Welt anzeigen.
Position Gib die Position im Format x,y,z ohne Leerzeichen ein. Achte darauf, die y-Koordinaten immer 2-3 Blöcke höher einzustellen, damit der NPC nicht im Boden erscheint.
Name Gib hier den Namen des NPCs ein. Achte darauf, dass der Name keine Leerzeichen enthält. Sonderzeichen sind möglich.
Textur Stelle hier das Aussehen des NPCs ein. Gib dabei den Dateinamen der Textur ein, die der NPC als Aussehen erhalten soll. Eine Übersicht der über BLOCKALOT verfügbaren Skins für NPCs findest du hier
Dialog Stelle hier den Dateinamen des Dialogs ein, der geladen werden soll.

NPCs verändern

Umbenennen (npc_set_name)

Benutze den Befehl npc_set_name <id> [name], um den Namen eines NPCs nachträglich zu verändern.

Beispiel

/npc_set_name 11 Michael
Gibt dem NPC mit der ID 11 den Namen Michael

Verschieben (npc_set_pos)


Benutze den Befehl ``npc_set_pos <id> <position>``, um einen NPC an eine bestimmte Stelle zu teleportieren.

Beispiel

/npc_set_pos 11 -691,17,357
Verschiebt den NPC mit der ID 11 an die Koordinaten -691,17,357.

Aussehen verändern (npc_set_texture)


Benutze den Befehl npc_set_texture <id> <textur>, um einem NPC ein anderes Aussehen zu geben.

Beispiel

/npc_set_texture 10 mobs_npc4.png
Ändert das Aussehen des NPC mit der ID 10 auf den Skin mobs_npc4.png.

Löschen (remove_npc)


Benutze den Befehl remove_npc <id>, um einen bestimmten NPC zu entfernen.

Beispiel

/remove_npc 10
Entfernt den NPC mit der ID 10.

NPCs auflisten

Benutze den Befehl list_npcs, um alle mit mobconf hinzugefügten NPCs mit ihrer ID aufzulisten.

Beispiel

/list_npcs
Listet alle NPCs auf.

Bewegungsmuster von NPCs einstellen

Benutze einen Stock, um das Bewegunsmuster des NPCs einzustellen. Halte den Stock in der Hand und klicke dann mit der rechten Maustaste auf den NPC, damit sich das Menü zur Eingabe des Dialogs öffnet. Im Dropdown-Menü im oberen Teil des Fensters kannst du einstellen, ob der NPCs sich frei bewegen (wander), an einer festen Stelle stehen (stand) oder ob er dir folgen soll (follow). Wir empfehlen stand als Einstellung für NPCs, die für Storytelling-Zwecke genutzt werden.

Dialoge schreiben

Voraussetzungen

Benutze einen Stock, um NPCs zu programmieren. Halte den Stock in der Hand und klicke dann mit der rechten Maustaste auf den NPC, damit sich das Menü zur Eingabe des Dialogs öffnet.

Beispieldialog

Die Funktionen der NPCs werden anhand des folgenden Beispieldialogs erläutert. Kopiere den Text gerne in den Dialogeditor eines NPCs, um den Dialog zu testen.

Beispielcode für NPC-Dialog
=start
Willkommen! Hilfst du uns bei unserer Bananenfarm?

>info:Bananenfarm?
>quest:Klar, wie kann ich euch unterstützen?
>end:Nee, ich muss weiter. Bis bald!

=info
:if (@[infogegeben]@==true) then goto infonochmal
:if (isNotSet(infogegeben)) then set infogegeben=true
Ja, Petra und ich pflanzen hier Bananen an und machen leckeres Bananenbrot!
Wie heisst du eigentlich? Achso, das steht ja über deinem Avatar: @[playername]@, aha.
Und, hilfst du uns?
>questakzeptiert:Na klar!
>questabgelehnt:Eher nicht, sorry.

=infonochmal
He Moment mal... Das habe ich dir doch schon alles erzählt!
>end:Stimmt... Ciao!

=quest
Wir würden gerne unser Rezept für das Bananenbrot überarbeiten. Kannst du uns da einen Tipp geben?
>questakzeptiert:Na klar!
>questabgelehnt:Eher nicht, sorry.

=questakzeptiert
Okay: Würdest du auch Blaubeeren anpflanzen, um diese in unserem Bananenbrot zu verbacken?
>questgelöst:Ja, schmeckt doch lecker!
>questgelöst:Ne, es heisst ja Bananenbrot...

=questabgelehnt
Macht nichts! Wenn du unser Bananenbrot probieren willst, gehe einfach dort zum Tauschtisch!
>end:Danke, ciao!

=questgelöst
Danke für deine Einschätzung! Wenn du unser Bananenbrot probieren willst, gehe einfach dort zum Tauschtisch!
>end:Danke! Bis bald!

Themen / Kapitel

NPC-Dialoge sind in Themen bzw. Kapitel aufgeteilt. Jedes Thema stellt einen Gesprächsabschnitt dar, über den du dich mit dem NPC unterhalten kannst. Leite ein Thema mit einem = ein und schreibe dann den Themennamen auf.
Im Beispieldialog gibt es die Themen start, info, infonochmal, quest, questakzeptiert, questabgelehnt und questgelöst.

Verzweigungen / Antworten

Je nach deiner Antwort kannst du unterschiedliche Themen oder Kapitel ansteuern. Leite die Antworten mit einen > ein, schreibe den Themennamen auf und platziere hinter einem : die Antwort, die auswählbar sein soll.
Mehrere unterschiedliche Antworten können auch auf das selbe Thema verweisen.
Im Beispieldialog gibt es im ersten Thema (start) drei Verzweigungen: info, quest und end. Während info und quest zu den jeweiligen Kapiteln führen, ist end ein besonderes Kapitel.

besondere Kapitel

Das Thema =start leitet den Dialog ein und wird automatisch die Begrüßung durch den NPC.
Das Thema end beendet den Dialog. Verwende es in Verzweigungen, wenn du dich von einem NPC verabschiedest.

Variablen

NPCs können Variablen speichern, die solange bestehen bleiben, wie du den NPC nicht löschst oder den Dialog neu abspeicherst. Mit Hilfe dieser Variablen kannst du Informationen im NPC speichern.
Im Beispieldialog wird so etwa gespeichert, ob Henry bereits einmal die Information über die Bananenfarm erzählt hat. Wenn das Thema info zum ersten Mal aufgerufen wird, wird mit :if (isNotSet(infogegeben)) then set infogegeben=true überprüft, ob die Variable infogegeben bereits einen Wert hat. Wenn nicht, dann wird die Variable auf true eingestellt. Wenn später das Thema info nochmals aufgerufen wird, überprüft der NPC mit dem Befehl :if (@[infogegeben]@==true) then goto infonochmal, ob die Variable infogegeben den Wert true aufweist. Falls ja, springt der NPC direkt zum Kapitel infonochmal und beschwert sich, dass er sich wiederholen muss.

Avatarspezifische Variablen

Normale Variablen werden im NPC gespeichert und sind für alle, die den NPC besuchen, gleich. Eine komplexere Möglichkeit ist es, Variablen zu erstellen, die den Namen eines oder einer Lernenden bzw. der Lernbegleitung enthalten. So lassen sich beispielsweise Geheimnisse oder Infos pro Person abspeichern und vielfältige Dialogszenarien umsetzen.
Der folgende Beispieldialog zeigt, wie ein simples Geheimnis programmiert werden kann. Auf Knopfdruck kann der NPC das Geheimnis mitteilen oder vergessen, dass er das Geheimnis mitgeteilt hat.

Beispielcode für NPC-Dialog
=start
(Dieser Teil wird nie gezeigt und dient nur dem Einstellen der Initialwerte, also z.B. chbinder.kenntgeheimnis=false
:if (isNotSet([@[playername]@.kenntgeheimnis])) then set @[playername]@.kenntgeheimnis=false
:if (@[@[playername]@.kenntgeheimnis]@==true) then goto geheimnisja
:if (@[@[playername]@.kenntgeheimnis]@==false) then goto geheimnisnein

=geheimnisaktivieren
:set @[playername]@.kenntgeheimnis=true
:goto start

=geheimnisdeaktivieren
:set @[playername]@.kenntgeheimnis=false
:goto start

=geheimnisja
Kennt Geheimnis: @[@[playername]@.kenntgeheimnis]@
Oha, du kennst das Geheimnis!
>geheimnisdeaktivieren: Ja, aber jetzt vergesse ich das Geheimnis wieder...
>end:Ciao!

=geheimnisnein
Kennt Geheimnis: @[@[playername]@.kenntgeheimnis]@
Oha, du wirst das Geheimnis nie erfahren!
>geheimnisaktivieren: Ne, bitte sag mir das Geheimnis!
>end:Ciao!

Befehle

Zusammen mit den Variablen stellen die Befehle hilfreiche Werkzeuge dar, um dynamischere Dialoge zu erstellen. Befehle starten mit einem : und werden Zeile für Zeile ausgeführt.

Variablen setzen (:set)

Mit Hilfe von :set können Variablen auf einen bestimmten Wert eingestellt werden. set infogegeben=true speichert das Wort „true“ in der Variable infogegeben.

Zu Thema springen (:goto)

Mit Hilfe von :goto kann der NPC von einem Thema direkt in ein anderes springen. :goto start lässt den NPC zum Beispiel in das Thema start springen. Dieser Befehl erscheint häufig zusammen mit Bedingungen, um je nach Zustand oder Wert eine andere Antwort zu geben.

Bedingungen (:if)

Mit Hilfe von Bedingungen können Zustände oder Werte von Variablen überprüft werden. :if (@[infogegeben]@==true) then goto infonochmal lässt den NPC überprüfen, ob die Variable infogegeben auf den Wert true eingestellt ist. Wenn das der Fall ist, springt der NPC zum Thema infonochmal.

Weitere Befehle und komplette Dokumentation

Klicke im Dialogeditor des NPCs auf die Schaltfläche Dialog Help, um weitere Befehle und Infos zu simple_dialogs auf Englisch zu erhalten.
In der Dokumentation von simple_dialogs auf Github findest du ebenfalls eine Übersicht über die Befehle und Infos. Die dort verlinkten Textdateien, die mit 'sd-' anfangen, beinhalten außerdem Beispieldialoge, um einige der Fähigkeiten von simple_dialogs zu illustrieren.