Tutorial Bots del Mirc

aLYuRBeiS

TUTORIAL PARA LA CREACION DE BOTS PARA CLANES.
Versión 1.0
By aLYuRBeiS
 
 
INDICE
 
1-     Introducción
2-     Conceptos basicos
3-     Comandos basicos mIRC
4-     Posibilidades del bot
5-     Realización del bot.
 
 
1 ) INTRODUCCION:
 
Este tutorial esta escrito para aquellos que desean tener un bot para un clan tanto de CS, DOD o cualquier otro juego, pero lo iremos tomando orientado al CS y utilizando como ya sabemos el lenguaje Scripting del mIRC32 para Windows.
 
Con este tutorial se daran a conocer conceptos basicos por lo que no hace falta tener mucha idea de scripting, aunque nunca viene mal saber algo.
 
Llega el punto en el que yo, aLYuRBeiS, comienzo con las explicaciones para la realización de dicho bot.
 
Suerte!
 
 
2) CONCEPTOS BASICOS:
 
mIRC32: Cliente de IRC para windows mas popular y extendido, con muchas posibilidades de ser modificado a gusto del usuario.
 
Scripting: Lenguaje que usa el mIRC para ser modificado para la creación de Script, adonis o cosas menores.
 
Comandos predefinidos: Son aquellos comandos integrados en el mIRC y que vienen dentro de su programación, que no pueden ser borrados pero si modificados por medio del scripting.
 
Alias: Comandos creados por el usuario, ya sea nuevo o modificando algun comando existente.
 
Remotos: Acciones que el mIRC realiza al detectar una cierta accion en el.
 
Popups: Menus modificables o creados por el usuario para el entorno del mIRC.
Seccion ALIASES: Es donde escribimos los comandos que creamos y se accede pulsando ALT + A en el mIRC.
 
Seccion POPUPS: Donde hacemos nuestros propios menus. Se accede pulsando aLT + P.
 
Seccion Remotos: Donde hacemos los comandos que el script ejecuta al detectar algo y se accede pulsando ALT + R.
 
 
3) COMANDOS BASICOS DE mIRC:
 
mode #canal +o nick -> Damos op a alguien en el canal
mode #canal -o nick -> Quitamos la op
mode #canal +v -> damos voz
mode #canal –v -> quitamos la voz
notice nick mensaje -> mandamos un notice al nick con el mensaje que solo lo reciva el en la ventana que tenga en ese momento.
msg nick mensaje -> recivira el mensaje por privado.
Topic #canal texto -> Pondra el texto en el Tepic del canal.
Mode #canal +b nick -> Banea al nick del canal
Mode #canal –b nick -> lo desbanea
Kick #canal nick texto -> kikea a la persona del canal.
 
 
4) POSIBILIDADES DEL BOT.
 
Nuestro bot podra responder automáticamente a palabras que la gente ponga en el canal, dar autovoz a todo el que entre, poner un texto en el canal cada x tiempo e incluso protecciones para la gente que hace spam en nuestro canal.
 
Existen muchas mas posibilidades pero de momento no las explicare hasta otro proximo tutorial.
 
 
 
65) REALIZACION DEL BOT:
 
Ahora vamos a la parte practica donde ponemos todos nuestros conociemientos al poder de nuestro bot.
 
Recordemos que todo esto lo debemos de poner en la seccion remotes de nuestro mIRC a la cual podemos acceder pulsando la combinación de teclas alt + r o en el septimo icono del mIRC.
 
 
AUTOVOZ:
 
Lo primero que aprenderemos a hacer es que el bot cuando alguien entre en el canal de nuestro clan automáticamente reciva voz en el canal.
 
Este remoto llevaria la sintaxis siguiente:
 
ON *:JOIN:#PaXanGa: { Comandos }
 
Este remoto se traduce en:
ON: Cuando
*: Cualquier nick
JOIN: entre
#PaXanGa: en el canal #PaXanGa
{ Comandos }: Ejecuta los comandos que tengo entre las llaves.
 
