Polfan.pl - forum dyskusyjne
Bot kci - ciekawe przypadki zachowania się - Wersja do druku

+- Polfan.pl - forum dyskusyjne (https://forum.polfan.pl)
+-- Dział: Polfan (https://forum.polfan.pl/forumdisplay.php?fid=5)
+--- Dział: Konsole, Boty i Narzędzia (https://forum.polfan.pl/forumdisplay.php?fid=14)
+--- Wątek: Bot kci - ciekawe przypadki zachowania się (/showthread.php?tid=558)



Bot kci - ciekawe przypadki zachowania się - MajorMajorMajorMajor - 22-02-2017

Zajawka tematu, który pojawi się wkrótce. Akurat nie mam czasu, by napisać coś więcej. Ale będzie, bo materiał badawczy mam.

Sprawa jest taka: postanowiłem w scrypcie bota dać jego reakcję na słowa-klucze. Reakcja polega na tym, że bot userowi przypisuje kolor z palety, którą ma.
W scrypcie jest napisane, że takich reakcji może być maksymalnie 32. Czyli 32 różne kolory nicka nadawane losowo.
W zapędzie dałem nawet 34 reakcje.
Teraz wybór sposobu: czy zwykła reakcja na słowa czy też wyrażenie regularne?
Reakcja na wyrażenie regularne jest dokładnie taka, jakie ono jest. Gdy wpiszę pojedyncze słowa, to owszem, reakcja jest na pojedyncze słowo, ale już na słowo użyte w zdaniu reakcji nie ma. Ale można mieszać reakcje na słowa z reakcjami na emoty. To działa, ale w ograniczonym zakresie.

SetTalkTable $name regexp.kolorlosowy $word ^(<luzak>|<zla>|tam|tu|nie|tak|wiem|on|ty|ja|<len>|<lol11>|<zaczepka>|<lwrr>|<shy>|<ha>|<smieszek>)$

Zmieniłem zatem wyrażenie regularne na zwykłą reakcje na słowa. Umieszczone w "" i oddzielone spacją. Słowa i kody emot. Zadziałało. Ale zauważyłem, że bot stał się jakby ociężały na polecenia. No nic, działało. Dopiero w nocy spojrzałem w konsolę bota i się mocno zdziwiłem tym, co w niej zobaczyłem. Przyczyna ociężałości bota stała się jasna.
Bot seriami zaczął wypisywać komunikat:

15:33:13 Mardziandzia: miłych dyskusji i s p a d a m  papa
15:33:20 ** odchodzi Mardziandzia
15:33:21 ~bidulenka: Mardziandzia paaa
15:34:29 czteryem: !rehash
15:34:29 polfan: *** Konfiguracja bota została wczytana ponownie.
15:34:42 Użytkownika o takim nicku nie ma w pokoju
15:34:43 Użytkownika o takim nicku nie ma w pokoju
15:34:44 Użytkownika o takim nicku nie ma w pokoju

Zacząłem się zastanawiać, dlaczego to wypisuje. Wcześniej zdarzało mu się to sporadycznie. Jakaś przyczyna tego być musi. I to w tym kawałku kodu, który napisałem teraz.
Na początku zredukowałem liczbę kolorów do 32. Nie pomogło. Potem znalazłem podwójny znak ". Usunięcie go nie pomogło. Nadal seriami wypisywał komunikat  Użytkownika o takim nicku nie ma w pokoju.
Zacząłem kombinować. Zmieniłem na powrót zwykłe wywołanie na wyrażenie regularne. Pomogło. Na krótko. Więc wróciłem do zwykłej reakcji na słowa.
Powróciłem do 34 kolorów, tylko z warunku wyrzuciłem słowa, pozostały tylko kody emotek.

SetTalkTable $name user.kolorlosowy $word "<luzak>" "<zla>" "<len>" "<lol11>" "<zaczepka>" "<lwrr>" "<shy>" "<ha>" "<smieszek>"


I działa. Nie sypie komunikatami.
Poeksperymentuję jeszcze z samymi słowami.

Zachęcam do podobnego eksperymentowania i dzielenia się swoimi spostrzeżeniami.


Odp: Bot kci - ciekawe przypadki zachowania się - stefan - 22-02-2017

Gdybyś wrzucił całe reakcje, byłoby prościej dojść, czy ten błąd pojawia się tylko u Ciebie


Odp: Bot kci - ciekawe przypadki zachowania się - MajorMajorMajorMajor - 22-02-2017

A proszę bardzo. To całość.

SetTalkTable $name user.kolorlosowy $word "<luzak>" "<zla>" "<len>" "<lol11>" "<zaczepka>" "<lwrr>" "<shy>" "<ha>" "<smieszek>"
ClearTalkTable
AddTalk $text /guest %s #660033
AddTalk $text /guest %s #CC0066
AddTalk $text /guest %s #9900CC
AddTalk $text /guest %s #9966CC
AddTalk $text /guest %s #660099
AddTalk $text /guest %s #330033
AddTalk $text /guest %s #6666FF
AddTalk $text /guest %s #0066FF
AddTalk $text /guest %s #00FFFF
AddTalk $text /guest %s #669999
AddTalk $text /guest %s #003333
AddTalk $text /guest %s #006633
AddTalk $text /guest %s #66FF66
AddTalk $text /guest %s #00FF33
AddTalk $text /guest %s #33FF00
AddTalk $text /guest %s #999900
AddTalk $text /guest %s #999966
AddTalk $text /guest %s #FFCC33
AddTalk $text /guest %s #FF9900
AddTalk $text /guest %s #FF9966
AddTalk $text /guest %s #663300
AddTalk $text /guest %s #330000
AddTalk $text /guest %s #663333
AddTalk $text /guest %s #CC6666
AddTalk $text /guest %s #FF3333
AddTalk $text /guest %s #B5A642
AddTalk $text /guest %s #A67D3D
AddTalk $text /guest %s #2F4F2F
AddTalk $text /guest %s #4A766E
AddTalk $text /guest %s #9932CD
AddTalk $text /guest %s #6B238E
AddTalk $text /guest %s #2F4F4F
AddTalk $text /guest %s #DBDB70
AddTalk $text /guest %s #238E23


Powinno działać.


Odp: Bot kci - ciekawe przypadki zachowania się - Shado - 23-02-2017

Proponuję w pierwotnej wersji skryptu usunąć na moment reakcje i dodać tylko jedną:
Kod:
AddTalk $text %s
i zobaczyć format nicku, jaki bot w takim wypadku wysyła do serwera.


Odp: Bot kci - ciekawe przypadki zachowania się - MajorMajorMajorMajor - 23-02-2017

Proszę bardzo:

Kod:
[14:26:45] czteryem: <zla>
[14:26:45] polfan: CZTERYEM