xTrivia — File Browser

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

SuPeRQuick.mrc — 13.34 KB — Download this file

; SuPeRScaraQuick

on 1:TEXT:!valori:%SuPeRScaraQuick_Canale: {
  if (%SuPeRScaraQuick_gioco == ON) /.msg %SuPeRScaraQuick_Canale 8,2 Valori:8,2 a=12 b=5 c=17 d=5 e=12 f=5 g=17 h=19 i=12 j=20 k=20 l=14 m=14 n=14 o=12 p=5 q=19 r=13 s=13 t=13 u=5 v=17 w=20 x=20 y=20 z=18 
}

on 1:TEXT:!punti:%SuPeRScaraQuick_Canale: {
  if (%SuPeRScaraQuick_gioco == ON) {
    if (%suq_punti_tot_ [ $+ [ $nick ] ] != $null) {
      /.msg $nick Hai totalizzato 4 %suq_punti_tot_ [ $+ [ $nick ] ] 
      close -m $nick
    }
  }
}

on 1:TEXT:!ferma SuPeRQuick:%SuPeRScaraQuick_Canale: {
  if (%SuPeRScaraQuick_gioco == ON ) /fine_SuPeRScaraQuick
}

on 1:TEXT:!reset:%SuPeRScaraQuick_Canale: {
  if (%SuPeRScaraQuick_gioco == ON ) /fine_SuPeRScaraQuick
}

on 1:TEXT:!lancia SuPeRQuick*:%Game_Channel: {
  if (%SuPeRScaraQuick_gioco != ON ) {
    set %SuPeRScaraQuick_Canale $Chan
    set %suq_nick_me $me
    set %suq_punteggio $3
    if (%suq_punteggio == $null) set %suq_punteggio 1200
    set %SuPeRScaraQuick_gioco ON
    avvia_SuPeRScaraQuick
  }
}

on 1:TEXT:*:?: {
  if (%SuPeRScaraQuick_gioco == ON) {
    if (%suq_manche_stato != ON) {
      .msg $nick Nessuna manche in corso !
      goto esci_da_verifica_parola
    }
    set %suq_temp_parola $1
    %suq_temp_len = $len(%suq_temp_parola)
    if (%suq_temp_len < %suq_len_manche) {
      .msg $nick La lunghezza minima è %suq_len_manche lettere !
      goto esci_da_verifica_parola
    }
    set %suq_t 1
    while (%suq_t <= %suq_temp_len) {
      if ( $mid(%suq_temp_parola,%suq_t,1) !isin %suq_riga_ [ $+ [ %suq_t ] ] ) {
        .msg $nick La parola %suq_temp_parola non è presente nella griglia. Riprova !
        goto esci_da_verifica_parola
      }
      inc %suq_t
    }
    set %suq_r $read($scriptdirDictionary\ $+ italiano. [ $+ [ $left(%suq_temp_parola,1) ] ],w,%suq_temp_parola,1)
    if ($readn != 0) {
      if (%suq_parola_manche_ [ $+ [ $nick ] ] != $null) {
        $remtok(%suq_giocatori_manche,$nick,1,32)
        unset %suq_parola_manche_ [ $+ [ $nick ] ]
      }
      %suq_giocatori_manche = $addtok(%suq_giocatori_manche,$nick,32)
      %suq_parola_manche_ [ $+ [ $nick ] ] = %suq_temp_parola 
      %suq_parola = $lower(%suq_temp_parola)
      %suq_punti = 0
      %suq_cont = 1
      while (%suq_cont <= $len(%suq_parola)) {
        %suq_t_let = $mid(%suq_parola,%suq_cont,1)
        if (%suq_t_let isin aeio) { %suq_val = 12 }
        elseif (%suq_t_let isin rst) { %suq_val = 13 }
        elseif (%suq_t_let isin lmn) { %suq_val = 14 }
        elseif (%suq_t_let isin bdfpu) { %suq_val = 14 }
        elseif (%suq_t_let isin cgv) { %suq_val = 17 }
        elseif (%suq_t_let == z) { %suq_val = 18 }
        elseif (%suq_t_let isin hq) { %suq_val = 19 }
        elseif (%suq_t_let isin jkwxy) { %suq_val = 20 }
        else { %suq_val = 0 }
        if (%suq_cont == 7) { %suq_val = %suq_val * 5 }
        if (%suq_cont == 8) { %suq_val = %suq_val * 6 }
        if (%suq_cont == 9) { %suq_val = %suq_val * 7 }
        if (%suq_cont == 10) { %suq_val = %suq_val * 8 }
        %suq_punti = $calc(%suq_punti + %suq_val)
        inc %suq_cont
      }
      %suq_punti_parola_ [ $+ [ $nick ] ] = %suq_punti
      if (%suq_lunghezza == $null) { %suq_lunghezza = 0 }
      if (%suq_temp_len > %suq_lunghezza ) { %suq_lunghezza = %suq_temp_len }
      .msg $nick 9,2 Con la parola 8,2 %suq_temp_parola 9,2 ottieni 8,2 %suq_punti 8,2 punti. 
    }
    else {
      .msg $nick Parola non presente nel mio dizionario
    }
    :esci_da_verifica_parola
    close -m $nick
  }
}

