Skrypt quizowy dla irssi: iQuiz - lista zmian i dyskusja

Miejsce do składania propozycji na tematy nowych quizów, sprawdzenia dotychczasowych ogólnych wyników graczy, a także lista premier, które już się odbyły – według ich autorów oraz dat. Znajdziesz tu również poradnik jak przygotować własną premierę quizową oraz jak ją zaprezentować na kanale.

Premiery: 2005-2024

Skrypt quizowy dla irssi: iQuiz - lista zmian i dyskusja

Post#1 napisany przez wilk » niedziela, 23 maja 2010, 13:43

Ostatnio swierszcz zapytał czy mamy skrypt quizowy a'la dizzy, ale dla irssi, bo chce przygotować premierę, wcześniej litlegirl też miewała z tego powodu trudności z własnymi premierami - dlatego przygotowałem taki skrypt. Jest on dostępny tutaj: iQuiz. Kilka rzeczy trzeba jeszcze poprawić (m.in. problem z kolejkowaniem wiadomości w irssi), a w planach jest dodanie obsługi innych rodzajów quizów, ale quizy puszcza. ;] Kolorystykę ustawiłem jako mix dizzy i quizbota. Niebawem dokładniejsze instrukcje w poradniku, ale na szybko:

  • skrypt wrzucamy do katalogu .irssi/scripts (katalogu scripts może nie być domyślnie, więc sobie zróbcie go mkdir-em)
  • skrypt wczytujemy w irssi poleceniem: /script load quiz (usuwamy poprzez: /script unload quiz)
  • lista komend dostępna jest poleceniem: /quiz
  • ścieżkę do pliku podajemy względem katalogu domowego
  • skrypt wczytuje tradycyjne quizy dizzy, ale można także pominąć mu znaczniki "pyt " i "odp "

W razie problemów lub pytań - piszcie.
Avatar użytkownika
wilk (autor wątku)
Operator
Budda
 
Posty: 2064
Dołączył: sobota, 30 lipca 2005, 15:32
Ostatnia wizyta: wczoraj, 23:51
Płeć: Mężczyzna
Pytań w bazie: 15610
Lubię quizy: klasyczne (np. Dizzy)

Re: Skrypt quizowy dla irssi

Post#2 napisany przez Andrrew » poniedziałek, 24 maja 2010, 16:41

No, no, no. Dawno żaden temat tak mnie tutaj nie zainteresował. Świetnie, wilk, zacna inicjatywa!
Gdy przynajmniej z dwa lata temu zapoznawałem się z różnymi istniejącymi skryptami quizowymi, wśród tych pod klienty linuksowe znalazłem jedynie anglojęzyczne skrypciki umożliwiające zabawę w quizy z odpowiedziami typu yes/no :). Onegdaj zagadywałem nawet z kilkoma osobami czy nie dałoby się zrobić klasycznego skryptu quizowego działającego pod Linuksem - ludziom albo nie chciało się za to zabierać albo nie wiedzieli jak. Czyżbym z Tobą o tym nie rozmawiał, wilku?
Wątpię czy znajdę czas na osobiste przetestowanie skryptu (w dającej się przewidzieć przyszłości), ale z chęcią zobaczyłbym jego działanie w realu.
Gratuluję pomysłu i życzę efektownych rezultatów przy ulepszaniu skryptu!

PS. Kiedy pierwsza premiera na tym skrypcie?? ;)
Andrrew

Zablokowany
Pisarz
 
Posty: 103
Dołączył: wtorek, 18 października 2005, 19:50
Ostatnia wizyta: wtorek, 14 października 2014, 19:26
Płeć: Mężczyzna
Pytań w bazie: 1050

Re: Skrypt quizowy dla irssi

Post#3 napisany przez wilk » poniedziałek, 24 maja 2010, 18:37

Andrrew napisał(a):Gdy przynajmniej z dwa lata temu zapoznawałem się z różnymi istniejącymi skryptami quizowymi, wśród tych pod klienty linuksowe znalazłem jedynie anglojęzyczne skrypciki umożliwiające zabawę w quizy z odpowiedziami typu yes/no :).


Na irssi.org są też proste skrypty quizbotowe, ale to nie to.

Andrrew napisał(a):Czyżbym z Tobą o tym nie rozmawiał, wilku?


Oj, nie pamiętam... Kiedyś za to rozmawiałem z crivillem na ten temat, bo znalazł stronkę gości, którzy zajmowali się pisaniem kilkunastu różnych skryptów, które chodziły pod różnymi klientami IRC (bodajże były tam też dla klientów pod Maka i nawet dla Amigi). Niestety obecnie stronka wyparowała już z sieci.

Andrrew napisał(a):PS. Kiedy pierwsza premiera na tym skrypcie?? ;)


Gdy ktoś jakąś napisze. :P W sumie to w tę sobotę mogę puścić retro, choć nie rozwiązałem jeszcze problemu z buforowaniem wiadomości. Generalnie nie ma co się zachwycać, to jest zwykłe dizzy tyle, że pod irssi.
Avatar użytkownika
wilk (autor wątku)
Operator
Budda
 
Posty: 2064
Dołączył: sobota, 30 lipca 2005, 15:32
Ostatnia wizyta: wczoraj, 23:51
Płeć: Mężczyzna
Pytań w bazie: 15610
Lubię quizy: klasyczne (np. Dizzy)

Re: Skrypt quizowy dla irssi

Post#4 napisany przez wilk » wtorek, 23 października 2012, 12:43

Dodałem Mieszacza do skryptu. Domyślnie miesza hasła przy każdym !przyp (ochrona przed floodem/oszukiwaniem, jak przy !podp), ale można sobie to wyłączyć.
Avatar użytkownika
wilk (autor wątku)
Operator
Budda
 
Posty: 2064
Dołączył: sobota, 30 lipca 2005, 15:32
Ostatnia wizyta: wczoraj, 23:51
Płeć: Mężczyzna
Pytań w bazie: 15610
Lubię quizy: klasyczne (np. Dizzy)

