Z powodu zmian w sposobie działania Medium, nie będę już prowadził tego bloga. Mój nowy blog można znaleźć pod adresem https://www.resonantdrifter.com, a bezpośredni link do tego artykułu pod adresem https://www.resonantdrifter.com/blog/ankhbot-%E2%80%94-creating-an-almost-completely-autonomous-user-created-custom-welcome-message-program/
Z powodu fuzji Ankhbota ze Streamlabs, ten artykuł jest już nieco nieaktualny, więc stworzyłem nowy! Proszę przejść do trafnie nazwanego „Streamlabs Chatbot – Tworzenie (prawie) autonomicznego, stworzonego przez użytkownika programu wiadomości powitalnych”!
Jakiś czas temu zdecydowałem się dać moim zwolennikom Twitcha, których nazywam Drifterami, sposób na stworzenie ich własnej wiadomości powitalnej, która za niewielką sumę waluty (zwaną zaopatrzeniem w moim kanale) przywita ich, gdy wejdą na czat. To pozwoliłoby im wydać część tych zapasów na coś innego niż zasadzki (wersja heistów na moim kanale) i sprawić, że społeczność poczułaby się trochę bardziej jak ich własna. Oczywiście, doprowadziło to również do pomysłu, aby mogli oni tworzyć wiadomości powitalne dla innych użytkowników – zabawny sposób, aby zwolennicy mogli zadzierać z innymi zwolennikami. Na szczęście Ankhbot posiada możliwość tworzenia wiadomości powitalnych (między innymi) dla określonych użytkowników wchodzących na Twój kanał.
Od razu wprowadziłem ten plan w życie i odniosłem sukces, ponieważ mogłem użyć parametru $removepoints(), aby odebrać im Supplies, a oni szeptali mi wiadomość, którą chcieli, aby była ich wiadomość powitalna lub nazwę użytkownika i wiadomość innego Driftera. Jednakże, wkrótce po tym przełomie (w moim umyśle), zdałem sobie sprawę, że byłoby prawie niemożliwe dla mnie, aby nadążyć za ich potrzebami w sposób konsekwentny, bez wielokrotnego przerywania gry. To doprowadziło mnie do poszukiwania sposobu na stworzenie całkowicie autonomicznego sposobu dla użytkowników na tworzenie i zmienianie wiadomości powitalnych według własnego uznania.
Będę z Tobą szczery: nie jest możliwe stworzenie całkowicie autonomicznej, stworzonej przez użytkownika wiadomości powitalnej w Ankhbocie. Marcin Świerzowski na Twitterze potwierdził, że mój pomysł po prostu nie jest w stanie zaowocować.
John Paul @resonantdrifter
Prawie. Potrzebujesz sposobu, aby automatycznie ustawić On Join Event na użytkownika, aby automatycznie odczytywał jego specyficzny $user.txt… #ankhbot@AnkhHeart
Ankh Heart @AnkhHeart
@resonantdrifter To nie jest możliwe. Będziesz musiał ręcznie tworzyć zdarzenia dołączenia ręcznie.
Jednakże mój upór trwał i wpadłem na sposób, który pozwoliłby użytkownikowi na tworzenie i zmienianie ich (i innych) własnych wiadomości powitalnych do woli z BARDZO MAŁĄ INICJATYWNĄ konfiguracją. Poniżej jest jak stworzyłem (prawie) całkowicie autonomiczną niestandardową wiadomość powitalną stworzoną przez użytkownika!
Przede wszystkim, najbardziej intensywną częścią tej konfiguracji (szczególnie jeśli masz już dużo zwolenników lub dostajesz dużo zwolenników codziennie) jest ustawienie listy zdarzeń dołączenia. Lista Zdarzeń Przyłączenia to miejsce, w którym mówisz Ankhbotowi, co ma robić, gdy określony użytkownik wejdzie na czat. To niestety nie może być zautomatyzowane i właśnie tam zawiesiłem się na moim wielkim planie. Naprawdę chciałem, aby Ankhbot automatycznie skompilował tę listę z moich obecnych naśladowców, ale automatyzacja tego systemu nie jest możliwa, więc będziesz musiał ręcznie wprowadzać wpisy dla każdego naśladowcy. Na szczęście musisz to zrobić tylko raz dla każdego followera. Potem każda wiadomość będzie się automatycznie aktualizować sama.
W systemie On Join Event będziesz musiał stworzyć wpis dla każdego z followersów łącząc go z dokumentem .txt, który będzie wyświetlał ich komendy po wejściu na czat.
Po pierwsze, stwórz folder, w którym będziesz przechowywał wszystkie dokumenty .txt, które Ankhbot będzie tworzył. Pamiętaj, że choć będą one małe (rozmiarowo), to powstanie ich wiele (zakładając, że zdobędziesz dużo followersów). Kiedy to zrobisz, wróć do Ankhbota i stwórz komendę dla każdego z Twoich wyznawców w następujący sposób (podpowiedź: wszystko pozostaje bez zmian z wyjątkiem slotu Info):
- UserGroup: Keep this „User_Specific”
- Info: individual follower username
- Client Only: „False” (True oznacza, że tylko użytkownik będzie mógł to zobaczyć)
- Enabled: „True” (False oczywiście wyłączy to dla tego użytkownika)
- Vol: Ustaw na taki poziom, jaki jest wygodny dla Ciebie i Twoich widzów
- Message: $readline(C:\u0026apos;)
Przyjrzyjmy się bliżej slotowi „Message”:
$readline(C:\u0026apos;)
Parametr $readline() po prostu czyta pierwszą linię w dokumencie tekstowym, na który go wskażemy. Miejsce docelowe jest umieszczane wewnątrz nawiasów. Jest to ważna część: nazwanie dokumentu tekstowego $user.txt pozwala Ankhbotowi na wyszukiwanie dokumentu .txt oznaczonego imieniem i nazwiskiem użytkownika (o tym będzie mowa w dalszej części tego dokumentu).
Jak już wprowadzimy wszystkich aktualnych followersów to kończymy. Jednak, gdy zdobędziemy więcej followersów, musimy stworzyć nowy wpis dla każdego z nich. To jest najwięcej pracy, którą będziemy musieli wykonać w tym prawie autonomicznym systemie.
KOMENDA POWITALNA
Teraz, gdy mamy już podstawową konfigurację, stwórzmy komendy, które pozwolą użytkownikom ustawić i zmienić ich wiadomość powitalną. Abyśmy byli na tej samej stronie, moja komenda dla zwolenników, aby utworzyć własną wiadomość powitalną to !buywelcome, a walutą w moim kanale jest supplies.
!BUYWELCOME
Aby to zadziałało musisz najpierw stworzyć dokument .txt z dwoma parametrami wewnątrz: $removepoints(„target”, „min”, „max”, „succeed”, „fail”, „forceremove”) i $overwritefile(„FileLocation”, „Text”). Nazwałam mój dokument buywelcome.txt i wypełniłam go w następujący sposób:
$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:\”$user.txt”,”$user: $msg”)
Pierwszy parametr – $removepoints() – robi dokładnie to, co mówi i usuwa punkty (lub walutę) z użytkownika, który wprowadza komendę. W tym przypadku usuwa 100 Supplies (jeśli użytkownik ma ich wystarczająco dużo) i zwraca wiadomość zarówno jeśli ma jak i nie ma wystarczającej ilości Supplies. Przyjrzyjmy się temu bliżej:
- „$user” – łączy parametr $removepoints() z użytkownikiem wprowadzającym komendę
- „min”, „max” – w moim parametrze ustawia minimalną i maksymalną wypłatę na 100 zaopatrzenia każda, aby się nie zmieniała
- „succeed” – „$value supplies bla bla bla '$msg'” bierze jakąkolwiek ilość usuniętej waluty (100) i wyświetla ją w wiadomości in-chat wraz z komunikatem o sukcesie. Parametr $msg ponownie wydrukuje wiadomość, jaką użytkownik ustawił, aby mógł ją zobaczyć. Dołączyłem to, aby wiedzieli, że się zmieniło.
- „fail” – „You do no blah blah” jest wiadomością, jeśli użytkownik nie ma 100 zapasów (lubią hazard)
- „forceremove” – „false” pozwala użytkownikom nie być w stanie kupić, jeśli nie mają wystarczająco dużo zapasów. Ustawienie tego na „True” pozwoliłoby na przejście do ujemnej waluty.
Drugi parametr pozwala nam na zapisanie wiadomości w dokumencie .txt oznaczonym jako nazwa użytkownika ($user.txt) za pomocą parametru $overwritefile(„FileLocation”, „Text”).
Zanim się za to zabierzemy, chcę coś wyjaśnić. Pamiętasz, kiedy tworzyliśmy listę zdarzeń dołączenia? Stworzyliśmy folder do przechowywania wszystkich plików .txt użytkowników, ale nie stworzyliśmy żadnych rzeczywistych plików tekstowych. Dlaczego? To zapewnia, że gdy użytkownik, który nie wpisał nic jako wiadomość powitalną, nie otrzyma jej, gdy dołączy do czatu. Przyjrzyjmy się bliżej:
- $overwritefile(„FileLocation”) – używając $overwritefile zamiast $savetofile, użytkownik może zmienić tę wiadomość kiedy tylko chce.
- „text” – „$user: $msg” te dwa parametry zapisują nazwę użytkownika i wiadomość, którą wpisał, aby wydrukować je później na ekranie.
W rzeczywistej komendzie !buywelcome po prostu umieszczasz $readline(FileLocation) i kierujesz ją w stronę dokumentu, który stworzyłeś (w moim przypadku, buywelcome.txt). To wszystko, co musisz zrobić, aby to zadziałało.
!BUYOTHERWELCOME
Aby stworzyć zabawne i nieco konkurencyjne doświadczenie, chciałem pozwolić moim zwolennikom na tworzenie wiadomości powitalnych dla innych użytkowników. Wiedziałem, że będzie to bardzo podobne do komendy !buywelcome, ale będzie miało swoje własne przeszkody, ponieważ to jeden użytkownik tworzy wiadomość dla drugiego. Oto jak to skonfigurowałem:
Podobnie jak w poprzedniej komendzie, tworzysz dokument .txt z parametrami $removepoints(„target”, „min”, „max”, „succeed”, „fail”, „forceremove”) i $overwritefile(„FileLocation”, „Text”) w nim. W przeciwieństwie do poprzedniej komendy, będziesz musiał ją nieco inaczej skonfigurować, aby działała. Oto jak wygląda moje:
$removepoints(„$user”, „100”, „100”,”$value zaopatrzenie zostało usunięte z twojego ekwipunku, a wiadomość powitalna $target została zmieniona na '$msg'”, „Nie masz wystarczającej ilości zaopatrzenia w swoim ekwipunku!”, „false”) $overwritefile(„C:\Users\JohninMotion\Documents\Ankhbot\user\$target.txt”,”$msg”)
Pierwszy parametr – $removepoints() – robi dokładnie to, co mówi i usuwa punkty (lub walutę) z użytkownika, który wprowadza komendę. W tym przypadku usuwa 100 Supplies (jeśli użytkownik ma ich wystarczająco dużo) i zwraca wiadomość zarówno jeśli ma jak i nie ma wystarczającej ilości Supplies. Różnica polega na tym, że wpisuje cel dla wiadomości. Przyjrzyjmy się temu bliżej:
- „$user” – łączy parametr $removepoints() z użytkownikiem wpisującym komendę
- „min”, „max” – w moim parametrze ustawia minimalną i maksymalną wypłatę na 100 zaopatrzenia każda, aby się nie zmieniała
- „succeed” – „$value supplies blah blah $target blah '$msg'” bierze jakąkolwiek kwotę z waluty (100) i wyświetla ją w wiadomości in-chat wraz z wiadomością o sukcesie. Parametr $target powie systemowi, do kogo ma trafić wiadomość. Parametr $msg ponownie wydrukuje wiadomość, jaką użytkownik ustawił, aby mógł ją zobaczyć. Dołączyłem to, aby wiedzieli, że się zmieniło.
- „fail” – „You do no blah blah” jest wiadomością, jeśli użytkownik nie ma 100 zapasów (znowu, oni lubią grać)
- „forceremove” – „false” pozwala użytkownikom nie być w stanie kupować, jeśli nie mają wystarczającej ilości zapasów. Ustawienie tego na „True” pozwoliłoby na przejście do ujemnej waluty.
Drugi parametr pozwala nam na zapisanie wiadomości w dokumencie .txt oznaczonym tym razem jako nazwa celu ($target.txt) za pomocą parametru $overwritefile(„FileLocation”, „Text”). Przyjrzyjmy się bliżej:
- $overwritefile(„FileLocation”) – używając $overwritefile zamiast $savetofile użytkownik może zmienić tę wiadomość kiedy tylko chce.
- „text” – „$target: $msg” te dwa parametry zapisują nazwę użytkownika celu i wiadomość, którą wpisał, aby wydrukować je później na ekranie.
W rzeczywistej komendzie !buyotherwelcome po prostu umieszczasz $readline(FileLocation) i kierujesz ją w stronę dokumentu, który stworzyłeś (w moim przypadku, buyotherwelcome.txt). I to jest wszystko, co musisz zrobić, aby to zadziałało.
!MYWELCOME
Finally, I wanted a way for my followers to see their message even if it was after they had entered chat if only for the sheer fact they want to be able to see that it did work. Jest to bardzo prosta rzecz do skonfigurowania. Oto jak:
Utwórz komendę, w moim przypadku jest to !mywelcome, i umieść wewnątrz niej parametr $readrandline(FileLocation). Wewnątrz po prostu kierujesz ją do folderu, w którym znajdują się wszystkie wiadomości powitalne użytkowników (u mnie) z $user.txt na końcu. Na przykład, moje wyglądają następująco:
$readrandline(C:\Users\JoinMotion\Documents\Ankhbot\users\$user.txt)
To wszystko. Teraz, gdy użytkownik wpisze komendę !mywelcome, zobaczy swoją własną wiadomość powitalną.
TE SELF-SUFFICIENT MACHINE
Podążając ścieżką wytyczoną powyżej, będziesz w stanie stworzyć swoją własną (prawie) całkowicie autonomiczną, stworzoną przez użytkownika wiadomość powitalną. Być może kiedyś w przyszłości, jeśli Marcin zdecyduje się kontynuować ulepszanie Ankhbota, będziemy w stanie stworzyć naprawdę całkowicie autonomiczny system. Do tego czasu, dla wszystkich intensywnych celów, to będzie musiało wystarczyć na teraz.