xTrivia — File Browser

xTriviav1.0 / xTriviav1.0 / xTriviaByRibellina / xtrivia / bot / Addons / Giochi / MultiSillaba.mrc

MultiSillaba.mrc — 36.93 KB — Download this file

;--------------------------------------------------------------
multisillaba Plus 2.0
by PanToufLe

Per caricare lo script: /load -rs scaraplus.pan
Per il corretto funzionamento dello script assicurarsi
che il dizionario sia contenuto nella sottocartella Dictionary.
;--------------------------------------------------------------

on 1:NICK:{
  if (%gamemultisillaba_stato != OFF) && ( $nick != $newnick ) {
    multisillaba_search $nick
    if (%trovato == 1) {
      %multisillaba_chnickline = $read -l %pos scaraclass.txt
      %multisillaba_chnickline = $puttok(%multisillaba_chnickline,$newnick,1,46)
      write -l %pos scaraclass.txt %multisillaba_chnickline
    }
    multisillaba_manchesearch $nick
    if (%trovato == 1) {
      %multisillaba_chnickline = $read -l %pos multisillabamanche.txt
      %multisillaba_chnickline = $puttok(%multisillaba_chnickline,$newnick,1,46)
      write -l %pos multisillabamanche.txt %multisillaba_chnickline
    }
  }
}

on 1:JOIN:%game_channel:{ if (%gamemultisillaba_stato != OFF) { .msg $nick 7,2 ©º°¨ - 8 multisillaba9 ++PluS++11 Running!7,2 - ©º°¨¨°º© 8 Digita !aiuto nel canale per le istruzioni } }
on 1:TEXT:!punti:%game_channel:{
  if (%gamemultisillaba_stato != OFF) {
    multisillaba_search $nick
    if (%trovato == 1) {
      .msg $nick Il tuo punteggio è %multisillaba_ptsquery
    }
  }
}
on 1:TEXT:!lettere:%game_channel: {
  if (%gamemultisillaba_stato != OFF) {
    if (%multisillaba_manche == ON ) { msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©   4,2 Le lettere a disposizione sono:8,2 %multisillaba_current }
    else { msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  4,2 Nessuna manche in corso. Attendi la prossima! }
  }
}
on 1:TEXT:!valori:%game_channel:{ if (%gamemultisillaba_stato != OFF) { msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 Valori:4,2 a=1 b=4 c=1 d=4 e=1 f=4 g=4 h=8 i=1 j=12 k=12 l=2 m=2 n=2 o=1 p=3 q=10 r=1 s=1 t=1 u=4 v=4 w=12 x=12 y=12 z=8  } }
on 1:TEXT:!aiuto:%game_channel: multisillaba_help $nick

on 1:TEXT:*:?: {
  if (%gamemultisillaba_stato == ON) && (%multisillaba_manche == OFF) && ($1 != $null) && ($nick != $me) { .msg $nick Manche terminata. Non posso accettare la tua richiesta }
  if (%gamemultisillaba_stato == ON) && (%multisillaba_manche == ON) && ($1 != $null) && ($nick != $me) {
    set %multisillaba_string $1
    ;    if ($len(%sillaba_string) < %multisillaba_limite) { .msg $nick Il limite per questa manche è di %sillaba_lenmax  lettere | halt }
    if (%multisillaba_sillaba !isin %multisillaba_string ) && (%multisillaba_sillaba2 !isin %multisillaba_string ) { .msg $nick Stiamo giocando per le sillabe %multisillaba_sillaba o per %multisillaba_sillaba2   . La tua parola contiene ne l'una ne l'altra | halt }
    else {
      set %multisillaba_starlet $left(%multisillaba_string,1)
      set %multisillaba_trovato $read($scriptdirdictionary\ $+ italiano. [ $+ [ %multisillaba_starlet ] ],w,%multisillaba_string,1)
      if ( %multisillaba_trovato == %multisillaba_string ) {
        ;        .msg $nick Parola Accettata, scrivine altre presto!!!
        multisillaba_verifica %multisillaba_string
        if (%multisillaba_ok == 1) {
          multisillaba_manchesearch $nick
          if (%trovato == 0) {
            set %multisillaba_fileline $nick
            set %multisillaba_fileline $instok(%multisillaba_fileline,%multisillaba_string,2,46)
            set %multisillaba_fileline $addtok(%multisillaba_fileline,-,46)
            write multisillabamanche.txt %multisillaba_fileline
          }
          if (%trovato == 1) {
            set %multisillaba_fileline $read -l %pos multisillabamanche.txt
            set %multisillaba_wrdtok $gettok(%multisillaba_fileline,2,46)
            set %multisillaba_wrdtok $addtok(%multisillaba_wrdtok,%multisillaba_string,32)
            set %multisillaba_fileline $puttok(%multisillaba_fileline,%multisillaba_wrdtok,2,46)
            write -l %pos multisillabamanche.txt %multisillaba_fileline
          }
        }
      }
      ;     else .msg $nick Questa parola non esiste nel mio dizionario, spiacente
    }
  }

  close -m $nick
}

alias multisillaba_scara {


}


alias multisillaba_verifica {
  set %multisillaba_ok 1
  if ($len($1) < %multisillaba_limite ) { set %multisillaba_ok 0 }
  set %templet %multisillaba_current
  set %remains $1
  while ($len(%remains) > 0) && (%multisillaba_ok == 1) {
    set %letter $left(%remains,1)
    set %nleft $calc($len(%remains) - 1 )
    set %remains $right(%remains,%nleft)
    if ($istok(%templet,%letter,32) == $true) {
      set %templet $remtok(%templet,%letter,1,32)
    }
    else { set %multisillaba_ok 0 }
  }
}

