W końcu zabrałem się, by wypuścić dla Was kolejną wersję iQuizu (wersja v
150914), 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:
- 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:
- 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:
- 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:
- 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!