xTrivia — File Browser
xTriviav1.0 / xTriviav1.0 / xTriviaByRibellina / xtrivia / bot / Addons / Giochi / Vocalando.mrc
Vocalando.mrc — 14.16 KB — Download this file
;--------------------------------------------------------------
; Script vokalando
;
; Per caricare lo script: " /load -rs vokalando.mrc "
; Per il corretto funzionamento dello script assicurarsi
; che il dizionario sia contenuto nella sottocartella Dictionary.
;
;--------------------------------------------------------------
menu channel,menubar {
-
Giochi
.Vocalando
..Avvia:vokalando_start
..End of game:vokalando_end
}
alias vokalando_start {
echo 4 -a richiesta avvio gioco
if (%vokalando_gioco != ON ) {
set %game_channel $?="Su che canale avviare il gioco?"
set %vokalando_mionick $me
set %vokalando_punteggio $?="Inserisci il numero di punti da totalizzare per vincere:"
if (%vokalando_punteggio == $null) set %vokalando_punteggio 1000
set %vokalando_gioco ON
avvia_vokalando
}
}
alias vokalando_end {
if (%vokalando_gioco == ON ) /fine_vokalando
}
on 1:TEXT:!valori:%game_channel: {
if (%vokalando_gioco == ON) /msg %game_channel 0,2 Valori:8,2 a=4 11,2b=1 c=1 d=1 8,2e=4 11,2f=1 g=1 h=1 8,2i=5 11,2j=1 k=1 l=1 m=1 n=1 8,2o=5 11,2p=1 q=1 r=1 s=1 t=1 8,2u=8 11,2v=1 w=1 x=1 y=1 z=1
}
on 1:TEXT:!vocalandoend:%game_channel: {
if (($nick !isop %game_channel) && ($nick !ishop %game_channel)) { notice $nick 1,11Devi essere almeno % per fermare vokalando | halt }
if (%vokalando_gioco == ON) /fine_vokalando
}
on 1:TEXT:!vocalandostart:%game_channel: {
if (($nick !isop %game_channel) && ($nick !ishop %game_channel)) { notice $nick 1,11Devi essere almeno % per attivare vokalando | halt }
echo 4 -a richiesta avvio gioco
if (%vokalando_gioco != ON) {
set %game_channel $chan
set %vokalando_mionick $me
set %vokalando_punteggio $3
if (%vokalando_punteggio == $null) set %vokalando_punteggio 1000
set %vokalando_gioco ON
avvia_vokalando
}
}
on 1:TEXT:*:?: {
if (%vokalando_gioco != ON) goto esci_da_verifica_parola
if (%vokalando_manche != ON) {
msg $nick Nessuna manche in corso !
goto esci_da_verifica_parola
}
set %vok_temp_parola $1
if ($len(%vok_temp_parola) < 3) goto esci_da_verifica_parola
if (%vok_ran == a) { if ($len(%vok_temp_parola) != %vok_lun) goto esci_da_verifica_parola }
if (%vok_ran == b) { if ($len(%vok_temp_parola) >= %vok_lun) goto esci_da_verifica_parola }
if (%vok_ran == c) { if ($len(%vok_temp_parola) <= %vok_lun) goto esci_da_verifica_parola }
%vok_x = 0
%vok_cx = 0
while (%vok_x == 0) {
inc %vok_cx
if (%vok_cx > $len(%vok_temp_parola)) { %vok_x = 1 }
else {
if ( $mid(%vok_temp_parola,%vok_cx,1) isin bcdfghlmnpqrstvz ) { %vok_x = 0 }
elseif ( $mid(%vok_temp_parola,%vok_cx,1) isin %vok_cons ) { %vok_x = 0 }
else { %vok_x = 2 }
}
}
if (%vok_x == 2) {
goto esci_da_verifica_parola
}
set %vok_r $read($scriptdirDictionary\ $+ italiano. [ $+ [ $left(%vok_temp_parola,1) ] ],w,%vok_temp_parola,1)
if ($readn == 0) { goto esci_da_verifica_parola }
%vok_giocatori_manche = $addtok(%vok_giocatori_manche,$nick,32)
%vok_parole_manche_ [ $+ [ $nick ] ] = $addtok(%vok_parole_manche_ [ $+ [ $nick ] ] ,%vok_temp_parola,32)
:esci_da_verifica_parola
close -m $nick
}
alias fine_vokalando {
if (%vokalando_gioco == ON) {
msg %game_channel 0,2 ©º°¨ 8 VoCaL11aNdO 0 ¨°º©0,2 TeRmInAtO 4,2 ripped By Orologio
unset %vok_*
unset %vokalando*
timer_vok* OFF
halt
}
}
alias avvia_vokalando {
if (%vokalando_gioco != ON) goto esci_da_avvia_vokalando
if (%vokalando_punteggio < 100) set %vokalando_punteggio 100
if (%vokalando_punteggio > 2000) set %vokalando_punteggio 2000
msg %game_channel 0,2 ©º°¨ 8 VoCaL11aNdO 0 ¨°º©0,2 aTTiVaTo
msg %game_channel 0,2 Punteggio da raggiungere: 11,2 %vokalando_punteggio
set %vok_scarto bcdfghlmnpqrstvzjkwxy
set %vok_manche 1
.timer_vok_1 1 10 /avvia_manche_vokalando
:esci_da_avvia_vokalando
}
alias avvia_manche_vokalando {
if (%vokalando_gioco != ON) goto esci_da_avvia_manche_vokalando
unset %vok_riga
unset %vok_cons
unset %vok_giocatori_*
unset %vok_parole_manche_*
unset %vok_punti_manche_*
unset %vok_cl*
genera_lettere_vokalando
genera_range_lunghezza
msg %game_channel 0,2 Tra11,2 5 0,2secondi la prossima manche
.timer_vok_1 1 5 /visualizza_lettere_vokalando
:esci_da_avvia_manche_vokalando
}
alias genera_lettere_vokalando {
if (%vokalando_gioco != ON) goto esci_genera_lettere
%vok_x = $rand(2,4)
%vok_temp = 1
:trova_consonanti
set %vok_c $rand(a,z)
if (%vok_c isin %vok_scarto) { goto trova_consonanti }
%vok_riga = %vok_riga $+ [ $chr(32) ] $+ [ %vok_c ]
%vok_cons = %vok_cons $+ [ %vok_c ]
inc %vok_temp
if (%vok_temp <= %vok_x) goto trova_consonanti
%vok_riga = %vok_riga $+ [ $chr(32) ]
%vok_riga_da_visualizzare = $upper(%vok_riga)
:esci_genera_lettere
}
alias genera_range_lunghezza {
if (%vokalando_gioco != ON) goto esci_da_genera_range
%vok_ran = $rand(a,c)
%vok_lun = $rand(3,10)
if (%vok_ran == a) {
if ($len(%vok_cons) = 2) && (%vok_lun > 7) { %vok_lun = 7 }
%vok_range = uguale a %vok_lun
}
if (%vok_ran == b) {
if (%vok_lun == 3) { %vok_lun = 4 }
%vok_range = inferiore a %vok_lun
}
if (%vok_ran == c) {
if ($len(%vok_cons) = 2) && (%vok_lun > 6) { %vok_lun = 6 }
%vok_range = superiore a %vok_lun
}
:esci_da_genera_range
}
alias visualizza_lettere_vokalando {
if (%vokalando_gioco != ON) goto esci_da_visualizza_lettere_vokalando
msg %game_channel 0,2 ©º°¨8VoCaL11aNdO0¨°º© 0,2 manche n°:11,2 %vok_manche
msg %game_channel 0,2 Le vocali sono >>>8,2 %vok_riga_da_visualizzare 0,2<<<
msg %game_channel 0,2 Trovate parole di lunghezza11,2 %vok_range 0,2lettere
msg %game_channel 0,2 Scrivete le vostre parole in query a11,2 %vokalando_mionick 0,2. Dovete utilizzare le vocali date (anche ripetendole) e tutte le consonanti che volete.
msg %game_channel 11,2 Avete11 90 11secondi da questo momento
set %vokalando_manche ON
.timer_vok_1 1 80 /avviso_fine_manche_vokalando
:esci_da_visualizza_lettere_vokalando
}
alias avviso_fine_manche_vokalando {
if (%vokalando_gioco != ON) goto esci_da_avviso_fine_manche_vokalando
msg %game_channel 12,15 Presto mancano solo 10 secondi
.timer_vok_1 1 11 /fine_tempo_manche_vokalando
:esci_da_avviso_fine_manche_vokalando
}
alias fine_tempo_manche_vokalando {
if (%vokalando_gioco != ON) goto esci_da_fine_tempo_manche_vokalando
msg %game_channel 11,2 manche n°:8,2 %vok_manche 11,2terminata
%vok_num_nick = $numtok(%vok_giocatori_manche,32)
if (%vok_temp_num_nick != 0) {
%vok_cont = 1
while (%vok_cont <= %vok_num_nick) {
%vok_temp_nick = $gettok(%vok_giocatori_manche, %vok_cont ,32)
msg %vok_temp_nick 4 TEMPO SCADUTO !
inc %vok_cont
}
}
set %vokalando_manche OFF
.timer_vok_1 1 5 /fine_manche_vokalando
:esci_da_fine_tempo_manche_vokalando
}
alias fine_manche_vokalando {
if (%vokalando_gioco != ON) goto esci_da_fine_manche_vokalando
msg %game_channel 0,2 Le vocali erano: 11,2 %vok_riga_da_visualizzare 0,2 e la lunghezza 11,2 %vok_range
msg %game_channel 11,2 Risultati manche:
%vok_temp_num_nick = $numtok(%vok_giocatori_manche,32)
%vok_x_t = 2
if (%vok_temp_num_nick == 0) {
.timer_vok_2 1 2 /msg %game_channel 0,2 Parole trovate: NESSUNA
%vok_temp_num_nick = $numtok(%vok_giocatori,32)
goto mostra_classifica_vokalando
}
/assegna_punti_manche_vokalando
/assegna_punti_totali_vokalando
%vok_temp_num_nick = $numtok(%vok_giocatori_manche,32)
%vok_x = 1
while (%vok_x <= %vok_temp_num_nick) {
%vok_temp_nick = %vok_cl_m_ [ $+ [ %vok_x ] ]
%vok_parole_t = %vok_parole_manche_ [ $+ [ %vok_temp_nick ] ]
if ($len(%vok_parole_t) > 190) {
%vok_x_num_parole = $numtok(%vok_parole_t,32)
%vok_parole_t_1 = %vok_parole_t
while ($len(%vok_parole_t_1) > 190) {
%vok_parole_t_1 = $deltok(%vok_parole_t_1,%vok_x_num_parole,32)
dec %vok_x_num_parole
}
%vok_x_len_t = $len(%vok_parole_t)
%vok_x_len_t_1 = $len(%vok_parole_t_1)
%vok_x_len_t_2 = %vok_x_len_t - %vok_x_len_t_1
%vok_parole_t_2 = $right(%vok_parole_t,%vok_x_len_t_2)
.timer_vok_ [ $+ [ %vok_x_t ] ] 1 %vok_x_t /msg %game_channel 8,2 %vok_temp_nick 0,2 con le parole 11,2 %vok_parole_t_1
inc %vok_x_t
.timer_vok_ [ $+ [ %vok_x_t ] ] 1 %vok_x_t /msg %game_channel 0,2 ... e le parole 11,2 %vok_parole_t_2 0,2 ottiene 8,2 %vok_punti_manche_ [ $+ [ %vok_temp_nick ] ] 0,2 punti
}
else {
.timer_vok_ [ $+ [ %vok_x_t ] ] 1 %vok_x_t /msg %game_channel 8,2 %vok_temp_nick 0,2 con le parole 11,2 %vok_parole_manche_ [ $+ [ %vok_temp_nick ] ] 0,2 ottiene 8,2 %vok_punti_manche_ [ $+ [ %vok_temp_nick ] ] 0,2 punti
}
inc %vok_x_t
inc %vok_x
}
unset %vok_parole_t*
:mostra_classifica_vokalando
/prepara_classifica_vokalando
/visualizza_classifica_vokalando
%vok_x_t = %vok_x_t + 15
if (%vok_punti_ [ $+ [ %vok_classificato_1 ] ] > %vokalando_punteggio) {
.timer_vok_ [ $+ [ %vok_x_t ] ] 1 %vok_x_t /msg %game_channel 0,2 ©º°¨ 8 VoCaL11aNdO 0 ¨°º©0,2 TeRmInAtO 4,2 ripped By Orologio
inc %vok_x_t
.timer_vok_ [ $+ [ %vok_x_t ] ] 1 %vok_x_t /msg %game_channel 0,2 il vincitore è 8,2 %vok_classificato_1 0,2 con 8,2 %vok_punti_ [ $+ [ %vok_classificato_1 ] ] 0,2punti
inc %vok_x_t
.timer_vok_ [ $+ [ %vok_x_t ] ] 1 %vok_x_t /fine_vokalando
}
else {
inc %vok_manche
.timer_vok_ [ $+ [ %vok_x_t ] ] 1 %vok_x_t /avvia_manche_vokalando
}
:esci_da_fine_manche_vokalando
}
alias visualizza_classifica_vokalando {
if (%vokalando_gioco != ON) goto esci_da_visualizza_classifica_vokalando
%vok_x_t = %vok_x_t + 10
.timer_vok_ [ $+ [ %vok_x_t ] ] 1 %vok_x_t /msg %game_channel 0,2 ©º°¨ 8VoCaL11aNdO 11,2CLASSIFICA0 ¨°º©0,2 dopo11,2 %vok_manche 0,2manche:
inc %vok_x_t
set %vok_t 1
while (%vok_t <= 5) {
if ( %vok_classificato_ [ $+ [ %vok_t ] ] == $null ) {
.timer_vok [ $+ [ %vok_x_t ] ] 1 %vok_x_t /msg %game_channel 11,2 %vok_t ° 0,2Classificato 8,2 ------ 0,2 con punti 8,2 ---
}
else {
.timer_vok [ $+ [ %vok_x_t ] ] 1 %vok_x_t /msg %game_channel 11,2 %vok_t ° 0,2Classificato 8,2 %vok_classificato_ [ $+ [ %vok_t ] ] 0,2 con punti 8,2 %vok_punti_ [ $+ [ %vok_classificato_ [ $+ [ %vok_t ] ] ] ]
}
inc %vok_x_t
inc %vok_t
}
:esci_da_visualizza_classifica_vokalando
}
alias prepara_classifica_vokalando {
if (%vokalando_gioco != ON) goto esci_da_prepara_classifica_vokalando
%vok_temp_num_nick = $numtok(%vok_giocatori,32)
%vok_temp_nick = $gettok(%vok_giocatori,1,32)
set %vok_classificato_1 %vok_temp_nick
if (%vok_temp_num_nick == 1) goto ciclo_classifica_terminato
%vok_temp = 2
while (%vok_temp <= %vok_temp_num_nick) {
%vok_temp_nick = $gettok(%vok_giocatori,%vok_temp,32)
%vok_classificato_ [ $+ [ %vok_temp ] ] = %vok_temp_nick
%vok_x_temp = %vok_temp
while (%vok_x_temp > 1) {
%vok_y_temp = %vok_x_temp - 1
%vok_classificato_x = %vok_classificato_ [ $+ [ %vok_x_temp ] ]
%vok_classificato_y = %vok_classificato_ [ $+ [ %vok_y_temp ] ]
if ( %vok_punti_ [ $+ [ %vok_classificato_x ] ] > %vok_punti_ [ $+ [ %vok_classificato_y ] ] ) {
%vok_classificato_ [ $+ [ %vok_y_temp ] ] = %vok_classificato_x
%vok_classificato_ [ $+ [ %vok_x_temp ] ] = %vok_classificato_y
}
else {
%vok_classificato_ [ $+ [ %vok_x_temp ] ] = %vok_classificato_x
%vok_x_temp = 1
}
dec %vok_x_temp
}
inc %vok_temp
}
:ciclo_classifica_terminato
:esci_da_prepara_classifica_vokalando
}
alias assegna_punti_totali_vokalando {
if (%vokalando_gioco != ON) goto esci_da_assegna_punti_totali_vokalando
%vok_x = 1
while (%vok_x <= %vok_temp_num_nick) {
%vok_temp_nick = $gettok(%vok_giocatori_manche,%vok_x,32)
%vok_giocatori = $addtok(%vok_giocatori,%vok_temp_nick,32)
if ( %vok_punti_ [ $+ [ %vok_temp_nick ] ] == $null ) { %vok_punti_ [ $+ [ %vok_temp_nick ] ] = 0 }
%vok_punti_ [ $+ [ %vok_temp_nick ] ] = %vok_punti_ [ $+ [ %vok_temp_nick ] ] + %vok_punti_manche_ [ $+ [ %vok_temp_nick ] ]
inc %vok_x
}
:esci_da_assegna_punti_totali_vokalando
}
alias assegna_punti_manche_vokalando {
if (%vokalando_gioco != ON) goto esci_da_assegna_punti_manche_vokalando
%vok_x = 1
while (%vok_x <= %vok_temp_num_nick) {
%vok_temp_nick = $gettok(%vok_giocatori_manche,%vok_x,32)
%vok_x_parole = $lower( %vok_parole_manche_ [ $+ [ %vok_temp_nick ] ] )
%vok_x_punti = 0
%vok_xx = 1
while (%vok_xx <= $len(%vok_x_parole)) {
%vok_x_let = $mid(%vok_x_parole,%vok_xx,1)
if (%vok_x_let isin ae) { %vok_x_punti = %vok_x_punti + 4 }
elseif (%vok_x_let == i) { %vok_x_punti = %vok_x_punti + 5 }
elseif (%vok_x_let == o) { %vok_x_punti = %vok_x_punti + 5 }
elseif (%vok_x_let == u) { %vok_x_punti = %vok_x_punti + 8 }
elseif (%vok_x_let isin bcdfghlmnpqrstvz) { %vok_x_punti = %vok_x_punti + 1 }
elseif (%vok_x_let isin jkwxy) { %vok_x_punti = %vok_x_punti + 2 }
else { }
inc %vok_xx
}
%vok_punti_manche_ [ $+ [ %vok_temp_nick ] ] = %vok_x_punti
if (%vok_x == 1) {
%vok_cl_m_1 = %vok_temp_nick
}
else {
%vok_x_temp = %vok_x
%vok_cl_m_ [ $+ [ %vok_x ] ] = %vok_temp_nick
while (%vok_x_temp > 1) {
%vok_y_temp = %vok_x_temp - 1
%vok_cl_m_x = %vok_cl_m_ [ $+ [ %vok_x_temp ] ]
%vok_cl_m_y = %vok_cl_m_ [ $+ [ %vok_y_temp ] ]
if ( %vok_punti_manche_ [ $+ [ %vok_cl_m_x ] ] < %vok_punti_manche_ [ $+ [ %vok_cl_m_y ] ] ) {
%vok_cl_m_ [ $+ [ %vok_y_temp ] ] = %vok_cl_m_x
%vok_cl_m_ [ $+ [ %vok_x_temp ] ] = %vok_cl_m_y
}
else {
%vok_cl_m_ [ $+ [ %vok_x_temp ] ] = %vok_cl_m_x
%vok_x_temp = 1
}
dec %vok_x_temp
}
}
inc %vok_x
}
:esci_da_assegna_punti_manche_vokalando
}