Con la linea ON *:JOIN:#PaXanGa: { mode $chan +v $nick } hariamos que el nick que entre en el canal reciva voz del bot automáticamente.
 
Nota: $chan es el identificador del canal y $nick el nick que entra. Esto lo ponemos asi para no tener que poner el canal. Siempre podremos usar $chan y $nick para referirnos al canal donde se realiza la accion y el nick para la persona que realiza la accion de entrar.
 
 
SALUDO AUTOMATICO:
 
Con esta accion conseguiremos que el bot le envie un notice a la persona ( solo la leera el ) con una frase predefinida por nosotros.
 
ON *:JOIN:#PaXanGa: { notice $nick Bienvenido al canal del clan mas poderoso }
 
 
 
Lo que la mayoria de los clanes quieren de un bot es que al poner alguien una palabra en el canal el mismo bot automáticamente conteste en el canal dando los datos necesarios según lo que ponga la persona. Esto lo conseguimos con el remoto llamado ON TEXT.
 
 
AUTORESPUESTA:
 
En este ejemplo haremos que cuando alguien ponga en nuestro canal la palabra !miembros el bot anuncie en el canal los nombres de los componentes del clan. Os recuerdo que todas las información las pongo sin colores ni símbolos ya que de eso os encargais vosotros. La sintaxis seria:
 
ON *:TEXT:!miembros:#PaXanGa: {
msg $chan Los miembros del clan son: Juan, Manolo, Pepe, Raul y Luis.
}
 
Nota: Como vereis ahora el comando esta en 3 lineas en vez de 1 ya que podeis ponerlo de esta manera pero siempre abriendo la llave y cerrandola al final.
 
Ahora si quisiramos que cuando alguien pusiera !web el bot anunciara la web del clan podriamos lo siguiente:
 
ON *:TEXT:!web:#PaXanGa: {
msg $chan La web del clan la tienes en www.tudireccion.com
}
 
Como habreis notado solo debeis de cambiar la palabra que detecta el remoto y el texto que nuestro remoto enviara al canal. Os dejo varios ejemplos para ampliar vuestro conocimiento.
 
ON *:TEXT:!capitan:#PaXanGa: {
msg $chan El capitan del clan es aLYuRBeiS
}
 
ON *:TEXT:!mail:#PaXanGa: {
msg $chan El E-mail del clan es [email protected]
}
 
ON *:TEXT:!Sponsor:#PaXanGa: {
msg $chan Estamos sponsorizados por Zapatos MARIFLOR
}
 
Creo que con este ya podeis tener una pequeña idea para la autocontestacion del bot según que comandos ponga la gente podeis hacerlo con miembros, capitan, web, mail, sponsor, last, proximo, posición, amigos, subcapitan, wararranger, manager y todo lo que vuestra imaginación os permita.
 
 
Ahora nuestro bot ya seria un bot bastante decente pero a la misma vez sencillo ya que pocas cosas hace, pero os explicare ahora como hacer que el bot repita un mensaje cada cierto tiempo en el canal.
 
 
MENSAJE EN EL CANAL:
 
Esta funcion del bot es un poco diferente ya que no va escrita en los remotes sino seria un alias que añadiremos en la seccion aliases ( se entra pulsando alt + a o en el quinto icono del mIRC ) y tendremos que activar el comando cada vez que enchufemos el bot.
 
Para poder hacer esta funcion usaremos un timer, que es un comando predefinido en el mirc y que su funcion es realizar una accion X numero de veces cada X segundos, pudiendo ser 1, 2, 10 o infinitas veces.
 
La sintaxis general de un timer es la siguiente: timer veces segundos comando
Si en veces ponemos 5 cuando haya realizado 5 veces el comando el timer desaparecera y si ponemos 0 el timer lo hara infinitas veces, siendo el 0 lo que usaremos para mantener siempre el mensaje en el canal. Usaremos como tiempo 600 segundos, ya que siempre debemos poner segundos y 600 son 10 minutos y como comando usaremos un msg al canal.
 
