IRcap — File Browser

ircap871-mircscripts_2799 / ircap871-mircscripts_2799 / mod / Trivial / ircaptrivial.mrc

ircaptrivial.mrc — 16.64 KB — Download this file

;IRcap8 761b726847931a4e67e2faf879e28f5a
;IRcap trivial 2.0 (v 8)

menu channel {
  trivial: .enable #trivial | trivini #
}

#trivial off
alias TRIVpregunta {
  if $me !ison %triv.canal { trivinfo Juego en espera de volver al canal | .timerTRIVespera -o 1 10 TRIVpregunta | return }
  if (%triv.num >= %triv.lip) || ($line(@trivial_p,0) < 1) {
    trivinfo Juego terminado, %triv.lip preguntas | msg %triv.canal $replace(%triv.x2,<tiempo>,$timestamp)
    unset %triv.num | triv.pest $gettok(%triv.p帽1,3,32)
    triv.puntuaciones
    if %triv.ciclo == on .timerTRIVciclo 1 60 trivempieza
    return
  }
  var %triv.gana = $gettok($gettok(%triv.clas,1,231),1,32)
  if %triv.gana >= %triv.lia {
    trivinfo Juego terminado | msg %triv.canal $replace(%triv.x2,<tiempo>,$timestamp)
    unset %triv.num | triv.pest $gettok(%triv.p帽1,3,32)
    triv.puntuaciones | return
  }
  var %triv.rnd = $rand(1,$line(@trivial_p,0))
  var %triv.linea = $line(@trivial_p,%triv.rnd)
  dline @trivial_p %triv.rnd

  %triv.resp = $gettok(%triv.linea,2,42)
  %triv.preg = $gettok(%triv.linea,1,42) | if ($right(%triv.preg,1) != ?) %triv.preg = %triv.preg ?
  unset %triv.tema
  if (芦 isin %triv.preg) {
    %triv.autor = $gettok($gettok(%triv.preg,1,171),2,169)
    %triv.tema = $gettok($gettok(%triv.preg,1,171),1,169) | %triv.preg = $gettok(%triv.preg,2,171)
    if %triv.autor != $Null { %triv.tema = %triv.tema (Autor: %triv.autor $+ ) }
  }
  inc %triv.num | var %triv.numm = %triv.num $+ / $+ %triv.lip2 | msg %triv.canal $replace($replace(%triv.x1,<num>,%triv.numm),<tema>,%triv.tema) | msg %triv.canal $replace(%triv.x3,<preg>,%triv.preg) $iif(%triv.pal == on,( $numtok(%triv.resp,32) pal.))
  trivinfo Pregunta n潞 %triv.num de %triv.lip2
  .timerTRIVtiempo -o 1 %triv.tiempo trivfuera
  if %triv.pistas == on .timerTRIVpista -o 1 $calc((%triv.tiempo / 3) * 2) msg %triv.canal %triv.x9 $trivpista(%triv.resp)
}

on 1:TEXT:*:%triv.canal: if ($findtok(%triv.bans,$nick,0,32) != 0) && ($findtok(%triv.bans,$nick,0,32)) return | .timerTRIVYO off | trivacierta $nick $1-
on 1:INPUT:%triv.canal: .timerTRIVYO 1 1 trivacierta $me $1-

alias trivACIERTA {
  if %triv.num == $null return
  if (%triv.resp != $null) && (%triv.resp isin $2-) { 
    triv.sumap $1
    msg %triv.canal $replace($replace(%triv.x4,<nick>,$1),<resp>,%triv.resp)
    if %triv.mclas == on { msg %triv.canal %triv.x5 $+  $triv.posT(%triv.mclasn) }
    trivrank
    unset %triv.resp | .timerTRIVpista off | .timerTRIVtiempo -o 1 %triv.paup TRIVpregunta
  }
}

alias trivPAUSA {
  if %triv.num == $null return
  if %triv.pausa != on {
    .timerTRIV* off
    %triv.pausa = on | trivinfo Juego pausado
    msg %triv.canal 0,1 IRcap Trivial 1,0 juego en pausa 
    return
  }
  unset %triv.pausa | trivinfo Juego reanudado
  msg %triv.canal 0,1 IRcap Trivial 1,0 reanudando juego 
  if %triv.num > 0 { dec %triv.num }
  .timerTRIVreanuda 1 3  trivpregunta
}

alias triv.pos {
  var %a = $gettok(%triv.clas,$1,231) | if %a == $null return
  return $1 $+ 潞  $+ $gettok(%a,2,32) $+ [ $+ $gettok(%a,1,32) $+ ]  
}

alias triv.posT {
  var %a , %n = 1 | while (%n <= $1) {
    %a = %a $triv.pos(%n)
    inc %n
  }
  return %a
}

alias TRIVfuera {
  .timerTRIVotra -o 1 %triv.paup TRIVpregunta
  msg %triv.canal $replace(%triv.x6,<resp>,%triv.resp) | unset %triv.resp
  if (%triv.mclas == on) && ($triv.pos(1) != $null) { msg %triv.canal %triv.x5 $+  $triv.posT(%triv.mclasn) }
  trivrank
}

alias TRIV.sumap {
  %triv.suma = %triv.pu2 | if $timer(TRIVpista) != $null { %triv.suma = %triv.pu1 }
  var %triv.n = 1 | :L1 | var %triv.nick = $gettok(%triv.clas,%triv.n,231) | if %triv.nick == $null goto L2
  if $gettok(%triv.nick,2,32) == $1 { 
    var %triv.np = $gettok(%triv.nick,1,32)
    inc %triv.np %triv.suma
    %triv.clas = $puttok(%triv.clas,%triv.np $1,%triv.n,231)
    goto L3
  }
  inc %triv.n 1 | goto L1
  :L2
  if $numtok(%triv.clas,231) < 56 { %triv.clas = %triv.clas $+ 莽 $+ %triv.suma $1 }
  :L3
  %triv.clas = $sorttok(%triv.clas,231,nr)
}

alias TRIVini {
  %triv.fic = $readini $scriptdir $+ \ircaptrivial.ini VARS fic | if %triv.fic == $null { %triv.fic = trivial.txt }
  %triv.lip = $readini $scriptdir $+ \ircaptrivial.ini VARS lip
  %triv.lia = $readini $scriptdir $+ \ircaptrivial.ini VARS lia
  %triv.tiempo = $readini $scriptdir $+ \ircaptrivial.ini VARS tiempo
  %triv.ciclo = $readini $scriptdir $+ \ircaptrivial.ini VARS ciclo
  %triv.pistas = $readini $scriptdir $+ \ircaptrivial.ini VARS pistas
  %triv.pal = $readini $scriptdir $+ \ircaptrivial.ini VARS pal
  %triv.mclas = $readini $scriptdir $+ \ircaptrivial.ini VARS mclas
  %triv.pu1 = $readini $scriptdir $+ \ircaptrivial.ini VARS pu1
  %triv.pu2 = $readini $scriptdir $+ \ircaptrivial.ini VARS pu2
  %triv.mclasn = $readini $scriptdir $+ \ircaptrivial.ini VARS mclasn
  %triv.paup = $readini $scriptdir $+ \ircaptrivial.ini VARS paup
  %triv.bans = $readini $scriptdir $+ \ircaptrivial.ini VARS bans
  %triv.top = $readini $scriptdir $+ \ircaptrivial.ini VARS top
  %triv.canal = $1
  trivmsg lee
  %triv.e.n = 1


  guiwin @TRiV c c 416 252 IRcap Trivial

  %triv.p帽1 = 30 58 1 triv.pest TrivialSetupTemaEditor preg.Top 10
  triv.pest 1

  window -wa @Triv

  trivinfo Pulsa "Comenzar" para eso mismo

  sss wina
}

alias TRIV.PEST {
  cuag @TRiV 20 58 374 150 $gettok(%gui.cc,1,32) | pestana @TRiV triv.p帽1
  if $1 == 1 {
    cuagr @TRiV 30 150 150 50 El juego acaba en
    %triv.op = 190 154 triv.pistas Dar pistas
    %triv.tx = 86 70 120 triv.fic Preguntas|86 90 80 triv.canal #Canal|132 114 34 triv.tiempo Tiempo respuesta|138 158 36 triv.lip L铆mite de preguntas|138 178 36 triv.lia L铆mite de puntos
    %triv.bt = 210 67 10 triveledir !|190 180 52 trivdload www
  }
  if $1 == 2 {
    cuagr @TRiV 30 74 146 50 Puntuaci贸n
    %triv.op = 242 82 triv.ciclo Juego c铆clico|242 66 triv.pal Mostrar n潞 palabras|38 134 triv.mclas Mostrar clasificaci贸n al acertar
    %triv.tx = 146 82 24 triv.pu1 Al acertar sin pistas|146 102 24 triv.pu2 Al acertar con pistas|300 134 24 triv.mclasn (cuantos nicks)|354 106 24 triv.paup Pausa entre preguntas|38 178 340 triv.bans !Excluir nicks del juego (separar con espacios)
    %triv.bt = 382 270 111 trivdload Descargar nuevas preguntas
  }
  if $1 == 3 {
    set %triv.op
    set %triv.tx 85 70 110 triv.x7 Comienza1|275 70 110 triv.x8 Comienza2|85 90 110 triv.x1 Pregunta|275 90 110 triv.x3 Texto preg.|85 110 110 triv.x5 Clasificac.|275 110 110 triv.x4 Acierto|85 130 110 triv.x6 Fuera|275 130 110 triv.x2 Fin|85 150 110 triv.x9 Pista|275 150 110 triv.x10 Puntuaciones
    set %triv.bt 30 180 80 triv.m_exp Guardar Tema|130 180 80 triv.m_imp Cargar Tema|320 180 50 triv.m_res Restaurar
  }
  if $1 == 4 {
    triv.leepreg
    cuagr @TRiV 26 100 360 88 Preguntas
    set %triv.op
    %triv.tx = 86 70 100 triv.fic Preguntas|90 110 280 triv.e.p Pregunta|90 130 280 triv.e.r Respuesta|90 150 80 triv.e.m Nick|220 150 150 triv.e.t Tema
    %triv.bt = 190 67 8 triveledir !|220 67 36 trivnuevof Nuevo|43 177 9 trivevol_- <|149 177 9 trivevol_+ >|210 177 10 trivabpreg_b -|250 177 10 trivabpreg_a +|330 177 28 triv.listado_crea Lista|284 67 88 trivdload Descargar nuevos
    triveinfo %triv.e.n / $lines($trivpreg)
    if ($window(@trivial).state != $null) && (%triv.e.n > 0) { sline @trivial %triv.e.n }
  }
  if $1 == 5 {
    triv.top
    set %triv.op
    set %triv.tx
    %triv.bt = 334 80 40 triv.top.borra Borrar|334 110 40 triv.top.mostrar Mostrar
  }
  %triv.bt = %triv.bt $+ |134 215 12 trivpausa P
  if %triv.num == $null { %triv.bt = %triv.bt $+ |20 215 90 trivempieza Comenzar }
  else { %triv.bt = %triv.bt $+ |20 215 90 trivpara Terminar }
  guidibop @TRiV %triv.op | guidibtx @TRiV %triv.tx | guidibbt @TRiV %triv.bt
  trivrank
}

alias trivEMPIEZA {
  window -c @trivial_p | window -hl @trivial_p | loadbuf @trivial_p $trivpreg
  trivinfo Comenzando juego... | msg %triv.canal $replace(%triv.x7,<tiempo>,$timestamp)
  %triv.lip2 = $line(@trivial_p,0) | if (%triv.lip2 > %triv.lip) { %triv.lip2 = %triv.lip }
  var %triv.lia2 = $line(@trivial_p,0) | if (%triv.lia2 > %triv.lia) { %triv.lia2 = %triv.lia } | if (%triv.lia2 > %triv.lip2) { %triv.lia2 = %triv.lip2 }
  msg %triv.canal $replace($replace($replace(%triv.x8,<limite>,%triv.lip2),<acierto>,%triv.lia2),<tiempo>,%triv.tiempo)
  %triv.num = 99 | triv.pest $gettok(%triv.p帽1,3,32) | unset %triv.num %triv.clas %triv.pausa
  trivrank
  trivpregunta
  trivgraba
  .timerTRIVciclo off
}

alias TRIVrank {
  if $gettok(%triv.p帽1,3,32) != 1 return
  cuagi @TRiV 270 74 110 120 gui Clasificaci贸n
  var %a = 1 , %y = 80 , %c = $gettok(%gui.cc,6,44) | while (%a < 11) {
    var %n = $gettok(%triv.clas,%a,231) | if %n != $null {
      var %x = 276 | if %a == 10 { var %x = 270 } | drawtext -cnr @TRiV %c Arial 10 %x %y 84 12 %a - $gettok(%n,2,32) | drawtext -cnr @TRiV %c Arial 10 356 %y 102 12 $gettok(%n,1,32)
      inc %y 11 
    }
    inc %a 
  }
  drawline @TRiV
}

alias trivINFO {
  cuagi @TRiV 174 218 216 16 gui
  if $1- != $null drawtext -cnr @TRiV $gettok(%gui.cc,6,44) Verdana 9 180 220 206 99 $1-
  drawline @TRiV
}

alias triv.PUNTUACIONES {
  triv.topsuma
  if $triv.pos(0) != $null { msg %triv.canal %triv.x10 }
  var %a = 1 | while (%a < 5) {
    if ($triv.pos(%a) != $null) qc msg %triv.canal $ifmatch
    inc %a
  }
  qc msg %triv.canal 6,1 路4路7路8路15 IRcap Trivial 12:::11 http:// $+ $urlcap 8路7路4路6路 
}

alias TRIVpara {
  .timerTRIV* off
  unset %triv.num
  triv.pest $gettok(%triv.p帽1,3,32)
  trivinfo Juego terminado | msg %triv.canal $replace(%triv.x2,<tiempo>,$timestamp)
  trivgraba
  triv.PUNTUACIONES
  .timerTRIVciclo off
}

alias trivELEDIR {
  var %triv.fic2 = $dir="Escoge fichero de preguntas" [ $scriptdir $+ *.txt ]
  if %triv.fic2 == $null return | %triv.fic = $nopath(%triv.fic2)
  guidibtx @TRiV %triv.tx | drawline @TRiV | trivgraba
  if $window(@trivial).state != $null { triv.listado }
  %triv.e.n = 0 | triv.pest $gettok(%triv.p帽1,3,32)
}

alias TRIVpista {
  var %triv.pc = 2 | var %triv.pista = $left($1-,1) $+ $chr(160) | :L1
  var %triv.let = $mid($1-,%triv.pc,1) | if %triv.let == $Null return %triv.pista
  if $mid($1-,$calc(%triv.pc - 1),1) == $chr(32) goto L2
  if %triv.let == $chr(32) { %triv.let = $chr(160) $chr(160) | goto L2 }
  %triv.let = -
  :L2
  %triv.pista = %triv.pista $+ %triv.let $+ $chr(160) | inc %triv.pc | goto L1
}

alias trivGRABA {
  var %w = wrini mod\trivial\ircaptrivial.ini VARS
  %w fic %triv.fic
  %w lip %triv.lip
  %w lia %triv.lia
  %w tiempo %triv.tiempo
  %w ciclo %triv.ciclo
  %w pistas %triv.pistas
  %w pal %triv.pal
  %w mclas %triv.mclas
  %w pu1 %triv.pu1
  %w pu2 %triv.pu2
  %w mclasn %triv.mclasn
  %w paup %triv.paup
  %w bans %triv.bans
  %w top %triv.top
}

on 1:CLOSE:@TRiV: triv.cierra

alias TRIVMSG {
  if $1 == graba { var %triv.rn = 1 | while (%triv.rn < 11) { var %triv.x0 = %triv.x [ $+ [ %triv.rn ] ] | writeini mod\trivial\ircaptrivial.ini MSG %triv.rn $chrini(%triv.x0) | inc %triv.rn } }
  if $1 == lee { var %triv.rn = 1 | while (%triv.rn < 11) { var %triv.x0 = $readini mod\trivial\ircaptrivial.ini MSG %triv.rn | set % $+ [ triv.x $+ [ %triv.rn ] ] $inichr(%triv.x0) | inc %triv.rn } }
}

alias TRIV.m {
  if $1 == res {
    %triv.x1 = 8,1 T  Preg. n潞 <num> 4* Tema: <tema>
    %triv.x2 = 0,1 6 :14 T 4: 15R 7: 15I 8: 0V 8:15 I 7: 15A 4:14 L 6: 11,2 El juego ha terminado <tiempo> 12,12!
    %triv.x3 = 8,1 T 2,0 <preg> 
    %triv.x4 = 8,1 T  <nick> 4acert贸 !! La respuesta era: <resp>
    %triv.x5 = 8,1 T  Puntos:
    %triv.x6 = 8,1 T  Se acab贸 el tiempo. La respuesta era: <resp>
    %triv.x7 = 0,1 6 :14 T 4: 15R 7: 15I 8: 0V 8:15 I 7: 15A 4:14 L 6: 11,2 Comenzando juego <tiempo> 12,12!
    %triv.x8 = 8,1 T  [L铆mite preguntas: <limite> ] 4* [Gana al alcanzar <acierto> puntos] 4* [Tiempo: <tiempo> seg.]
    %triv.x9 = 8,1 T  Una pista: 
    %triv.x10 = 4,1 :7:8:15 Clasificaci贸n 8:7:4: 
    triv.pest 3
    trivmsg graba
  }
  if $1 == exp {
    var %triv.fcd = $$?="Nombre del fichero ?" | %triv.fcd = " $+ $scriptdir $+ %triv.fcd $+ .trv" | write -c %triv.fcd IRcap Trivia - Configuraci贸n mensajes
    var %triv.rn = 1 | while (%triv.rn < 11) { var %triv.x0 = %triv.x [ $+ [ %triv.rn ] ] | writeini %triv.fcd MSG %triv.rn $chrini(%triv.x0) | inc %triv.rn }
  }
  if $1 == imp {
    var %triv.fcd = $dir="Escoge fichero de configuraci贸n" [ $scriptdir $+ \*.trv ] | if (!%triv.fcd) return
    var %triv.rn = 1 | while (%triv.rn < 11) { var %triv.x0 = $readini %triv.fcd MSG %triv.rn | set % $+ [ triv.x $+ [ %triv.rn ] ] $inichr(%triv.x0) | inc %triv.rn }
    triv.pest 3
    trivmsg graba
  }
}

alias TRIVdload run http:// $+ $urlcap $+ /fset/trivial.html

alias triveINFO cuagi @TRiV 70 180 76 15 gui | drawtext -cnr @TRiV $gettok(%gui.cc,6,44) Verdana 9 74 182 206 99 $1-
alias triv.leepreg {
  if %triv.e.n > $lines($trivpreg) { %triv.e.n = $lines($trivpreg) }
  if %triv.e.n < 1 { unset %triv.e.p %triv.e.r %triv.e.t %triv.e.m | return }
  var %a = $read -l $+ %triv.e.n $trivpreg
  %triv.e.p = $gettok($gettok(%a,2,171),1,42)
  %triv.e.r = $gettok($gettok(%a,2,171),2,42)
  %triv.e.t = $gettok($gettok(%a,1,171),1,169)
  %triv.e.m = $gettok($gettok(%a,1,171),2,169)
}
alias triv.grabapreg {
  if %triv.e.n < 1 return
  write -l $+ %triv.e.n $trivpreg %triv.e.t $+ 漏 $+ %triv.e.m  $+ 芦 $+ %triv.e.p $+ * $+ %triv.e.r
  if $window(@trivial).state != $null { triv.listado }
}
alias trivevol {
  goto $1
  :+ | if %triv.e.n < $lines($trivpreg) { inc %triv.e.n | triv.leepreg | triv.pest 4 } | return
  :- | if %triv.e.n > 1 { dec %triv.e.n } | triv.leepreg | triv.pest 4
}
alias trivabpreg {
  goto $1
  :b | if (%triv.e.n > 0) { write -dl $+ %triv.e.n $trivpreg | triv.leepreg | triv.pest 4 | triv.listado } | return
  :a | write $trivpreg %triv.e.t $+ 漏 $+ %triv.e.m  $+ 芦* | %triv.e.n = 999999 | triv.leepreg | triv.pest 4 | triv.listado | trivinfo A帽adida preg. %triv.e.n en blanco. Ed铆tala. | return
}

alias onedit.@triv {
  if ($left($1,7) == triv.e.) { triv.grabapreg }
  if $gettok(%triv.p帽1,3,32) == 3 trivmsg graba
}

alias triv.listado {
  if $1 == crea { window -kl @Trivial $window(@triv).x $calc($window(@triv).y + 260) 400 200 @trivlist }
  if $window(@trivial).state == $null return
  titlebar @Trivial : %triv.fic | clear @trivial | loadbuf @trivial  $trivpreg
  if %triv.e.n > 0 sline @trivial %triv.e.n
}
alias trivpreg return " $+ $scriptdir $+ %triv.fic $+ "
menu @trivlist {
  dclick %triv.e.n = $sline(@trivial,1).ln | triv.pest 4
}

alias trivnuevof {
  var %a = $?="Escribe el nombre del fichero, sin extensi贸n" | if %a == $null return
  %triv.fic = %a $+ .txt | window -c @trivial | %triv.e.n = 0 | triv.pest $gettok(%triv.p帽1,3,32)
}

alias triv.top {
  cuagr @TRiV 30 74 300 120 路 路 Nick 路 路 路 路 路 Puntos 路 路 Canal 路 路 路 路 路 路 路 路 路 路 路 路 Fecha 路 路 路 路 
  var %a = 1 , %y = 80 , %c = $gettok(%gui.cc,6,44) | while (%a < 11) {
    var %n = $gettok(%triv.top,%a,231) | if %n != $null {
      var %x = 40
      drawtext -cnr @TRiV %c Arial 10 $calc(%x + 80) %y 102 12 $gettok(%n,1,32)
      drawtext -cnr @TRiV %c Arial 10 $calc(%x + 120) %y 102 12 $gettok(%n,3,32)
      drawtext -cnr @TRiV %c Arial 10 $calc(%x + 225) %y 102 12 $gettok(%n,4,32)
      if %a == 10 { var %x = 34 }
      drawtext -cnr @TRiV %c Arial 10 %x %y 102 12 %a - $gettok(%n,2,32)
      inc %y 11 
    }
    inc %a 
  }
  drawline @TRiV
}

alias triv.topsuma {
  var %n = 1 | while (%n < 11) {
    var %a = $gettok(%triv.clas,%n,231) | if (%a) {
      %triv.top = %triv.top $+ 莽 $+ $gettok(%a,1,32) $gettok(%a,2,32) %triv.canal $date
    }
    inc %n
  }
  %triv.top = $sorttok(%triv.top,231,nr)
  %triv.top = $gettok(%triv.top,1-10,231)
  triv.pest $gettok(%triv.p帽1,3,32)
}
alias triv.top.borra unset %triv.top | triv.pest 5
alias triv.top.mostrar {
  if %triv.top == $null return
  if $1 == $null { smenu triv.top.mostrar 140 $chan(1) $+  $+ $chan(2) $+  $+ $chan(3) $+  $+ $chan(4) $+  $+ $chan(5) $+  $+ $chan(6) $+  $+ $chan(7) $+  $+ $chan(8) $+  $+ $chan(9) $+  $+ $chan(10) | return }
  qc msg $chan($1) 4,1 :7:8:15 IRcap Trivial 12:::0 TOP 10 8:7:4: 
  var %a = 1 | while (%a < 11) {
    var %n = $gettok(%triv.top,%a,231) | if %n != $null {
      qc msg $chan($1) %a $+ 潞 $gettok(%n,2,32) ( $gettok(%n,1,32) p.) en  $+ $gettok(%n,3,32) $+  el $gettok(%n,4,32)
    }
    inc %a 
  }
}
#trivial end

on 1:unload: triv.cierra
on 1:load: .disable #trivial

alias TRiv.cierra {
  if ($isalias(trivgraba)) trivgraba
  .disable #trivial
  .timerTRIV* off
  window -c @trivial_p
  window -c @triv
  unset %triv.*
}

;EOF