Tutorial Bots del Mirc

EnZo

alias spam {
if (www isin $1) || (http isin $1) || ($chr(35) isin $1) { return si }
else { return no }
}

on 1:TEXT:*:#sasa:{
if ($spam($1-) == si) {
inc % $+ $nick
if (% [ $+ [ $nick ] ] == 1) { msg $chan $nick 1er Aviso }
elseif (% [ $+ [ $nick ] ] == 2) { kick $chan $nick 2º Aviso }
elseif (% [ $+ [ $nick ] ] == 3) { mode $chan +b $nick | kick $chan $nick 3º Aviso | unset % $+ $nick }
}
}

Si no entiendes algo dimelo q te lo esplico pero antes estudia el codigo q es sencillo :D


A lo del topic ya te dije q si se tiene @ se puede cambiar el topic y no puedes evitarlo.

Y si Q hace otra cosa es xq es un oper y no se como ira xq lo desconozco ia q io soy de hispano mas q de qnet.

GL

SiKoPaTa

Hola tengo una duda que nose como solucionarla, mi problema esque si pongo uno de estos dos comandos en la cabeza del remote y pongo el otro abajo el de abajo no funciona.

ON *:JOIN:#micanal: { mode $chan +v $nick }
ON *:JOIN:#micanal: {
notice $nick Bienvenido a #micanal .:. Teclea !info para conocer los comandos disponibles .:.
}

Si alguien me puede echar una mano se lo agradeceria enormemente, gracias de antemano.

P.D: Ya tengo la respuesta gracias de todos modos.

TeKaNeO

#92

ON *:JOIN:#micanal:{
.mode $chan +v $nick | notice Bienvenido $nick a #micanal .:. Teclea !info para conocer los comandos disponibles .:.
}

Si vas a usar varios comandos segudos ej: ON JOIN, y son cosas seguidas, usa la | para separar acciones y asi las pones juntas en una misma linea.

Saludos^^

8 días después
FatalEagle

Muxas Thks ^^

LiuM

Me podeis explicar brevemente como puedo almacenar frases en una variable, y cuando alguien diga la palabra magica diga las frases? La primera parte es la gran duda, la 2º creo que lo habeis dejado clara mas arriba.

Tambien me interesaria conocer como editar esas frases.

Un saludo

FatalEagle

#95, lee bien el manual allí viene esa función (on text)
dw

LiuM

nono yo no sigo la on text, esa la entiendo, pero eso es para que diga un texto predeterminado. Yo busco que alguien introduzca algo en esa variable, la manera de decirla, como dije antes la se (on text) pero no la de almacenarla todo el mundo.

Por ejemplo e q yo lo puedo hacer

/set %frase frase

pero como pueden hacerlo el resto?

EnZo

#95
Esq tal y como lo as esplicao es una merda.

por ejemplo con:

on *:TEXT:#pr:{
set %frases %frases $+ ; $+ $1-
}

Cuando alguien diga una frase en el canal #pr como:
El que quiera entender que entienda
Mal de muchos consuelo de tontos

la variable %frases ekivale a sto:

El que quiera entender que entienda;Mal de muchos consuelo de tontos

pasaria eso si lo quieres todo en una variable, y cuando alguien diga la palabra magica pues le dara todas las frases juntas.

Tal y como dices se puede acer es cutre pero se puede y luego con un tokenize cortarisas en trozos (osea el punto y coma) para separar entre frase y frase.

FatalEagle

¿Se refiere a que cojas y tu pongas la frase a decir o algo así? yo no le entiendo muy bien...

EnZo

No se esq te esplicas como el culo con todos mis respetos xD si te entendiese t ayudaria :D

LiuM

Vale me explicare lo mejor que pueda:

Quiero hacer esto realidad:

Cuando alguien ponga por ejemplo !resultado 45-23 ese resultado se almacene en una variable. Y que cuando alguien ponga por ejemplo !dimeresultados los diga.

