[Guide][Wiki-Beitrag] How-To Total RP 3 Extended ❔

Die obligatorische „Hallo-Azeroth“-Kampagne

0 Bevor es losgeht…

  • Du hast einen Kampagnen-Plan.
  • Du hast dich schon einmal in der Datenbank umgesehen.
  • Einige Stellen habe ich mit :asterisk:, :eight_spoked_asterisk: oder :scream: markiert. Diese werden weiter unten erläutert.

1 Hallo Welt Azeroth

Ziel diese Beitrags soll es sein eine einfache Begrüßungskampagne zu erstellen. Im ganz klassischen Sinn gibt ein „Hallo Welt“ lediglich einen Text auf dem Bildschirm aus. Ganz so einfach soll es dann doch nicht werden. Wir möchten eine Quest erstellen, in der der Spieler „Hallo Azeroth“ sagt, woraufhin Azeroth dann zurückgrüßt.

2 Der Plan

Kampagne „Hallo Azeroth“
Eine Quest:

  • Spieler sagt (schreibt) „Hallo Azeroth!“
  • → Zwischensequenz: Azeroth sagt: „Hallo [Spielername]!“
  • → Quest erfolgreich

Die Quest soll auch die üblichen Elemente Startmelodie, Endmelodie und Questverfolgung enthalten.

3 Identifizierung der Ereignisse

Ort Ereignis/Trigger Effekte
Quest Quest startet Spiele Quest-Start-Sound ab
Zeige das Questziel (Hallo sagen) an
Schritt 1 Spieler sagt "Hallo Azeroth!" Starte Zwischensequenz
Zwischensequenz Am Ende des Dialogs Erfülle das Questziel
Wechsle zu Schritt 2 (Endschritt)
Schritt 2 Bei Erreichen von Schritt 2 Spiele Quest-erfüllt-Sound ab

Du wirst es also mit insgesamt vier Ereigissen und dementsprechend vier Arbeitsabläufen zu tun haben.

4 Eingabe der Kampagnendaten

4.1 Kampagne und Quest

  1. Öffne die Datenbank.
  2. Klicke unten in den Aktionen auf „Erstelle Kampagne“ und dann „Leere Kampagne“.
    Die Kampagnenübersicht öffnet sich.
  3. Gib der Kampagne einen Namen. Z.B. Hallo Azeroth
  4. Gib der Kampagne eine Zusammenfassung. Z.B. Meine allererste Kampagne
  5. Klicke auf das Pokal-Symbol um der Kampagne ein passendes Icon zu verleihen. Ich habe mir achievement_worldevent_childrensweek ausgesucht. Du kannst im dortigen Suchfeld (englischen) Text eingeben um die sehr große Auswahl an Icons einzuschränken.
  6. Stelle unten rechts unter „Wurzelobjekt“ die Sprache auf deutsch um.

Wechsle nun zur zweiten Registerkarte „Kanal“. Dort findest du bereits eine Quest namens „Neue Quest“, die auf „Automatisch aufdecken“ eingestellt ist. (grüner Text). Das bedeutet, dass diese Quest beim Start der Kampagne automatisch verfügbar gemacht wird, wir können uns den Effekt „Quest aufdecken“ also sparen.
Als erste Amtshandlung geben wir der Quest einen anderen Bezeichner (Id):

  1. Klicke mit gedrückter STRG-Taste auf die Quest. Gib dort eine passende Id ein, z.B. q01_say_hello :eight_spoked_asterisk:
  2. Klicke nun auf die Quest um sie anzupassen. Die Questübersicht öffnet sich.
  3. Gib der Quest einen Namen, z.B. Begrüße Azeroth, und eine Zusammenfassung, z.B. Sage Hallo zu deinem Lieblingsplaneten
  4. Auch hier kannst du dir ein Icon aussuchen, z.B. spell_nature_crystalball
  5. Klicke auf der rechten Seite auf „Questziel hinzufügen“. Ein Dialogfenster öffnet sich.
    5.1. Gib dem Ziel die Id o1_say_hello :eight_spoked_asterisk:.
    5.2. Gib als Questzieltext Sage "Hallo Azeroth!" ein.
    5.3. Wähle außerdem „Automatisch aufdecken“ aus.
    5.4. Klicke nun auf „Speichern“ im Questziel-Dialog.