alias multisillaba_start {
  if ( %gamemultisillaba_stato == ON ) || ( %gamemultisillaba_stato == PAUSE ) { if ( $?!="Sei sicuro/a di voler avviare il gioco? Potrebbe essere già attivo oppure in pausa? " == $true ) { set %gamemultisillaba_stato OFF  } }
  if (%gamemultisillaba_stato == OFF) || (%gamemultisillaba_stato == $null) {
    unset %multisillaba*
    set %game_channel $?="Su che canale avviare il gioco?"
    if ( %game_channel !ischan ) { echo -a Canale non valido | halt }
    set %multisillaba_target $?="Inserisci il numero di punti da totalizzare per vincere:"
    if (%multisillaba_target !isnum) { echo -a Non hai inserito un valore valido. Fai ripartire il quiz | halt }
    set %gamemultisillaba_stato ON
    set %multisillaba_manche OFF
    set %multisillaba_durata 60
    set %multisillaba_pausetime 30
    set %multisillaba_manchenum 0
    if ($exists(multisillabarecord.txt) == $false) multisillaba_generahs
    set %multisillaba_record $read -l 11 multisillabaRecord.txt
    set %multisillaba_reckeeper $gettok(%multisillaba_record,1,35)
    set %multisillaba_record $gettok(%multisillaba_record,2,35)
    if $exists(scaraclass.txt) { .remove scaraclass.txt }
    if $exists(multisillabamanche.txt) { .remove multisillabamanche.txt }
    msg %game_channel 7,2 ©º°¨ - 8 Silla9 ++PluS++11 AcTivaTeD 0mod. by BREIL 7,2- ¨°º© 
    msg %game_channel 7,2 ©º°¨¨°º© - 8 **9 Si vince a0 %multisillaba_target $+ 9 punti8 ** 7,2 - ©º°¨¨°º© 
    echo -a 8,2 Fai partire la prima manche quando vuoi dal pannello col tasto START GAME
    dialog -m multisillabagame multisillabagame
  }
}

on 1:notice:multisillabaon*:?:{
  if (%gamemultisillaba_stato == OFF) || (%gamemultisillaba_stato == $null) {
    unset %multisillaba*
    set %game_channel %game_channel
    if ( %game_channel !ischan ) { .msg $nick Non mi trovo su %game_channel, spiacente | halt }
    set %multisillaba_target $2
    if (%multisillaba_target !isnum) { .msg $nick Non hai inserito un valore valido. Fai ripartire il quiz | halt }
    set %gamemultisillaba_stato ON
    set %multisillaba_manche OFF
    set %multisillaba_durata 70
    set %multisillaba_pausetime 30
    set %multisillaba_manchenum 0
    set %multisillaba_mad 0
    if ($4 == MAD) set %multisillaba_mad 1
    if ($exists(multisillabarecord.txt) == $false) multisillaba_generahs
    set %multisillaba_record $read -l 11 multisillabaRecord.txt
    set %multisillaba_reckeeper $gettok(%multisillaba_record,1,35)
    set %multisillaba_record $gettok(%multisillaba_record,2,35)
    if $exists(scaraclass.txt) { .remove scaraclass.txt }
    if $exists(multisillabamanche.txt) { .remove multisillabamanche.txt }
    msg %game_channel 7,2 ©º°¨ - 8 Silla9 ++PluS++11 AcTivaTeD 0mod. by BREIL 7,2- ¨°º© 
    msg %game_channel 7,2 ©º°¨¨°º© - 8 **9 Si vince a0 %multisillaba_target $+ 9 punti8 ** 7,2 - ©º°¨¨°º© 
    .timerhub 1 35 multisillaba_hub
  }
}

alias multisillaba_generahs {
  %x = 1
  while ( %x <= 11 ) {
    write multisillabarecord.txt none#0
    inc %x
  }
}