Re: Skrypt quizowy dla irssi

Post#5 napisany przez wilk » poniedziałek, 21 października 2013, 16:18

Przygotowałem kolejną wersję skryptu — v131021 (numer wersji jest też datą ostatniej zmiany). Głównym dodatkiem jest obsługa quizów typu Familiada, przy czym w wersji bez drużyn — każdy może grać. Ponieważ kilka zmian przeszło bez ogłoszeń dlatego też poniżej dodaję krótkie podsumowanie funkcjonalności oraz opis poleceń:

  • skrypt pozwala na rozgrywkę w trybach Dizzy, Mieszacz i Familiada
  • możliwą formą rozgrywki jest tylko autoquiz (pytania z pliku)
  • obsługiwane są standardowe pliki z pytaniami ww. typów
  • (Familiada) obsługiwana jest dowolna ilość odpowiedzi w pytaniu
  • (Familiada) stała (np. 1 punkt za każdą odpowiedź) lub progresywna punktacja
  • (Mieszacz) możliwe jest mieszanie liter rozsypanki przy każdym przypomnieniu pytania
  • (Mieszacz) skrypt stara się by rozsypanka liter nie tworzyła oryginalnego słowa
  • polecenia !podp i !przyp chronione są przed floodem
  • czas odpowiedzi mierzony jest w milisekundach
  • skrypt pozwala na łatwe dostosowanie wszystkich komunikatów kanałowych (tłumaczenie, kolorystyka)

Polecenia kanałowe:

  • !podp - wyświetlenie podpowiedzi (niedostępne w Familiadzie)
  • !przyp - przypomnienie pytania (i ewentualne przemieszanie liter w Mieszaczu)
  • !ile, !ile nick - wyświetlenie punktacji naszej lub podanego nicka

Polecenia quizmastera:

  • /quiz - wyświetlenie pomocy
  • /qtype 1-3 - wybór typu quizu (1: Dizzy, 2: Mieszacz, 3: Familiada; bez podania typu przełączy się na kolejny; wyboru należy dokonać przed wczytaniem pliku z pytaniami)
  • /qon #kanał plik.txt - wczytanie pliku z pytaniami i rozpoczęcie quizu
  • /qdelay sekundy - ustawienie opóźnienia między pytaniami (w Familiadzie wartość z uwagi na możliwe lagi traktowana potrójnie, czyli ustawiamy 10, a faktycznie będzie 30 sekund)
  • /qtime sekundy - ustawienie czasu trwania rundy (tylko Familiada)
  • /qstat - wyświetlenie rankingu graczy (można podać jako parametr ilość graczy)
  • /qhint - wyświetlenie kolejnej podpowiedzi (nie w Familiadzie)
  • /qskip - pominięcie pytania
  • /qoff - zakończenie quizu

Ustawienia skryptu (w nawiasie ustawienie domyślne; ustawianie przez /set zmienna wartość):

  • quiz_type (1) - rodzaj quizu (1: Dizzy, 2: Mieszacz, 3: Familiada)
  • quiz_delay (7) - opóźnienie pomiędzy pytaniami (sek.; Familiada: x3)
  • quiz_round_time (120) - czas trwania rundy (sek.; tylko Familiada)
  • quiz_anticheat_delay (3) - ochrona !podp/!przyp (sek.; 0 - wył.)
  • quiz_points_per_answer (1) - punkty za odpowiedź
  • quiz_progressive_points (tak) - progresywna punktacja? (tylko Familiada)
  • quiz_random_hints (tak) - literki w podpowiedzi odsłaniane losowo czy od lewej do prawej? (jak w Dizzy)
  • quiz_show_first_hint (nie) - czy pokazywać pierwszą podpowiedź razem z pytaniem?
  • quiz_first_hint_dots (tak) - czy pierwsza podpowiedź to same kropki?
  • quiz_mix_on_remind (tak) - mieszać literki przy każdym !przyp? (tylko Mieszacz)
  • quiz_cmd_hint (tak) - czy polecenie !podp jest aktywne?
  • quiz_cmd_remind (tak) - czy polecenie !przyp jest aktywne?

Uwagi: Progresywna punktacja działa tak jak w oryginalnej Familiadzie. Pierwsza odpowiedź w pliku ma największą wartość, kolejne coraz mniejszą (max->min). Czyli przy trzech odpowiedziach i "quiz_points_per_answer" równym 5 będzie to: 15, 10 i 5. W przeciwnym razie każda odpowiedź jest warta tyle samo ("quiz_points_per_answer").

Skrypt można ściągnąć tutaj: iQuiz. Skrypt powinien działać poprawnie, ale w razie błędów proszę o kontakt.

Miłej zabawy. :)
Avatar użytkownika
wilk (autor wątku)
Operator
Budda
 
Posty: 2064
Dołączył: sobota, 30 lipca 2005, 15:32
Ostatnia wizyta: wczoraj, 23:51
Płeć: Mężczyzna
Pytań w bazie: 15610
Lubię quizy: klasyczne (np. Dizzy)

Re: Skrypt quizowy dla irssi (iQuiz)

Post#6 napisany przez wilk » poniedziałek, 14 września 2015, 18:29