alias fine_gioco_SuPeRScaraQuick {
  timersuq* OFF
  unset %SuPeRScaraQuick*
  unset %suq*
  halt
}

alias fine_SuPeRScaraQuick {
  if (%SuPeRScaraQuick_gioco == ON) {
    .msg %SuPeRScaraQuick_Canale 0,5 Gioco SuPeRScaraQuick terminato! 
    timersuq* OFF
    unset %SuPeRScaraQuick*
    unset %suq*
    halt
  }
}

alias avvia_SuPeRScaraQuick {
  if (%SuPeRScaraQuick_gioco == ON) {
    if (%suq_punteggio < 50) set %suq_punteggio 50
    if (%suq_punteggio > 1500) set %suq_punteggio 1500
    .msg %SuPeRScaraQuick_Canale 9,1  SuPeRScaraQuick  avviato 
    .msg %SuPeRScaraQuick_Canale 0,5 Punteggio da raggiungere:  %suq_punteggio 
    .msg %SuPeRScaraQuick_Canale 0,2 Trovate una parola partendo dalla prima riga utilizzando una lettera per ogni riga. 
    set %suq_manche_num 0
    /timersuq_1 1 15 /avvia_manche_SuPeRScaraQuick
  }
}

alias avvia_manche_SuPeRScaraQuick {
  if (%SuPeRScaraQuick_gioco == ON) {
    genera_griglia_SuPeRScaraQuick
    set %suq_len_manche $rand(3,4)
    %suq_riga_da_visualizzare_ [ $+ [ %suq_len_manche ] ] = %suq_riga_da_visualizzare_ [ $+ [ %suq_len_manche ] ] 8,2 <-- lunghezza minima
    .msg %SuPeRScaraQuick_Canale 0,5 Tra 20 secondi la prossima manche 
    inc %suq_manche_num
    /timersuq_1 1 30 /visualizza_griglia_SuPeRScaraQuick
  }
}

alias genera_griglia_SuPeRScaraQuick {
  if (%SuPeRScaraQuick_gioco == ON) {
    %suq_x = 1
    while (%suq_x < 11) {
      %suq_t = 1
      while (%suq_t < 9) {
        %suq_temp = $rand(a,z)
        %suq_riga = %suq_riga $+ [ $chr(32) ] $+ [ %suq_temp ]
        %suq_r = %suq_r $+ [ %suq_temp ]
        inc %suq_t
      }
      %suq_riga_da_visualizzare_ [ $+ [ %suq_x ] ] = $upper(%suq_riga)
      if (a isin %suq_r) || (e isin %suq_r) || (i isin %suq_r) || (o isin %suq_r) || (u isin $suq_r) {
        %suq_riga_ [ $+ [ %suq_x ] ] = %suq_r
        unset %suq_r
        unset %suq_riga
        inc %suq_x
      }
      else {
        unset %suq_r
        unset %suq_riga
      }
    }
    %suq_cont = 7
    while (%suq_cont < 11) {
      %suq_x_x = %suq_cont - 2
      %suq_riga_da_visualizzare_ [ $+ [ %suq_cont ] ] = %suq_riga_da_visualizzare_ [ $+ [ %suq_cont ] ] 8,2 valore x %suq_x_x 
      inc %suq_cont
    }
  }
}