Quest und Kampagne sind jetzt erstellt, aber noch leer.

:floppy_disk: Wir drücken einmal unten mittig auf „Speichern“.

4.2 Ereignis: Quest-Start

  1. Wechsle zur vierten Registerkarte „Arbeitsabläufe“
  2. Dort klickst du „Arbeitsablauf erstellen“. Gib ihm die Id onStart :eight_spoked_asterisk:.
  3. Auf der rechten Seite klickst du nun auf „Element in Arbeitsablauf einfügen“. Wähle dann Effekt > Geräusche und Musik > Klang-Id abspielen.
  4. Im Dialogfeld gibst du die Sound-Id 618 :asterisk: ein. Mit „Abspielen“ kannst du dir den Klang probeweise anhören. Quittiere mit Bestätigen.

Der erste Arbeitsablauf ist nun fertig. In der obigen Tabelle war eigentlich noch ein zweiter Effekt (Questziel aufdecken) verzeichnet, diesen können wir uns aber dank der Option „Automatisch aufdecken“ im Questziel sparen. Solltest du einmal ein Questziel benötigen, das nicht sofort beim Starten der Quest sichtbar ist, wirst du es innerhalb eines Arbeitsablaufs aufdecken müssen. Die Option „Automatisch aufdecken“ muss dann deaktiviert sein.

:floppy_disk: Wir speichern einmal.

Was fehlt jetzt noch? Richtig, das Ereignis:

  1. Wechsle zur Registerkarte „Ereignisverknüpfungen“
  2. Wähle links unter Objektereignisverknüpfungen > Bei Queststart den eben erstellten Arbeitsablauf onStart aus.

:floppy_disk: Wir genehmigen uns eine Speicherung.

4.3 Zwei Questschritte

Quests sind in Schritte unterteilt. Dabei befindet sich eine aufgedeckte Quest immer in einem bestimmten Schritt. Der aktuelle Questschritt ist also ein Zustand der Quest. Man kann ihn auch abfragen.
Questschritte können außerdem zwei Markierungen haben.

  • Die Markierung Anfangsschritt sorgt dafür, dass die Quest automatisch mit diesem Schritt beginnt, sobald sie aufgedeckt wird.
  • Die Markierung Endschritt sorgt dafür, dass die Quest als abgeschlossen gilt, sobald sie diesen Schritt erreicht. Eine Quest kann auch mehrere Endschritte haben. So kann man Entscheidungsquests mit mehreren Ergebnissen modellieren.

Unsere Quest wird zwei Schritte haben: Einen Hauptschritt, der hier auch gleichzeitig Anfangsschritt ist, in dem alles Wesentliche passiert, und einen Endschritt, der das erfolgreiche Absolvieren der Quest markiert.
Wir erstellen zunächst beide Questschritte und kümmern uns dann um den Rest.

  1. In der zweiten Registerkarte „Questschritte“ siehst du bereits einen step_1_first. Er ist auch schon als Anfangsschritt markiert. Das erkennst du am grünen Text „Automatisch aufdecken“.
  2. Natürlich passt mir der Bezeichner nicht. Gib dem Questschritt mit STRG+Klick die neue Id s1_say_hello :eight_spoked_asterisk:.
  3. Füge mit der Schaltfläche „Questschritt hinzufügen“ den Endschritt hinzu. Nenne ihn s2_final :eight_spoked_asterisk:.
  4. Klicke einmal auf den zweiten Questschritt. Wir lassen den Questlogeintrag vorerst links liegen und markieren den Schritt als Endschritt.
  5. Ganz oben in der Navigationsleiste wechselst du zur Quest zurück.
    Beim zweiten Schritt siehst du nun die grüne Markierung „Endschritt“