La sintaxis del timer que usariamos seria esta:
Timer 0 600 msg #PaXanGa El clan PaXanGa esta inactivo durante las navidades por vacaciones.
 
Pero con esto no conseguimos terminar la funcion ya que debemos crearnos un comando para poder ejecutarlo de una forma mas facil al arrancar el bot. Para ellos meteremos dicho timer en un alias de la siguiente manera:
 
Un alias lleva la sintaxis:
/Nombrealias {
comando a ejecutar
comando a ejecutar
}
 
Como veras podemos poner mas de un comando con esta estructura aunque ahora mismo solo necesitaremos uno que sera el timer.
 
EL comando que crearemos como alias sera /mensaje y quedaria de la siguiente manera:
 
/mensaje {
timer 0 600 msg #PaXanGa El clan PaXanGa esta inactivo durante las navidades por vacaciones.
}
 
Ahora solo con poner /mensaje en cualquier ventana del mIRC tendriamos el timer activado y cada 10 minutos hariamos que el bot dijera eso en el canal.
 
 
 
Otra posibilidad del bot es la proteccion antipublicidad tanto de canales como de web, que es mas difícil ya que tendremos que hacer que el bot solo eche a los que hagan spam si ellos no tienen op en el canal y si el spam lo hace un nick con op no le eche.
 
 
PROTECCIONES ANTI-SPAM:
 
Primero haremos la proteccion para web protegiendo a los que tiene op usando la sentencia IF-THEM-ELSE. Esto se hace en los remotos.
 
Sintaxis:
ON :TEXT:www*:#PaXanGa: {
If ( $nick !isop $chan ) {
    mode $chan +b $nick
    .timer 1 5 kick $chan $nick No spam en este canal. Estas baneado.
 }
}
 
explicación/traducción:
 
Cuando alguien:escriba:loquesea www loquesea:en paxanga: {
Si ( elnick noesop del canal ) {
  Banealo
  Echalo
 }
}
 
podemos hacer otro remoto que en la primera linea pongamos http en vez de www para crear otra proteccion y que sea mas efectiva.
 
Si quisieramos poner una proteccion anticanales podriamos usar # en vez de www
 
 
FINAL DEL TUTORIAL Y AGRADECIMIENTOS:
 
De momento esto es todo, ya que con esto podreis haceros un bot con las funciones mas importantes para vuestro clan.
 
En cuanto pueda sacare otro tutorial en el que pondre otras opciones mas avanzadas para los bots como AKICK, Auto-op a los del clan, etc.
 
Este tutorial ha sido creado por aLYuRBeiS, con la intencion de que la gente pueda hacerse sus bots a su gusto.
 
Agradezco el animo de la gente que me ayuda en este aspecto y me anima a seguir dando lo que puedo por la scene lamer española.
 
Ya sabeis que podeis buscarme en el IRC de Quakenet con el nick aLYuRBeiS en el canal #PaXanGa si teneis alguna duda.
 
Un saludo y espero que este tutorial sirva de verdad.
 
FDO: aLYuRBeiS.
 
 
PD: Perdonen las faltas de ortografia pero paso de ir fijandome cuando escribo sin pensar.



Espero que os sirva de ayuda.

iRoN-G

ostia alyurbeis cuanto tiemop

cep

Gracias!
LLevaba timepo buscando uno , tengo unas dudas te las pedire por irc si resuCitas ;P

S

Eggdrop y a correr.

Chulla

aLYuRBeiS aver si me echas una mano con esto:

tengo una variable %pepito_admins

ke le voy asignando diferentes users ( %nick )

como puedo borrar un user determinado de dicha variable?

si hago -> msg #canal Los Admins son %pepito_admins .

me sale la lista de admins

pero pa borrar por ejemplo el nick ( porrero)

Saludos..

HaDeX

Muy currado alyurbeis, gracias.

sh4ck

Chulla ->
/quitar_op {
/set %admins_pepito $remove(%admins_pepito,$+ , $+ $$1)
echo $$1 Se ha quitado de la lista de admin!
}