W końcu zabrałem się, by wypuścić dla Was kolejną wersję iQuizu (wersja v150914), a nie ciągle coś dodawać u siebie. Niektóre osoby miały już dostęp do części nowych funkcji, jednak porównanie zmian zrobię w stosunku do poprzedniej publicznej wersji. Ważniejsze/ciekawsze/widoczne zmiany (nazbierało się ich trochę):

  • Nowości:
    Obrazek

    • nowy rodzaj quizu: Pomieszany (skrypt samodzielnie miesza litery pytania - zastępuje mieszanie ręczne i puszczanie quizu jako Dizzy)
    • nowy rodzaj quizu: Familiada Drużynowa (taka jak skrypt dla mIRC-a, przy czym drużyn może być od 2 do 5) (tryb poprzedniej Familiady, bez drużyn pozostaje, lecz jest tak samo osiągalny jako Familiada Drużynowa z quiz_team_play ustawionym na 0)
    • możliwość ponownego wczytania pliku z quizem podczas jego trwania (/qreload)
    • możliwość zapisania konfiguracji skryptu w jednej linijce i błyskawicznego jego przywrócenia (profile) (/qconfig)
    • nowe polecenia dla quizmastera: /qteams, /qconfig, /qreload
    • nowe polecenia kanałowe dla graczy: !join 1-5, !pyt
    • nowe ustawienia: quiz_random_hints_but_first, quiz_teams, quiz_first_anticheat_delay, quiz_keep_score, quiz_ranking_type, quiz_delay_long, quiz_words_mode, quiz_join_anytime, quiz_team_play, quiz_words_style, quiz_strict_match, quiz_limiter
  • Ulepszenia:
    Obrazek

    • wybierając rodzaj quizu można podawać jego nazwę (np. "Dizzy", "Mieszacz")
    • uruchamiając quiz poleceniem /qon można od razu podać/zmienić rodzaj quizu oraz liczbę drużyn
    • trzy strategie prezentowania rankingu graczy: zwykła "1234", zwarta "1223" i turniejowa "1224" (quiz_ranking_type)
    • usuwanie ewentualnych spacji na początku i końcu odpowiedzi graczy oraz wielokrotnych spacji, także korygowanie w ten sposób odpowiedzi w plikach z quizami (jeśli autor popełnił błąd pytanie było tylko do pominięcia)
    • opcja by mieszacz utrzymywał kolejność wyrazów a nie mieszał wszystkie literki razem (tylko Mieszacz; Pomieszany zawsze utrzymuje podział na wyrazy) (quiz_words_mode)
    • oprócz ochrony poleceń !przyp i !podp przed nadmiernym używaniem i oszukiwaniem dodałem ochronę włączaną wraz z wyświetleniem pytania - zapobiega to użyciu !podp tuż zaraz po wyświetleniu pytania (quiz_first_anticheat_delay)
    • opcja ścisłego porównywania odpowiedzi i dopasowywania jej (nie dla Familiad), czyli czy do odpowiedzi np. "drewniany" dopasuje się "wielki drewniany most" (quiz_strict_match)
    • używając polecenia /qstat z parametrem 0 wyświetlimy tylko listę drużyn (Familiada Drużynowa)
    • opcja by najlepszy gracz mógł zdobyć tylko 50%+1 punktów (czyli większość umożliwiającą wygranie) - pozwala innym pograć bez zdominowania całego quizu przez jedną osobę (nie dla Familiad) (quiz_limiter)
    • mieszacz literek dla Mieszacza i Pomieszanego nie wymusza już ponownego mieszania wyrazów krótszych niż 3 znaki - tym samym np. "na" nie będzie zazwyczaj tylko jako "an"
    • domyślne, nowe ustawienie quiz_random_hints_but_first powoduje, że podpowiedzi są losowe oprócz pierwszej, która odsłania początkowe litery wyrazów
    • opcja by quizy mogły lecieć jeden za drugim i punkty się sumowały (quiz_keep_score)
    • skrypt zlicza także liczbę odpowiedzi gracza, nie tylko punkty
    • dodatkowe parametry możliwe do wykorzystania w komunikatach kanałowych jak np. procentowy udział punktów (trzeba zajrzeć w kod)
    • pomoc odnośnie poleceń quizu (oprócz polecenia /quiz) otrzymamy także po wpisaniu /help quiz
    • alias dla polecenia !przyp: !pyt
  • Zmienione:
    Obrazek

    • pomoc i wszystkie komunikaty skryptu zdecydowałem się jednak "przetłumaczyć" na polski, nazwy ustawień i komend pozostają bez zmian; jeśli ktoś chce wersję międzynarodową, to mogę udostępnić i taką
    • reset punktów (o ile nie jest używana opcja quiz_keep_score) jest teraz wykonywany przy /qon, nie /qoff, więc jeśli przez przypadek wyłączymy skrypt, to dalej możemy wyświetlić punktację (naturalnie dopóki nie wyładujemy skryptu)
    • ustawienie quiz_round_time przemianowane na quiz_round_duration
    • ustawienie quiz_round_duration zmniejszone do 90 (z 120)
    • ustawienie quiz_first_hint_dots teraz domyślnie na off
    • ustawienie quiz_anticheat_delay zmniejszone do 2 (z 3)
  • Poprawki:
    Obrazek

    • poprawiona obsługa względnych (z "~") ścieżek do plików
    • poprawiony błąd w irssi powodujący ostrzeżenie "Can't locate package Irssi::Nick for @Irssi::Irc::Nick::ISA at ..."
    • o ile w trybie dizzy nie robiło i tak różnicy czy jest pyt/odp na początku, to już pty/opd mogło przecieknąć do treści pytania/odpowiedzi - teraz już nie
    • wprowadziłem opóźnienie, by informacja o poleceniu /quiz pojawiała się po informacji o wczytaniu skryptu (taki sam trik jak z obsługą odpowiedzi na kanale)
Poniżej opis wszystkich komend i ustawień (domyślne raczej są optymalne), zaś sposób przeprowadzenia rozgrywki jest w poradniku.

Polecenia kanałowe dla graczy:

  • !podp - wyświetlenie podpowiedzi (niedostępne w Familiadzie)
  • !przyp, !pyt - przypomnienie pytania (i ewentualne przemieszanie liter w Mieszaczu oraz Pomieszanym)
  • !ile, !ile nick - wyświetlenie punktacji naszej lub podanego nicka
  • !join 1, !join 2, ... - wejście gracza do drużyny (tylko dla Familiady Drużynowej)
