xTrivia — File Browser

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

Consonando.mrc — 13.04 KB — Download this file

on 1:TEXT:!valori:%game_channel: {
  if (%konsonando_gioco == ON) /msg $chan 8,2 Valori:11,2 a=1 b=3 c=1 d=3 e=1 f=3 g=3 h=6 i=1 j=8 k=8 l=2 m=2 n=2 o=1 p=3 q=6 r=1 s=1 t=1 u=3 v=3 w=8 x=8 y=8 z=5 
}

on 1:TEXT:!consonandooff*:%game_channel: {
  if (%konsonando_gioco == ON) /fine_konsonando
}

on 1:CONNECT:{
  set %konsonando_gioco OFF
}

on 1:TEXT:!consonandoon*:%game_channel: {
  echo 4 -a richiesta avvio gioco
  if (%konsonando_gioco != ON) {
    set %game_channel $chan
    set %konsonando_mionick $me
    set %konsonando_punteggio $2
    if (%konsonando_punteggio == $null) set %konsonando_punteggio 1000
    set %konsonando_gioco ON
    avvia_konsonando
  }
}

on 1:TEXT:*:?: {
  if (%konsonando_gioco != ON) goto esci_da_verifica_parola
  if (%konsonando_manche != ON) {
    msg $nick Nessuna manche in corso !
    goto esci_da_verifica_parola
  }
  set %kon_temp_parola $1
  if ($len(%kon_temp_parola) < 3) goto esci_da_verifica_parola
  if (%kon_ran == a) { if ($len(%kon_temp_parola) != %kon_lun) goto esci_da_verifica_parola }
  if (%kon_ran == b) { if ($len(%kon_temp_parola) >= %kon_lun) goto esci_da_verifica_parola }
  if (%kon_ran == c) { if ($len(%kon_temp_parola) <= %kon_lun) goto esci_da_verifica_parola }
  %kon_x = 0
  %kon_cx = 0
  while (%kon_x == 0) {
    inc %kon_cx
    if (%kon_cx > $len(%kon_temp_parola)) { %kon_x = 1 }
    else {
      if ( $mid(%kon_temp_parola,%kon_cx,1) isin aeiou ) { %kon_x = 0 }
      elseif ( $mid(%kon_temp_parola,%kon_cx,1) isin %kon_cons ) { %kon_x = 0 }
      else { %kon_x = 2 } 
    }
  }
  if (%kon_x == 2) {
    goto esci_da_verifica_parola
  }
  set %kon_r $read($scriptdirDictionary\ $+ italiano. [ $+ [ $left(%kon_temp_parola,1) ] ],w,%kon_temp_parola,1)
  if ($readn == 0) { goto esci_da_verifica_parola }
  %kon_giocatori_manche = $addtok(%kon_giocatori_manche,$nick,32)
  %kon_parole_manche_ [ $+ [ $nick ] ] = $addtok(%kon_parole_manche_ [ $+ [ $nick ] ] ,%kon_temp_parola,32) 
  :esci_da_verifica_parola
  close -m $nick
}

alias fine_konsonando {
  if (%konsonando_gioco == ON) {
    msg %game_channel 0,01 Gioco Consonando terminato! 
    unset %kon_*
    unset %konsonando*
    .timer_kon* OFF
    halt
  }
}

on 1:TEXT:!Consonando *:%game_channel: {
  if (%konsonando_gioco != OFF)  {
    set %konsonando_punteggio $2
    msg %game_channel 11,2 Il punteggio da raggiungere ora è:8,2 %konsonando_punteggio 
  }
}

alias avvia_konsonando {
  if (%konsonando_gioco != ON) goto esci_da_avvia_konsonando
  if (%konsonando_punteggio < 1000) set %konsonando_punteggio 1000
  if (%konsonando_punteggio > 2000) set %konsonando_punteggio 2000
  msg %game_channel 9,1 Gioco  Consonando  avviato 
  msg %game_channel 0,01 Punteggio da raggiungere:  %konsonando_punteggio 
  set %kon_scarto aeioujkwxy
  set %kon_manche 1
  .timer_kon_1 1 10 /avvia_manche_konsonando
  :esci_da_avvia_konsonando
}

alias avvia_manche_konsonando {
  if (%konsonando_gioco != ON) goto esci_da_avvia_manche_konsonando
  unset %kon_riga
  unset %kon_cons
  unset %kon_giocatori_*
  unset %kon_parole_manche_*
  unset %kon_punti_manche_*
  unset %kon_cl*
  genera_lettere_konsonando
  genera_range_lunghezza
  msg %game_channel 0,01 Tra 5 secondi la prossima manche ... 
  .timer_kon_1 1 5 /visualizza_lettere_konsonando
  :esci_da_avvia_manche_konsonando
}