:floppy_disk: Was fängt mit S an und hört mit peichern auf?

4.4 Die Zwischensequenz

Da die Zwischensequenz, in der Azeroth den Spieler grüßt, während des ersten Questschritts angezeigt werden soll, ist es sinnvoll, diese auch als inneres Objekt dieses Schritts anzulegen.

  1. Klicke auf „Questschritte“, dann auf s1_say_hello. Dort klickst du auf „Innere Objekte“.
  2. Klicke auf „Neues Objekt erstellen“, dann „Zwischensequenz“. dialog_hello :eight_spoked_asterisk: ist eine gute Id.
  3. Die Zwischensequenz erscheint in der Objektliste. Klicke einmal darauf. Du landest in der Dialogübersicht.

Links siehst du die Liste der Dialogschritte (momentan einer) und rechts die Einstellungen dazu. Wenn du auf „Vorschau“ klickst, siehst du, wie der Dialog aussehen wird. Momentan noch ziemlich leer. Zeit, das zu ändern:

  1. Gib rechts oben bei „Text zu diesem Schritt“ Hallo, ${trp:player:first}! ein. Das etwas kryptische ${trp:player:first} :asterisk: ist ein Platzhalter für den TRP3-Vornamen des Spielers, ein sogenanntes Variable Tag.
  2. Ein Stück weiter unten wählst du „Endpunkt“ aus. Wir benötigen nur einen einzigen Dialogschritt, also ist der erste zugleich auch der letzte.
  3. Aktiviere dann „Dialogrichtung ändern“. Eine weitere Auswahl erscheint, in der du „Rechts“ einstellst.
  4. Direkt darunter: „Name des Redenden ändern“. Azeroth begrüßt uns, also schreiben wir hier Azeroth hinein.
    Und ja, Azeroth kann sprechen :crazy_face:.
  5. Unter Dekoration > Hintergrundbild ändern kannst du ein anderes Hintergrundbild einstellen. Ich habe mir Interface\worldmap\cosmic\cosmic-azeroth-highlight :asterisk: ausgesucht.
  6. Unter „Modelle“ klickst du „Linkes Modell ändern“ und „Rechtes Modell ändern“ an. Beim linken Modell ist player voreingestellt, das kann so bleiben. player steht für deine eigene Spielfigur. (Um es ganz genau zu nehmen ist player die Spielfigur der Person, die die Kampagne durchspielt.)
    Beim rechten Modell gibst du DID44652 :asterisk: ein, das ist die Id eines „Charaktermodells“ von Azeroth.

Wenn du nun auf „Vorschau“ klickst, siehst du den Dialog in seiner geplanten Form.

:floppy_disk: Speichern, und so.

4.5 Ereignis bei Beenden des Dialogs

Wenn der Dialog beendet wird, soll die Quest als erfüllt gelten.

  1. Wechsle zur Registerkarte „Arbeitsabläufe“ und lege einen neuen Arbeitsablauf onFinish :eight_spoked_asterisk: an.
  2. Füge auf der rechten Seite das Element Effekt > Kampagne und Quest > Questziel erfüllen ein. Ein Dialog erscheint.
    Suche dort nach deiner Quest q01_say_hello (Durchsuchen).
    Bei „Ziel ID“ gibst du das Questziel, also o1_say_hello ein.
  3. Als zweiten Effekt fügst du Effekt > Kampagne und Quest > Ändere Questschritt ein. Suche hier ebenfalls mit „Durchsuchen“ nach dem Endschritt s2_final.

:floppy_disk: Speichern nicht vergessen.