alias multisillaba_endofgame {
  if ($lines(scaraclass.txt) > 3) && (%multisillaba_target > 499) {
    set %x 1
    while (%x <= $lines(scaraclass.txt)) {
      set %multisillaba_line $read -l %x scaraclass.txt
      set %multisillaba_nick $gettok(%multisillaba_line,1,46)
      set %multisillaba_pts $gettok(%multisillaba_line,2,46)
      set %multisillaba_media $calc(%multisillaba_pts / %multisillaba_manchenum)
      set %y 1
      if (%multisillaba_nick == `computer`) goto scstophere
      multisillaba_gcs %multisillaba_nick
      if (%trovato == 0) {
        while (%y <= 10) {
          set %multisillaba_procline $read -l %y multisillabarecord.txt
          set %multisillaba_ptsentry $gettok(%multisillaba_procline,2,35)
          if (%multisillaba_media > %multisillaba_ptsentry) {
            set %z %y
            set %multisillaba_inline %multisillaba_nick $+ $chr(35) $+ %multisillaba_media
            msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  4,2 %multisillaba_nick 8,2conquista la posizione numero4,2 %y 8,2con la media di9,2 %multisillaba_media 8,2punti.
            while (%z <= 10) {
              set %multisillaba_temp $read -l %z multisillabarecord.txt
              write -l %z multisillabarecord.txt %multisillaba_inline
              set %multisillaba_inline %multisillaba_temp
              inc %z
            }
            goto scstophere
          }
          inc %y
        }
      }
      if (%trovato == 1) {
        if (%multisillaba_media <= %multisillaba_ptsquery) goto scstophere
        write -dl %pos multisillabarecord.txt
        while (%y <= %pos) {
          set %multisillaba_procline $read -l %y multisillabarecord.txt
          set %multisillaba_ptsentry $gettok(%multisillaba_procline,2,35)
          if (%multisillaba_media > %multisillaba_ptsentry) {
            set %multisillaba_inline %multisillaba_nick $+ $chr(35) $+ %multisillaba_media
            msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  4,2 %multisillaba_nick 8,2 raggiunge la posizione4,2 %y 8,2con la media di9,2 %multisillaba_media 8,2punti.
            write -il %y multisillabarecord.txt %multisillaba_inline
            goto scstophere
          }
          inc %y
        }
      }
      :scstophere
      inc %x
    }
  }
  if $exists(scaraclass.txt) { .remove scaraclass.txt }
  if $exists(multisillabamanche.txt) { .remove multisillabamanche.txt }
  msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 Silla9,2 ++PluS++11,2 FiNiTo! 4,2
  msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 Vince 0,2 %multisillaba_1nick $+ 9,2 con0,2 %multisillaba_1pts $+ 9,2 punti 4,2
  msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 #scarabeo 4,2
  set %gamemultisillaba_stato OFF
  unset %multisillaba*

}

on 1:notice:multisillabaoff*:?:{
  if (%gamemultisillaba_stato == ON) {
    if $exists(scaraclass.txt) { .remove scaraclass.txt }
    if $exists(multisillabamanche.txt) { .remove multisillabamanche.txt }
    .timer* off
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 Silla9,2 ++PluS++11,2 FiNiTo! 4,2
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 Vince 0,2 %multisillaba_1nick $+ 9,2 con0,2 %multisillaba_1pts $+ 9,2 punti 4,2
    set %gamemultisillaba_stato OFF
    unset %multisillaba*

  }
}

alias multisillaba_end_query {
  if (%gamemultisillaba_stato == ON) || (%gamemultisillaba_stato == PAUSE) {
    if ( $?!="Vuoi terminare il gioco? Esso verrà fermato alla fine della prossima manche o di quella in corso " == $true ) { set %multisillaba_target -1 }
  }
}

on 1:notice:multisillabapausa*:?:{
  if ($2 == %game_password) {
    if (%gamemultisillaba_stato == ON) || (%gamemultisillaba_stato == PAUSE) {
      if (%multisillaba_manche == ON) { .msg $nick Attendi il termine della manche il corso }
      if (%multisillaba_manche == OFF) {
        if (%gamemultisillaba_stato == PAUSE) { set %gamemultisillaba_stato ON | msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  4,2 ¯°·.¸¸.·°¯°·>9,2 Attenzione: Silla ++PluS++ riprende!4,2 <·°¯°·.¸¸.·°¯ | .timernew 1 30 multisillaba_hub | halt }
        if (%gamemultisillaba_stato == ON) { set %gamemultisillaba_stato PAUSE | msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  4,2 ¯°·.¸¸.·°¯°·>8,2 Silla ++Plus++ in 9,2 PAUSA!4,2 <·°¯°·.¸¸.·°¯ | halt }
      }
    }
  }
}

alias multisillaba_pause {
  if (%gamemultisillaba_stato == ON) || (%gamemultisillaba_stato == PAUSE) {
    if (%multisillaba_manche == ON) { echo -a 8,2 Attendi il termine della manche il corso }
    if (%multisillaba_manche == OFF) {
      if (%gamemultisillaba_stato == PAUSE) { set %gamemultisillaba_stato ON | msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  4,2 ¯°·.¸¸.·°¯°·>9,2 Attenzione: Silla ++PluS++ riprende!4,2 <·°¯°·.¸¸.·°¯ | .timernew 1 30 multisillaba_hub | halt }
      if (%gamemultisillaba_stato == ON) { set %gamemultisillaba_stato PAUSE | msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  4,2 ¯°·.¸¸.·°¯°·>8,2 Silla ++Plus++ in 9,2 PAUSA!4,2 <·°¯°·.¸¸.·°¯ | halt }
    }
  }
}


alias multisillaba_help {
  if ( %gamemultisillaba_stato != OFF) && (%multisillaba_antiflood != ON) {
    set %multisillaba_antiflood ON
    .timer1 1 1 .msg $1  8,2 ©©© multisillaba ++PluS ©©© - Modalità di gioco :
    .timer2 1 2 .msg $1  4,2 “““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““
    .timer3 1 3 .msg $1  8,2 Ad ogni manche vengono date 8 lettere. Devi formare il maggior numero di parole con queste
    .timer4 1 4 .msg $1  8,2 lettere e scriverle UNA ALLA VOLTA in query a0,2 $me .
    .timer5 1 5 .msg $1  8,2 Alla fine della manche vengono calcolati i punteggi. Per conoscere i valori delle lettere
    .timer6 1 6 .msg $1  8,2 digita0,2 !valori8,2 nel canale in cui è attivo il quiz.0,2 !lettere8,2 per avere le
    .timer7 1 7 .msg $1  8,2 lettere della manche in corso.4,2 Divertiti con lo multisillaba ++PluS++!
    .timer8 1 8 .msg $1  4,2 ““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““
    .timer10 1 10 set %multisillaba_antiflood OFF
  }
}