Polecenia dla quizmastera:

  • /quiz, /help quiz - wyświetlenie pomocy
  • /qtype 1-5, /qtype nazwa, /qtype - wybór rodzaju quizu, należy go dokonać przed wczytaniem pliku z pytaniami), można go ustawić na trzy sposoby:

    • poprzez wartość numeryczną: 1= Dizzy, 2= Mieszacz, 3= Familiada (drużynowa), 4= Familiada (bez drużyn), 5= Pomieszany
    • poprzez nazwę quizu: Dizzy, Mieszacz, Familiada, Familiada2, Pomieszany (technicznie wystarczą trzy pierwsze literki, przy czym należy zwrócić uwagę na to, że Familiada bez drużyn ma "2" na końcu, a jej skrót to "fam2")
    • jeśli nie podamy parametru polecenia, to będzie przełączał rodzaj quizu w kółko, według kolejności podanej w pierwszym punkcie
  • /qteams ile - ustawienie liczby drużyn (2-5)
  • /qon #kanał pytania.txt - wczytanie pliku z pytaniami i rozpoczęcie quizu, opcjonalnie możemy jako trzeci parametr podać rodzaj quizu (nazwą lub liczbą 1-5) np. /qon #kanał pytania.txt mieszacz - nie musimy wtedy korzystać wcześniej z /qtype; jeśli puszczamy quiz typu Familiada, to polecenie to przełączy skrypt w tryb oczekiwania na wchodzenie graczy do drużyn - aby uruchomić faktyczny quiz wystarczy wpisać ponownie samo /qon; opcjonalnie jako czwarty parametr możemy podać też liczbę drużyn (2-5) np. /qon #kanał pytania.txt familiada 4
  • /qdelay sekundy - ustawienie opóźnienia między pytaniami
  • /qtime sekundy - ustawienie czasu trwania rundy (tylko Familiada)
  • /qstat, /qstat miejsca - wyświetlenie rankingu graczy (można podać jako parametr liczbę wyświetlanych miejsc, np. by nie floodować podczas quizu i wyświetlić tylko pierwsze trzy miejsca: /qstat 3) oraz listy drużyn w Familiadzie - w czasie oczekiwania na wchodzenie graczy do drużyn samo /qstat zawsze wyświetla tylko listę drużyn, zaś jeśli podczas quizu chcemy wyświetlić tylko listę drużyn, to możemy wpisać /qstat 0
  • /qhint - wyświetlenie kolejnej podpowiedzi (nie w Familiadzie)
  • /qskip - pominięcie pytania
  • /qoff - zakończenie quizu
  • /qreload - ponowne wczytanie pliku z pytaniami (np. po naniesieniu jakiejś poprawki w czasie trwania quizu)
  • /qconfig, /qconfig konfiguracja - pozwala na wyświetlenie całej konfiguracji skryptu w jednej linijce lub jej wprowadzenie jako parametr polecenia - można robić dzięki temu profile quizowe i szybko je wgrywać, bez używania wielu poleceń /set, przykład domyślnej konfiguracji:
    150914,1,2,7,20,90,2,7,1,3,0,1,1,0,0,1,1,1,1,1,1,0,0,1,1
Ustawienia skryptu (w nawiasie podano ustawienia domyślne):

  • quiz_type (1) - rodzaj quizu [1: Dizzy, 2: Mieszacz, 3: Familiada, 4: Familiada bez drużyn, 5: Pomieszany]
  • quiz_teams (2) - liczba drużyn (tylko Familiada Drużynowa) [2-5]
  • quiz_delay (7) - opóźnienie pomiędzy pytaniami [sek.]
  • quiz_delay_long (20) - opóźnienie pomiędzy pytaniami (Familiada) [sek.]
  • quiz_round_duration (90) - czas trwania rundy (Familiada) [sek.]
  • quiz_anticheat_delay (2) - ochrona poleceń !podp/!przyp przed spamowaniem [sek.; 0 - wył.]
  • quiz_first_anticheat_delay (7) - dodatkowa ochrona poleceń !podp/!przyp przed spamowaniem włączana po wyświetleniu pytania [sek.; 0 - wył.]
  • quiz_points_per_answer (1) - po ile punktów za odpowiedź
  • quiz_ranking_type (3) - sposób obliczania rankingu (opisane poniżej) [1: "1234", 2: "1223", 3: "1224"]
  • quiz_words_style (0) - modyfikowanie literek (tylko Mieszacz i Pomieszany) [0: bez zmian, 1: zmiana na male litery, 2: zmiana na DUŻE litery, 3: zmiana na Kapitaliki]
  • quiz_strict_match (tak) - czy odpowiedź musi być dosłowna? albo dopasowywać jak w Dizzy (uwagi niżej; nie dla Familiady)
  • quiz_progressive_points (tak) - czy używać rosnącej punktacji? (tylko Familiada)
  • quiz_show_first_hint (nie) - czy pokazywać pierwszą podpowiedź razem z pytaniem?
  • quiz_first_hint_dots (nie) - czy pierwsza podpowiedź to tylko same kropki?
  • quiz_random_hints (tak) - czy literki w podpowiedziach odsłaniać losowo? albo od lewej do prawej jak w Dizzy
  • quiz_random_hints_but_first (tak) - czy jeśli literki w podpowiedziach odsłaniamy losowo, to może w pierwszej podpowiedzi, dla ułatwienia graczom, odsłonić jednak pierwsze literki?
  • quiz_mix_on_remind (tak) - czy mieszać literki przy każdym !przyp? (tylko Mieszacz i Pomieszany)
  • quiz_words_mode (tak) - czy mieszać literki wyrazów osobno, z podziałem na słowa? (tylko Mieszacz, bo Pomieszany zawsze dzieli na wyrazy)
  • quiz_join_anytime (tak) - czy gracze mogą dołączać/zmieniać drużynę w dowolnej chwili? albo tylko w trybie przedstartowym (tylko Familiada Drużynowa)
  • quiz_team_play (tak) - czy zaliczać odpowiedzi tylko osobom, które weszły do drużyn? wyłączenie tego trybu jest prawie identyczne jak granie w Familiadę bez drużyn (4) (tylko Familiada Drużynowa)
  • quiz_limiter (nie) - czy ograniczyć możliwość zdobywania punktów przez jednego gracza po zdobyciu przez niego 50%+1 wszystkich punktów? (uwagi poniżej; nie dla Familiady)
  • quiz_keep_score (nie) - czy zachowywać punkty z poprzednich quizów? jeśli tak, to możemy puścić kilka quizów i punkty graczy zostaną zsumowane
  • quiz_cmd_hint (tak) - czy polecenie !podp jest dostępne dla graczy?
  • quiz_cmd_remind (tak) - czy polecenie !przyp jest dostępne dla graczy?

