egghelp.org community Forum Index
[ egghelp.org home | forum home ]
egghelp.org community
Discussion of eggdrop bots, shell accounts and tcl scripts.
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

kick timer
Goto page 1, 2  Next
 
Post new topic   Reply to topic    egghelp.org community Forum Index -> Scripting Help
View previous topic :: View next topic  
Author Message
bwkzb
Voice


Joined: 12 Mar 2017
Posts: 9

PostPosted: Sun Mar 12, 2017 4:52 am    Post subject: kick timer Reply with quote

Code:

set channel "#vhost"
set operid "flood"
set operpass "floodflood"

bind evnt - init-server oper
bind pub -|- !vhost vhost
bind join -|- * join

proc oper init-server { putserv "OPER $::operid $::operpass" }
proc join {nick host handle chan } {
 if { $chan == $::channel } {
   putserv "privmsg $chan para obtener tu host tipea !vhost <tu.host.que-quieras> NOTA: el vhost solicitado sera revisado para su aprobación"
  }
}
proc vhost {vhostnick vhosthost vhosthand vhostchan vhosttext} {
 if { $vhostchan == $::channel } {
   checkvhost $vhostnick $vhosttext
}
}

set badwords { *<censored>* *maricon* *chupalo* *pico* *conchatumare* *admin* *adminetchat* *services* *ñ* *^* *+* *´<*  *#* *ircop* *sex* *ircops* }
proc checkvhost { checknick vhostcheck } {
 if {[string match "*.*" [string tolower $vhostcheck]]} {
  set temp 0
  set results 0
   #$temp<=X X = number of space delimited tokens in the badwords variable.
   while {$temp<=47} {
     foreach x [string tolower $::badwords] {
     if {[string match $x [string tolower $vhostcheck]]} {
     incr results }
    }
    incr temp
   }
   unset temp
   if { $results > 0 } {
   putserv "privmsg #vhost $checknick Lo siento el vhost no puede ser \002$vhostcheck\002"
   } else {
   putserv "PRIVMSG hostserv set $checknick $vhostcheck"
   putserv "MODE #vhost +b $checknick"
   putserv "PRIVMSG #vhost tu vhost solicitado se ha aprobado con exito, tipea /hs on para activarlo"
   putserv "PRIVMSG #vhost tu nuevo host es \002$vhostcheck\002"
putserv "kick #vhost $checknick"
   }
  } else {
putserv "privmsg $::channel $checknick faltan parametros"
  }
}

How can I add a timer to the kick so that the user is kicked out of the channel in a minute if it is not removed

Thank you
Back to top
View user's profile Send private message
Arnold_X-P
Op


Joined: 30 Oct 2006
Posts: 137
Location: DALnet - Trinidad - Beni - Bolivia

PostPosted: Sun Mar 12, 2017 3:26 pm    Post subject: Re: kick timer Reply with quote

your tcl was containing many errors which I tried to resolve
but it works already very well
----
tu tcl contenia muchos errores los cuales trate de resolver
pero ya funciona muy bien, solo agrega el nombre del canal y listo lo demas ya se jala solo..
cambia solo estos sets set channel, set operid, set operpass, el nombre del canal por el tuyo, el acceso ircop por el acceso que tenga tu bot y listo.. la parte de abajo dejala tal cual no la modifiques solo cambia los sets mencionados.
Code:
# esta parte es sencible a mayusculas o minusculas escribe bien el nombre
# de tu canal. / name of channel assistance
set channel "#vhost"
set operid "id-ircop"
set operpass "your-pass-ircop"
# tiempo de duracion del ban en minutos / bantime in minutes
set bantimevhost 1

bind evnt - init-server oper
bind pub -|- !vhost vhost
bind pub -|- .vhost vhost
bind join -|- * join

proc oper init-server { putserv "OPER $::operid $::operpass" }
proc join {nick host handle chan } {
 if { $chan == $::channel } {
   putserv "privmsg $chan para obtener tu host tipea \2!vhost tu.host.que-quieras\2 ejemplo !vhost soy.novato \2NOTA\2: el vhost solicitado sera revisado para su aprobación"
  }
}
proc vhost {vhostnick vhosthost vhosthand vhostchan vhosttext} {
 if { $vhostchan == $::channel } {
   checkvhost $vhostnick $vhosttext
 }
}

set badwords { *<censored>* *maricon* *chupalo* *pico* *conchatumare* *admin* *adminetchat* *services* *ñ* *^* *+* *´<* *#* *ircop* *sex* *irc0p* *Opers*}
proc checkvhost { checknick vhostcheck } {
global
 if {[string match "*.*" [string tolower $vhostcheck]]} {
  set temp 0
  set results 0
   #$temp<=X X = number of space delimited tokens in the badwords variable.
   while {$temp<=47} {
     foreach x [string tolower $::badwords] {
     if {[string match $x [string tolower $vhostcheck]]} {
     incr results }
    }
    incr temp
   }
   unset temp
   if { $results > 0 } {
   putserv "privmsg $::channel :\2$checknick\2 Lo siento el vhost no puede ser \002$vhostcheck\002"
   } else {
   putserv "PRIVMSG hostserv set $checknick $vhostcheck"
   putserv "PRIVMSG $::channel :tu vhost solicitado se ha aprobado con exito, tipea \2/hs on\2 para activarlo"
   putserv "PRIVMSG $::channel :tu nuevo host es \002$vhostcheck\002"
    putserv "MODE $::channel +b $checknick"
 putserv "kick $::channel $checknick :reingrese luego, aqui no se permiten idles de nicks"
 timer $::bantimevhost [list puthelp "MODE $::channel -b $checknick"]
   }
  } else {
putserv "privmsg $::channel :\2$checknick\2 faltan parametros a su peticion, ejemplo \2!vhost soy.novato\2"
  }
}


probe el tcl y funciona de maravilla ahora tiene la opcion para quitar el ban despues de 1 minuto.
_________________
Very Happy thanks to that they help, that others learn Very Happy
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
bwkzb
Voice


Joined: 12 Mar 2017
Posts: 9

PostPosted: Sun Mar 12, 2017 6:24 pm    Post subject: Reply with quote

gracias y para qué sea en 30 segundos
el timer se debe de cambiar por

utimer $::bantimevhost [list puthelp "MODE $::channel -b $checknick"]

???
Back to top
View user's profile Send private message
Arnold_X-P
Op


Joined: 30 Oct 2006
Posts: 137
Location: DALnet - Trinidad - Beni - Bolivia

PostPosted: Mon Mar 13, 2017 12:32 pm    Post subject: Reply with quote

si correcto cambia en ambas lineas
Code:

set bantimevhost 30

y
Code:
utimer $::bantimevhost [list puthelp "MODE $::channel -b $checknick"]


en lo personal 30 segundos es muy poco y pasan volando los segundos, y tambien existen usuarios fastidiosos que trataran molestar en excesos de cambios vhost, yo lo veo bien 1 minuto, pero bueno eso lo decides tu.
_________________
Very Happy thanks to that they help, that others learn Very Happy
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
bwkzb
Voice


Joined: 12 Mar 2017
Posts: 9

PostPosted: Wed Mar 15, 2017 12:37 am    Post subject: Reply with quote

Gracias por responder
Arnold_x-p

Me gustaria agregar una linea para que solo los nick registrados puedan pedir host

Algo asi

Ej

<nickuser> !vhost host.none
<bot> lo siento no tienes el nick registrado no puedes pedir host


Algo asi recuerdo que se usa raw *307
Estuve improvisando pero me dio error xd
Back to top
View user's profile Send private message
Arnold_X-P
Op


Joined: 30 Oct 2006
Posts: 137
Location: DALnet - Trinidad - Beni - Bolivia

PostPosted: Thu Mar 16, 2017 6:09 pm    Post subject: Reply with quote

ok buscare una tcl que se adecue a lo que necesita
_________________
Very Happy thanks to that they help, that others learn Very Happy
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
juanamores
Master


Joined: 15 Mar 2015
Posts: 317

PostPosted: Fri Mar 17, 2017 1:15 pm    Post subject: Reply with quote

bwkzb wrote:

Me gustaria agregar una linea para que solo los nick registrados puedan pedir host

Algo asi

Ej

<nickuser> !vhost host.none
<bot> lo siento no tienes el nick registrado no puedes pedir host


Con el ejemplo que has puesto no se puede comprobar si el nick está o no registrado.
La comprobación se tiene que hacer sobre <nickuser> no sobre el vhost que solicita el usuario.

Si me dices con que comando se le puede hacer un INFO a un nick en la Red que tú estás, trato de ayudarte.
En la Red que estoy yo el comando es /msg NiCk info

Ejemplo:
Si pepito solicita un vhost, para saber si el nick pepito está o no registrado yo ejecuto el comando:
Quote:
/msg NiCk info pepito


Y el bot NiCk me envía un privado y me confirma si está o no está registrado ese nick.
En otras redes el bot es NickServ, etc.

Luego de saber ese comando, te puedo realizar las adaptaciones para que chequee lo que tu deseas.
_________________
If you do not understand my ideas is because I can not think in English, I help me with Google Translate. I only speak Spanish. Bear with me. Thanks Smile
Back to top
View user's profile Send private message
bwkzb
Voice


Joined: 12 Mar 2017
Posts: 9

PostPosted: Fri Mar 17, 2017 5:49 pm    Post subject: Reply with quote

con el comando /msg nickserv info nick se ve si el nick esta registrado o no

gracias
Back to top
View user's profile Send private message
Arnold_X-P
Op


Joined: 30 Oct 2006
Posts: 137
Location: DALnet - Trinidad - Beni - Bolivia

PostPosted: Fri Mar 17, 2017 7:21 pm    Post subject: Reply with quote

juanamores a eso se referia con raw *307 el amigo bwkzbcon el raw 307 se ve eso si el nick esta o no registrado no es necesario que pida info a nick o nickserv.

ya encontre una tcl asi pero tiene muchas fallas solucionando esperen.
_________________
Very Happy thanks to that they help, that others learn Very Happy
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
juanamores
Master


Joined: 15 Mar 2015
Posts: 317

PostPosted: Sat Mar 18, 2017 3:52 am    Post subject: Reply with quote

bwkzb wrote:
con el comando /msg nickserv info nick se ve si el nick esta registrado o no

gracias


Ok, ya tengo todo el código terminado, sólo me falta verificar 3 datos para que te funcione en tu Red y te lo paso.

Si yo ejecuto el comando para ver un INFO de un nick en mi red, me da el siguiente dato:
A) EJEMPLO con NICK NO Registrado:
Code:
/msg nick info pepitoperez

Quote:
08:28 NiCK Información sobre el nick pepitoperez:
08:28 NiCK Estado: No Registrado
08:28 NiCK Fin de INFO del nick pepitoperez.

B) EJEMPLO con NICK Registrado:
Code:
/msg nick info Tarzan