alias genera_lettere_konsonando {
  if (%konsonando_gioco != ON) goto esci_genera_lettere
  %kon_x = $rand(2,6)
  %kon_temp = 1
  :trova_consonanti
  set %kon_c $rand(a,z)
  if (%kon_c isin %kon_scarto) { goto trova_consonanti }
  %kon_riga = %kon_riga $+ [ $chr(32) ] $+ [ %kon_c ]
  %kon_cons = %kon_cons $+ [ %kon_c ]
  inc %kon_temp
  if (%kon_temp <= %kon_x) goto trova_consonanti 
  %kon_riga = %kon_riga $+ [ $chr(32) ]
  %kon_riga_da_visualizzare = $upper(%kon_riga)
  :esci_genera_lettere
}

alias genera_range_lunghezza {
  if (%konsonando_gioco != ON) goto esci_da_genera_range
  %kon_ran = $rand(a,c)
  %kon_lun = $rand(3,10)
  if (%kon_ran == a) {    
    if ($len(%kon_cons) = 2) && (%kon_lun > 7) { %kon_lun = 7 }
    %kon_range = uguale a %kon_lun
  }
  if (%kon_ran == b) {
    if (%kon_lun == 3) { %kon_lun = 4 }
    %kon_range = inferiore a %kon_lun
  }
  if (%kon_ran == c) { 
    if ($len(%kon_cons) = 2) && (%kon_lun > 6) { %kon_lun = 6 }
    %kon_range = superiore a %kon_lun
  }
  :esci_da_genera_range
}

alias visualizza_lettere_konsonando {
  if (%konsonando_gioco != ON) goto esci_da_visualizza_lettere_konsonando
  msg %game_channel 8,1 Consonando ... manche n°:  %kon_manche 
  msg %game_channel 4,02 Le consonanti a disposizione sono: 9,02 %kon_riga_da_visualizzare 
  msg %game_channel 0,01 Trovate parole di lunghezza 9,1 %kon_range 0,01 lettere 
  msg %game_channel 0,01 Scrivete le vostre parole in query a 12 %konsonando_mionick 0. Potete utilizzare esclusivamente le consonanti date e tutte le vocali che volete. 
  msg %game_channel 0,01 Avete 12 90 0 secondi da adesso 
  set %konsonando_manche ON
  .timer_kon_1 1 80 /avviso_fine_manche_konsonando
  :esci_da_visualizza_lettere_konsonando
}

alias avviso_fine_manche_konsonando {
  if (%konsonando_gioco != ON) goto esci_da_avviso_fine_manche_konsonando
  msg %game_channel 13,2 Ancora 10 secondi... 
  .timer_kon_1 1 11 /fine_tempo_manche_konsonando
  :esci_da_avviso_fine_manche_konsonando
}

alias fine_tempo_manche_konsonando {
  if (%konsonando_gioco != ON) goto esci_da_fine_tempo_manche_konsonando
  msg %game_channel 9,1 manche n°:  %kon_manche  terminata 
  %kon_num_nick = $numtok(%kon_giocatori_manche,32)
  if (%kon_temp_num_nick != 0) {
    %kon_cont = 1
    while (%kon_cont <= %kon_num_nick) {
      %kon_temp_nick = $gettok(%kon_giocatori_manche, %kon_cont ,32)
      msg %kon_temp_nick 4 TEMPO SCADUTO ! 
      inc %kon_cont
    }
  }
  set %konsonando_manche OFF
  .timer_kon_1 1 5 /fine_manche_konsonando
  :esci_da_fine_tempo_manche_konsonando
}

alias fine_manche_konsonando {
  if (%konsonando_gioco != ON) goto esci_da_fine_manche_konsonando
  msg %game_channel 0,01 Le consonanti erano: 9,1 %kon_riga_da_visualizzare 0,01 e la lunghezza 9,1 %kon_range 
  msg %game_channel 9,1 Risultati manche: 
  %kon_temp_num_nick = $numtok(%kon_giocatori_manche,32)
  %kon_x_t = 2
  if (%kon_temp_num_nick == 0) {
    .timer_kon_2 1 2 /msg %game_channel 0,01 Nessuna parola trovata !  
    %kon_temp_num_nick = $numtok(%kon_giocatori,32)
    goto mostra_classifica_konsonando
  }
  /assegna_punti_manche_konsonando
  /assegna_punti_totali_konsonando
  %kon_temp_num_nick = $numtok(%kon_giocatori_manche,32)
  %kon_x = 1
  while (%kon_x <= %kon_temp_num_nick) {
    %kon_temp_nick = %kon_cl_m_ [ $+ [ %kon_x ] ]
    %kon_parole_t = %kon_parole_manche_ [ $+ [ %kon_temp_nick ] ]
    if ($len(%kon_parole_t) > 190) {
      %kon_x_num_parole = $numtok(%kon_parole_t,32)
      %kon_parole_t_1 = %kon_parole_t
      while ($len(%kon_parole_t_1) > 190) {
        %kon_parole_t_1 = $deltok(%kon_parole_t_1,%kon_x_num_parole,32)
        dec %kon_x_num_parole
      }
      %kon_x_len_t = $len(%kon_parole_t)
      %kon_x_len_t_1 = $len(%kon_parole_t_1)
      %kon_x_len_t_2 = %kon_x_len_t - %kon_x_len_t_1
      %kon_parole_t_2 = $right(%kon_parole_t,%kon_x_len_t_2)
      .timer_kon_ [ $+ [ %kon_x_t ] ] 1 %kon_x_t /msg %game_channel 9,2 %kon_temp_nick 8,2 con le parole 4,2 %kon_parole_t_1 
      inc %kon_x_t
      .timer_kon_ [ $+ [ %kon_x_t ] ] 1 %kon_x_t /msg %game_channel 8,2 ... e le parole 4,2 %kon_parole_t_2 8,2 ottiene 9,2 %kon_punti_manche_ [ $+ [ %kon_temp_nick ] ] 8,2 punti 
    }
    else {
      .timer_kon_ [ $+ [ %kon_x_t ] ] 1 %kon_x_t /msg %game_channel 9,2 %kon_temp_nick 8,2 con le parole 4,2 %kon_parole_manche_ [ $+ [ %kon_temp_nick ] ] 8,2 ottiene 9,2 %kon_punti_manche_ [ $+ [ %kon_temp_nick ] ] 8,2 punti 
    }
    inc %kon_x_t
    inc %kon_x
  }
  unset %kon_parole_t*
  :mostra_classifica_konsonando
  /prepara_classifica_konsonando
  /visualizza_classifica_konsonando
  %kon_x_t = %kon_x_t + 15
  if (%kon_punti_ [ $+ [ %kon_classificato_1 ] ] > %konsonando_punteggio) { 
    .timer_kon_ [ $+ [ %kon_x_t ] ] 1 %kon_x_t /msg %game_channel 9,2 --- Gioco 4,2 C O N S O N A N D O 9,2 terminato! ---  
    inc %kon_x_t
    .timer_kon_ [ $+ [ %kon_x_t ] ] 1 %kon_x_t /msg %game_channel 9,2 ... il vincitore è 8,2 %kon_classificato_1 9,2 con 8,2 %kon_punti_ [ $+ [ %kon_classificato_1 ] ] ... 
    inc %kon_x_t
    .timer_kon_ [ $+ [ %kon_x_t ] ] 1 %kon_x_t /fine_konsonando
  }
  else {
    inc %kon_manche
    .timer_kon_ [ $+ [ %kon_x_t ] ] 1 %kon_x_t /avvia_manche_konsonando
  }
  :esci_da_fine_manche_konsonando
}

alias visualizza_classifica_konsonando {
  if (%konsonando_gioco != ON) goto esci_da_visualizza_classifica_konsonando
  %kon_x_t = %kon_x_t + 10
  .timer_kon_ [ $+ [ %kon_x_t ] ] 1 %kon_x_t /msg %game_channel 12,15 Classifica dopo 13 %kon_manche 12 manche: 
  inc %kon_x_t
  set %kon_t 1
  while (%kon_t <= 5) {
    if ( %kon_classificato_ [ $+ [ %kon_t ] ] == $null ) {
      .timer_kon [ $+ [ %kon_x_t ] ] 1 %kon_x_t /msg %game_channel 12,15 %kon_t . Classificato 13 ------ 12 con punti 13 --- 
    }
    else {
      .timer_kon [ $+ [ %kon_x_t ] ] 1 %kon_x_t /msg %game_channel 12,15 %kon_t . Classificato 13 %kon_classificato_ [ $+ [ %kon_t ] ] 12 con punti 13 %kon_punti_ [ $+ [ %kon_classificato_ [ $+ [ %kon_t ] ] ] ] 
    }
    inc %kon_x_t
    inc %kon_t
  }
  :esci_da_visualizza_classifica_konsonando
}

alias prepara_classifica_konsonando {
  if (%konsonando_gioco != ON) goto esci_da_prepara_classifica_konsonando
  %kon_temp_num_nick = $numtok(%kon_giocatori,32)
  %kon_temp_nick = $gettok(%kon_giocatori,1,32)
  set %kon_classificato_1 %kon_temp_nick 
  if (%kon_temp_num_nick  == 1) goto ciclo_classifica_terminato
  %kon_temp = 2
  while (%kon_temp <= %kon_temp_num_nick) {
    %kon_temp_nick = $gettok(%kon_giocatori,%kon_temp,32)
    %kon_classificato_ [ $+ [ %kon_temp ] ] = %kon_temp_nick
    %kon_x_temp = %kon_temp
    while (%kon_x_temp > 1) {
      %kon_y_temp = %kon_x_temp - 1
      %kon_classificato_x = %kon_classificato_ [ $+ [ %kon_x_temp ] ]
      %kon_classificato_y = %kon_classificato_ [ $+ [ %kon_y_temp ] ]
      if ( %kon_punti_ [ $+ [ %kon_classificato_x ] ] > %kon_punti_ [ $+ [ %kon_classificato_y ] ] ) {
        %kon_classificato_ [ $+ [ %kon_y_temp ] ] = %kon_classificato_x
        %kon_classificato_ [ $+ [ %kon_x_temp ] ] = %kon_classificato_y
      }
      else { 
        %kon_classificato_ [ $+ [ %kon_x_temp ] ] = %kon_classificato_x
        %kon_x_temp = 1
      }
      dec %kon_x_temp
    }
    inc %kon_temp
  }
  :ciclo_classifica_terminato  
  :esci_da_prepara_classifica_konsonando
}

alias assegna_punti_totali_konsonando {
  if (%konsonando_gioco != ON) goto esci_da_assegna_punti_totali_konsonando
  %kon_x = 1
  while (%kon_x <= %kon_temp_num_nick) {
    %kon_temp_nick = $gettok(%kon_giocatori_manche,%kon_x,32)
    %kon_giocatori = $addtok(%kon_giocatori,%kon_temp_nick,32)
    if ( %kon_punti_ [ $+ [ %kon_temp_nick ] ] == $null ) { %kon_punti_ [ $+ [ %kon_temp_nick ] ] = 0 }
    %kon_punti_ [ $+ [ %kon_temp_nick ] ] = %kon_punti_ [ $+ [ %kon_temp_nick ] ] + %kon_punti_manche_ [ $+ [ %kon_temp_nick ] ]
    inc %kon_x
  }
  :esci_da_assegna_punti_totali_konsonando
}

alias assegna_punti_manche_konsonando {
  if (%konsonando_gioco != ON) goto esci_da_assegna_punti_manche_konsonando
  %kon_x = 1
  while (%kon_x <= %kon_temp_num_nick) {
    %kon_temp_nick = $gettok(%kon_giocatori_manche,%kon_x,32)
    %kon_x_parole = $lower( %kon_parole_manche_ [ $+ [ %kon_temp_nick ] ] )
    %kon_x_punti = 0
    %kon_xx = 1
    while (%kon_xx <= $len(%kon_x_parole)) {
      %kon_x_let = $mid(%kon_x_parole,%kon_xx,1)
      if (%kon_x_let isin aceiorst) { %kon_x_punti = %kon_x_punti + 1 }
      elseif (%kon_x_let isin lmn) { %kon_x_punti = %kon_x_punti + 2 }
      elseif (%kon_x_let isin bdfgpuv) { %kon_x_punti = %kon_x_punti + 3 }
      elseif (%kon_x_let == z) { %kon_x_punti = %kon_x_punti + 5 }
      elseif (%kon_x_let isin hq) { %kon_x_punti = %kon_x_punti + 6 }
      elseif (%kon_x_let isin jkwxy) { %kon_x_punti = %kon_x_punti + 8 }
      else { }
      inc %kon_xx
    }
    %kon_punti_manche_ [ $+ [ %kon_temp_nick ] ] = %kon_x_punti
    if (%kon_x == 1) {
      %kon_cl_m_1 = %kon_temp_nick
    }
    else {
      %kon_x_temp = %kon_x
      %kon_cl_m_ [ $+ [ %kon_x ] ] = %kon_temp_nick
      while (%kon_x_temp > 1) {
        %kon_y_temp = %kon_x_temp - 1
        %kon_cl_m_x = %kon_cl_m_ [ $+ [ %kon_x_temp ] ]
        %kon_cl_m_y = %kon_cl_m_ [ $+ [ %kon_y_temp ] ]
        if ( %kon_punti_manche_ [ $+ [ %kon_cl_m_x ] ] < %kon_punti_manche_ [ $+ [ %kon_cl_m_y ] ] ) {
          %kon_cl_m_ [ $+ [ %kon_y_temp ] ] = %kon_cl_m_x
          %kon_cl_m_ [ $+ [ %kon_x_temp ] ] = %kon_cl_m_y
        }
        else {
          %kon_cl_m_ [ $+ [ %kon_x_temp ] ] = %kon_cl_m_x
          %kon_x_temp = 1
        }
        dec %kon_x_temp
      }
    }
    inc %kon_x
  }
  :esci_da_assegna_punti_manche_konsonando
}