Wechsle nun zu „Ereignisverknüpfungen“ und verknüpfe dort das Ereignis „Bei Beenden der Sequenz“ mit dem eben erstellten Arbeitsablauf onFinish.

:floppy_disk: Schon gespeichert?

4.6 Ereignis zur Anzeige des Dialogs

Das Beenden des Dialogs ist behandelt, aber es fehlt noch das wichtige Starten. Dazu begibst du dich in der Navigation eine Ebene nach oben zum Questschritt s1_say_hello.
Beginnen wir mit dem Arbeitsablauf:

  1. Wechsle innerhalb des Questschritts zu „Arbeitsabläufe“ und lege dort den Arbeitsablauf onSay :eight_spoked_asterisk: an.
  2. Diesen versiehst du mit einem Element Effekt > Kampagne und Quest > Starte Zwischensequenz. Auch dort kannst du wieder die „Durchsuchen“-Funktion verwenden um deinen dialog_hello zu finden.

:floppy_disk: Gib mir ein S! Gib mir ein P! …

Fehlt noch das auslösende Ereignis. Lesen wir das ganze mal Wort für Wort: Sobald der SpielerHallo Azeroth!sagt, startet die Zwischensequenz.

  • sagt (bzw. schreibt): Es handelt sich um eine Chatnachricht.
  • der Spieler: Nicht irgendjemand, sondern der Spieler soll eine Chatnachricht absetzen.
  • Hallo Azeroth!: Der Spieler soll auch nicht irgendwas schreiben, sondern einen ganz bestimmten Text.

Wenn eine Chatnachricht eintrifft, bekommt das Interface eine Information, d.h. ein Spielereignis tritt ein. Für unsere Zwecke gibt es das Ereignis CHAT_MSG_SAY :asterisk:. Dieses tritt immer ein, wenn irgendjemand irgendwas im /sagen-Chat schreibt. Wenn dein Chat z.B. folgendermaßen aussieht, …

… dann tritt das Ereignis CHAT_MSG_SAY vier Mal ein, interessant ist aber nur die zweite Zeile.

Du benötigst also ein Spielereignis, verbunden mit einem Filter, damit der Dialog nur unter einer bestimmten Bedingung angezeigt wird.

  1. Wechsle zu „Ereignisverknüpfungen“ und schau dir die rechte Seite „Spielereignisverknüpfungen“ an.
  2. Dort klickst du auf „Ereignisverknüpfung hinzufügen“. Ein Dialog erscheint.
  3. Zunächst stellst du im Dropdown-Menü (dort wo „kein Link“ steht) den Arbeitsablauf onSay ein.
  4. Um die passende Ereignis-Id zu finden kannst du den Ereigniskatalog öffnen. Uns interessiert das Ereignis CHAT_MSG_SAY in der Kategorie ChatInfo. Halte deine Maus über den Eintrag CHAT_MSG_SAY im Ereigniskatalog.
  5. Im Tooltip wird aufgelistet, welche Informationen mitgeliefert werden, wenn das Ereignis eintritt. Die ersten beiden sind in diesem Fall relevant: (1) text ist das Gesagte und (2) playerName ist der Sprechende.
  6. Wähle also CHAT_MSG_SAY aus und klicke dann im Dialog auf „Speichern“.

Jetzt erscheint das Ereignis in der rechten Liste, mit dem Hinweis, dass das Ereignis keine Bedingung hat. Das können wir nicht auf uns sitzen lassen.

  1. Klicke das Ereignis mit gedrückter STRG-Taste an. Der Bedingungseditor öffnet sich.
  2. Klicke auf die erste (und einzige) Zeile, der Testeditor erscheint.
  3. Wähle im linken Dropdown Expert > Ereignisparameter als Text mit dem Argument-Index 1 aus. :scream:
    Das mittlere Dropdown bleibt wie es ist.
    Rechts klickst du auf „Einstellen“ und gibst dann Hallo Azeroth! ein.
    Das ist unsere erste Bedingung: Das Gesagte ist gleich Hallo Azeroth!.
  4. Klicke „Bestätigen“ und dann „Test hinzufügen“. Eine UND-Zeile erscheint sowie eine zweite Bedingung. Klicke auf die zweite Bedingung.
  5. Wieder wählst du links Expert > Ereignisparameter als Text aus, diesmal aber mit dem Argument-Index 2. :scream:
    Rechts wählst du Ausgewerteter Wert > Wert einer Einheit > Einheiten-Id mit dem Typ Spieler aus.
    Die zweite Bedingung ist demnach: Die Einheit „Sprecher“ ist gleich der Einheit „Spieler“.