alias multisillaba_instr {
  if ( %gamemultisillaba_stato != OFF ) && (%multisillaba_antiflood != ON) {
    set %multisillaba_antiflood ON
    .timer1 1 1 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 ©©© multisillaba ++ ©©© - Modalità di gioco :
    .timer2 1 2 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  4,2 “““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““
    .timer3 1 3 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 Ad ogni manche vengono date 8 lettere. Devi formare il maggior numero di parole con queste
    .timer4 1 4 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 lettere e scriverle UNA ALLA VOLTA in query a0,2 $me .
    .timer5 1 5 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 Alla fine della manche vengono calcolati i punteggi. Per conoscere i valori delle lettere
    .timer6 1 6 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 digita0,2 !valori8,2 nel canale in cui è attivo il quiz.0,2 !lettere8,2 per avere le
    .timer7 1 7 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 lettere della manche in corso.4,2 Divertiti con lo multisillaba ++PluS++!
    .timer8 1 8 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  4,2 ““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““““
    .timer10 1 10 set %multisillaba_antiflood OFF
  }
}

on 1:notice:multisillabahelp*:?:{ if ($2 == %game_password) && (%gamemultisillaba_stato == ON) multisillaba_instr }

alias multisillaba_gcs {
  set %i 1
  set %trovato 0
  while ( ( %i <= 10 ) && ( %trovato == 0 ) ) {
    %riga = $read -l %i multisillabarecord.txt
    %nome = $gettok(%riga,1,35)
    %multisillaba_ptsquery = $gettok(%riga,2,35)
    if ( %nome == $1 ) {
      set %trovato 1
      set %pos %i
    }
    inc %i 1
  }
}

alias multisillaba_search {
  %lineefile = $lines(scaraclass.txt)
  set %i 1
  set %trovato 0
  while ( ( %i <= %lineefile ) && ( %trovato == 0 ) ) {
    %riga = $read -l %i scaraclass.txt
    %nome = $gettok(%riga,1,46)
    %multisillaba_ptsquery = $gettok(%riga,2,46)
    if ( %nome == $1 ) {
      set %trovato 1
      set %pos %i
    }
    inc %i 1
  }
}

alias multisillaba_manchesearch {
  %lineefile = $lines(multisillabamanche.txt)
  set %i 1
  set %trovato 0
  while ( ( %i <= %lineefile ) && ( %trovato == 0 ) ) {
    %riga = $read -l %i multisillabamanche.txt
    %nome = $gettok(%riga,1,46)
    if ( %nome == $1 ) {
      set %trovato 1
      set %pos %i
    }
    inc %i 1
  }
}

alias multisillaba_ordina {
  set %multisillaba_nltxt $lines(scaraclass.txt)
  set %p 1
  while (%p < %multisillaba_nltxt) {
    set %x 1
    while (%x < %multisillaba_nltxt) {
      set %y $calc(%x + 1 )
      set %multisillaba_upper $read -l %x scaraclass.txt
      set %multisillaba_lower $read -l %y scaraclass.txt
      set %multisillaba_uppt  $gettok(%multisillaba_upper,2,46)
      set %multisillaba_lowpt $gettok(%multisillaba_lower,2,46)
      if (%multisillaba_uppt < %multisillaba_lowpt) {
        write -l %x scaraclass.txt %multisillaba_lower
        write -l %y scaraclass.txt %multisillaba_upper
      }
      inc %x
    }
    inc %p
  }
  multisillaba_ordina_rovescio
}

alias multisillaba_ordina_rovescio {
  set %multisillaba_nltxt $lines(multisillabamanche.txt)
  set %p 1
  while (%p < %multisillaba_nltxt) {
    set %x 1
    while (%x < %multisillaba_nltxt) {
      set %y $calc(%x + 1 )
      set %multisillaba_upper $read -l %x multisillabamanche.txt
      set %multisillaba_lower $read -l %y multisillabamanche.txt
      set %multisillaba_uppt  $gettok(%multisillaba_upper,3,46)
      set %multisillaba_lowpt $gettok(%multisillaba_lower,3,46)
      if (%multisillaba_uppt > %multisillaba_lowpt) {
        write -l %x multisillabamanche.txt %multisillaba_lower
        write -l %y multisillabamanche.txt %multisillaba_upper
      }
      inc %x
    }
    inc %p
  }
}

