Aufgrund von Änderungen in der Funktionsweise von Medium werde ich diesen Blog nicht mehr weiterführen. Sie finden meinen neuen Blog unter https://www.resonantdrifter.com und einen direkten Link zu diesem Artikel unter https://www.resonantdrifter.com/blog/ankhbot-%E2%80%94-creating-an-almost-completely-autonomous-user-created-custom-welcome-message-program/
Aufgrund der Fusion von Ankhbot mit Streamlabs ist dieser Artikel nun etwas veraltet, so dass ich einen neuen erstellt habe! Schauen Sie sich bitte den Artikel „Streamlabs Chatbot – Erstellen eines (fast) autonomen, benutzerdefinierten Begrüßungsprogramms“ an!
Vor einiger Zeit beschloss ich, meinen Twitch-Followern, die ich Drifter nenne, eine Möglichkeit zu geben, ihre eigene Begrüßungsnachricht zu erstellen, die sie gegen eine kleine Geldsumme (in meinem Kanal „Vorräte“ genannt) begrüßen würde, wenn sie den Chat betreten. So könnten sie einen Teil dieser Vorräte für etwas anderes als für Überfälle (die Version von Raubüberfällen in meinem Kanal) ausgeben und die Gemeinschaft würde sich ein wenig mehr wie die ihre anfühlen. Natürlich führte dies auch zu der Idee, dass sie eine Willkommensnachricht für andere Benutzer erstellen könnten – eine lustige Möglichkeit für Follower, sich mit anderen Follower anzulegen. Glücklicherweise hat Ankhbot eine Möglichkeit eingebaut, Begrüßungsnachrichten (neben anderen Dingen) einzubauen, wenn bestimmte Nutzer den Kanal betreten.
Ich setzte diesen Plan sofort in die Tat um, und es war ein Erfolg, da ich den Parameter $removepoints() verwenden konnte, um ihnen Supplies zu entziehen, und sie mir die Nachricht zuflüsterten, die sie als Begrüßungsnachricht haben wollten, oder den Benutzernamen und die Nachricht des anderen Drifters. Doch schon bald nach diesem Durchbruch (in meinem Kopf) wurde mir klar, dass es für mich nahezu unmöglich sein würde, ihren Bedürfnissen auf beständige Weise nachzukommen, ohne das Spiel wiederholt zu unterbrechen. Das brachte mich auf die Suche nach einer Möglichkeit, eine völlig autonome Möglichkeit für Benutzer zu schaffen, ihre Willkommensnachrichten nach Belieben zu erstellen und zu ändern.
Ich will ganz offen sein: es ist nicht möglich, eine völlig autonome, benutzerdefinierte Willkommensnachricht in Ankhbot zu erstellen. Als ich meine Idee bei Marcin Swierzowski auf Twitter vorstellte, bestätigte er mir, dass meine Idee einfach keine Früchte tragen kann.
John Paul @resonantdrifter
Vielleicht. Ich brauche eine Möglichkeit, das On Join Event für jeden Benutzer automatisch so zu setzen, dass seine spezifische $user.txt automatisch gelesen wird… #ankhbot@AnkhHeart
Ankh Heart @AnkhHeart
@resonantdrifter Das ist nicht möglich. Man muss die On Join Events manuell erstellen.
Allerdings blieb ich hartnäckig und fand einen Weg, der es dem Benutzer erlaubt, seine (und andere) eigene Begrüßungsnachricht nach Belieben zu erstellen und zu ändern, und das mit SEHR WENIG ANFANGSEINRICHTUNG. Im Folgenden beschreibe ich, wie ich die (fast) völlig autonome benutzerdefinierte Willkommensnachricht erstellt habe!
Zuallererst ist der intensivste Teil dieser Einrichtung (vor allem, wenn Sie bereits viele Follower haben oder täglich viele Follower bekommen) die Einrichtung der Liste „On Join Event“. In der On Join Event-Liste teilen Sie Ankhbot mit, was er tun soll, wenn ein bestimmter Benutzer den Chat betritt. Dies kann leider nicht automatisiert werden und das war der Punkt, an dem ich bei meinem großen Plan hängen geblieben bin. Ich wollte eigentlich, dass Ankhbot diese Liste automatisch aus meinen aktuellen Followern zusammenstellt, aber die Automatisierung dieses Systems ist einfach nicht möglich, so dass Sie für jeden Follower einen Eintrag von Hand vornehmen müssen. Glücklicherweise müssen Sie dies nur einmal pro Follower tun. Danach wird jede Nachricht automatisch aktualisiert.
Im „On Join Event“-System müssen Sie für jeden Ihrer Follower einen Eintrag erstellen und ihn mit einem .txt-Dokument verlinkt, das beim Betreten des Chats den entsprechenden Befehl anzeigt.
Erstelle zunächst einen Ordner, in dem du alle .txt-Dokumente, die Ankhbot erstellen wird, speichern möchtest. Denken Sie daran, dass die Dateien zwar klein sind, aber sehr viele erstellt werden (vorausgesetzt, Sie haben viele Follower). Sobald dies erledigt ist, gehen Sie zurück zu Ankhbot und erstellen Sie einen Befehl für jeden Ihrer Follower wie folgt (Hinweis: alles bleibt gleich, außer dem Info-Slot):
- UserGroup: Keep this „User_Specific“
- Info: individual follower username
- Client Only: „False“ (True bedeutet, dass nur der Benutzer es sehen kann)
- Enabled: „True“ (False schaltet es natürlich für den Benutzer aus)
- Vol: Stellen Sie die Stufe ein, die für Sie und Ihre Zuschauer angenehm ist
- Nachricht: $readline(C:\Benutzer\$Benutzer.txt)
Werfen wir einen genaueren Blick auf den „Message“-Slot:
$readline(C:\Benutzer\$Benutzer.txt)
Der Parameter $readline() liest einfach die erste Zeile des Textdokuments, auf das Sie ihn zeigen. Das Ziel wird in die Klammern gesetzt. Dies ist ein wichtiger Teil: Die Benennung des Textdokuments $user.txt ermöglicht es Ankhbot, nach einem .txt-Dokument zu suchen, das mit dem Namen des Benutzers beschriftet ist (der Kreis wird sich weiter unten in diesem Dokument schließen).
Wenn wir alle aktuellen Follower eingegeben haben, sind wir fertig. Wenn wir jedoch mehr Follower bekommen, müssen wir für jeden von ihnen einen neuen Eintrag erstellen. Das ist die meiste Arbeit, die wir in diesem fast autonomen System zu tun haben.
CHAT-Befehle
Nun, da wir den Kern eingerichtet haben, können wir die Befehle erstellen, mit denen die Benutzer ihre Begrüßungsnachricht einstellen und ändern können. Damit wir auf derselben Seite sind, lautet mein Befehl, mit dem die Follower ihre eigene Willkommensnachricht erstellen können, !buywelcome und die Währung in meinem Kanal ist Vorräte.
!BUYWELCOME
Um dies zum Laufen zu bringen, musst du zuerst ein .txt-Dokument mit zwei Parametern darin erstellen: $removepoints(„target“, „min“, „max“, „succeed“, „fail“, „forceremove“) und $overwritefile(„FileLocation“, „Text“). Ich habe mein Dokument buywelcome.txt genannt und es folgendermaßen ausgefüllt:
$removepoints(„$user“, „100“, „100“,“$value supplies have been removed from your inventory and your welcome message has been changed to ‚$msg'“, „You do not have enough supplies in your inventory!“, „false“) $overwritefile(„C:\Ankhbot\user\$user.txt“,“$user: $msg“)
Der erste Parameter – $removepoints() – tut genau das, was er sagt und entfernt Punkte (oder Währung) von dem Benutzer, der den Befehl eingibt. In diesem Fall werden 100 Vorräte entfernt (falls der Benutzer genug hat) und eine Meldung zurückgegeben, ob der Benutzer genug Vorräte hat oder nicht. Schauen wir uns das mal genauer an:
- „$user“ – verbindet den Parameter $removepoints() mit dem Benutzer, der den Befehl eingibt
- „min“, „max“ – in meinem Parameter wird die minimale und maximale Auszahlung auf jeweils 100 Vorräte festgelegt, damit sie nicht variiert
- „succeed“ – „$value supplies blah blah blah ‚$msg'“ nimmt den Betrag, der aus der Währung entfernt wird (100) und zeigt ihn in der Chatmeldung zusammen mit der Erfolgsmeldung an. Der Parameter $msg gibt die vom Benutzer eingestellte Nachricht wieder, so dass der Benutzer sie sehen kann. Ich habe dies eingefügt, damit sie wissen, dass es sich geändert hat.
- „fail“ – „You do no blah blah“ ist die Nachricht, wenn der Benutzer nicht 100 Vorräte hat (sie spielen gerne)
- „forceremove“ – „false“ erlaubt es dem Benutzer, nicht zu kaufen, wenn er nicht genug Vorräte hat. Wenn man dies auf „True“ setzt, kann man in den negativen Bereich gehen.
Der zweite Parameter ermöglicht es uns, die Nachricht in einem .txt-Dokument mit dem Namen des Benutzers ($user.txt) zu speichern, indem wir den Parameter $overwritefile(„FileLocation“, „Text“) verwenden.
Bevor wir uns damit beschäftigen, möchte ich etwas erklären. Erinnern Sie sich, als wir die Liste „On Join Event“ erstellt haben? Wir haben einen Ordner erstellt, um alle .txt-Dateien der Benutzer zu speichern, aber wir haben keine echten Textdateien erstellt. Und warum? Dadurch wird sichergestellt, dass ein Benutzer, der keine Begrüßungsnachricht eingegeben hat, auch keine erhält, wenn er dem Chat beitritt. Schauen wir uns das mal genauer an:
- $overwritefile(„FileLocation“) – durch die Verwendung von $overwritefile anstelle von $savetofile kann der Benutzer diese Nachricht jederzeit ändern.
- „text“ – „$user: $msg“ diese beiden Parameter speichern den Benutzernamen des Benutzers und die Nachricht, die er eingegeben hat, um beides später auf dem Bildschirm auszugeben.
Im eigentlichen !buywelcome-Befehl setzt man einfach $readline(FileLocation) ein und zeigt auf das Dokument, das man erstellt hat (in meinem Fall die buywelcome.txt). Das ist alles, was Sie tun müssen, damit es funktioniert.
!BUYOTHERWELCOME
Um eine lustige und etwas wettbewerbsorientierte Erfahrung zu schaffen, wollte ich meinen Anhängern die Möglichkeit geben, Willkommensnachrichten für andere Benutzer zu erstellen. Ich wusste, dass dies dem !buywelcome-Befehl sehr ähnlich sein würde, aber es würde seine eigenen Hürden mit sich bringen, da es ein Benutzer ist, der eine Nachricht für einen anderen erstellt. So habe ich es eingerichtet:
Wie beim vorherigen Befehl erstellen Sie ein .txt-Dokument mit den Parametern $removepoints(„target“, „min“, „max“, „succeed“, „fail“, „forceremove“) und $overwritefile(„FileLocation“, „Text“). Im Gegensatz zum vorherigen Befehl müssen Sie ihn etwas anders einrichten, damit er funktioniert. So sieht meiner aus:
$removepoints(„$user“, „100“, „100“,“$value Vorräte wurden aus Ihrem Inventar entfernt und $target’s welcome message has been changed to ‚$msg'“, „Sie haben nicht genug Vorräte in Ihrem Inventar!“, „false“) $overwritefile(„C:\Users\JohninMotion\Documents\Ankhbot\user\$target.txt“,“$msg“)
Der erste Parameter – $removepoints() – tut genau das, was er sagt und entfernt Punkte (oder Währung) von dem Benutzer, der den Befehl eingibt. In diesem Fall werden 100 Vorräte entfernt (wenn der Benutzer genug hat) und eine Meldung zurückgegeben, ob der Benutzer genug Vorräte hat oder nicht. Der Unterschied besteht darin, dass er ein Ziel für die Nachricht eingibt. Schauen wir uns das mal genauer an:
- „$user“ – verbindet den Parameter $removepoints() mit dem Benutzer, der den Befehl eingibt
- „min“, „max“ – in meinem Parameter wird die minimale und maximale Auszahlung auf jeweils 100 Vorräte festgelegt, damit sie nicht variiert
- „succeed“ – „$value supplies blah blah $target blah ‚$msg'“ nimmt den Betrag, der aus der Währung entfernt wird (100) und zeigt ihn in der Chat-Nachricht zusammen mit der Erfolgsmeldung an. Mit $target wird dem System mitgeteilt, an wen die Nachricht gehen soll. Der Parameter $msg gibt die vom Benutzer eingestellte Nachricht wieder, so dass der Benutzer sie sehen kann. Ich habe dies eingefügt, damit sie wissen, dass es sich geändert hat.
- „fail“ – „You do no blah blah“ ist die Nachricht, wenn der Benutzer nicht 100 Vorräte hat (wieder, sie spielen gerne)
- „forceremove“ – „false“ erlaubt es dem Benutzer, nicht kaufen zu können, wenn er nicht genug Vorräte hat. Der zweite Parameter erlaubt es uns, die Nachricht in einem .txt-Dokument zu speichern, das diesmal den Namen des Ziels trägt ($target.txt), indem wir den Parameter $overwritefile(„FileLocation“, „Text“) verwenden. Schauen wir uns das mal genauer an:
- $overwritefile(„FileLocation“) – durch die Verwendung von $overwritefile anstelle von $savetofile kann der Benutzer diese Nachricht jederzeit ändern.
- „text“ – „$target: $msg“ diese beiden Parameter speichern den Benutzernamen des Ziels und die Nachricht, die sie eingegeben haben, um beides später auf dem Bildschirm auszugeben.
Im eigentlichen !buyotherwelcome-Befehl setzt man einfach $readline(FileLocation) ein und zeigt auf das Dokument, das man erstellt hat (in meinem Fall, die buyotherwelcome.txt). Und das ist alles, was Sie tun müssen, damit es funktioniert.
!MYWELCOME
Schließlich wollte ich meinen Followern die Möglichkeit geben, ihre Nachricht zu sehen, auch wenn sie den Chat bereits betreten hatten, und sei es nur, um zu sehen, dass sie funktioniert hat. Dies ist eine sehr einfache Sache, die man einrichten kann. So geht’s:
Erstelle einen Befehl, in meinem Fall !mywelcome, und füge darin den Parameter $readrandline(FileLocation) ein. Darin zeigen Sie einfach auf den Ordner, in dem alle Willkommensnachrichten des Benutzers gespeichert sind (in meinem Fall $user.txt). Meine sehen zum Beispiel so aus:
$readrandline(C:\Users\JoininMotion\Documents\Ankhbot\users\$user.txt)
Das war’s. Wenn nun ein Benutzer den Befehl !mywelcome eintippt, wird er seine eigene Willkommensnachricht sehen.
DIE SELBSTVERSTÄNDIGE MASCHINE
Wenn Sie dem oben beschriebenen Weg folgen, werden Sie in der Lage sein, Ihre eigene (fast) völlig autonome, benutzerdefinierte Willkommensnachricht zu erstellen. Vielleicht werden wir eines Tages in der Zukunft, wenn Marcin sich entscheidet, Ankhbot weiter zu verbessern, in der Lage sein, ein wirklich völlig autonomes System zu erstellen. Bis dahin muss dies für alle intensiven Zwecke erst einmal genügen.