:floppy_disk: Jetzt noch zwei mal „Bestätigen“ und dann das allseits beliebte „Speichern“.

4.7 Letzte Schritte

Die Übersicht für den ersten Questschritt s1_say_hello ist noch ziemlich leer. Hier solltest du noch eine Beschreibung einfügen.

  • Im Questlogeintrag sollte die Beschreibung des Questschritts stehen, also die Aufgabenstellung an den Spieler, das was passieren soll. Ich fasse mich hier kurz und schreibe: Begrüße Azeroth mit den Worten „Hallo Azeroth!“ Benutze dazu den Chat. (/sagen)
  • Der Questverlauf wird sichtbar, sobald der Questschritt wechselt, hier kannst du hineinschreiben was passiert ist:
    Du hast Azeroth begrüßt und es hat freundlich zurückgegrüßt.

Selbiges wiederholen wir im zweiten Questschritt, nur dass wir uns hier diesmal den Questverlauf sparen können, denn dieser Schritt ist der letzte, aus ihm führt kein Weg mehr hinaus.
Questlogeintrag: Azeroth kennt sogar deinen Namen. Wahnsinn!

Fehlt noch etwas? Ach ja, das Quest-erfüllt-Geräusch.

  1. Lege im zweiten Schritt den Arbeitsablauf onEnter :eight_spoked_asterisk: an.
  2. Dort fügst du wieder das Element Effekt > Geräusche und Musik > Klang-Id abspielen ein, diesmal mit der Sound-Id 619 :asterisk:.

:floppy_disk: Bloß nicht das Speichern vergessen.

Jetzt verknüpfst du noch das Ereignis „Bei Betreten des Questschritts“ mit dem Arbeitsablauf onEnter.

4.8 Geschafft

Geschafft?

:floppy_disk: SPEICHEEEEEEEEEEEEEEERN!!!

Geschafft. jetzt kannst du die Kampagne einmal ausprobieren. Da du immer fleißig ge-:floppy_disk: hast liegt sie schon in deinem TRP3-Questlog bereit.

5 Anmerkungen

5.1 :asterisk: Woher kommt dieser Code?

Ich habe mich darüber ausgeschwiegen, woher ich z.B. weiß, dass ich ausgerechnet 618 eingeben muss, um an das Geräusch für eine startende Quest zu kommen. Das habe ich bewusst getan um den Beitrag kurz weniger lang zu halten. Erstmal genügt zu wissen, dass es viele solcher IDs gibt. Um sie selbst zu finden, vertröste ich dich an dieser Stelle auf einen späteren Beitrag.

5.2 :eight_spoked_asterisk: Warum dieser Bezeichner?

Das ist mein System: Englische Bezeichnungen mit vorangestelltem q##_, s#_ bzw. o#_. Arbeitsabläufe benenne ich entweder nach dem Auslöser (onStart, onFinish, …) oder nach dem, was sie tun sollen (addItem, initialize, …). Das hat mehrere Vorteile:

  • Quests und Questziele sind automatisch richtig sortiert, denn TRP:E sortiert nach Id.
  • Englische Begriffe stechen in (deutschem) Text besser hervor. Wenn ich irgendwo etwas englisches sehe, weiß ich, dass etwas nicht richtig funktioniert.
  • Wenn man mal eine Frage hat, findet man mitunter mehr Hilfe, wenn man auch nichtdeutsche Personen einbezieht. Diese finden sich dann besser zurecht, auch wenn sie die deutschen Texte nicht lesen können.