Quote:
08:34 NiCK Información sobre el nick Tarzan:
08:34 NiCK Estado: ACTIVO
08:34 NiCK Realname: IRcap[8.72]  www.ircap.net
08:34 NiCK Hora de registro: 15:24:02 21/Nov/2014 CET
08:34 NiCK Ultima hora por la red: 05:06:35 18/Mar/2017 CET (3hrs 27mins)
08:34 NiCK Fecha mínima de expiración: 06:06:35 16/Jul/2017 CEST
08:34 NiCK Ultimo mensaje de salida: Quit: • IRcap • 8.72 •
08:34 NiCK Host Virtual: soy.el.de.la.selva
08:34 NiCK Opciones: Seguro
08:34 NiCK Fin de INFO del nick Tarzan.


C) HACIENDO WHOIS al BoT NiCK (nickserv)
Code:
/whois  NiCK

Quote:
08:29 _ _[ NiCK [-@-] ---o
08:29 |---> Nombre  : Servicio de nicks
08:29 |---> u-Lista?  : BOT [bots de la red irc-Hispano]
08:29 |---> Servidor : deep.space Servicios de Red
08:29 |---> +info?    : NiCK es un roBOT oficial de la Red
08:29 |---> +info?    : NiCK Utiliza los modos [Bd]


Necesito que realices las 3 tareas enumeradas con las letras A), B) y C)
y me copies los resultados.