alias visualizza_griglia_SuPeRScaraQuick {
  if (%SuPeRScaraQuick_gioco == ON) {
    .msg %SuPeRScaraQuick_Canale 9,1 SuPeRScaraQuick ... manche n°:  %suq_manche_num 
    %suq_t = 1
    while (%suq_t < 11) {
      /timersuq_ [ $+ [ %suq_t ] ] 1 %suq_t /.msg %SuPeRScaraQuick_Canale 8,2 %suq_riga_da_visualizzare_ [ $+ [ %suq_t ] ] 
      inc %suq_t
    }
    /timersuq_ [ $+ [ %suq_t ] ] 1 %suq_t /.msg %SuPeRScaraQuick_Canale 0,5 Scrivete la vostra parole in query a %suq_nick_me 
    inc %suq_t
    /timersuq_ [ $+ [ %suq_t ] ] 1 %suq_t /.msg %SuPeRScaraQuick_Canale 0,5 Per cambiarla riscrivetela. 
    inc %suq_t
    /timersuq_ [ $+ [ %suq_t ] ] 1 %suq_t /manche_avviata_SuPeRScaraQuick
  }
}

alias manche_avviata_SuPeRScaraQuick {
  if (%SuPeRScaraQuick_gioco == ON) {
    set %suq_manche_stato ON
    .msg %SuPeRScaraQuick_Canale 9,1 Avete 8 80 9 secondi da adesso. 
    /timersuq_1 1 70 /.msg %SuPeRScaraQuick_Canale 9,1 Mancano solo 10 secondi... Sbrigatevi! 
    /timersuq_2 1 80 /fine_tempo_manche_SuPeRScaraQuick
  }
}

alias fine_tempo_manche_SuPeRScaraQuick {
  if (%SuPeRScaraQuick_gioco == ON) {
    .msg %SuPeRScaraQuick_Canale 9,1 Manche %suq_manche_num terminata! 
    %suq_num_nick = $numtok(%suq_giocatori_manche,32)
    if (%suq_num_nick != 0) {
      %suq_cont = 1
      while (%suq_cont <= %suq_num_nick) {
        %suq_temp_nick = $gettok(%suq_giocatori_manche, %suq_cont ,32)
        .msg %suq_temp_nick 4 TEMPO SCADUTO ! 
        inc %suq_cont
      }
    }
    set %suq_manche_stato OFF
    /timersuq_1 1 5 /fine_manche_SuPeRScaraQuick
  }
}