alias multisillaba_start_manche { if (%gamemultisillaba_stato == ON) {
    inc %multisillaba_manchenum
    unset %multisillaba_current
    unset %multisillaba_sillaba 
    unset %multisillaba_consonante
    unset %multisillaba_sillaba2
    set %multisillaba_hub OFF
    set %multisillaba_nvocali $rand(4,7)
    set %multisillaba_limite $rand(3,4)
    set %multisillaba_ncons $calc( 12 - %multisillaba_nvocali)
    set %z 1
    while (%z <= %multisillaba_nvocali) {
      set %random $rand(1,5)
      ;
      if (%random == 1) {
        set %multisillaba_l [ $+ [ %z ] ] A
        set %multisillaba_sillaba %multisillaba_sillaba $+ A
      }
      ;
      if (%random == 2) {
        set %multisillaba_l [ $+ [ %z ] ] E
        set %multisillaba_sillaba %multisillaba_sillaba $+ E
      }
      ;
      if (%random == 3) {
        set %multisillaba_l [ $+ [ %z ] ] I
        set %multisillaba_sillaba %multisillaba_sillaba $+ I
      }
      ;
      if (%random == 4) {
        set %multisillaba_l [ $+ [ %z ] ] O
        set %multisillaba_sillaba %multisillaba_sillaba $+ O
      }
      ;
      if (%random == 5) {
        set %multisillaba_l [ $+ [ %z ] ] U
        set %multisillaba_sillaba %multisillaba_sillaba $+ U
      }
      inc %z
    }
    set %multisillaba_sillaba2 $right(%multisillaba_sillaba,1)
    set %multisillaba_sillaba $left(%multisillaba_sillaba,1)
    while (%z <= 12) {
      set %random $rand(1,18)
      if (%random == 1) {
        set %multisillaba_l [ $+ [ %z ] ] B
        set %multisillaba_sillaba %multisillaba_sillaba $+ B
      }
      if (%random == 2) {
        set %multisillaba_l [ $+ [ %z ] ] C
        set %multisillaba_sillaba %multisillaba_sillaba $+ C
      }
      if (%random == 3) {
        set %multisillaba_l [ $+ [ %z ] ] D
        set %multisillaba_sillaba %multisillaba_sillaba $+ D
      }
      if (%random == 4) {
        set %multisillaba_l [ $+ [ %z ] ] F
        set %multisillaba_sillaba %multisillaba_sillaba $+ F
      }
      if (%random == 5) {
        set %multisillaba_l [ $+ [ %z ] ] G
        set %multisillaba_sillaba %multisillaba_sillaba $+ G
      }
      if (%random == 6) {
        set %multisillaba_l [ $+ [ %z ] ] H
      }
      if (%random == 7) { multisillaba_ext_rand }
      if (%random == 8) { multisillaba_ext_rand }
      if (%random == 9) {
        set %multisillaba_l [ $+ [ %z ] ] L
        set %multisillaba_sillaba %multisillaba_sillaba $+ L
      }
      if (%random == 10) {
        set %multisillaba_l [ $+ [ %z ] ] M
        set %multisillaba_sillaba %multisillaba_sillaba $+ M
      }
      if (%random == 11) {
        set %multisillaba_l [ $+ [ %z ] ] N
        set %multisillaba_sillaba %multisillaba_sillaba $+ N
      }
      if (%random == 12) {
        set %multisillaba_l [ $+ [ %z ] ] P
        set %multisillaba_sillaba %multisillaba_sillaba $+ P
      }
      if (%random == 13) {
        set %multisillaba_l [ $+ [ %z ] ] Q
      }
      if (%random == 14) {
        set %multisillaba_l [ $+ [ %z ] ] R
        set %multisillaba_sillaba %multisillaba_sillaba $+ R
      }
      if (%random == 15) {
        set %multisillaba_l [ $+ [ %z ] ] S
        set %multisillaba_sillaba %multisillaba_sillaba $+ S
      }
      if (%random == 16) {
        set %multisillaba_l [ $+ [ %z ] ] T
        set %multisillaba_sillaba %multisillaba_sillaba $+ T
      }
      if (%random == 17) {
        set %multisillaba_l [ $+ [ %z ] ] V
        set %multisillaba_sillaba %multisillaba_sillaba $+ V
      }
      if (%random == 18) { set %multisillaba_l [ $+ [ %z ] ] Z }
      inc %z
    }
    set %z 1
    set %multisillaba_consonante $mid(%multisillaba_sillaba,3,1)
    set %multisillaba_sillaba2 %multisillaba_sillaba2 $+ %multisillaba_consonante
    set %multisillaba_sillaba $left(%multisillaba_sillaba,2)
    while (%z <= 12) { set %multisillaba_current $instok(%multisillaba_current,%multisillaba_l [ $+ [ %z ] ] ,1,32) | inc %z }
    .timer21 1 1 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  4,2 ->8,2 multisillaba9,2 ++PluS++4,2 <- Manche N°8,2 %multisillaba_manchenum
    .timer22 1 2 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 Le lettere sono8,2 %multisillaba_current
    .timer23 1 2 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 Le sillabe in gioco sono8,2 %multisillaba_sillaba 9e8 %multisillaba_sillaba2 
    .timer24 1 3 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 Il limite minimo è di8,2 %multisillaba_limite $+ 9,2 lettere
    .timer25 1 4 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 Scrivi le parole in query a8,2 $me
    .timer26 1 5 msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 Avete4,2 %multisillaba_durata $+ 8,2 secondi da questo istante
    set %multisillaba_manche ON
    .timeralert 1 $calc(%multisillaba_durata - 10) { multisillaba_alert }
  }
}

alias multisillaba_ext_rand {
  set %randomext $rand(1,5)
  if (%randomext == 1) { set %multisillaba_l [ $+ [ %z ] ] J }
  if (%randomext == 2) { set %multisillaba_l [ $+ [ %z ] ] K }
  if (%randomext == 3) { set %multisillaba_l [ $+ [ %z ] ] W }
  if (%randomext == 4) { set %multisillaba_l [ $+ [ %z ] ] X }
  if (%randomext == 5) { set %multisillaba_l [ $+ [ %z ] ] Y }
}

alias multisillaba_alert {
  msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 Ancora 10 secondi. Presto! 
  .timerend 1 10 multisillaba_endofmanche
}