Arnold_X-P wrote:

juanamores a eso se referia con raw *307 el amigo bwkzbcon el raw 307 se ve eso si el nick esta o no registrado no es necesario que pida info a nick o nickserv.


Arnold_X-P, el sistema que uso yo en este caso concreto, no es con números RAW porque tengo otros TCL que funcionan con el mismo número RAW y luego se lanzan otros procesos que no deseo.

Yo lo hago con bases de datos temporales, alimentadas por datos que recojo del BoT NiCK (nickserv), que es quien me indica si un nick está o no registrado y funciona perfectamente también.
_________________
If you do not understand my ideas is because I can not think in English, I help me with Google Translate. I only speak Spanish. Bear with me. Thanks Smile
Back to top
View user's profile Send private message
bwkzb
Voice


Joined: 12 Mar 2017
Posts: 9

PostPosted: Sat Mar 18, 2017 7:52 am    Post subject: Reply with quote

A) nick no registrado

/ns info botayuda

-NickServ(services@servicios.host)- El nick botayuda no está registrado.

B) nick registrado

/ns info ayudabot

-NickServ(services@servicios.host)- ayudabot es bot
-NickServ(services@servicios.host)- ayudabot es un Operador de Servicios
-NickServ(services@servicios.host)- En línea desde: bot@mi.ip.host
-NickServ(services@servicios.host)- En línea desde: bot@bot.ayuda.cl
-NickServ(services@servicios.host)- Registrado: Mar 09 22:50:39 2017 EST (hace 8 días, 7 horas, 42 minutos)
-NickServ(services@servicios.host)- Último mensaje quit: xd
-NickServ(services@servicios.host)- Dirección email: mail@xxxx.cl
-NickServ(services@servicios.host)- VHost: bot.ayuda.cl
-NickServ(services@servicios.host)- Expira: Jan 12 06:33:09 2018 EST
-NickServ(services@servicios.host)- Opciones: Privado, Protección, Seguridad


