xTrivia — File Browser
xTriviav1.0 / xTriviav1.0 / xTriviaByRibellina / xtrivia / bot / Addons / Giochi / MaxiScaraQuick.mrc
MaxiScaraQuick.mrc — 12.97 KB — Download this file
; MaxiMaxiScaraQuick
on 1:TEXT:!valori:%game_channel: {
if (%MaxiScaraQuick_gioco == ON) /msg %game_channel 8,2 Valori:11,2 a=2 b=5 c=7 d=5 e=2 f=5 g=7 h=9 i=2 j=10 k=10 l=4 m=4 n=4 o=2 p=5 q=9 r=3 s=3 t=3 u=5 v=7 w=10 x=10 y=10 z=8
}
on 1:TEXT:!punti:%game_channel: {
if (%MaxiScaraQuick_gioco == ON) {
if (%mxq_punti_tot_ [ $+ [ $nick ] ] != $null) {
/msg $nick Hai totalizzato 4 %mxq_punti_tot_ [ $+ [ $nick ] ]
close -m $nick
}
}
}
on 1:TEXT:!ferma MaxiQuick:%game_channel: {
if (%MaxiScaraQuick_gioco == ON ) /fine_MaxiScaraQuick
}
on 1:TEXT:!reset:%game_channel {
if (%MaxiScaraQuick_gioco == ON ) /fine_MaxiScaraQuick
}
on 1:TEXT:!lancia MaxiQuick*:%Game_Channel: {
if (%MaxiScaraQuick_gioco != ON ) {
set %game_channel $Chan
set %mxq_nick_me $me
set %mxq_punteggio $3
if (%mxq_punteggio == $null) set %mxq_punteggio 200
set %MaxiScaraQuick_gioco ON
avvia_MaxiScaraQuick
}
}
on 1:TEXT:*:?: {
if (%MaxiScaraQuick_gioco == ON) {
if (%mxq_manche_stato != ON) {
msg $nick Nessuna manche in corso !
goto esci_da_verifica_parola
}
set %mxq_temp_parola $1
%mxq_temp_len = $len(%mxq_temp_parola)
if (%mxq_temp_len < %mxq_len_manche) {
msg $nick La lunghezza minima è %mxq_len_manche lettere !
goto esci_da_verifica_parola
}
set %mxq_t 1
while (%mxq_t <= %mxq_temp_len) {
if ( $mid(%mxq_temp_parola,%mxq_t,1) !isin %mxq_riga_ [ $+ [ %mxq_t ] ] ) {
msg $nick La parola %mxq_temp_parola non è presente nella griglia. Riprova !
goto esci_da_verifica_parola
}
inc %mxq_t
}
set %mxq_r $read($scriptdirDictionary\ $+ italiano. [ $+ [ $left(%mxq_temp_parola,1) ] ],w,%mxq_temp_parola,1)
if ($readn != 0) {
if (%mxq_parola_manche_ [ $+ [ $nick ] ] != $null) {
$remtok(%mxq_giocatori_manche,$nick,1,32)
unset %mxq_parola_manche_ [ $+ [ $nick ] ]
}
%mxq_giocatori_manche = $addtok(%mxq_giocatori_manche,$nick,32)
%mxq_parola_manche_ [ $+ [ $nick ] ] = %mxq_temp_parola
%mxq_parola = $lower(%mxq_temp_parola)
%mxq_punti = 0
%mxq_cont = 1
while (%mxq_cont <= $len(%mxq_parola)) {
%mxq_t_let = $mid(%mxq_parola,%mxq_cont,1)
if (%mxq_t_let isin aeio) { %mxq_val = 2 }
elseif (%mxq_t_let isin rst) { %mxq_val = 3 }
elseif (%mxq_t_let isin lmn) { %mxq_val = 4 }
elseif (%mxq_t_let isin bdfpu) { %mxq_val = 4 }
elseif (%mxq_t_let isin cgv) { %mxq_val = 7 }
elseif (%mxq_t_let == z) { %mxq_val = 8 }
elseif (%mxq_t_let isin hq) { %mxq_val = 9 }
elseif (%mxq_t_let isin jkwxy) { %mxq_val = 10 }
else { %mxq_val = 0 }
if (%mxq_cont == 7) { %mxq_val = %mxq_val * 5 }
if (%mxq_cont == 8) { %mxq_val = %mxq_val * 6 }
if (%mxq_cont == 9) { %mxq_val = %mxq_val * 7 }
if (%mxq_cont == 10) { %mxq_val = %mxq_val * 8 }
%mxq_punti = $calc(%mxq_punti + %mxq_val)
inc %mxq_cont
}
%mxq_punti_parola_ [ $+ [ $nick ] ] = %mxq_punti
if (%mxq_lunghezza == $null) { %mxq_lunghezza = 0 }
if (%mxq_temp_len > %mxq_lunghezza ) { %mxq_lunghezza = %mxq_temp_len }
msg $nick 9,2 Con la parola 8,2 %mxq_temp_parola 9,2 ottieni 8,2 %mxq_punti 9,2 punti.
}
else {
msg $nick Parola non presente nel mio dizionario
}
:esci_da_verifica_parola
close -m $nick
}
}
alias fine_gioco_MaxiScaraQuick {
timermxq* OFF
unset %MaxiScaraQuick*
unset %mxq*
halt
}
alias fine_MaxiScaraQuick {
if (%MaxiScaraQuick_gioco == ON) {
msg %game_channel 0,5 Gioco MaxiScaraQuick terminato!
timermxq* OFF
unset %MaxiScaraQuick*
unset %mxq*
halt
}
}
alias avvia_MaxiScaraQuick {
if (%MaxiScaraQuick_gioco == ON) {
if (%mxq_punteggio < 50) set %mxq_punteggio 50
if (%mxq_punteggio > 1000) set %mxq_punteggio 1000
msg %game_channel 9,1 MaxiScaraQuick avviato
msg %game_channel 0,5 Punteggio da raggiungere: %mxq_punteggio
msg %game_channel 0,2 Trovate una parola partendo dalla prima riga utilizzando una lettera per ogni riga.
set %mxq_manche_num 0
/timermxq_1 1 10 /avvia_manche_MaxiScaraQuick
}
}
alias avvia_manche_MaxiScaraQuick {
if (%MaxiScaraQuick_gioco == ON) {
genera_griglia_MaxiScaraQuick
set %mxq_len_manche $rand(3,4)
%mxq_riga_da_visualizzare_ [ $+ [ %mxq_len_manche ] ] = %mxq_riga_da_visualizzare_ [ $+ [ %mxq_len_manche ] ] 8,2 <-- lunghezza minima
msg %game_channel 0,5 Tra 20 secondi la prossima manche
inc %mxq_manche_num
/timermxq_1 1 25 /visualizza_griglia_MaxiScaraQuick
}
}
alias genera_griglia_MaxiScaraQuick {
if (%MaxiScaraQuick_gioco == ON) {
%mxq_x = 1
while (%mxq_x < 11) {
%mxq_t = 1
while (%mxq_t < 9) {
%mxq_temp = $rand(a,z)
%mxq_riga = %mxq_riga $+ [ $chr(32) ] $+ [ %mxq_temp ]
%mxq_r = %mxq_r $+ [ %mxq_temp ]
inc %mxq_t
}
%mxq_riga_da_visualizzare_ [ $+ [ %mxq_x ] ] = $upper(%mxq_riga)
if (a isin %mxq_r) || (e isin %mxq_r) || (i isin %mxq_r) || (o isin %mxq_r) || (u isin $mxq_r) {
%mxq_riga_ [ $+ [ %mxq_x ] ] = %mxq_r
unset %mxq_r
unset %mxq_riga
inc %mxq_x
}
else {
unset %mxq_r
unset %mxq_riga
}
}
%mxq_cont = 7
while (%mxq_cont < 11) {
%mxq_x_x = %mxq_cont - 2
%mxq_riga_da_visualizzare_ [ $+ [ %mxq_cont ] ] = %mxq_riga_da_visualizzare_ [ $+ [ %mxq_cont ] ] 8,2 valore x %mxq_x_x
inc %mxq_cont
}
}
}
alias visualizza_griglia_MaxiScaraQuick {
if (%MaxiScaraQuick_gioco == ON) {
msg %game_channel 9,1 MaxiScaraQuick ... manche n°: %mxq_manche_num
%mxq_t = 1
while (%mxq_t < 11) {
/timermxq_ [ $+ [ %mxq_t ] ] 1 %mxq_t /msg %game_channel 8,2 %mxq_riga_da_visualizzare_ [ $+ [ %mxq_t ] ]
inc %mxq_t
}
/timermxq_ [ $+ [ %mxq_t ] ] 1 %mxq_t /msg %game_channel 0,5 Scrivete la vostra parole in query a %mxq_nick_me
inc %mxq_t
/timermxq_ [ $+ [ %mxq_t ] ] 1 %mxq_t /msg %game_channel 0,5 Per cambiarla riscrivetela.
inc %mxq_t
/timermxq_ [ $+ [ %mxq_t ] ] 1 %mxq_t /manche_avviata_MaxiScaraQuick
}
}
alias manche_avviata_MaxiScaraQuick {
if (%MaxiScaraQuick_gioco == ON) {
set %mxq_manche_stato ON
msg %game_channel 9,1 Avete 8 80 9 secondi da adesso.
/timermxq_1 1 70 /msg %game_channel 9,1 Mancano solo 10 secondi... Sbrigatevi!
/timermxq_2 1 80 /fine_tempo_manche_MaxiScaraQuick
}
}
alias fine_tempo_manche_MaxiScaraQuick {
if (%MaxiScaraQuick_gioco == ON) {
msg %game_channel 9,1 Manche %mxq_manche_num terminata!
%mxq_num_nick = $numtok(%mxq_giocatori_manche,32)
if (%mxq_num_nick != 0) {
%mxq_cont = 1
while (%mxq_cont <= %mxq_num_nick) {
%mxq_temp_nick = $gettok(%mxq_giocatori_manche, %mxq_cont ,32)
msg %mxq_temp_nick 4 TEMPO SCADUTO !
inc %mxq_cont
}
}
set %mxq_manche_stato OFF
/timermxq_1 1 5 /fine_manche_MaxiScaraQuick
}
}
alias fine_manche_MaxiScaraQuick {
if (%MaxiScaraQuick_gioco != ON) goto esci_da_fine_manche_MaxiScaraQuick
msg %game_channel 9,1 Risultati manche:
%mxq_num_nick = $numtok(%mxq_giocatori_manche,32)
if (%mxq_num_nick == 0) {
/timermxq_1 1 2 /msg %game_channel 0,5 Nessuna parola trovata !
%mxq_tempo = 5
}
else {
/prepara_risultati_manche_MaxiScaraQuick
%mxq_cont = 1
while (%mxq_cont <= %mxq_num_nick) {
%mxq_temp_nick = %mxq_cl_m_ [ $+ [ %mxq_cont ] ]
%mxq_temp_parola = %mxq_parola_manche_ [ $+ [ %mxq_temp_nick ] ]
%mxq_temp_punti = %mxq_punti_parola_ [ $+ [ %mxq_temp_nick ] ]
%mxq_t_punti = punti
%mxq_temp_len = $len(%mxq_temp_parola)
if (%mxq_temp_len == %mxq_lunghezza) {
%mxq_temp_punti_tot = $calc(%mxq_temp_punti + 8)
%mxq_t_punti = + 8 8,2 punti LUNGHEZZA per un totale di 4,2 %mxq_temp_punti_tot 8,2 punti
if (%mxq_punti_velocita == %mxq_temp_nick) {
%mxq_temp_punti_tot = $calc(%mxq_temp_punti_tot + 0)
%mxq_t_punti = + 8 8,2 punti LUNGHEZZA per un totale di 4,2 %mxq_temp_punti_tot 8,2 punti
}
}
else {
if (%mxq_punti_velocita == %mxq_temp_nick) {
%mxq_temp_punti_tot = $calc(%mxq_temp_punti + 0)
;%mxq_t_punti = + 4 8,2 punti LUNGHEZZA per un totale di 4,2 %mxq_temp_punti_tot 8,2 punti
}
else {
%mxq_temp_punti_tot = %mxq_temp_punti
}
}
/timermxq_ [ $+ [ %mxq_cont ] ] 1 %mxq_cont /msg %game_channel 4,2 %mxq_temp_nick 8,2 con la parola 4,2 %mxq_temp_parola 8,2 ottiene 4,2 %mxq_temp_punti %mxq_t_punti
inc %mxq_cont
%mxq_giocatori_partita = $addtok(%mxq_giocatori_partita,%mxq_temp_nick,32)
%mxq_p_t = %mxq_punti_tot_ [ $+ [ %mxq_temp_nick ] ]
if (%mxq_punti_tot_ [ $+ [ %mxq_temp_nick ] ] == $null) { %mxq_punti_tot_ [ $+ [ %mxq_temp_nick ] ] = 0 }
%mxq_punti_tot_ [ $+ [ %mxq_temp_nick ] ] = $calc(%mxq_p_t + %mxq_temp_punti_tot)
}
%mxq_tempo = %mxq_cont + 5
unset %mxq_parola*
/prepara_classifica_MaxiScaraQuick
}
/timermxq_ [ $+ [ %mxq_tempo ] ] 1 %mxq_tempo /visualizza_classifica_MaxiScaraQuick
:esci_da_fine_manche_MaxiScaraQuick
}
alias visualizza_classifica_MaxiScaraQuick {
if (%MaxiScaraQuick_gioco != ON) goto esci_da_visualizza_classifica_MaxiScaraQuick
%mxq_num_nick = $numtok(%mxq_giocatori_partita,32)
if (%mxq_num_nick > 5 ) { %mxq_num_nick = 5 }
/msg %game_channel 9,2 CLASSIFICA dopo 8,2 %mxq_manche_num 9,2 manche...
if (%mxq_num_nick == 0) {
/msg %game_channel 9,2 1. ----------
goto prepara_nuova_manche
}
%mxq_cont = 1
while (%mxq_cont <= %mxq_num_nick) {
inc %mxq_tempo
%mxq_cl = %mxq_cl_ [ $+ [ %mxq_cont ] ]
%mxq_punti_cl = %mxq_punti_tot_ [ $+ [ %mxq_cl ] ]
/timermxq_ [ $+ [ %mxq_tempo ] ] 1 %mxq_tempo /msg %game_channel 9,2 %mxq_cont . 4,2 %mxq_cl 8,2 con punti 4,2 %mxq_punti_cl
inc %mxq_cont
}
if (%mxq_punti_tot_ [ $+ [ %mxq_cl_1 ] ] > %mxq_punteggio) {
%mxq_tempo = %mxq_tempo + 10
/timermxq_ [ $+ [ %mxq_tempo ] ] 1 %mxq_tempo /msg %game_channel 9,2 Gioco MaxiScaraQuick terminato !
inc %mxq_tempo
/timermxq_ [ $+ [ %mxq_tempo ] ] 1 %mxq_tempo /msg %game_channel 9,2 Il vincitore è 8,2 %mxq_cl_1 !
inc %mxq_tempo
/timermxq_ [ $+ [ %mxq_tempo ] ] 1 %mxq_tempo /fine_gioco_MaxiScaraQuick
}
:prepara_nuova_manche
%mxq_tempo = %mxq_tempo + 10
unset %mxq_lunghezza
unset %mxq_giocatori_manche
unset %mxq_punti_parola_*
/timermxq_ [ $+ [ %mxq_tempo ] ] 1 %mxq_tempo /avvia_manche_MaxiScaraQuick
:esci_da_visualizza_classifica_MaxiScaraQuick
}
alias prepara_risultati_manche_MaxiScaraQuick {
if (%MaxiScaraQuick_gioco != ON) goto esci_da_prepara_risultati_manche_MaxiScaraQuick
%mxq_cont = 1
while (%mxq_cont <= %mxq_num_nick) {
%mxq_cl_m_ [ $+ [ %mxq_cont ] ] = $gettok(%mxq_giocatori_manche, %mxq_cont ,32)
if (%mxq_cont == 1) {
%mxq_cl_m_1 = $gettok(%mxq_giocatori_manche,1,32)
%mxq_punti_velocita = $gettok(%mxq_giocatori_manche,1,32)
}
else {
%mxq_cont_x = %mxq_cont
while (%mxq_cont_x > 1) {
%mxq_cont_y = %mxq_cont_x - 1
%mxq_cl_m_x = %mxq_cl_m_ [ $+ [ %mxq_cont_x ] ]
%mxq_cl_m_y = %mxq_cl_m_ [ $+ [ %mxq_cont_y ] ]
if ( %mxq_punti_parola_ [ $+ [ %mxq_cl_m_x ] ] < %mxq_punti_parola_ [ $+ [ %mxq_cl_m_y ] ] ) {
%mxq_cl_m_ [ $+ [ %mxq_cont_y ] ] = %mxq_cl_m_x
%mxq_cl_m_ [ $+ [ %mxq_cont_x ] ] = %mxq_cl_m_y
}
else {
%mxq_cl_m_ [ $+ [ %mxq_cont_x ] ] = %mxq_cl_m_x
%mxq_cont_x = 1
}
dec %mxq_cont_x
}
}
inc %mxq_cont
}
:esci_da_prepara_risultati_manche_MaxiScaraQuick
}
alias prepara_classifica_MaxiScaraQuick {
if (%MaxiScaraQuick_gioco != ON) goto esci_da_prepara_classifica_MaxiScaraQuick
%mxq_num_nick = $numtok(%mxq_giocatori_partita,32)
%mxq_cont = 1
while (%mxq_cont <= %mxq_num_nick) {
%mxq_cl_ [ $+ [ %mxq_cont ] ] = $gettok(%mxq_giocatori_partita, %mxq_cont ,32)
if (%mxq_cont == 1) {
%mxq_cl_1 = $gettok(%mxq_giocatori_partita,1,32)
}
else {
%mxq_cont_x = %mxq_cont
while (%mxq_cont_x > 1) {
%mxq_cont_y = %mxq_cont_x - 1
%mxq_cl_x = %mxq_cl_ [ $+ [ %mxq_cont_x ] ]
%mxq_cl_y = %mxq_cl_ [ $+ [ %mxq_cont_y ] ]
if ( %mxq_punti_tot_ [ $+ [ %mxq_cl_x ] ] > %mxq_punti_tot_ [ $+ [ %mxq_cl_y ] ] ) {
%mxq_cl_ [ $+ [ %mxq_cont_y ] ] = %mxq_cl_x
%mxq_cl_ [ $+ [ %mxq_cont_x ] ] = %mxq_cl_y
}
else {
%mxq_cl_ [ $+ [ %mxq_cont_x ] ] = %mxq_cl_x
%mxq_cont_x = 1
}
dec %mxq_cont_x
}
}
inc %mxq_cont
}
:esci_da_prepara_classifica_MaxiScaraQuick
}