La segunda parte es un simple on text que entiendo, pero lo que no se hacer es que los usuarios de un canal puedan meter informacion en MI variable, es decir, la primera parte.

Siento no poder expresarme mejor, pero es lo mas claro que pude xD

EnZo

No terminas de esplicarlo, xq no especificas si es en el canal o en privado al bot.
Porque si es en el canal cualquiera q diga !resultado 24-21 lo va a almacenar y siempre hay algun tocawebos por los canales xD

LiuM

Si bueno tienes razon, entonces la cosa seria en el privado, pero juer no se explicarlo mejor jeje Bueno he estado buscando manuales, espero que con una mezcla de todos consiga solucionarlo porq veo que no me explico muy bien XD

TeKaNeO

Lium, la cosa seria que, cada resultado que se vaya diciendo se agregue a un txt por ejemplo y al decir por ej: !dimeresultados , el bot comenzaria a decirlos o bien por privado o por canal segun veas. Una cosa rapida quie he hecho es esto:

ESCRIBE EL TEXTO A UN TXT:

EJ: Resultado.txt el cual se crea dentro de la carpeta del script. Puedes cambiarle la ruta donde kieres que se cree, ejm: resultados\resultado.txt ....

on 500:text:!resultado*:#(canal):{
write -i resultado.txt $2- | .msg $chan Resultado agregado a la base de datos. THX.
}

Ese comando lo usaran los que tengan 500 de nivel, si kieres que lo use gente de menos, bajale el nivel. La orden seria: !resultado <resultado>

LEER EL TXT


on 500:text:!dimeresultados:#(canal):{
msg $nick RESULTADOS
msg $nick ************
set -u0 %i 0
:start
inc %i
msg $nick $read(resultado.txt,%i)
if (%i == $lines(resultado.txt)) goto end
else goto start
:end
}

Este comando leera el TXT creado donde esta almacenados los resultados, en el txt de la carpeta principal del script. Si esta en otra subcarpeta, haces lo mismo que antes. La nfo se desplegara en un privado al que dice el comando.

Todo va en Remotes. Los niveles los ajustas tu a tu gusto, si kieres que solo los lea la gente con nivel 300 hacia arriba lo haces y asi no tienes problema con la gente que satura el bot con comandos.

La estetica es muy simple tanto en los dialogos del bot como en el privado que manda asi que, editalo a tu gusto :P

Saludos

LiuM

Muchas Gracias :))

z3aRk0n

TeKaNeO lo de resultado esta muy bien pero se puede acerlo en menos de 3 lineas

si quiere q te lo ponga nada mas dimelo

14 días después
H

para todos los pr0s ! :D unicamente kiero saber kmo se hace una variable k almacene las veces k se dice !add a para que sepa la gente cuantas personas hay metidas.