Uwagi:

  • quiz_ranking_type: Przykład strategii rankingowych (Wikipedia):

    • zwykła "1234" - pod uwagę brany jest czas zdobycia punktu: kto później przy remisie, ten niżej (zwykle używana w premierach quizowych)

      1. piotrek - 10 punktów
      2. adam - 7 punktów
      3. stefan - 7 punktów
      4. jacek - 5 punktów

    • zwarta "1223" - remisy razem, ale nie przeskakujemy pozycji (używana w wynikach na forum)

      1. piotrek - 10 punktów
      2. adam - 7 punktów
      2. stefan - 7 punktów
      3. jacek - 5 punktów

    • turniejowa "1224" - remisy razem, przeskakujemy za każdym razem pozycję (używana w nowych Milionerach i iQuizie)

      1. piotrek - 10 punktów
      2. adam - 7 punktów
      2. stefan - 7 punktów
      4. jacek - 5 punktów
  • Tryb familiady bez drużyn jest w zasadzie tym samym, co familiada drużynowa z parametrem quiz_team_play ustawionym na 0, jedyną różnicą jest to, że można tworzyć drużyny, lecz grać może i tak każdy.

  • quiz_progressive_points: Rosnąca punktacja działa tak jak w oryginalnej Familiadzie. Pierwsza odpowiedź w pliku ma największą wartość, kolejne coraz mniejszą (max->min). Czyli przy trzech odpowiedziach i 1 punkcie za odpowiedź - będą to kolejno: 3, 2 i 1 punkt. W przeciwnym razie każda odpowiedź jest warta tyle samo (quiz_points_per_answer).

  • quiz_strict_match: Sposób dopasowywania odpowiedzi:

    • quiz_strict_match = 0 - odpowiedź jest dopasowywana, np. odpowiedź gracza "wielki drewniany most" zostanie zaliczona jeśli odpowiedź na pytanie to "drewniany" (tak jak w Dizzy)
    • quiz_strict_match = 1 - odpowiedź musi być dosłowna, np. odpowiedź gracza "wielki drewniany most" nie zostanie zaliczona jeśli odpowiedź na pytanie to "drewniany"
  • quiz_limiter: Podczas rozmowy na kanale z Witch nieco w żartach doszliśmy do pomysłu, że jeden dobry lub szybki gracz może zdominować cały quiz i grać dalej, nawet jeśli już praktycznie wygrał. Oczywiście psuje to zabawę innym graczom, którzy nie są tak dobrzy lub wolniej piszą, przez co zniechęcają się do dalszej gry i do końca gra tylko jedna osoba. Dlatego też, mimo oporów, dodałem do iQuizu opcję, by po jej włączeniu przestało zaliczać odpowiedzi graczowi, który zdominował quiz (zdobył większość punktów: 50%+1). Jeśli zamierzacie z tej opcji kiedykolwiek skorzystać, to koniecznie poinformujcie o tym graczy przed uruchomieniem quizu, by nie było nieprzyjemności. Zapewne w kolejnej wersji skryptu dodam też informację wysyłaną na kanał.

  • Tak jak poprzednio - skryptowi nie robi różnicy czy quiz jest z zachowaniem wymaganego formatu (dla Dizzy/Pomieszanego - pyt/odp, dla Mieszacza - numeracja linii), ponieważ i tak jest on usuwany. Dodatkowo poprawiane są nadmiarowe spacje w odpowiedziach czy też w przypadku Familiad spacje przed/po "*", również spacje w odpowiedziach graczy są scalane do jednej oraz usuwane z początków/końców (np. "   odpowiedz   pierwsza   " -> "odpowiedz pierwsza").

Standardowo jestem otwarty na wszelkie uwagi i zgłoszenia ewentualnych błędów, choć starałem się przetestować wszystko. Miłej zabawy! :)
Avatar użytkownika
wilk (autor wątku)
Operator
Budda
 
Posty: 2064
Dołączył: sobota, 30 lipca 2005, 15:32
Ostatnia wizyta: wczoraj, 23:51
Płeć: Mężczyzna
Pytań w bazie: 15610
Lubię quizy: klasyczne (np. Dizzy)

Re: Skrypt quizowy dla irssi (iQuiz)

Post#7 napisany przez wilk » niedziela, 10 kwietnia 2016, 17:27

Aktualizacja skryptu do wersji v160410 – zmiany:

  • Nowości:
    Obrazek

    • antygoogler chroniący pytania przed wyszukiwaniem
    • cyfry i niektóre znaki interpunkcyjne są zakotwiczone w quizach typu "Pomieszany" i przy mieszaniu treści pytania nie będą zmieniały miejsca
    • możliwość ograniczenia liczby podpowiedzi do podanej wartości lub ilości ukrytych literek
    • nowe opcje: quiz_max_hints, quiz_antigoogler, quiz_better_antigoogler, quiz_smart_mix
  • Ulepszenia:
    Obrazek

    • uproszczone polecenie /qon - teraz można nie podawać nazwy kanału, o ile otwarte jest jego okno, ale jeśli chcemy podać tam także typ quizu czy też liczbę drużyn, to musimy użyć pełnej składni polecenia
    • skrypt poprawia drobne wpadki autorów quizów, teraz także znaki tabulacji (trafiły się kiedyś przy jednym quizie i nie dało się odpowiedzieć)
  • Zmienione:
    Obrazek

    • z uwagi na podobieństwo nazwy oraz możliwe pomyłki przy uruchamianiu quiz typu "Familiada bez drużyn" został przemianowany na "Multi"
    • ustawienie quiz_anticheat_delay wydłużone do 3 sekund (z 2)
    • polecenie /qstat wyświetla teraz także procentowy udział w punktach/odpowiedziach (to było już dostępne w poprzedniej wersji, ale nie było wyświetlane)
    • polecenie /qstat wyświetla oprócz czasu także numer pytania (poprzedniego, jeśli trwa nowe)
    • drobne zmiany w formatach w porównaniu do poprzedniej wersji (wszystko co się wyświetla można dostosować sobie poleceniem irssi /format)
  • Poprawki:
    Obrazek

    • poprawka związana z obsługą formatów - plik skryptu musiał nazywać się quiz.pl (i ładować do przestrzeni "Irssi::Script::quiz"), aby działał, teraz może nazywać się dowolnie
    • różne drobne poprawki, głównie kosmetyczne lub niemające wpływu na działanie skryptu

