A Medium működésében bekövetkezett változások miatt nem fogom tovább fenntartani ezt a blogot. Az új blogomat a https://www.resonantdrifter.com címen találod, és egy közvetlen linket erre a cikkre a https://www.resonantdrifter.com/blog/ankhbot-%E2%80%94-creating-an-almost-completely-autonomous-user-created-custom-welcome-message-program/
Az Ankhbot és a Streamlabs egyesülése miatt ez a cikk kissé elavult, ezért készítettem egy újat! Kérlek, látogass el a találóan elnevezett “Streamlabs Chatbot – Egy (majdnem) autonóm, felhasználó által létrehozott egyéni üdvözlő üzenetprogram létrehozása!”
Egy ideje úgy döntöttem, hogy megadom a Twitch követőimnek, akiket Driftereknek hívok, a lehetőséget, hogy létrehozzák saját üdvözlő üzenetüket, amely egy kis pénzösszegért (az én csatornámon ellátmánynak hívják) üdvözölné őket, amikor belépnek a chatbe. Ez lehetővé tenné számukra, hogy a készletek egy részét a rajtaütéseken kívül másra is elköltsék (a csatornámon a rablások változata), és a közösséget egy kicsit jobban a sajátjuknak érezzék. Természetesen ez vezetett ahhoz az ötlethez is, hogy üdvözlő üzenetet készíthessenek más felhasználóknak – egy szórakoztató módja annak, hogy a követők szórakozhassanak más követőkkel. Szerencsére az Ankhbot tartalmazott egy lehetőséget arra, hogy az üdvözlő üzenetek (többek között) akkor kerüljenek bele, amikor bizonyos felhasználók belépnek a csatornádba.
Ezt a tervet azonnal mozgásba hoztam, és sikerrel jártam, mivel a $removepoints() paraméterrel el tudtam venni tőlük a Supplies-t, és ők megsúgták nekem, hogy milyen üzenetet szeretnének az üdvözlő üzenetüknek, vagy a másik Drifter felhasználónevét és üzenetét. Azonban nem sokkal az áttörés után (az én fejemben) rájöttem, hogy szinte lehetetlen lenne számomra, hogy folyamatosan lépést tartsak az igényükkel anélkül, hogy ismételten megszakítanám a játékmenetet. Ez vezetett arra az útra, hogy keressem a módját annak, hogy a felhasználók számára teljesen autonóm módon létrehozhassam és megváltoztathassam az üdvözlő üzenetüket tetszés szerint.
Őszinte leszek veled: az Ankhbotban nem lehetséges teljesen autonóm, a felhasználó által létrehozott egyéni üdvözlő üzenetet létrehozni. A Twitteren lefuttatva az ötletemet Marcin Swierzowski mellett, megerősítette, hogy az ötletem egyszerűen nem képes gyümölcsöt hozni.
John Paul @resonantdrifter
Majdnem. Kell egy mód arra, hogy az On Join eseményt felhasználónként automatikusan úgy állítsuk be, hogy az adott $user.txt-t automatikusan olvassa… #ankhbot@AnkhHeart
Ankh Heart @AnkhHeart
@resonantdrifter Ez nem lehetséges. Manuálisan kell létrehoznod az On Join eseményeket kézzel.
Mégis, a makacsságom kitartott, és rábukkantam egy olyan módszerre, amely lehetővé teszi a felhasználó számára, hogy létrehozza és megváltoztassa a saját (és mások) saját egyéni üdvözlő üzenetét tetszés szerint, NAGYON KIS ELSŐ BEÁLLÍTÁS mellett. Az alábbiakban bemutatom, hogyan hoztam létre a (Majdnem) teljesen önállóan a felhasználó által létrehozott egyéni üdvözlő üzenetet!
Először is, ennek a beállításnak a legintenzívebb része (különösen, ha már sok követőd van, vagy naponta sok követőt kapsz) az On Join Event lista beállítása. Az On Join Event listában mondod meg az Ankhbotnak, hogy mit akarsz, mit tegyen, amikor egy adott felhasználó belép a chatbe. Ezt sajnos nem lehet automatizálni, és ez volt az a pont, ahol elakadtam a nagy tervemben. Nagyon szerettem volna, ha az Ankhbot automatikusan összeállítja ezt a listát a jelenlegi követőimből, de ennek a rendszernek az automatizálása egyszerűen nem lehetséges, így kézzel kell megadnod egy bejegyzést minden egyes követődnek. Szerencsére ezt követőnként csak egyszer kell megtenned. Ezután minden üzenet automatikusan frissül magától.
Egy szórakoztató és kissé versengő élmény létrehozása érdekében szerettem volna lehetővé tenni, hogy a követőim üdvözlő üzeneteket készíthessenek más felhasználók számára. Tudtam, hogy ez nagyon hasonlít majd a !buywelcome parancsra, de saját akadályokat fog jelenteni, mivel egy felhasználó készít üzenetet egy másiknak. Így állítottam ezt be:
Az előző parancshoz hasonlóan létrehoz egy .txt dokumentumot a $removepoints(“target”, “min”, “max”, “succeed”, “fail”, “forceremove”) és a $overwritefile(“FileLocation”, “Text”) paraméterekkel benne. Az előző paranccsal ellentétben kissé másképp kell beállítanod, hogy működjön. Az enyém így néz ki:
$removepoints(“$user”, “100”, “100”, “100”,”$value készletek eltávolításra kerültek a leltárból és $target üdvözlő üzenete ‘$msg’-re változott”, “Nincs elég készlet a leltárban!”, “false”) $overwritefile(“C:\Users\JohninMotion\Documents\Ankhbot\user\$target.txt”,”$msg”)
Az első paraméter – $removepoints() – pontosan azt teszi, amit mond, és pontokat (vagy valutát) vesz el a parancsot beadó felhasználótól. Ebben az esetben 100 készletet távolít el (ha a felhasználónak van elég), és egy üzenetet ad vissza, ha van vagy nincs elég készlete. A különbség az, hogy megadja az üzenet célját. Nézzük meg közelebbről:
- “$user” – a $removepoints() paramétert a parancsot beíró felhasználóhoz kapcsolja
- “min”, “max” – az én paraméteremben a minimális és maximális kifizetést egyenként 100 készletre állítja be, így nem változik
- “succeed” – “$value supplies blah blah $target blah ‘$msg'” a valutából eltávolított összeget (100) veszi és megjeleníti a chat üzenetben a sikerüzenettel együtt. A $target megmondja a rendszernek, hogy kinek szeretné az üzenetet küldeni. A $msg paraméter újra kiírja a felhasználó által beállított üzenetet, hogy a felhasználó láthassa. Ezt azért tettem bele, hogy tudják, hogy megváltozott.
- “fail” – “You do no blah blah” az üzenet, ha a felhasználónak nincs 100 készlete (megint szeretnek játszani)
- “forceremove” – “false” lehetővé teszi, hogy a felhasználók ne tudjanak vásárolni, ha nincs elég készletük. Ennek “True”-ra állítása lehetővé tenné, hogy negatív valutába kerüljön.
A második paraméter lehetővé teszi, hogy az üzenetet egy .txt dokumentumban tároljuk, amely ezúttal a célpont nevével van felcímkézve ($target.txt), a $overwritefile(“FileLocation”, “Text”) paraméter használatával. Nézzük meg közelebbről:
- $overwritefile(“FileLocation”) – a $savetofile helyett a $overwritefile használatával a felhasználó bármikor megváltoztathatja ezt az üzenetet.
- “text” – “$target: $msg” ez a két paraméter elmenti a célszemély felhasználónevét és az általa begépelt üzenetet, hogy később mindkettőt kiírja a képernyőre.
A tényleges !buyotherwelcome parancsban egyszerűen a $readline(FileLocation) parancsot kell beírni, és a létrehozott dokumentumra (esetemben a buyotherwelcome.txt-re) mutatni. És ez minden, amit tenned kell ahhoz, hogy ez működjön.
!MYWELCOME
Végezetül szerettem volna, ha a követőim akkor is láthatják az üzenetüket, ha az már a chatbe való belépés után történt, már csak azért is, mert látni akarják, hogy valóban működött. Ez egy nagyon egyszerűen beállítható dolog. Íme, hogyan:
Készíts egy parancsot, az én esetemben ez a !mywelcome, és tedd bele a $readrandline(FileLocation) paramétert. Ezen belül egyszerűen mutass rá arra a mappára, amelyben az összes felhasználói üdvözlő üzenet található (nálam \user\), a $user.txt végével. Az enyém például így néz ki:
$readrandline(C:\Users\JoininMotion\Documents\Ankhbot\users\$user.txt)
Ez az. Mostantól, amikor egy felhasználó beírja a !mywelcome parancsot, a saját üdvözlő üzenetét fogja látni.
Az önműködő gép
A fent beállított útvonalat követve képes leszel létrehozni a saját (majdnem) teljesen önálló, a felhasználó által létrehozott egyéni üdvözlő üzenetet. Talán egy napon a jövőben, ha Marcin úgy dönt, hogy folytatja az Ankhbot fejlesztését, képesek leszünk egy valóban teljesen autonóm rendszert létrehozni. Addig is, minden intenzív célra egyelőre ennek is meg kell felelnie.