alias fine_manche_SuPeRScaraQuick {
  if (%SuPeRScaraQuick_gioco != ON) goto esci_da_fine_manche_SuPeRScaraQuick
  .msg %SuPeRScaraQuick_Canale 9,1 Risultati manche: 
  %suq_num_nick = $numtok(%suq_giocatori_manche,32)
  if (%suq_num_nick == 0) {
    /timersuq_1 1 2 /.msg %SuPeRScaraQuick_Canale 0,5 Nessuna parola trovata ! 
    %suq_tempo = 5
  }
  else {
    /prepara_risultati_manche_SuPeRScaraQuick
    %suq_cont = 1
    while (%suq_cont <= %suq_num_nick) {
      %suq_temp_nick = %suq_cl_m_ [ $+ [ %suq_cont ] ]
      %suq_temp_parola = %suq_parola_manche_ [ $+ [ %suq_temp_nick ] ]
      %suq_temp_punti = %suq_punti_parola_ [ $+ [ %suq_temp_nick ] ] 
      %suq_t_punti = punti
      %suq_temp_len = $len(%suq_temp_parola)
      if (%suq_temp_len == %suq_lunghezza) {
        %suq_temp_punti_tot = $calc(%suq_temp_punti + 20)
        %suq_t_punti = + 20 8,2 punti LUNGHEZZA per un totale di 11,2 %suq_temp_punti_tot 8,2 punti
        if (%suq_punti_velocita == %suq_temp_nick) { 
          %suq_temp_punti_tot = $calc(%suq_temp_punti_tot + 0)
          %suq_t_punti = + 20 8,2 punti LUNGHEZZA per un totale di 11,2 %suq_temp_punti_tot 8,2 punti
        }
      }
      else {
        if (%suq_punti_velocita == %suq_temp_nick) { 
          %suq_temp_punti_tot = $calc(%suq_temp_punti + 0)
          ;%suq_t_punti = + 20 8,2 punti LUNGHEZZA per un totale di 11,2 %suq_temp_punti_tot 8,2 punti
        }
        else { 
          %suq_temp_punti_tot = %suq_temp_punti
        }
      }
      /timersuq_ [ $+ [ %suq_cont ] ] 1 %suq_cont /.msg %SuPeRScaraQuick_Canale 11,2 %suq_temp_nick 8,2 con la parola 11,2 %suq_temp_parola 8,2 ottiene 11,2 %suq_temp_punti %suq_t_punti 
      inc %suq_cont
      %suq_giocatori_partita = $addtok(%suq_giocatori_partita,%suq_temp_nick,32)
      %suq_p_t = %suq_punti_tot_ [ $+ [ %suq_temp_nick ] ]
      if (%suq_punti_tot_ [ $+ [ %suq_temp_nick ] ] == $null) { %suq_punti_tot_ [ $+ [ %suq_temp_nick ] ] = 0 }
      %suq_punti_tot_ [ $+ [ %suq_temp_nick ] ] = $calc(%suq_p_t + %suq_temp_punti_tot)
    }
    %suq_tempo = %suq_cont + 5
    unset %suq_parola*
    /prepara_classifica_SuPeRScaraQuick
  }
  /timersuq_ [ $+ [ %suq_tempo ] ] 1 %suq_tempo /visualizza_classifica_SuPeRScaraQuick
  :esci_da_fine_manche_SuPeRScaraQuick
}

alias visualizza_classifica_SuPeRScaraQuick {
  if (%SuPeRScaraQuick_gioco != ON) goto esci_da_visualizza_classifica_SuPeRScaraQuick
  %suq_num_nick = $numtok(%suq_giocatori_partita,32)
  if (%suq_num_nick > 5 ) { %suq_num_nick = 5 }
  /.msg %SuPeRScaraQuick_Canale 6,2 CLASSIFICA dopo 8,2 %suq_manche_num 8,2 manche... 
  if (%suq_num_nick == 0) {
    /.msg %SuPeRScaraQuick_Canale 8,2 1. ---------- 
    goto prepara_nuova_manche
  }
  %suq_cont = 1
  while (%suq_cont <= %suq_num_nick) {
    inc %suq_tempo
    %suq_cl = %suq_cl_ [ $+ [ %suq_cont ] ]
    %suq_punti_cl = %suq_punti_tot_ [ $+ [ %suq_cl ] ]
    /timersuq_ [ $+ [ %suq_tempo ] ] 1 %suq_tempo /.msg %SuPeRScaraQuick_Canale 8,2 %suq_cont . 9,2 %suq_cl 8,2 con punti 9,2 %suq_punti_cl  
    inc %suq_cont
  }
  if (%suq_punti_tot_ [ $+ [ %suq_cl_1 ] ] > %suq_punteggio) {
    %suq_tempo = %suq_tempo + 10
    /timersuq_ [ $+ [ %suq_tempo ] ] 1 %suq_tempo /.msg %SuPeRScaraQuick_Canale 8,2 Gioco SuPeRScaraQuick terminato ! 
    inc %suq_tempo
    /timersuq_ [ $+ [ %suq_tempo ] ] 1 %suq_tempo /.msg %SuPeRScaraQuick_Canale 8,2 Il vincitore è 8,2 %suq_cl_1 ! 
    inc %suq_tempo
    /timersuq_ [ $+ [ %suq_tempo ] ] 1 %suq_tempo /fine_gioco_SuPeRScaraQuick
  }
  :prepara_nuova_manche
  %suq_tempo = %suq_tempo + 10
  unset %suq_lunghezza
  unset %suq_giocatori_manche
  unset %suq_punti_parola_*
  /timersuq_ [ $+ [ %suq_tempo ] ] 1 %suq_tempo /avvia_manche_SuPeRScaraQuick
  :esci_da_visualizza_classifica_SuPeRScaraQuick
}