alias multisillaba_endofmanche {
  set %multisillaba_manche OFF
  msg %game_channel 7,2©º°¨8Silla9++7,2¨°º© 8,2 Your Time Is Over! 
  msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  4,2 Le lettere erano8,2 %multisillaba_current 4,2e le sillabe erano8,2 %multisillaba_sillaba 4e8 %multisillaba_sillaba2 4. 4,2Risultati della8,2 %multisillaba_manchenum $+ ª4,2 manche:
  multisillaba_elabora
  close -m
  set %multisillaba_timercount 1
  set %multisillaba_fatto 0
  set %multisillaba_ntim $calc($lines(multisillabamanche.txt) + 1)
  .timermsg %multisillaba_ntim 2 multisillaba_resmsg
}

alias multisillaba_elabora {
  set %z 1
  while ( %z <= $lines(multisillabamanche.txt) ) {
    set %multisillaba_finale 0
    set %multisillaba_elline $read -l %z multisillabamanche.txt
    set %multisillaba_remains $gettok(%multisillaba_elline,2,46)
    set %multisillaba_letpos 1
    while ($len(%multisillaba_remains) > 0) {
      set %multisillaba_leflet $calc($len(%multisillaba_remains) - 1 )
      set %multisillaba_proclet $left(%multisillaba_remains,1)
      set %multisillaba_remains $right(%multisillaba_remains,%multisillaba_leflet)
      unset %multisillaba_let_pts
      if ( %multisillaba_proclet == a ) { set %multisillaba_let_pts 1 }
      if ( %multisillaba_proclet == b ) { set %multisillaba_let_pts 4 }
      if ( %multisillaba_proclet == c ) { set %multisillaba_let_pts 1 }
      if ( %multisillaba_proclet == d ) { set %multisillaba_let_pts 4 }
      if ( %multisillaba_proclet == e ) { set %multisillaba_let_pts 1 }
      if ( %multisillaba_proclet == f ) { set %multisillaba_let_pts 4 }
      if ( %multisillaba_proclet == g ) { set %multisillaba_let_pts 4 }
      if ( %multisillaba_proclet == h ) { set %multisillaba_let_pts 8 }
      if ( %multisillaba_proclet == i ) { set %multisillaba_let_pts 1 }
      if ( %multisillaba_proclet == j ) { set %multisillaba_let_pts 12 }
      if ( %multisillaba_proclet == k ) { set %multisillaba_let_pts 12 }
      if ( %multisillaba_proclet == l ) { set %multisillaba_let_pts 2 }
      if ( %multisillaba_proclet == m ) { set %multisillaba_let_pts 2 }
      if ( %multisillaba_proclet == n ) { set %multisillaba_let_pts 2 }
      if ( %multisillaba_proclet == o ) { set %multisillaba_let_pts 1 }
      if ( %multisillaba_proclet == p ) { set %multisillaba_let_pts 3 }
      if ( %multisillaba_proclet == q ) { set %multisillaba_let_pts 10 }
      if ( %multisillaba_proclet == r ) { set %multisillaba_let_pts 1 }
      if ( %multisillaba_proclet == s ) { set %multisillaba_let_pts 1 }
      if ( %multisillaba_proclet == t ) { set %multisillaba_let_pts 1 }
      if ( %multisillaba_proclet == u ) { set %multisillaba_let_pts 4 }
      if ( %multisillaba_proclet == v ) { set %multisillaba_let_pts 4 }
      if ( %multisillaba_proclet == x ) { set %multisillaba_let_pts 12 }
      if ( %multisillaba_proclet == y ) { set %multisillaba_let_pts 12 }
      if ( %multisillaba_proclet == w ) { set %multisillaba_let_pts 12 }
      if ( %multisillaba_proclet == z ) { set %multisillaba_let_pts 8 }
      if ( %multisillaba_proclet == - ) { set %multisillaba_let_pts 0 }
      if ( %multisillaba_proclet == $chr(32) ) { set %multisillaba_let_pts 0 }
      inc %multisillaba_finale %multisillaba_let_pts
      inc %multisillaba_letpos
    }
    set %multisillaba_elline $puttok(%multisillaba_elline,%multisillaba_finale,3,46)
    write -l %z multisillabamanche.txt %multisillaba_elline
    inc %z
  }
  multisillaba_agg_class
}

alias multisillaba_agg_class {
  set %z 1
  while (%z <= $lines(multisillabamanche.txt)) {
    set %multisillaba_clline $read -l %z multisillabamanche.txt
    set %multisillaba_clnick $gettok(%multisillaba_clline,1,46)
    set %multisillaba_manchepts $gettok(%multisillaba_clline,3,46)
    multisillaba_search %multisillaba_clnick
    if (%trovato == 0) {
      set %multisillaba_input %multisillaba_clnick
      set %multisillaba_input $addtok(%multisillaba_clnick,%multisillaba_manchepts,46)
      write scaraclass.txt %multisillaba_input
    }
    if (%trovato == 1) {
      set %multisillaba_input $read -l %pos scaraclass.txt
      set %multisillaba_oldpts $gettok(%multisillaba_input,2,46)
      inc %multisillaba_oldpts %multisillaba_manchepts
      set %multisillaba_input $puttok(%multisillaba_input,%multisillaba_oldpts,2,46)
      write -l %pos scaraclass.txt %multisillaba_input
    }
    inc %z
  }
  multisillaba_ordina
}

