22-02-2017, 13:16
(Ten post był ostatnio modyfikowany: 22-02-2017, 16:36 przez MajorMajorMajorMajor.)
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.
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.
"Wróci zaraz po obiedzie. Wtedy będzie pan musiał wyjść i czekać na niego, dopóki nie wyjdzie na kolację. Major Major nie przyjmuje nikogo, kiedy jest u siebie"