Vermutlich nicht mehr aktuell!
Coole Phantombot Abenteuer selbst erstellen
Du kannst mit deinem Phantombot Abenteuer erstellen, die deine Viewer dann zufällig in deinem Chat starten können. Wenn du die deutsche PhantomBotDe Version installiert hast, dann gibt es auch schon ein paar fertige Abenteuer auf deutsch zu bestehen. In diesem Artikel zeige ich dir, wie du es schaffst, deine eigenen Phantombot Abenteuer zu erstellen.
DarkWolfCave.de
Vorwort
Wie immer beziehe ich mich auf eine Phantombot Installation auf einem Raspberry Pi. Solltest du deinen Bot auf deinem PC oder auf einem Webserver installiert haben, musst du evtl. anders auf die Pfade zugreifen.
Legen wir los
Zu aller erst benötigen wir die entsprechende Datei, in der die deutschen Abenteuer enthalten sind.
Diese findest du in deiner Phantombot Installation unter: PHANTOMBOT/scripts/lang/german/games und nennt sich games-adventureSystem.js.
In meinem Fall laden wir uns diese Datei mit Filezilla von dem Raspberry Pi lokal auf den PC herunter und öffnen diese dann mit Notepad++.
Natürlich kannst du auch direkt mit VI oder NANO unter Linux die Datei bearbeiten.
games-adventureSystem.js bearbeiten
/* Grundlegende Systemvariablen/Übersetzungen */ $.lang.register('adventuresystem.adventure.usage', 'Verwendung: !adventure [$1].'); $.lang.register('adventuresystem.alreadyjoined', 'Du bist dem Abenteuer bereits beigetreten.'); $.lang.register('adventuresystem.completed', 'Das Abenteuer ist beendet, Überlebende: $1.'); $.lang.register('adventuresystem.completed.no.win', 'Das Abenteuer ist beendet. Es hat niemand überlebt.'); $.lang.register('adventuresystem.completed.win.total', 'Das Abenteuer wurde mit $1 Überlebenden und $2 Toten beendet.'); $.lang.register('adventuresystem.join.bettoohigh', 'Du kannst mit, $1, nicht einsteigen, das Maximum ist $2.'); $.lang.register('adventuresystem.join.bettoolow', 'Du kannst mit, $1, nicht einsteigen, das Minimum ist $2.'); $.lang.register('adventuresystem.join.needpoints', 'Du kannst mit, $1, nicht einsteigen, du hast nur $2.'); $.lang.register('adventuresystem.join.notpossible', 'Du kannst jetzt nicht beitreten.'); $.lang.register('adventuresystem.join.success', 'Du bist dem Abenteuer mit $1 beigetreten!'); $.lang.register('adventuresystem.loaded', 'Abenteuergeschichten geladen ($1 gefunden).'); $.lang.register('adventuresystem.payoutwhisper', 'Abenteuer abgeschlossen, $1 + $2, wurden deinem Guthaben gutgeschrieben.'); $.lang.register('adventuresystem.runstory', 'Starte Abenteuer "$1" mit $2 Spieler(n).'); $.lang.register('adventuresystem.set.success', '$1 zu $2 gesetzt.'); $.lang.register('adventuresystem.set.usage', 'Verwendung: !adventure set [settingname] [value].'); $.lang.register('adventuresystem.start.success', '$1 versucht ein Team für ein großes Abenteuer zusammen zu stellen. Verwende "!adventure [$2]" um beizutreten!'); $.lang.register('adventuresystem.tamagotchijoined', '$1 tritt auch dem Abenteuer bei.'); $.lang.register('adventuresystem.top5', 'Die Top 5 Abenteurer sind: $1.'); $.lang.register('adventuresystem.top5.empty', 'Es wurden noch keine Abenteuer Gewinner verzeichnet.'); $.lang.register('adventuresystem.loaded.prefix', '$1 Abenteuergeschichten aus $2 geladen.'); $.lang.register('adventuresystem.reset', 'Du kannst jetzt wieder ein Abenteuer starten! Nutze dafür "!adventure [$1]" !'); $.lang.register('adventuresystem.stories.default', 'true'); /* Die Abenteuer * Unterteilt in * - Stories z.B.: stories.1 * - Titel zu der storie z.B.: 1.title * - Kapitel der Story z.B.: 1.chapter.2 */ $.lang.register('adventuresystem.stories.1.title', 'Schatz im Schwarzsee'); $.lang.register('adventuresystem.stories.1.chapter.1', 'Nach jahrelangen Recherchen habe ich die Gewissheit, dass der Schatz im Schwarzsee keine Legende ist, er existiert wirklich! Lasst uns sofort aufbrechen und ihn den Tiefen entreissen.'); $.lang.register('adventuresystem.stories.1.chapter.2', 'In den Tiefen des Sees gab es mehr als nur Fische und Muscheln. Seltsame Unterwassergeschöpfe wachen scheinbar über den Schatz. (caught) war(en) diesen Wesen nicht gewachsen und wurde(n) von ihnen getötet.'); $.lang.register('adventuresystem.stories.1.chapter.3', '(survivors) schaffte(n) es zurück an das Ufer, beladen mit außergewöhnlichen Schätzen. Die Freude dieses Abenteuer überlebt und den Schatz gehoben zu haben ist überwältigend.'); $.lang.register('adventuresystem.stories.2.title', 'Rudel-Know-How'); $.lang.register('adventuresystem.stories.2.chapter.1', 'Wir schreiben heute zusammen unser erstes gemeinsames Abenteuer! Kommt dazu und seid Teil der Geschichte!'); $.lang.register('adventuresystem.stories.2.chapter.2', '/me Die Gruppe macht sich auf um ihr Abenteuer zu bestehen..'); $.lang.register('adventuresystem.stories.2.chapter.3', 'Nachdem die erste Verwirrung über die Variablen verflogen ist füllt sich auch schon die Geschichte mit Leben....'); $.lang.register('adventuresystem.stories.2.chapter.4', 'OH NEIN! WAS IST DAS?!! Noch mehr Unterteilungen in Titeln und Kapiteln....Uff"'); $.lang.register('adventuresystem.stories.2.chapter.5', '(caught) ist überfordert und geht erstmal einen trinken! '); $.lang.register('adventuresystem.stories.2.chapter.6', '(survivors) haben es dann doch geschafft und ihre erste eigene Geschichte geschrieben!'); /* * Rules on writing your own adventure story: * * - Stories are automatically loaded from this file by their sequence number (adventuresystem.stories.[This number]). * - Keep the format of your story as shown above. * - There can be an unlimited number of stories, IF you keep their subsequence numbers 1, 2, 3, 4, 5... * - A story must have a title. * - A story can have an unlimited number of chapters, IF you keep their subsequence numbers 1, 2, 3, 4, 5... * - Stories are picked at random. * ** Game specific story how-to. * - Add $.lang.register('adventuresystem.stories.NUMBER.game', 'GAME NAME IN LOWER CASE'); on top of the story chapter. * Example > * $.lang.register('adventuresystem.stories.5.game', 'gaming talk shows'); * $.lang.register('adventuresystem.stories.5.title', 'Talk Shows'); * $.lang.register('adventuresystem.stories.5.chapter.1', 'random story...'); * * Underneath is a template for your first custom story, just remove the preceding slashes. */ //$.lang.register('adventuresystem.stories.5.title', ''); //$.lang.register('adventuresystem.stories.5.chapter.1', ''); //$.lang.register('adventuresystem.stories.5.chapter.2', ''); //$.lang.register('adventuresystem.stories.5.chapter.3', '');
Die Datei kann bei dir etwas anders aussehen. Zum einen “durcheinander” und zum anderen mit mehreren Abenteuern.
Diese hier dient nur zum erklären und macht es mit nur einem Abenteuer (bzw. 2…) etwas übersichtlicher.
Ich habe mir die grundlegenden Variablen im oberen Bereich sortiert. Habe aber auch schon Dateien gesehen wo diese wild durcheinander waren.
Diese grundsätzlichen Variablen sollten bei allen vorhanden sein und müssen nicht geändert werden (es geht hier eh nur um die Übersetzungen).
stories – title und chapter
Was uns heute interessiert, sind die Einträge für unsere Abenteuer. Ein Standardabenteuer bei der deutschen Phantombot Installation wäre z.B.: “Schatz im Schwarzsee” und beinhaltet folgende Zeilen:
$.lang.register('adventuresystem.stories.1.title', 'Schatz im Schwarzsee'); $.lang.register('adventuresystem.stories.1.chapter.1', 'Nach jahrelangen Recherchen habe ich die Gewissheit, dass der Schatz im Schwarzsee keine Legende ist, er existiert wirklich! Lasst uns sofort aufbrechen und ihn den Tiefen entreissen.'); $.lang.register('adventuresystem.stories.1.chapter.2', 'In den Tiefen des Sees gab es mehr als nur Fische und Muscheln. Seltsame Unterwassergeschöpfe wachen scheinbar über den Schatz. (caught) war(en) diesen Wesen nicht gewachsen und wurde(n) von ihnen getötet.'); $.lang.register('adventuresystem.stories.1.chapter.3', '(survivors) schaffte(n) es zurück an das Ufer, beladen mit außergewöhnlichen Schätzen. Die Freude dieses Abenteuer überlebt und den Schatz gehoben zu haben ist überwältigend.');
Wichtig dabei ist der Aufbau. Schauen wir uns das mal an der ersten Zeile an:
stories
$.lang.register(‘adventuresystem.stories.1.title‘, ‘Schatz im Schwarzsee’);
Die Abenteuer sind in “stories” zusammengefasst und fortlaufend nummeriert. Das bedeutet unser erstes Abenteuer muss “stories.1” sein. Das zweite Abenteuer dann “stories.2” usw.
Zu einer Story gehört ein .title und ein .chapter (Kapitel).
title
In der ersten Zeile siehst du, dass hinter .stories.1.title ein , ‘Schatz im Schwarzsee’) kommt. Dies ist der Titel des ersten Abenteuers und kann beliebig vergeben werden.
chapter
Weiter geht es mit den Kapiteln (chapter)
$.lang.register(‘adventuresystem.stories.1.chapter.1‘, ‘Nach jahrelan…’);
Die Kapitel gehören immer zu einer Story/Abenteuer und müssen auch fortlaufend sein. Der Text der in den einzelnen Kapiteln steht, wird dann später nacheinander im Chat ausgegeben. Du kannst mehrere Kapitel unter einem Abenteuer erstellen. Bedenke nur, dass es dann auch im Chat länger dauern wird, bis das Abenteuer komplett abgeschlossen ist.
Zusammenfassung
- Stories MÜSSEN fortlaufend nummeriert werden (adventuresystem.stories.1 / adventuresystem.stories.2 usw)
- Stories haben einen Titel (‘adventuresystem.stories.1.title’, ‘Schatz im Schwarzsee’) / ‘adventuresystem.stories.2.title’, ‘Titel für das Zweite Abenteuer’);
- Stories haben Kapitel (‘adventuresystem.stories.1.chapter.1’, ‘blablub’) / (‘adventuresystem.stories.1.chapter.2’, ‘noch mehr text’) usw..
- adventuresystem.stories.1.chapter.2‘, ‘noch mehr text’) ist das 2.Kapitel (chapter.2) welches zu deinem ERSTEN Abenteuer gehören würde (adventuresystem.stories.1.)
- adventuresystem.stories.2.chapter.4‘, ‘Das 4.Kapitel) ist das 4.Kapitel (chapter.4) welches zu deinem ZWEITEN Abenteuer gehören würde (adventuresystem.stories.2.)
Unser erstes eigenes Abenteuer
Jetzt wo die Grundlagen hoffentlich halbwegs verständlich sind, beginnen wir damit unser eigenes Abenteuer zu erstellen.
Bezogen auf unser Beispiel von oben – bei dem es nur ein Abenteuer gab – müssen wir unser eigenes mit “stories.2” beginnen.
Denn wie wir gerade gelernt haben, MÜSSEN Abenteuer immer fortlaufen nummeriert sein!
Der Aufbau ist immer gleich. Wir beginnen mit dem title und erstellen darunter unsere chapter (die auch fortlaufend nummeriert sein müssen):
$.lang.register('adventuresystem.stories.2.title', 'Rudel-Know-How'); $.lang.register('adventuresystem.stories.2.chapter.1', 'Wir schreiben heute zusammen unser erstes gemeinsames Abenteuer! Kommt dazu und seid Teil der Geschichte!'); $.lang.register('adventuresystem.stories.2.chapter.2', '/me Die Gruppe macht sich auf um ihr Abenteuer zu bestehen..'); $.lang.register('adventuresystem.stories.2.chapter.3', 'Nachdem die erste Verwirrung über die Variablen verflogen ist füllt sich auch schon die Geschichte mit Leben....'); $.lang.register('adventuresystem.stories.2.chapter.4', 'OH NEIN! WAS IST DAS?!! Noch mehr Unterteilungen in Titeln und Kapiteln....Uff"'); $.lang.register('adventuresystem.stories.2.chapter.5', '(caught) ist überfordert und geht erstmal einen trinken! '); $.lang.register('adventuresystem.stories.2.chapter.6', '(survivors) haben es dann doch geschafft und ihre erste eigene Geschichte geschrieben!');
Somit hätte unser neues Abenteuer insgesamt 6 Kapitel und wäre Abenteuer Nummer 2.
Jetzt fragst du dich vielleicht was (caught) und (survivors) oder auch /me bedeutet…
Variablen und Befehle im Text
Du kannst in den Kapiteln auch normale Chat-Befehle mit ausgeben. So sorgt z.B. das /me dafür, dass der Text dahinter im Chat eingefärbt wird. (Erzähler-Sicht)
(caught) ist eine Variable, in der die Namen kommen, die im Abenteuer “verloren” haben.
(survivors) hingegen, enthält die Namen, die das Abenteuer “gewonnen” haben.
Datei speichern und wieder hochladen
Wenn du jetzt das neue Abenteuer in die games-adventureSystem.js geschrieben hast, musst du diese Datei natürlich noch speichern und wieder auf den Raspberry Pi hochladen (oder in deinen Phantombot-Ordner verschieben) – je nach Installation: PHANTOMBOT/scripts/lang/german/games/.
Phantombot neu starten
Damit das neue Abenteuer auch genutzt werden kann, musst du deinen Phantombot einmal neu starten. Auch hier wieder: je nach Installation etwas anders. In meinem Fall starte ich ihn mit sudo systemctl restart phantombot
und prüfen den Status mit sudo systemctl status phantombot.
Sobald Phantombot wieder vollständig geladen ist, kannst du dein neues Abenteuer im Chat starten. In der Regel mit dem Befehl !adventure 10 (die Zahl ist der Einsatz der Punkte)
Das Video – für alle die keine Lust zum lesen haben
aber denk daran: Ich verwende evtl. andere Ordner und User wie du. Die musst du dann natürlich anpassen 😉
Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen