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