asias x adelantado, plz ayudarme, el resto del bot lo tengo solo me falta eso :(

EnZo

con que pongas inc %tuvari Se ira incrementando automaticamente...

H

#108 gracias enzo pero donde pongo ese comando ?
si puedes pasame donde se pone por mensaje privado o si quieres por aki

EnZo

Esque es muy relativo, depende de como tengas el script, pero lo q te e puesto es como definir una variable osea como si pusieses set %mivar 1
solo q con inc %mivar pos la misma variable se va incrementando ella sola de 1 en 1.

Asi q ya te digo no puedo decirtelo xq no conozco tu script...

H

enzo uso ircap, plz mandame 1 mensaje privado de como seria. asias ! :D

EnZo

Sorry no me e esplicao bien, cuando decia tu script me referia al codigo que tu ya tengas echo, no al script q usas para chatear q eso da= xD

Ya te digo si no veo el script(codigo xD) no puedo adaptartelo.

FatalEagle

¿=[hum serviría un on text y poner esa variable (ya sería el nº de veces que se ha dicho)]=?

Thks :P & Dw

EDICIóN: en lo de los resultados tonces como sería, por ejemplo, para borrar los datos antiguos? (tambien poniendo algo tipo "!borrarresultados" (o algo + fácil :/)

Dw

Birckin

#104 /help /play

Resto de lectores: /help
Uno de los comandos más útiles del IRC, podréis leer toda la información sobre los comandos predefinidos por el mIRC32, los identifiers igualmente predefinidos, aliases, popups, remotes, variables, binvars, if-then-else, sockets, while loops, dialogs, windows, picturewindows y tantas otras opciones que este lenguaje de programación permite.

Por ejemplo, si #104 se hubiese leido un poco la ayuda podría haber resumido su reproducción de resultados en una sola línea, no es que el suyo este peor, pero al realizar addons/bots/scripts realmente grandes estas tonterías se notan ya que agota en parte y la corrección de errores es más compleja y liosa:

on +500:text:!dimeresultados:#canal: { if ($play(0) == 0) { .play -m1 $chan resultado.txt 2000 } }

Explicación:

 • +500
  - Indica el nivel.
  - El signo + indica que el comando no se ejecutará a menos que el usuario tenga nivel 500, de lo contrario, un usuario con 501 de nivel podría ejecutar el comando).
  - El resto de la sintaxis del remote la deberíais reconocer.
 • $play(0)
  - Indica el número de archivos en reproducción actualmente.
  - Si es igual a 0, es decir, si no hay ningún archivo reproduciendose, entonces se activa el comando (así se evitan problemas de flood).
 • .play -m1 $chan resultado.txt 2000
  - sintaxis: play -flags nick/canal archivo retraso_en_milisegundos
  - El . al comienzo indica que no queremos que nos diga que se ha realizado la acción correctamente
  - Con este comando reproducirá a $chan todas las líneas del archivo resultado.txt con 2000 milisegundos = 2 segundos de retraso entre línea y línea.
  - El flag de -m1 indica que sólo podrá reproducir un archivo simultáneamente al mismo nick/canal.

FatalEagle

^
||
Simplemente mi ídolo...

1 mes después
-_-NaMcO-_-

mirar mi duda es la siguiente:

cuando alguien escribe !comandos en el chat general del canal el bot responde en el canal o por query segun yo decida , pero cuando le abren query al bot y dentro del query ponen !comando el bot no responde , como si nada :S hay alguna forma de que responda cuando le preguntan el comando desde un query ??

Ayuda plz !! xD

B

on nivel:text:TEXTO:?:{ comandos }

nivel para TODOS los usuarios pon *
y si tienes admin etc.. pues pon lo que tu veas,
en texto pon !comandos si eso es lo que quieres, el ? quiere decir que es por query en { comandos } simple pon lo que quieras, una recomendacion para la peña a la que le tiran el bot, metedle ignore y luego quitarlo es decir ejemplo

on *:text:!comandos:?:{
/msg $nick esto es una prueba xD
/msg $nick estoy ayudando aquí a la peña xD
/msg $nick saldrá bien el codigo? xD
.ignore $nick
.timer 1 15 $nick
/msg $nick Tus privados han sido ignorados para evitar caida por flood, espere 15Segundos para poder solicitar otro comando.

lo podeis poner de mil maneras, era solo una sugerencia rápida xD bueno que os vaya bien con vuestros bots ^^

C

jajajaajajaj.
MODIFICADO:
Bueno sobre el tema, si teneis alguna duda :) ~
-- Abrirle query en Qnet a sF||CoNDoR
Se suficiente sobre eso :p

25 días después
Nafar

Quiero que mi bot diga una frase cada dos horas por ejemplo en algunos canales donde lo tengo metido, que tengo para que hacer para que lo haga?

Alperini

#119

/timer 1 3600 msg #canal hola.

PD : no lo se seguro :\

Tema cerrado

Usuarios habituales