C) /Whois nickserv

_[ NickServ [services@servicios.host] [desconocido] ---•
|---› Nombre  : Servicio de registro de nicks
|---› +info?    : NickServ is using modes +ioqS
|---› +info?    : NickServ is connecting from *@servicios.host
|---› Canales?: ?&@#ayudabot
|---› Servidor : servicios.host Services for IRC Networks
|---› IRCop:   : is an IRC Operator
|---› IRCop:   : is a Network Service


gracias
Back to top
View user's profile Send private message
juanamores
Master


Joined: 15 Mar 2015
Posts: 317

PostPosted: Sun Mar 19, 2017 8:21 am    Post subject: Reply with quote

Hola bwkzb, cumpliendo con lo prometido, te adapté mi script a los BoTs de la Red que usas tú.

Está SIN probar porque mi Red funciona diferente.
Ya me contarás si funciona o en caso contrario que errores te arroja.

Code:
# esta parte es sencible a mayusculas o minusculas escribe bien el nombre
# de tu canal. / name of channel assistance
set channel "#vhost"
set operid "id-ircop"
set operpass "your-pass-ircop"
# tiempo de duracion del ban en minutos / bantime in minutes
set bantimevhost 1

bind evnt - init-server oper
bind pub -|- !vhost vhost
bind pub -|- .vhost vhost
bind join -|- * join

# lee mensajes privados enviados al BOT, para comparar cuando el bot NickServ envíe resultados acerca de una INFO a un nick.
bind msgm - * vhost:registro

proc oper init-server { putserv "OPER $::operid $::operpass" }
proc join {nick host handle chan } {
 if { $chan == $::channel } {
   putserv "privmsg $chan para obtener tu host tipea \2!vhost tu.host.que-quieras\2 ejemplo !vhost soy.novato \2NOTA\2: el vhost solicitado sera revisado para su aprobación"
  }
}
proc vhost {vhostnick vhosthost vhosthand vhostchan vhosttext} {
    if { $vhostchan == $::channel } {
    # cuando solicitan vhost consulto al bot NickServ para saber si el nick está o no registrado
    putserv "PRIVMSG NickServ :info $vhostnick"
    # timer de 5 segundos para darle tiempo al bot a procesar la petición
    utimer 5 [list verarchn $vhostnick $vhosthost $vhosthand $vhostchan $vhosttext ]
   proc verarchn { vhostnick vhosthost vhosthand vhostchan vhosttext} {
   # consulta al archivo regtest para saber estado del nick, sino existe archivo se crea.
      if {![file exists regtest]} {
      set fs [open "regtest" w+]
      puts $fs 0
      close $fs
      set temp [open "regtest" r]
      set regtest [gets $temp]
      set nickregtest [lindex $regtest 0]
      close $temp
      } else {
      set temp [open "regtest" r]
      set regtest [gets $temp]
      set nickregtest [lindex $regtest 0]
      close $temp
      }
   # comparo resultado del archivo, si es 1 nick no registrado paro el script, si es 0 nick registrado y continuo con el proceso      
      if {$nickregtest == 1} { putmsg $chan [encoding convertfrom utf-8 "Lo siento \002$vhostnick\002, no tienes el nick registrado no puedes pedir host."];return}
      if {$nickregtest == 0 } {
      checkvhost $vhostnick $vhosttext
      }
   }
   } else {return}
}

set badwords { *<censored>* *maricon* *chupalo* *pico* *conchatumare* *admin* *adminetchat* *services* *ñ* *^* *+* *´<* *#* *ircop* *sex* *irc0p* *Opers*}
proc checkvhost { checknick vhostcheck } {
   global
      if {[string match "*.*" [string tolower $vhostcheck]]} {
      set temp 0
      set results 0
      #$temp<=X X = number of space delimited tokens in the badwords variable.
      while {$temp<=47} {
       foreach x [string tolower $::badwords] {
       if {[string match $x [string tolower $vhostcheck]]} {
       incr results }
      }
      incr temp
      }
      unset temp
      if { $results > 0 } {
      putserv "privmsg $::channel :\2$checknick\2 Lo siento el vhost no puede ser \002$vhostcheck\002"
      } else {
      putserv "PRIVMSG hostserv set $checknick $vhostcheck"
      putserv "PRIVMSG $::channel :tu vhost solicitado se ha aprobado con exito, tipea \2/hs on\2 para activarlo"
      putserv "PRIVMSG $::channel :tu nuevo host es \002$vhostcheck\002"
      putserv "MODE $::channel +b $checknick"
    putserv "kick $::channel $checknick :reingrese luego, aqui no se permiten idles de nicks"
    timer $::bantimevhost [list puthelp "MODE $::channel -b $checknick"]
      }
     } else {
   putserv "privmsg $::channel :\2$checknick\2 faltan parametros a su peticion, ejemplo \2!vhost soy.novato\2"
     }
}   

# proceso que se dispara cuando el bot NickServ nos envía un privado, ante una consulta del comando de mas arriba.
proc vhost:registro {nick NickServ!services@servicios.host hand text} {
# comparo en el texto enviado por privado del bot si se encuentra la frase "no está registrado", si la encuentra pone valor en archivo de 1
if {[string match -glob -ascii "*no está registrado*" $text]} {

  set fs [open "regtest" w+]
  puts $fs 1
  close $fs
  set temp [open "regtest" r]
  set regtest [gets $temp]
  set nickregtest [lindex $regtest 0]
  close $temp

  return 0
 }
 # comparo en el texto enviado por privado del bot si se encuentra la palabra textual "Registrado", si la encuentra pone valor en archivo de 0
 if {[string match -exact "*Registrado*" $text]} {

 set fs [open "regtest" w+]
  puts $fs 0
  close $fs
  set temp [open "regtest" r]
  set regtest [gets $temp]
  set nickregtest [lindex $regtest 0]
  close $temp

  return 0
}}

_________________
If you do not understand my ideas is because I can not think in English, I help me with Google Translate. I only speak Spanish. Bear with me. Thanks Smile
Back to top
View user's profile Send private message
bwkzb
Voice


Joined: 12 Mar 2017
Posts: 9

PostPosted: Mon Mar 20, 2017 5:29 pm    Post subject: Reply with quote

<bot> [18:35] Tcl error in script for 'timer14':
<bot> [18:35] wrong # args: should be "global varName ?varName ...?"


gracias por responder bueno ese es el error qué me arroja
Back to top
View user's profile Send private message
SpiKe^^
Master


Joined: 12 May 2006
Posts: 494
Location: Tennessee, USA

PostPosted: Mon Mar 20, 2017 6:03 pm    Post subject: Reply with quote

bwkzb,
Remove this entire line from the above script.
Code:
   global

_________________
SpiKe^^

Get BogusTrivia 2.06.4.7 at www.mytclscripts.com
Back to top
View user's profile Send private message Visit poster's website
bwkzb
Voice


Joined: 12 Mar 2017
Posts: 9

PostPosted: Tue Mar 21, 2017 1:34 am    Post subject: Reply with quote

gracias por contestar spike^^

quite la linea global

ya no salia el error

pero no ejecutaba nada

cambie estas lineas
Code:

putmsg $chan [encoding convertfrom utf-8 "Lo siento \002$vhostnick\002, no tienes el nick registrado no puedes pedir host."];return}

por
Code:

putserv "PRIVMSG $::channel Lo siento \002$vhostnick\002, no tienes el nick registrado no puedes pedir host."
;return
}