Es ist dir selbstverständlich freigestellt ein anderes System zu verwenden.

5.3 :scream: WTF? Experte? In der ersten Kampagne???

Von „Experteneffekten“ brauchst du dich nicht abschrecken lassen. Das sind Effekte/Bedingungen wie alle anderen auch. Manche davon werden sogar so häufig gebraucht, dass sie eigentlich in eine andere Kategorie gehören.
Sieh es als Herausforderung. :wink:

6 „Hallo Azeroth“ als Import-Code

Import-Code anzeigen !vA12YTTnq0Vf7Pp0oTYIKw2nwZKh0nBPP2sjgYooDYasisisebbQaa5mYDk)v6psFl)yDbb0fkBR0msIIaCb2Dp7zpGyF8y8qF4RxW54HbyKVVFd)lo1ZZ7I(F(Sg4HNcwGA1bUQXOXFeJ60cJqUXjunHXv2bVVNX0V45hQiRcZOCE(URTDlZObDWi1c4zHcIEPKgglxP0e(ecNJrD7b7njLwe1hgNxe90YIOektqNxeDnJoHZePQfCIGQPcm6D3IBJrdHiQnnv(T)9B)dS0wprL56mWxdHNQDrlkxG0eP2ClAS5Qj3rulaa3XsGilFPijKLeQO8PyerMQSphHU8bd(m8C)3aBP5dc(YzknE9h01dm7Zi0wFbtEtxZK3mccZrMX9BTfkF)DLbz5yBmP2d82F1oq0KyOlhGNyt(kRc19b4hGBzeLEdAuenXHqWCqswervgtGrtLuycoloZG3GnXZsxB7jqG(WlHUfrZzAtTrue9HCP28)XUIMZKJoUiQnvSu)eSSeITucM1b86jfr)CDfuPf)sLkez1bRpjmcppnuvcU7wE2J2wevHgwePQmYTnw861QMLfkRR7Dpq773AC4nORcrT(yza7cxuNrRTZfNyuCgnEwi9rQqh(ircrk21MvU1M(S3(wxR1JGNQcBBS5xTM8932GNVTG5lfmDOb1CMHG(MvujwVZNsAia3wUR2rhrvaOn0WoDbGUrDF)6bEfrb(n9cAgCgmpqgruoeyQAJZKLDYOxyohngHEL95Ela5i5DhGh6Tl54sMGPYoi)4llPkD4CIC2OjFUBUG(dqskXV8DNypMbceCminC5vCCA(4CKMU4hWRa1miCktq4hMiUvEP3oyHRacqfQlAtaz6yl5u)wr0p9xA5IM2kFZPmPs)3hbvbOcC7GR6Bk8JmQi9EN56T3z2RUnAC(zbwLLnAPTVc4gcnvoLet)0xZL8K5KfFkoxnNf7(RgXADTmwAgh(zc67EgVB9jcWDBY9dj1TwKBTTL53gzOzuHaeIu5PeP7ScqJzizovaImFGKjumH4Os5YkNg0ZKnhKn9)50Gl(ULT1N)T7PdwFR3Q(7Adlx4O2Lb4ENeysA7rJptMf8rRYCZ5zlscfw485xU700P9773q7FrZt9A65bld078pPbKu37E1Gk9Ubb19AupWhwYBa7B679I976sE24NrH3jT3(obK4mgS45gTTs2LvMdMLNiPc1xP0zabf4bGBRbE2eNMxx4gtfVicCivsb6nC)FqMVGKAA(hCdgDfrk)tqkO1egNPxvdozEcNQSKQQqzjLKgVuc2DneaCJykiS2WchAm()o
2 Likes