Nowe ustawienia skryptu (w nawiasie wartości domyślne) i uwagi:

  • quiz_antigoogler (tak) - czy używać antygooglera do ochrony pytań? (nie jest to taki sam antygoogler jak w quizbocie, gdzie dodatkowo pytanie dzielone jest na bloki, by lepiej było łamane na ekranie oraz nie wstawia znaków zachłannie)
  • quiz_better_antigoogler (tak) - czy używać lepszej wersji antygooglera? (wersja ta ma utrudnić "zdejmowanie" ochrony, lecz wydłuża przez to pytanie, co może powodować ucinanie tych zbyt długich)
  • quiz_smart_mix (tak) - czy używać kotwiczenia niektórych znaków? (tylko Pomieszany) (cyfry oraz znaki ()",.;:?! będą "przyspawane" i nie będą zmieniały swojego położenia podczas mieszania treści pytania, myślnik i apostrof będą jednak "pływały")
  • quiz_max_hints (0) - limitowanie liczby podpowiedzi:

    • quiz_max_hints = 0 - brak limitu (ilekroć gracze wpiszą !podp, to pojawi się podpowiedź, o ile nie zablokowana przez quiz_cmd_hint)
    • quiz_max_hints > 0 - maksymalna liczba podpowiedzi, potem nie będą się pojawiać, ale polecenie quizmastera /qhint wyświetli kolejne
    • quiz_max_hints < 0 - podobnie jak wyżej, ale limitem jest podana liczba ukrytych znaków (jeśli chcemy, by zawsze pozostało do 2 nieodsłoniętych znaków, to podajemy -2; uwaga: chodzi o najdłuższy z wyrazów!)

Skrypt starałem się przetestować na różne sposoby i mam nadzieję, że nic mi nie umknęło. Jak coś znajdziecie lub macie fajne pomysły, to napiszcie proszę poniżej. Miłej zabawy!
Avatar użytkownika
wilk (autor wątku)
Operator
Budda
 
Posty: 2064
Dołączył: sobota, 30 lipca 2005, 15:32
Ostatnia wizyta: wczoraj, 23:51
Płeć: Mężczyzna
Pytań w bazie: 15610
Lubię quizy: klasyczne (np. Dizzy)

Re: Skrypt quizowy dla irssi: iQuiz - lista zmian i wasze uw

Post#8 napisany przez wilk » poniedziałek, 19 września 2016, 19:39

Przygotowałem dla Was kolejną aktualizację skryptu (wersja v160919). Tym razem skupiłem się m.in. na ulepszeniu antygooglera, który teraz działa jak nigdzie indziej i lepiej niż w naszym quizbocie (gdzie pojawił się jako pierwszy, niezależnie co ściemniAcze sobie głoszą). Pełna lista zmian:

  • Nowości:
    Obrazek

    • przebudowany gruntownie został antygoogler – teraz nic nie będzie ucinane, dłuższe pytania w razie potrzeby będą dzielone na kilka kolejnych linii (quiz_split_long_lines bez tworzenia obecnych w innych skryptach czy quizbotach (które „pożyczyły” sobie od nas pomysł antygooglera) wizualnych błędów, nie przesadzajcie jednak…), zaś antygoogler jest wstawiany „inteligentnie” dzięki czemu łamanie pytań na ekranie będzie bardzo dobre
    • quizmaster może wymusić wyświetlenie przypomnienia pytania (/qremind)
    • w razie namieszania w ustawieniach można je teraz zresetować do początkowych (/qinit)
    • na koniec rankingu wyświetlane jest lista pięciu najlepszych czasów i zn/s
    • przygotowana została także wersja anglojęzyczna (choć kiedyś taka właśnie była w połowie - help zrobiłem ang., a komunikaty na # pol.), a sam skrypt wkrótce trafi do repozytorium skryptów dla irssi
    • nowe polecenia quizmastera: /qremind, /qinit
    • nowe ustawienia: quiz_split_long_lines, quiz_hint_alpha, quiz_hint_digit, quiz_transfer_points, quiz_scoring_mode, quiz_min_points, quiz_max_points, quiz_smart_mix_chars
  • Ulepszenia:
    Obrazek

    • z uwagi na to, że wiele klientów IRC-owych pozwala na klikanie w linki na czacie — sprawiłem, by antygoogler wyłączał się przy wykryciu linka w treści pytania, by nie kolidował z tym mechanizmem
    • większość ustawień dostępnych przez polecenia quizmastera oraz poprzez polecenie irssi /set uzyskała ochronę przed głupimi wartościami
    • w trybie Familiady/Multi skrypt wyświetla ostrzeżenie o upływającym czasie na udzielanie odpowiedzi
    • odpowiedzi graczy standardowo są czyszczone np. z podwójnych spacji, teraz dodałem także usuwanie kodów kontrolnych (kolorki)
    • procentowy stan liczby punktów/odpowiedzi jest teraz wyświetlany także dla drużyn w Familiadzie przy /qstats
    • wyświetlana jest dodatkowo szybkość udzielania odpowiedzi
    • skrypt teraz zapamiętuje najlepszy czas i szybkość udzielenia odpowiedzi oraz wyznacza wartości średnie, można ich użyć w rankingu, a w chwili obecnej ustawiłem wyświetlanie średniego czasu zgadywania
    • możliwe jest wyróżnienie w podpowiedziach ukrytych cyfr innym znaczkiem niż liter ustawieniem quiz_hint_digit, domyślnie to także kropka, ale można np. oznaczać litery alfabetu jako kropki, a cyfry jako gwiazdki — możliwe, że w przyszłej wersji tak będzie domyślnie
    • jeśli gracz zmieni drużynę w Familiadzie, to dzięki ustawieniu quiz_transfer_points możliwe będzie, by wraz ze zmianą drużyny jego punkty także wędrowały
    • zupełnie nowe metody punktowania w Familiadzie (quiz_scoring_mode) — po opis tego wszystkiego odsyłam jednak do dokładnej instrukcji
    • teraz „kotwiczone” znaki w Pomieszanym można ustawiać w zmiennej quiz_smart_mix_chars (uwaga, składnia wyrażeń regularnych!)
    • wejście do drużyny i jej zmiana jest oznajmiana graczowi przez notice
  • Zmienione:
    Obrazek

    • dotychczas znaczek podstawiany w podpowiedziach zasłaniający oryginalną literkę pobierany był ze stylów ustawianych poleceniem /format, lecz z uwagi na konieczność podawania tam także kodów kolorów szybka zmiana mogła być niewygodna, dlatego też przeniosłem te znaczki do osobnych ustawień irssi quiz_hint_alpha, quiz_hint_digit i są one tam w stylach podstawiane
    • wydłużone zostało standardowe opóźnienie pomiędzy pytaniami z 7 do 10 sekund (quiz_delay)
    • polecenie quizmastera /qstat zostało przemianowane na /qstats — z racji tego jak irssi wywołuje polecenia obie wersje i tak będą działać
    • ustawienie quiz_keep_score zostało przemianowane na quiz_keep_scores
    • ustawienie quiz_random_hints_but_first zostało przemianowane na quiz_nonrandom_first_hint
    • skrypt będzie dodany (jak tylko wrzucę go na gita i ktoś tam się obudzi) do repozytorium skryptów dla irssi i pojawi się on tam jako iquiz.pl, by nie kolidował z istniejącym
  • Poprawki:
    Obrazek

    • poprawka polecenia !ile, które potrafiło dodawać pustego zawodnika
    • przy /qreload nie przeładowywało odpowiedzi w bieżącym pytaniu
    • nieco usprawnień i redukcji w kodzie. a i tak się rozrasta
  • Usunięte:
    Obrazek

    • polecenie quizmastera /qconfig — i tak nikt z niego nie korzystał, a obecny sposób działania sprawiał więcej problemów z utrzymywaniem porządku między wersjami (polecenie wyświetlało całą konfigurację jako łańcuch tekstowy, by np. można było się tym podzielić z inną osobą lub przygotować sobie profile pod różne rodzaje quizów), w kolejnych wersjach jednak prawdopodobnie powróci w bardziej uniwersalnej formie oraz będą polecenia do zapisywania konfiguracji do pliku
    • ustawienie quiz_progressive_points — zastąpiłem je nową metodą punktowania (quiz_scoring_mode)
    • usunąłem ustawienie quiz_better_antigoogler, a raczej przeniosłem do ustawień wewnętrznych i wyłączyłem domyślnie — było to dobre zabezpieczenie przed „zdejmowaniem” antygooglera, ale potrafiło znacznie wydłużyć pytania i tym samym więcej sprawiało problemów, niż ktokolwiek próbował oszukiwać

Z uwagi na ilość zmian i poleceń przygotowałem osobny post, który zawiera opis wszystkich ustawień, komend i sposób używania skryptu: [topic=3&t=587]opis skryptu iQuiz[/topic]. Nie przerażajcie się, skrypt oferuje naprawdę dużo możliwości konfiguracyjnych, ale jego używanie jest identycznie proste jak każdego dotychczasowego skryptu.

Miłego używania. :)
Avatar użytkownika
wilk (autor wątku)
Operator
Budda
 
Posty: 2064
Dołączył: sobota, 30 lipca 2005, 15:32
Ostatnia wizyta: wczoraj, 23:51
Płeć: Mężczyzna
Pytań w bazie: 15610
Lubię quizy: klasyczne (np. Dizzy)

Re: Skrypt quizowy dla irssi: iQuiz - lista zmian i wasze uw

Post#9 napisany przez wilk » czwartek, 2 lutego 2017, 22:05

Tym razem zmian jest nieco mniej (wersja v170202), więc bez tych ikonek je wymienię. ;)

  • dodałem do skryptu opcjonalny automat, by sam wyświetlał podpowiedzi quiz_autohinter, co quiz_hints_interval sekund, zażądanie podpowiedzi przez graczy (!podp) powoduje zresetowanie timera (auto podpy są co X sekund od poprzedniego)
  • z uwagi na ogrom możliwości jakie oferuje skrypt tekst polecenia /quiz wyświetlającego pomoc „spuchł” za bardzo, dlatego też zrobiłem, by polecenie to pokazywało wyłącznie dostępne polecenia i ustawienia, w zależności od aktualnie wybranego rodzaju quizu (quiz_type)
  • dotychczas gracze ilekroć wpisywali !podp, to wyświetlana była kolejna podpowiedź, nawet jeśli cała odpowiedź została już ujawniona, teraz po ujawnieniu odpowiedzi nie pojawi się już żadna kolejna zbędna podpowiedź (ani automatyczna, ani na żądanie), aczkolwiek poleceniem quizmastera /qhint możemy wymusić jej wyświetlenie
  • jeśli korzystamy z ograniczania 50%+1 (opcja quiz_limiter), to teraz skrypt dodatkowo publicznie informuje gracza, że osiągnął limit punktów
  • teraz skrypt zapisuje chwilę dołączenia do drużyny i kolejność na liście członków nie jest już alfabetyczna, a zgodna z kolejnością wchodzenia
  • skrypt poprawnie ustawia znacznik końca quizu, by gracze nie zmieniali sobie drużyn po jego zakończeniu, a przed wyświetleniem rankingu końcowego
  • skrypt ma możliwość pamiętania punktów z poprzedniego quizu i może sumować je z kolejnymi, a w przypadku Familiad gracze pozostawali w drużynach, do których powchodzili, ale dodałem teraz jeszcze opcję quiz_keep_teams, by skrypt opróżniał drużyny wraz z kolejnym quizem
  • trochę zmian i różnych poprawek (m.in. jeśli odpowiedzią nie był znak alfanumeryczny, to podpowiedzi „rosły”)