estás lineas tambien las cambie
Code:

putserv "PRIVMSG hostserv set $checknick $vhostcheck"
putserv "PRIVMSG $::channel :tu vhost solicitado se ha aprobado con exito, tipea \2/hs on\2 para activarlo"
      putserv "PRIVMSG $::channel :tu nuevo host es \002$vhostcheck\002"
putserv "MODE $::channel +b $checknick"
putserv "kick $::channel $checknick :reingrese luego, aqui no se permiten idles de nicks"
 timer $::bantimevhost [list puthelp "MODE $::channel -b $checknick"]
      }

por estás
Code:

putquick "PRIVMSG hostserv set $checknick $vhostcheck"
      putserv "PRIVMSG $::channel :tu vhost solicitado se ha aprobado con exito, tipea \2/hs on\2 para activarlo"
      putserv "PRIVMSG $::channel :tu nuevo host es \002$vhostcheck\002"
      putquick "MODE $::channel +b $checknick"
    putquick "kick $::channel $checknick :reingrese luego, aqui no se permiten idles de nicks"
    timer $::bantimevhost [list puthelp "MODE $::channel -b $checknick"]
      }

pero no funcionaron los cambios


elimine los tildes acentos de las palabras "está" la cambie por esta "esta"

pero no hay resultados

bueno gracias por la ayuda.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    egghelp.org community Forum Index -> Scripting Help All times are GMT - 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Forum hosting provided by Reverse.net

Powered by phpBB © 2001, 2005 phpBB Group
subGreen style by ktauber