alias prepara_risultati_manche_SuPeRScaraQuick {
  if (%SuPeRScaraQuick_gioco != ON) goto esci_da_prepara_risultati_manche_SuPeRScaraQuick
  %suq_cont = 1
  while (%suq_cont <= %suq_num_nick) {
    %suq_cl_m_ [ $+ [ %suq_cont ] ] = $gettok(%suq_giocatori_manche, %suq_cont ,32)
    if (%suq_cont == 1) {
      %suq_cl_m_1 = $gettok(%suq_giocatori_manche,1,32)
      %suq_punti_velocita = $gettok(%suq_giocatori_manche,1,32)
    }
    else {
      %suq_cont_x = %suq_cont
      while (%suq_cont_x > 1) {
        %suq_cont_y = %suq_cont_x - 1
        %suq_cl_m_x = %suq_cl_m_ [ $+ [ %suq_cont_x ] ]
        %suq_cl_m_y = %suq_cl_m_ [ $+ [ %suq_cont_y ] ]
        if ( %suq_punti_parola_ [ $+ [ %suq_cl_m_x ] ] < %suq_punti_parola_ [ $+ [ %suq_cl_m_y ] ] ) {
          %suq_cl_m_ [ $+ [ %suq_cont_y ] ] = %suq_cl_m_x
          %suq_cl_m_ [ $+ [ %suq_cont_x ] ] = %suq_cl_m_y
        }
        else {
          %suq_cl_m_ [ $+ [ %suq_cont_x ] ] = %suq_cl_m_x
          %suq_cont_x = 1
        }
        dec %suq_cont_x
      }
    }
    inc %suq_cont
  }
  :esci_da_prepara_risultati_manche_SuPeRScaraQuick
}

alias prepara_classifica_SuPeRScaraQuick {
  if (%SuPeRScaraQuick_gioco != ON) goto esci_da_prepara_classifica_SuPeRScaraQuick
  %suq_num_nick = $numtok(%suq_giocatori_partita,32)
  %suq_cont = 1
  while (%suq_cont <= %suq_num_nick) {
    %suq_cl_ [ $+ [ %suq_cont ] ] = $gettok(%suq_giocatori_partita, %suq_cont ,32)
    if (%suq_cont == 1) {
      %suq_cl_1 = $gettok(%suq_giocatori_partita,1,32)
    }
    else {
      %suq_cont_x = %suq_cont
      while (%suq_cont_x > 1) {
        %suq_cont_y = %suq_cont_x - 1
        %suq_cl_x = %suq_cl_ [ $+ [ %suq_cont_x ] ]
        %suq_cl_y = %suq_cl_ [ $+ [ %suq_cont_y ] ]
        if ( %suq_punti_tot_ [ $+ [ %suq_cl_x ] ] > %suq_punti_tot_ [ $+ [ %suq_cl_y ] ] ) {
          %suq_cl_ [ $+ [ %suq_cont_y ] ] = %suq_cl_x
          %suq_cl_ [ $+ [ %suq_cont_x ] ] = %suq_cl_y
        }
        else {
          %suq_cl_ [ $+ [ %suq_cont_x ] ] = %suq_cl_x
          %suq_cont_x = 1
        }
        dec %suq_cont_x
      }
    }
    inc %suq_cont
  }
  :esci_da_prepara_classifica_SuPeRScaraQuick
}