Miłego pisania quizów i puszczania ich na iQuizie. :)
Avatar użytkownika
wilk (autor wątku)
Operator
Budda
 
Posty: 2064
Dołączył: sobota, 30 lipca 2005, 15:32
Ostatnia wizyta: wczoraj, 23:51
Płeć: Mężczyzna
Pytań w bazie: 15610
Lubię quizy: klasyczne (np. Dizzy)

Re: Skrypt quizowy dla irssi: iQuiz - lista zmian i dyskusja

Post#10 napisany przez wilk » sobota, 13 maja 2017, 21:28

Nowości i zmiany wprowadzone w wersji v170513:

  • dodałem polecenie /qpause pozwalające zapauzować quiz (użyte w trakcie pytania pauzuje od kolejnego),
  • dodałem polecenie /qignore służące do (od)ignorowania odpowiedzi/działań gracza-szkodnika, blokowanie następuje po ident@host (można tu użyć polecenia irssi /ignore, ale wtedy przestaniemy widzieć co ów wyprawia),
  • dodałem opcję quiz_asciize (domyślnie włączoną) powodującą konwersję polskich znaków diakrytycznych (utf8) do ASCII, dzięki czemu można odpowiadać z ogonkami,
  • możliwe jest włączenie zaliczania drugiej najszybszej odpowiedzi (poza Familiadą/Multi), służy do tego opcja quiz_bonus_answer, zaś za pomocą quiz_points_per_bonus możemy ustawić odmienną liczbę punktów za taką odpowiedź (w następnej wersji prawdopodobnie przeniosę to na stringi, bo ustawień typu float niestety nie ma, by można było dawać połówkowe punkty), dostępne jest też wewnętrzne ustawienie $_bonus_delay, którym możemy dostroić czas oczekiwania na drugą osobę (domyślnie 1 sekunda),
  • (Familiada) kolejność drużyn w wynikach teraz jest sortowana (pierw po punktach, później po odpowiedziach),
  • (Familiada) zmiana drużyny wyświetla teraz odmienny komunikat, plus poprawki z przenoszeniem punktacji,
  • (Familiada) ponowne wchodzenie do tej samej drużyny nie wysyła już zbędnego komunikatu,
  • zmieniłem kolory prezentowania pytań na takie jak w Quizbocie (białe litery na niebieskim tle),
  • (Mieszacz/Pomieszany) usprawnienia w mieszaczu literek, np. gdy zawiera identyczne znaki, niezależnie od tego czy kotwiczymy znaki interpunkcyjne,
  • ochrona przeciwfloodowa polecenia !przyp działa teraz cały czas, a nie tylko gdy używany jest tryb ponownego mieszania literek,
  • poprawki w wysyłaniu komunikatów na okno statusowe w razie rozłączenia nas od serwera.