alias multisillaba_resmsg {
  if ($lines(multisillabamanche.txt) == $null ) || ($lines(multisillabamanche.txt) == 0) && (%multisillaba_fatto == 0) { msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 ¤>- Nessuna parola trovata. Che scarsi -<¤ | set %multisillaba_fatto 1 }
  if (%multisillaba_timercount <= $lines(multisillabamanche.txt)) {
    set %linez $read -l %multisillaba_timercount multisillabamanche.txt
    set %nick $gettok(%linez,1,46)
    set %words $gettok(%linez,2,46)
    set %wscore $gettok(%linez,3,46)
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 %nick 8,2 ha trovato9,2 %words 8,2 e guadagna9,2 %wscore 8,2 punti
  }
  if (%multisillaba_timercount == $calc($lines(multisillabamanche.txt) + 1)) { .timerpreclass 1 5 multisillaba_prepreclass }
  inc %multisillaba_timercount
}

alias multisillaba_prepreclass {
  if $exists(multisillabamanche.txt) {
    set %multisillaba_pnrline $read -l $lines(multisillabamanche.txt) multisillabamanche.txt
    set %multisillaba_pnrecord $gettok(%multisillaba_pnrline,3,46)
    set %multisillaba_pnrkeeper $gettok(%multisillaba_pnrline,1,46)
    if (%multisillaba_pnrecord > %multisillaba_record) {
      msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 Nuovo Record8,2 ( $+ %multisillaba_pnrecord $+ ) 9,2di punti in una manche. Il precedente4,2 ( $+ %multisillaba_record $+ ) 9,2apparteneva a4,2 %multisillaba_reckeeper
      set %multisillaba_record %multisillaba_pnrecord
      set %multisillaba_reckeeper %multisillaba_pnrkeeper
      set %multisillaba_pnrline %multisillaba_reckeeper $+ $chr(35) $+ %multisillaba_record
      write -l 11 multisillabaRecord.txt %multisillaba_pnrline
    }
    .remove multisillabamanche.txt
  }
  .timerclass 1 5 multisillaba_preclass
}

alias multisillaba_preclass {
  set %timercounter 1
  .timerclass 7 2 multisillaba_msgclass
}

alias multisillaba_msgclass {
  if (%timercounter == 1) { msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 ©º°¨8,2 Classifica:9,2 ¨°º© }
  if (%timercounter == 2) {
    set %multisillaba_1line $read -l1 scaraclass.txt
    set %multisillaba_1nick $gettok(%multisillaba_1line,1,46)
    set %multisillaba_1pts  $gettok(%multisillaba_1line,2,46)
    if (%multisillaba_1pts == $null) { set %multisillaba_1pts - }
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 1° posto: ( $+ 9,2 %multisillaba_1pts $+ 8,2 ) %multisillaba_1nick
  }
  if (%timercounter == 3) {
    set %multisillaba_2line $read -l2 scaraclass.txt
    set %multisillaba_2nick $gettok(%multisillaba_2line,1,46)
    set %multisillaba_2pts  $gettok(%multisillaba_2line,2,46)
    if (%multisillaba_2pts == $null) { set %multisillaba_2pts - }
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 2° posto: ( $+ 9,2 %multisillaba_2pts $+ 8,2 ) %multisillaba_2nick
  }
  if (%timercounter == 4) {
    set %multisillaba_3line $read -l3 scaraclass.txt
    set %multisillaba_3nick $gettok(%multisillaba_3line,1,46)
    set %multisillaba_3pts  $gettok(%multisillaba_3line,2,46)
    if (%multisillaba_3pts == $null) { set %multisillaba_3pts - }
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 3° posto: ( $+ 9,2 %multisillaba_3pts $+ 8,2 ) %multisillaba_3nick
  }
  if (%timercounter == 5) {
    set %multisillaba_4line $read -l4 scaraclass.txt
    set %multisillaba_4nick $gettok(%multisillaba_4line,1,46)
    set %multisillaba_4pts  $gettok(%multisillaba_4line,2,46)
    if (%multisillaba_4pts == $null) { set %multisillaba_4pts - }
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 4° posto: ( $+ 9,2 %multisillaba_4pts $+ 8,2 ) %multisillaba_4nick
  }
  if (%timercounter == 6) {
    set %multisillaba_5line $read -l5 scaraclass.txt
    set %multisillaba_5nick $gettok(%multisillaba_5line,1,46)
    set %multisillaba_5pts  $gettok(%multisillaba_5line,2,46)
    if (%multisillaba_5pts == $null) { set %multisillaba_5pts - }
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 5° posto: ( $+ 9,2 %multisillaba_5pts $+ 8,2 ) %multisillaba_5nick
  }
  if (%timercounter == 7) { .timerhub 1 %multisillaba_pausetime multisillaba_hub }
  inc %timercounter
}

alias multisillaba_hub {
  if ( (( %multisillaba_1pts > %multisillaba_2pts ) && ( %multisillaba_1pts >= %multisillaba_target )) || (!($exists(scaraclass.txt)) && (%multisillaba_target == -1)) ) { multisillaba_endofgame }
  else { if (%gamemultisillaba_stato == ON) { msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 Tra 5 secondi la prossima manche  | .timernew 1 5 multisillaba_start_manche | set %multisillaba_hub ON } }
}

menu channel,menubar {
  -
  Giochi
  .MultiSillaba
  ..Let's go:multisillaba_start
  ..Dialog ON:dialog -m multisillabaGame multisillabaGame
  ..Dialog OFF:dialog -x multisillabaGame multisillabaGame
  ..Pausa/riprendi:multisillaba_pause
  ..End of game:multisillaba_end_query
  ..Istruzioni:multisillaba_instr
  -
}
dialog multisillabaGame {
  title "MultiSillaba"
  size -1 -1 240 288
  box "MultiSillaba Commands Console", 500, 1 1 240 135, autohs
  button "Start Game", 501, 1 16 240 30, autohs
  button "Pausa/Riprendi", 502, 1 46 240 30, autohs
  button "Dai istruzioni", 503, 1  76 240 30, autohs
  button "End-Of-Game", 504, 1 106 240 30, autohs
  box "Regola tempi di gioco", 510, 1 136 240 120, autohs
  text "Aumenta/decrementa di 10 secondi la durata di ogni manche", 511, 65 160 105 40, autohs
  button "+10", 512, 5  160 50 30, autohs
  button "-10", 513, 186 160 50 30, autohs
  text "Aumenta/decrementa di 5 secondi l'attesa tra 2 manches", 514, 65 210 105 40, autohs
  button "+5", 515, 5  210 50 30, autohs
  button "-5", 516, 186 210 50 30, autohs
  button "Chiudi questa finestra", 517, 1 255 240 30, ok
}

on 1:dialog:multisillabaGame:sclick:501: { if (%multisillaba_manchenum == 0) && (%multisillaba_hub != ON) { multisillaba_hub } }

on 1:dialog:multisillabaGame:sclick:502: { multisillaba_pause }

on 1:dialog:multisillabaGame:sclick:503: { multisillaba_instr }

on 1:dialog:multisillabaGame:sclick:504: { multisillaba_end_query }

on 1:dialog:multisillabaGame:sclick:513: {
  if (%gamemultisillaba_stato != OFF) {
    if (%multisillaba_durata < 50) { echo -a 4,2 Non puoi scendere sotto i 40 secondi }
    else {
      dec %multisillaba_durata 10
      msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 Il tempo a disposizione per ogni manche è ora di 4,2 %multisillaba_durata 8,2 secondi
    }
  }
}

on 1:notice:multisillabam-10*:?: {
  if (%gamemultisillaba_stato != OFF) {
    if (%multisillaba_durata < 50) { .msg $nick Non puoi scendere sotto i 40 secondi }
    else {
      dec %multisillaba_durata 10
      msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  Il tempo a disposizione per ogni manche è ora di %multisillaba_durata secondi
    }
  }
}

on 1:dialog:multisillabaGame:sclick:512: {
  if (%gamemultisillaba_stato != OFF) {
    inc %multisillaba_durata 10
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 Il tempo a disposizione per ogni manche è ora di 4,2 %multisillaba_durata 8,2 secondi
  }
}

on 1:notice:multisillabam+10*:?: {
  if (%gamemultisillaba_stato != OFF) {
    inc %multisillaba_durata 10
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  Il tempo a disposizione per ogni manche è ora di %multisillaba_durata secondi
  }
}

on 1:dialog:multisillabaGame:sclick:516: {
  if (%gamemultisillaba_stato != OFF) {
    if (%multisillaba_pausetime < 15) { echo -a 4,2 Non puoi scendere sotto i 10 secondi }
    else {
      dec %multisillaba_pausetime 5
      msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 L'attesa tra due manche è ora di 4,2 %multisillaba_pausetime 9,2 secondi
    }
  }
}

on 1:notice:multisillabap-5*:?:{
  if (%gamemultisillaba_stato != OFF) {
    if (%multisillaba_pausetime < 15) { .msg $nick Non puoi scendere sotto i 10 secondi }
    else {
      dec %multisillaba_pausetime 5
      msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  L'attesa tra due manche è ora di %multisillaba_pausetime secondi
    }
  }
}

on 1:dialog:multisillabaGame:sclick:515: {
  if (%gamemultisillaba_stato != OFF) {
    inc %multisillaba_pausetime 5
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  9,2 L'attesa tra due manche è ora di 4,2 %multisillaba_pausetime 9,2 secondi
  }
}

on 1:notice:multisillabap+5*:?:{
  if (%gamemultisillaba_stato != OFF) {
    inc %multisillaba_pausetime 5
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  L'attesa tra due manche è ora di %multisillaba_pausetime secondi
  }
}

on 1:notice:multisillabatarget*:?:{
  if (%gamemultisillaba_stato != OFF) && ($2 > 0) {
    set %multisillaba_target $2
    msg %game_channel 7,2©º°¨8Silla9++7,2¨°º©  8,2 Il punteggio da raggiungere ora è:4,2 %multisillaba_target
  }
}

on 1:text:!multisillabaHs:%game_channel:{
  set %i 1
  unset %hs
  while (%i <= 10) {
    set %line $read -l %i multisillabarecord.txt
    set %nick $gettok(%line,1,35)
    set %pts $gettok(%line,2,35)
    if $calc(%i % 2) { set %line 8,2 %Pts $+ 8,2 %nick }
    else { set %line 9,2 %Pts $+ 9,2 %nick }
    set %hs %hs $+ 4,2 •·• $+ %line
    inc %i
  }
  set %line $read -l 11 multisillabarecord.txt
  set %nick $gettok(%line,1,35)
  set %pts $gettok(%line,2,35)
  msg %game_channel 4,2 ©º°¨8,2 multisillaba High Scores4,2 ¨°º©
  msg %game_channel 4,2 Record punti in una manche:9,2 %nick 9,2 $+ (8,2 %pts  9,2)
  msg %game_channel 4,2 Top Ten media punti: %hs
}