xTrivia — File Browser
xTriviav1.0 / xTriviav1.0 / xTriviaByRibellina / xtrivia / bot / Addons / Giochi / MegaQuick.mrc
MegaQuick.mrc — 12.49 KB — Download this file
; MegaQuick
on 1:TEXT:!valori:%game_channel: {
if (%MegaQuick_gioco == ON) /msg %game_channel 11,2 Valori:8,2 a=2 b=8 c=10 d=8 e=2 f=8 g=10 h=14 i=2 j=16 k=16 l=6 m=6 n=6 o=2 p=8 q=14 r=4 s=4 t=4 u=8 v=10 w=16 x=16 y=16 z=12
}
on 1:TEXT:!punti:%game_channel: {
if (%MegaQuick_gioco == ON) {
if (%mq_punti_tot_ [ $+ [ $nick ] ] != $null) {
/msg $nick Hai totalizzato 4 %mq_punti_tot_ [ $+ [ $nick ] ]
close -m $nick
}
}
}
on 1:TEXT:!ferma MegaQuick:%game_channel: {
if (%MegaQuick_gioco == ON ) /fine_MegaQuick
}
on 1:TEXT:!reset:%game_channel: {
if (%MegaQuick_gioco == ON ) /fine_MegaQuick
}
on 1:TEXT:!lancia MegaQuick*:%Game_Channel: {
if (%MegaQuick_gioco != ON ) {
set %game_channel $Chan
set %mq_nick_me $me
set %mq_punteggio $3
if (%mq_punteggio == $null) set %mq_punteggio 300
set %MegaQuick_gioco ON
avvia_MegaQuick
}
}
on 1:TEXT:*:?: {
if (%MegaQuick_gioco == ON) {
if (%mq_manche_stato != ON) {
msg $nick Nessuna manche in corso !
goto esci_da_verifica_parola
}
set %mq_temp_parola $1
%mq_temp_len = $len(%mq_temp_parola)
if (%mq_temp_len < %mq_len_manche) {
msg $nick La lunghezza minima è %mq_len_manche lettere !
goto esci_da_verifica_parola
}
set %mq_t 1
while (%mq_t <= %mq_temp_len) {
if ( $mid(%mq_temp_parola,%mq_t,1) !isin %mq_riga_ [ $+ [ %mq_t ] ] ) {
msg $nick La parola %mq_temp_parola non è presente nella griglia. Riprova !
goto esci_da_verifica_parola
}
inc %mq_t
}
set %mq_r $read($scriptdirDictionary\ $+ italiano. [ $+ [ $left(%mq_temp_parola,1) ] ],w,%mq_temp_parola,1)
if ($readn != 0) {
if (%mq_parola_manche_ [ $+ [ $nick ] ] != $null) {
$remtok(%mq_giocatori_manche,$nick,1,32)
unset %mq_parola_manche_ [ $+ [ $nick ] ]
}
%mq_giocatori_manche = $addtok(%mq_giocatori_manche,$nick,32)
%mq_parola_manche_ [ $+ [ $nick ] ] = %mq_temp_parola
%mq_parola = $lower(%mq_temp_parola)
%mq_punti = 0
%mq_cont = 1
while (%mq_cont <= $len(%mq_parola)) {
%mq_t_let = $mid(%mq_parola,%mq_cont,1)
if (%mq_t_let isin aeio) { %mq_val = 2 }
elseif (%mq_t_let isin rst) { %mq_val = 4 }
elseif (%mq_t_let isin lmn) { %mq_val = 6 }
elseif (%mq_t_let isin bdfpu) { %mq_val = 8 }
elseif (%mq_t_let isin cgv) { %mq_val = 10 }
elseif (%mq_t_let == z) { %mq_val = 12 }
elseif (%mq_t_let isin hq) { %mq_val = 14 }
elseif (%mq_t_let isin jkwxy) { %mq_val = 16 }
else { %mq_val = 0 }
if (%mq_cont == 7) { %mq_val = %mq_val * 2 }
if (%mq_cont == 8) { %mq_val = %mq_val * 3 }
if (%mq_cont == 9) { %mq_val = %mq_val * 4 }
if (%mq_cont == 10) { %mq_val = %mq_val * 5 }
if (%mq_cont == 11) { %mq_val = %mq_val * 6 }
if (%mq_cont == 12) { %mq_val = %mq_val * 7 }
%mq_punti = $calc(%mq_punti + %mq_val)
inc %mq_cont
}
%mq_punti_parola_ [ $+ [ $nick ] ] = %mq_punti
if (%mq_lunghezza == $null) { %mq_lunghezza = 0 }
if (%mq_temp_len > %mq_lunghezza ) { %mq_lunghezza = %mq_temp_len }
msg $nick 11,5 Con la parola 8,2 %mq_temp_parola 11,5 ottieni 8,2 %mq_punti 11,2 punti.
}
else {
msg $nick Parola non presente nel mio dizionario
}
:esci_da_verifica_parola
close -m $nick
}
}
alias fine_gioco_MegaQuick {
timermq* OFF
unset %MegaQuick*
unset %mq*
halt
}
alias fine_MegaQuick {
if (%MegaQuick_gioco == ON) {
msg %game_channel 14,5••• 11MegaQuick 14••• 0Terminato!
timermq* OFF
unset %MegaQuick*
unset %mq*
halt
}
}
alias avvia_MegaQuick {
if (%MegaQuick_gioco == ON) {
if (%mq_punteggio < 50) set %mq_punteggio 50
if (%mq_punteggio > 1000) set %mq_punteggio 1000
msg %game_channel 14,1••• 11MegaQuick 14••• 0 avviato!
msg %game_channel 0,5 Punteggio da raggiungere: %mq_punteggio
msg %game_channel 0,2 Trovate una parola partendo dalla prima riga utilizzando una lettera per ogni riga.
set %mq_manche_num 0
/timermq_1 1 10 /avvia_manche_MegaQuick
}
}
alias avvia_manche_MegaQuick {
if (%MegaQuick_gioco == ON) {
genera_griglia_MegaQuick
set %mq_len_manche $rand(3,5)
%mq_riga_da_visualizzare_ [ $+ [ %mq_len_manche ] ] = %mq_riga_da_visualizzare_ [ $+ [ %mq_len_manche ] ] 8,2 <-- lunghezza minima
msg %game_channel 0,5 Tra 20 secondi la prossima manche
inc %mq_manche_num
/timermq_1 1 30 /visualizza_griglia_MegaQuick
}
}
alias genera_griglia_MegaQuick {
if (%MegaQuick_gioco == ON) {
%mq_x = 1
while (%mq_x < 13) {
%mq_t = 1
while (%mq_t < 16) {
%mq_temp = $rand(a,z)
%mq_riga = %mq_riga $+ [ $chr(32) ] $+ [ %mq_temp ]
%mq_r = %mq_r $+ [ %mq_temp ]
inc %mq_t
}
%mq_riga_da_visualizzare_ [ $+ [ %mq_x ] ] = $upper(%mq_riga)
if (a isin %mq_r) || (e isin %mq_r) || (i isin %mq_r) || (o isin %mq_r) || (u isin $mq_r) {
%mq_riga_ [ $+ [ %mq_x ] ] = %mq_r
unset %mq_r
unset %mq_riga
inc %mq_x
}
else {
unset %mq_r
unset %mq_riga
}
}
%mq_cont = 7
while (%mq_cont < 13) {
%mq_x_x = %mq_cont - 5
%mq_riga_da_visualizzare_ [ $+ [ %mq_cont ] ] = %mq_riga_da_visualizzare_ [ $+ [ %mq_cont ] ] 8,2 valore x %mq_x_x
inc %mq_cont
}
}
}
alias visualizza_griglia_MegaQuick {
if (%MegaQuick_gioco == ON) {
msg %game_channel 11,1 Mega Quick ... manche n°: %mq_manche_num
%mq_t = 1
while (%mq_t < 13) {
/timermq_ [ $+ [ %mq_t ] ] 1 %mq_t /msg %game_channel 8,2 %mq_riga_da_visualizzare_ [ $+ [ %mq_t ] ]
inc %mq_t
}
/timermq_ [ $+ [ %mq_t ] ] 1 %mq_t /msg %game_channel 11,1 Scrivete la vostra parole in query a %mq_nick_me
inc %mq_t
/timermq_ [ $+ [ %mq_t ] ] 1 %mq_t /msg %game_channel 11,1 Per cambiarla riscrivetela.
inc %mq_t
/timermq_ [ $+ [ %mq_t ] ] 1 %mq_t /manche_avviata_MegaQuick
}
}
alias manche_avviata_MegaQuick {
if (%MegaQuick_gioco == ON) {
set %mq_manche_stato ON
msg %game_channel 11,1 Avete 8 80 11 secondi da adesso.
/timermq_1 1 70 /msg %game_channel 11,1 Mancano solo 10 secondi... Sbrigatevi!
/timermq_2 1 80 /fine_tempo_manche_MegaQuick
}
}
alias fine_tempo_manche_MegaQuick {
if (%MegaQuick_gioco == ON) {
msg %game_channel 11,1 Manche %mq_manche_num terminata!
%mq_num_nick = $numtok(%mq_giocatori_manche,32)
if (%mq_num_nick != 0) {
%mq_cont = 1
while (%mq_cont <= %mq_num_nick) {
%mq_temp_nick = $gettok(%mq_giocatori_manche, %mq_cont ,32)
msg %mq_temp_nick 4 TEMPO SCADUTO !
inc %mq_cont
}
}
set %mq_manche_stato OFF
/timermq_1 1 5 /fine_manche_MegaQuick
}
}
alias fine_manche_MegaQuick {
if (%MegaQuick_gioco != ON) goto esci_da_fine_manche_MegaQuick
msg %game_channel 9,1 Risultati manche:
%mq_num_nick = $numtok(%mq_giocatori_manche,32)
if (%mq_num_nick == 0) {
/timermq_1 1 2 /msg %game_channel 0,5 Nessuna parola trovata !
%mq_tempo = 5
}
else {
/prepara_risultati_manche_MegaQuick
%mq_cont = 1
while (%mq_cont <= %mq_num_nick) {
%mq_temp_nick = %mq_cl_m_ [ $+ [ %mq_cont ] ]
%mq_temp_parola = %mq_parola_manche_ [ $+ [ %mq_temp_nick ] ]
%mq_temp_punti = %mq_punti_parola_ [ $+ [ %mq_temp_nick ] ]
%mq_t_punti = punti
%mq_temp_len = $len(%mq_temp_parola)
if (%mq_temp_len == %mq_lunghezza) {
%mq_temp_punti_tot = $calc(%mq_temp_punti + 4)
%mq_t_punti = + 4 8,2 punti LUNGHEZZA per un totale di 11,2 %mq_temp_punti_tot 8,2 punti
if (%mq_punti_velocita == %mq_temp_nick) {
%mq_temp_punti_tot = $calc(%mq_temp_punti_tot + 0)
%mq_t_punti = + 4 8,2 punti LUNGHEZZA per un totale di 11,2 %mq_temp_punti_tot 8,2 punti
}
}
else {
if (%mq_punti_velocita == %mq_temp_nick) {
%mq_temp_punti_tot = $calc(%mq_temp_punti + 0)
;%mq_t_punti = + 4 8,2 punti LUNGHEZZA per un totale di 11,2 %mq_temp_punti_tot 8,2 punti
}
else {
%mq_temp_punti_tot = %mq_temp_punti
}
}
/timermq_ [ $+ [ %mq_cont ] ] 1 %mq_cont /msg %game_channel 11,2 %mq_temp_nick 8,2 con la parola 11,2 %mq_temp_parola 8,2 ottiene 11,2 %mq_temp_punti %mq_t_punti
inc %mq_cont
%mq_giocatori_partita = $addtok(%mq_giocatori_partita,%mq_temp_nick,32)
%mq_p_t = %mq_punti_tot_ [ $+ [ %mq_temp_nick ] ]
if (%mq_punti_tot_ [ $+ [ %mq_temp_nick ] ] == $null) { %mq_punti_tot_ [ $+ [ %mq_temp_nick ] ] = 0 }
%mq_punti_tot_ [ $+ [ %mq_temp_nick ] ] = $calc(%mq_p_t + %mq_temp_punti_tot)
}
%mq_tempo = %mq_cont + 5
unset %mq_parola*
/prepara_classifica_MegaQuick
}
/timermq_ [ $+ [ %mq_tempo ] ] 1 %mq_tempo /visualizza_classifica_MegaQuick
:esci_da_fine_manche_MegaQuick
}
alias visualizza_classifica_MegaQuick {
if (%MegaQuick_gioco != ON) goto esci_da_visualizza_classifica_MegaQuick
%mq_num_nick = $numtok(%mq_giocatori_partita,32)
if (%mq_num_nick > 5 ) { %mq_num_nick = 5 }
/msg %game_channel 11,5 CLASSIFICA dopo 8,2 %mq_manche_num 11,5 manche...
if (%mq_num_nick == 0) {
/msg %game_channel 11,5 1. ----------
goto prepara_nuova_manche
}
%mq_cont = 1
while (%mq_cont <= %mq_num_nick) {
inc %mq_tempo
%mq_cl = %mq_cl_ [ $+ [ %mq_cont ] ]
%mq_punti_cl = %mq_punti_tot_ [ $+ [ %mq_cl ] ]
/timermq_ [ $+ [ %mq_tempo ] ] 1 %mq_tempo /msg %game_channel 11,5 %mq_cont . 11,2 %mq_cl 8,2 con punti 11,2 %mq_punti_cl
inc %mq_cont
}
if (%mq_punti_tot_ [ $+ [ %mq_cl_1 ] ] > %mq_punteggio) {
%mq_tempo = %mq_tempo + 10
/timermq_ [ $+ [ %mq_tempo ] ] 1 %mq_tempo /msg %game_channel 11,5 Gioco Mega Quick terminato !
inc %mq_tempo
/timermq_ [ $+ [ %mq_tempo ] ] 1 %mq_tempo /msg %game_channel 11,5 Il vincitore è 8,2 %mq_cl_1 !
inc %mq_tempo
/timermq_ [ $+ [ %mq_tempo ] ] 1 %mq_tempo /fine_gioco_MegaQuick
}
:prepara_nuova_manche
%mq_tempo = %mq_tempo + 10
unset %mq_lunghezza
unset %mq_giocatori_manche
unset %mq_punti_parola_*
/timermq_ [ $+ [ %mq_tempo ] ] 1 %mq_tempo /avvia_manche_MegaQuick
:esci_da_visualizza_classifica_MegaQuick
}
alias prepara_risultati_manche_MegaQuick {
if (%MegaQuick_gioco != ON) goto esci_da_prepara_risultati_manche_MegaQuick
%mq_cont = 1
while (%mq_cont <= %mq_num_nick) {
%mq_cl_m_ [ $+ [ %mq_cont ] ] = $gettok(%mq_giocatori_manche, %mq_cont ,32)
if (%mq_cont == 1) {
%mq_cl_m_1 = $gettok(%mq_giocatori_manche,1,32)
%mq_punti_velocita = $gettok(%mq_giocatori_manche,1,32)
}
else {
%mq_cont_x = %mq_cont
while (%mq_cont_x > 1) {
%mq_cont_y = %mq_cont_x - 1
%mq_cl_m_x = %mq_cl_m_ [ $+ [ %mq_cont_x ] ]
%mq_cl_m_y = %mq_cl_m_ [ $+ [ %mq_cont_y ] ]
if ( %mq_punti_parola_ [ $+ [ %mq_cl_m_x ] ] < %mq_punti_parola_ [ $+ [ %mq_cl_m_y ] ] ) {
%mq_cl_m_ [ $+ [ %mq_cont_y ] ] = %mq_cl_m_x
%mq_cl_m_ [ $+ [ %mq_cont_x ] ] = %mq_cl_m_y
}
else {
%mq_cl_m_ [ $+ [ %mq_cont_x ] ] = %mq_cl_m_x
%mq_cont_x = 1
}
dec %mq_cont_x
}
}
inc %mq_cont
}
:esci_da_prepara_risultati_manche_MegaQuick
}
alias prepara_classifica_MegaQuick {
if (%MegaQuick_gioco != ON) goto esci_da_prepara_classifica_MegaQuick
%mq_num_nick = $numtok(%mq_giocatori_partita,32)
%mq_cont = 1
while (%mq_cont <= %mq_num_nick) {
%mq_cl_ [ $+ [ %mq_cont ] ] = $gettok(%mq_giocatori_partita, %mq_cont ,32)
if (%mq_cont == 1) {
%mq_cl_1 = $gettok(%mq_giocatori_partita,1,32)
}
else {
%mq_cont_x = %mq_cont
while (%mq_cont_x > 1) {
%mq_cont_y = %mq_cont_x - 1
%mq_cl_x = %mq_cl_ [ $+ [ %mq_cont_x ] ]
%mq_cl_y = %mq_cl_ [ $+ [ %mq_cont_y ] ]
if ( %mq_punti_tot_ [ $+ [ %mq_cl_x ] ] > %mq_punti_tot_ [ $+ [ %mq_cl_y ] ] ) {
%mq_cl_ [ $+ [ %mq_cont_y ] ] = %mq_cl_x
%mq_cl_ [ $+ [ %mq_cont_x ] ] = %mq_cl_y
}
else {
%mq_cl_ [ $+ [ %mq_cont_x ] ] = %mq_cl_x
%mq_cont_x = 1
}
dec %mq_cont_x
}
}
inc %mq_cont
}
:esci_da_prepara_classifica_MegaQuick
}