Miłego iQuizowania. :)
Avatar użytkownika
wilk (autor wątku)
Operator
Budda
 
Posty: 2064
Dołączył: sobota, 30 lipca 2005, 15:32
Ostatnia wizyta: wczoraj, 23:51
Płeć: Mężczyzna
Pytań w bazie: 15610
Lubię quizy: klasyczne (np. Dizzy)

Re: Skrypt quizowy dla irssi: iQuiz - lista zmian i dyskusja

Post#11 napisany przez wilk » poniedziałek, 15 maja 2017, 16:41

Mała wersja poprawkowa (170514):

  • dodałem do wbudowanej pomocy (polecenie /quiz) brakującą informację o poleceniu /qignore,
  • aby użyć polecenia /qignore wystarczy tylko pierwszy raz uruchomić quiz, nie musi być włączony, by działało (jest to niezbędne, bo dla uczciwości rozgrywki polecenie informuje na kanale o ignorowaniu gracza), dzięki czemu puszczając kilka quizów z rzędu (nie wyładowując skryptu oczywiście) można modyfikować listę ignorowanych w przerwie, (naturalnie można ignorować poleceniem irssi, ale takie rzeczy i tak wyjdą „w praniu”),
  • drobne poprawki przy startowaniu quizu.
Avatar użytkownika
wilk (autor wątku)
Operator
Budda
 
Posty: 2064
Dołączył: sobota, 30 lipca 2005, 15:32
Ostatnia wizyta: wczoraj, 23:51
Płeć: Mężczyzna
Pytań w bazie: 15610
Lubię quizy: klasyczne (np. Dizzy)

Re: Skrypt quizowy dla irssi: iQuiz - lista zmian i dyskusja

Post#12 napisany przez wilk » wtorek, 23 maja 2017, 17:19

Wersja 170523:

  • scaliłem wersję anglojęzyczną do jednego skryptu, zmian można dokonywać ustawieniem quiz_lang na „pl” lub „en” (i łatwo dodawać inne); niestety na gita irssi nie można dodawać plików pobocznych np. językowych lub z osobną konfiguracją, więc skrypt musi posiadać wszystko już w sobie, dotąd był tam wrzucony osobny quiz_en
  • poprawiłem kolorystykę w Familiadzie

Wersja 170819:

  • korekta porównywania nazwy kanału/sieci (case insensitive)
Avatar użytkownika
wilk (autor wątku)
Operator
Budda
 
Posty: 2064
Dołączył: sobota, 30 lipca 2005, 15:32
Ostatnia wizyta: wczoraj, 23:51
Płeć: Mężczyzna
Pytań w bazie: 15610
Lubię quizy: klasyczne (np. Dizzy)


Powrót do Premiery quizowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: {Apple}, {Google} i 14 gości

cron