luego /quitar_op porrero

en tu caso funcionará bien por que he exo que cuando añades ops los va añadiendo con una coma (,) entre ellos, aqui he echo que va quitando la coma tambien hehe...

Preguntamelo a mi warra :P

editado.

os explico a todos la funcion
$remove(cadena,subcadena,...)
cadena = un variable o una frase
subcadena = lo que deseamos que quite de cadena.
ejemplo.
$remove(loled,ed) devolveria : lol
$remove(abcdefghijklmno,e,d,f,g,h,i,b) devolveria :acjklmno

aLYuRBeiS

Chulla de momento en este tutorial no he echo uso de las variables del entorno pero en un siguiente tutorial las explicare.

De toas formas con la ayuda que shack puso en el post deberia ser suficiente para resolver tu duda.

ge0cide

No está mal el tutorial... pero no es del todo correcto. No es muy correcto identificar a los que tienen privilegios sobre el bot con el nick y no con su host.

Me explico:

ON :TEXT:www*:#PaXanGa: {
If ( $nick !isop $chan ) {
mode $chan +b $nick
.timer 1 5 kick $chan $nick No spam en este canal. Estas baneado.
}
}

con este comando, x ejemplo, todos los nicks que no tengan privilegios podrán hacer spam en el canal, y en quakenet, cualquiera se puede poner el nick de otro ( mientras no esté on line... ). Puesto que en quakenet no tienen el modo +r para nicks.

Con esto quiero decir, que si se identifica a cada usuarioadministradoroperador..etc con su nick, cualquiera podría ejecutar los comandos que tiene el bot, en funcion de los privilegios que tenga dicho nick.
aLYuRBeiS, recuerda cuando el bot hacia quits en medio de una paxanga lanzada, o se lanzaban paxangas de parte de administradores que en ese momento no estaban en el canal... y que alguien te dijo que cambiaras el codigo... puesto que era él, el que estaba haciendo todo eso... ^.

Un saludo ge0.

aLYuRBeiS

Como comprenderas he puesto cosas muy basicas con las que hacerse un bot simple y que funcione para lo que la gente necesita.

YO tengo conocimientos para hacer diferentes niveles de usuario en el bot pero no creo que a la gente que va dirigido este tutorial tenga ese conocimiento.

Es por eso que como veras no explico nada de autoops, comandos de un admin del bot ni nada por el estilo como tengo yo en mis propios bots.

En el tutorial dice que ya hare otro con cosas mas avanzadas.

EL bot del tutorial no hace uso del modo +x ya que no usa ni usuarios ni IPs simplemente el status que tengas en ese momento. Tambien puede ser que te den la op y ya el bot te proteja en el canal solo por que te dan @ sin tener registro en el.

Un saludo.

ge0cide

de parte de aLYuRBeiS:

" ge0 asias por tu ayuda y ya sabes que te quiero :P"

^^ viva el amor

PD: está currado el tutorial :)

CuXiLLo

yo tengo una duda

Yo quiero que cuando entre pepito al canal le de @ diga en el publico "tal tal tal" como se haria?

Chulla

sh4ck el bot de las paxangas ya está mu visto kreo yo xDD

aver si echamos inmaginación y nos inventamos algo xDD

Saludos

P.D: ya tá la opcion remove on!! xD

iRoN-G

Chulla

ahí tienes un invento nuevo :)

www.newprogames.com/NPGwarfinder_1.0.zip

iRoN-G

#12

on 1:JOIN:#canal:{
if ($nick == pepito) {
mode # +o pepito
msg # hola pepito grillo!
}
}

Chulla

lol iRoN-G aver si lo pruebo cuando tenga time

tas echo un pr0 xDDD

Saludos

elenemigo

No esta mal el bot , pero tiene un fallo...

Un ejemplo:

on :TEXT:!clan:: {
msg $nick Hola soy el bot de clan LosPepitos, aqui tienes una lista de los comandos disponibles:
msg $nick Informacion del clan: !info

msg $nick Contacto: !contact
msg $nick Miembros: !miembro
msg $nick Configs: !cfg
msg $nick Normas: !normas
msg $nick Para mas, consulta los @...
}

Cargo el script le ago un query al supuesto bot y le digo:
!clan
!clan
!clan
!clan
!clan
!clan
!clan
!clan
!clan
!clan
!clan
!clan
!clan
Y el bot se cae por flood...(por cada palabra mia 7 frases del bot)...

Pregunta: Como poder poner un autoignore a la gente que abuse de los comandos del bot ???? O si no es posible , como ponerle un retardo de 1000ms como por ejemplo el de los Ascii's ???

Gracias ;-)

DarkSoldier

elenemigo lo unico que se me okurre es que para poner !clan necesites level entonces tu le das level a quien quieras, o:

on :TEXT:!clan:: {
msg $nick Hola soy el bot de clan LosPepitos, aqui tienes una lista de los comandos disponibles:
msg $nick Informacion del clan: !info

msg $nick Contacto: !contact
msg $nick Miembros: !miembro
msg $nick Configs: !cfg
msg $nick Normas: !normas
msg $nick Para mas, consulta los @...
ignore $nick
}

nose si es ese el comando ... XD

aLYuRBeiS

mete el remoto en un grupo y mediante timer lo activas por ejemplo:

#info on
on :TEXT:!clan:: {
msg $nick Hola soy el bot de clan LosPepitos, aqui tienes una lista de los comandos disponibles:
msg $nick Informacion del clan: !info

msg $nick Contacto: !contact
msg $nick Miembros: !miembro
msg $nick Configs: !cfg
msg $nick Normas: !normas
msg $nick Para mas, consulta los @...
.disable #info
.timer 1 60 .enable #info
}
#info end

esto haria que cuando el bot pusiera todo desactivara el grupo por lo que el remoto queda en off al pasar el grupo a #info off con el comando disable. tambien lleva un timer que a los 60 segundos usaria el comando enable #info para activar ese remoto que esta dentro del grupo o los remotos que esten dentro del grupo.

PD: los puntos delante de timer, disable y enable es para no tener informacion en pantalla de que se activo el timer o el grupo o se desactivo.

elenemigo

gracias :) te lo as currado

aLYuRBeiS

de nada pa eso toy para ayudar.

DarkSoldier

mmm elenemigo melon almenos podrias aver dicho, wena dky, almenos lo intentaste xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDd oye elenemigo.. agregame a [email protected] k me e canviado de email, borrame del antiguo (aleluia29.) ^^

2 meses después
aLYuRBeiS

Para los que los buscan aqui lo teneis.

Posteo para que vuelva a estar en los primeros y lo veais con facilidad.

PD: Buscando en los foros o usando un poco el goolge se encuentra todo.

elenemigo

Creo que esto mas que un ( i ) Post de Foro es un manual y deveria estar en su correspondiente seccion en la web ( manuales ). Es mas , recuerdo de la mano de "Letto" , que se me denego en su devido momento el traslado de cierto post a manuales por no cumplir ciertos requisitos que ahora cumple este...

_BoJa_69

Currado.

aLYuRBeiS

thx

Hubito

Muy interesante, aLYuRBeiS como siempre currado :]

Salu2

murpix

/run mirc.hlp

tig0ti

hay bastantes errores ortograficos para un tutorial, ademas de expresiones no totalmente correctas.. tu que llevas scripteando la vida o mas deberias saber como va un poco mejor

tambien hay mil y una formas mejores de hacer un bot, que metiendo cuatromil on text, uno para cada comando; y mil y una formas mejores de hacer un antiflood sin usar grupos ni nada por el estilo..

te lo has currado, pero los tutoriales o se hacen bien o no se hacen :P

k0b

Editado por moderador:

Como no me he leído las normas, un amable moderador me ha pedido que lo haga a través de este mensaje.

Respeto.

Tema cerrado

Usuarios habituales