Wooah, ein neues Plugin!
Dieses ist jedoch etwas weniger ernst. ![]()
Discourse Frotz
Es ist nicht mehr notwendig, den Bot bei jedem Schritt zu erwÀhnen (@ mention). Sobald das Spiel lÀuft, antworte einfach darauf.
Was ist das?
Es ist ein âBot", mit dem du interaktive Fiktion, auch bekannt als klassische Text-Abenteuer-Spiele, auf deinem Discourse-Forum spielen kannst. Er fungiert im Wesentlichen als Adapter fĂŒr den Standard- und fantastischen Z-Machine-Interpreter namens âfrotz" unter David Griffith / frotz · GitLab
Wie man es benutzt
Das Setup fĂŒgt zwei Spiele hinzu; du kannst weitere in den Einstellungen hinzufĂŒgen.
Jeder Eintrag enthÀlt einen Titel und den Namen der Story-Datei.
Um die Interaktion zu starten, musst du den in den Einstellungen festgelegten Bot erwÀhnen (@ mention). Danach reicht es aus, auf einen seiner BeitrÀge zu antworten.
Um die verfĂŒgbaren Spiele aufzulisten, musst du zuerst den Bot erwĂ€hnen und folgendes fragen:
@meinbot Spiele auflisten
Dies gibt dir die Auswahlmöglichkeiten.
Um ein Spiel zu starten, tippe:
Spiel x starten und ersetze x durch die Optionsnummer.
Wenn du zu einem anderen Spiel wechseln möchtest, kannst du dies tun; das Plugin speichert deinen Fortschritt bei jedem Zug, sodass du jederzeit zur ersten Story zurĂŒckkehren kannst. Das Plugin fĂŒhrt fĂŒr jede Story und jeden Benutzer, der es ausprobiert, eine separate Speicherung durch.
Um ein bestehendes Spiel fortzusetzen, tippe:
Spiel x fortsetzen und ersetze x durch die Optionsnummer.
NB: Ein vollstÀndiger Neuaufbau zerstört alle Speicherdaten. Dies ist ein notwendiger Kompromiss.
Wie spiele ich ein IF-Spiel?
Viele âMeta-Nutzer" sind mit diesen Dingen aufgewachsen. FĂŒr diejenigen, die weniger vertraut sind, schau dir diese Spickzettel an: Play Some Interactive Fiction
Setup
Bot-Benutzer erstellen
(Entschuldigung, die Automatisierung davon steht auf meiner Liste!)
Gib in einer SSH-Sitzung deinen Container und die Rails-Konsole ein:
./launcher enter app
rails c
FĂŒhre dann Folgendes aus:
u = User.create!(username: "Frotz", name: "FrotzBot", id:-5, email: "not@really.valid")
u.activate
Dein neuer Bot ist dann in der BenutzeroberflĂ€che verfĂŒgbar. Gehe ĂŒber den Admin-Button zu den Einstellungen des Benutzers in der UI und schalte alle E-Mails aus. Passe das Avatar nach Belieben an.
Discourse Frotz installieren
Deine app.yml aktualisieren
Dies ist etwas invasiver als ein ĂŒbliches Plugin.
FĂŒge dies zu app.yml hinzu:
hooks:
after_code:
- exec:
cd: $home
cmd:
- git clone https://gitlab.com/DavidGriffith/frotz
- exec:
cd: $home/frotz
cmd:
- make dfrotz
- exec:
cd: $home/frotz
cmd:
- mkdir savegames
- exec:
cd: $home/frotz
cmd:
- mkdir stories
- exec:
cd: $home/frotz/stories
cmd:
- wget -O zork1.z3 https://eblong.com/infocom/gamefiles/zork1-r119-s880429.z3
- exec:
cd: $home/frotz/stories
cmd:
- wget --no-check-certificate http://www.douglasadams.com/creations/hhgg.z3
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/merefield/discourse-frotz
vor deinen anderen Plugin-EintrÀgen.
Du musst nun auch das Discourse BBCode-Plugin hinzufĂŒgen!!
Baue mit dem ĂŒblichen ./launcher rebuild app neu auf.
Gehe nun zu den Plugin-Einstellungen und wĂ€hle den zuvor hinzugefĂŒgten Bot-Benutzer aus:

Geschichten
Du wirst feststellen, dass ich ein paar Geschichten hinzugefĂŒgt habe. Weitere findest du unter https://ifdb.tads.org/.
Aber beachte hier die Ratenbegrenzungen! Zu viele Geschichten von derselben Quelle zu erhalten, kann einen Fehler verursachen.
Beachte auch, dass die Geschichten nicht auf https-geschĂŒtzten Servern liegen (tut tut).
Wenn du darauf bestehst, weitere zu laden, fĂŒge sie zu app.yml hinzu. Du könntest sie auch manuell ĂŒber die Eingabeaufforderung hinzufĂŒgen, aber beachte, dass diese beim nĂ€chsten vollstĂ€ndigen Neuaufbau gelöscht werden.
FrotzBot fĂŒr private Nachrichten aktivieren (Vorsicht geboten)
Ermöglicht Benutzern das private Spielen, aber die Nutzung ist weniger transparent. Wenn du einen ausreichend groĂen Server hast, ist dies möglicherweise kein Problem fĂŒr dich. In jedem Fall sei dir der Einfluss auf die KapazitĂ€t bewusst. Als Alternative kannst du Benutzer ermutigen, in einer ausgewiesenen Kategorie zu spielen.

Standard: AUS
Wenn (er/sie) dort nicht aktiviert ist, erhÀlt der Benutzer eine höfliche Meldung:
FrotzBot nach Kategorie einschrÀnken
Du kannst den Bot auf eine (Liste von) Kategorie(n) beschrĂ€nken, um andere Bereiche nicht zu fĂŒllen:
TastenkĂŒrzel!
Dies ist wirklich wichtig, um das âGaming"-Erlebnis zu verbessern. Und du musst wirklich nur zwei merken:
-
Shift-R, um dem Bot zu antworten
-
Ctrl-Enter, um deinen nÀchsten Zug einzureichen
EinschrĂ€nkungen und Ăberlegungen
Nicht alle Story-Formate und Spiele werden unterstĂŒtzt, und es ist auch unwahrscheinlich, dass sie es jemals sein werden. Es gibt viele Spiele, die nicht funktionieren, weil sie Art und Weise ihrer Anruf- und Antwortprotokolle. Aufgrund der Art und Weise, wie wir postweise interagieren, mĂŒssen wir Frotz nach jedem Zug auffordern, den Zustand zu speichern. Wenn ein Schritt des Spiels nicht zu einer Eingabeaufforderung fĂŒhrt, bei der das System speichern kann (wobei âDrĂŒcke eine beliebige Taste" oder âMehr"-Aufforderungen ignoriert werden, die behandelt werden sollten), funktioniert die Story nicht. Zum Beispiel: In âAct of Murder" (ein groĂartiges Spiel!) fragt die Dame an der TĂŒr, ob du ein Polizist bist. Leider ist dies ein Spielzustand, der nicht gespeichert werden kann, was diese Anforderung nicht erfĂŒllt, und ich sehe keinen Weg, dies zum Laufen zu bringen.
NB: Der Mailinglisten-Modus ist mit diesem ein Desaster, also stelle sicher, dass du dies nicht verwendest, bevor du versuchst, dieses Plugin zu nutzen!
Es ist wohl etwas verschwenderisch mit Forum-Ressourcen, da fĂŒr jeden âZug" mindestens zwei BeitrĂ€ge erforderlich sind. Offensichtlich ist es oft angemessener, solche Spiele ĂŒber eine Chat-Schnittstelle statt ĂŒber ein Forum zu spielen, aber man könnte argumentieren, dass dies zur Erstellung von Walkthroughs genutzt werden könnte? ![]()
FĂŒr eine weniger invasive Lösung betrachte: Turning a topic into interactive fiction ;)
Feedback
Alle RĂŒckmeldungen sind willkommen!
Credits
Dieses Plugin nutzt David Griffith / frotz · GitLab, den Frotz Z-Interpreter, der vom Setup-Skript geklont und âgebaut" wird.
Danke an @P16, der mir erlaubt hat, Code-AuszĂŒge aus einem Closed-Source-Chatbot zu verwenden, an dem wir gemeinsam gearbeitet haben.









