Ayuda IRcap > Ayuda scripting IRcap
Avise en privado los moderadores y su tiempo de ausencia (con la @ puesta)
rayco:
Hola.
Llevo tiempo intentando que cuando un usuario ponga Moderadores en privado, les salte los moderadores que están activos y su tiempo de ausencia, pero no se porque, pero no me lo suelta:
--- Código: ---alias tiempoAusente {
return $replace($1-,sec,$chr(160) $+ segundo,secs,$chr(160) $+ segundos,min,$chr(160) $+ minuto,mins,$chr(160) $+ minutos,hr,$chr(160) $+ hora,hrs,$chr(160) $+ horas,day,$chr(160) $+ día,days,$chr(160) $+ días,wk,$chr(160) $+ semana,wks,$chr(160) $+ semanas)
}
on 1:text:*:?: {
if ($level($nick) == 1) {
if ($strip($1) == moderadores) {
set %nickInfoIdles $nick
set %idleON $true
var %nickident = ( $address )
var %cuentaOpers = 1
while (%cuentaOpers <= $opnick(#tarragona,*)) {
whois $opnick(#tarragona,%cuentaOpers)
inc %cuentaOpers
}
set %ultimoNick $opnick(#tarraona,%cuentaOpers)
}
}
}
raw 317:*: {
if (%idleON == $true) {
msg %nickInfoIdles $+ $2 %nickident - Inactivo: $tiempoausente($duration($3))
msg %nickInfoidles puedes abrirle privado a cualquiera de ellos mediante privado
msg %nickInfoidles el comando es /query <nick> (Ejemplo: /query S )
if ($2 == %ultimoNick) { set %idleON $false }
}
}
--- Fin del código ---
Un saludo y muchas gracias!
rayco:
Hola de nuevo creo que no me explique bien.
Uso estos 2 addones.
En primer lugar un ANTI-IDLE que hace un whois a un moderador pasando un tiempo y si sobrepasa el tiempo de ausencia bajarlo.
--- Código: ---on 1:connect: {
set %canalOPs #tarragona
set %tiempoIdle 1800
timerCompruebaInactividad 0 900 WhoisAuto
}
alias WhoisAuto {
var %cuentaOpers = 1
while (%cuentaOpers <= $nick(%canalOPs,0,o)) {
var %nickOper = $nick(%canalOPs,%cuentaOpers,o)
if ($+(%nickOper,!*@*) !isignore) {
if ((%nickOper !iswm $me) && (%nickOper !iswm rayco) && (%nickOper !iswm Win-Stats) && (%nickOper !iswm IrcGuarD)) {
whois %nickOper
}
}
inc %cuentaOpers
}
}
raw 317:*: {
if ($3 > %tiempoIdle) {
mode %canalOPs -o $2 | msg #tarragona_deb Deopea a4 $2 por ausente
}
}
--- Fin del código ---
Y ahora tengo este, que es para que los usuarios miren que moderadores están activos y cual es su tiempo de inactividad:
--- Código: --- alias tiempoAusente {
return $replace($1-,sec,$chr(160) $+ segundo,secs,$chr(160) $+ segundos,min,$chr(160) $+ minuto,mins,$chr(160) $+ minutos,hr,$chr(160) $+ hora,hrs,$chr(160) $+ horas,day,$chr(160) $+ día,days,$chr(160) $+ días,wk,$chr(160) $+ semana,wks,$chr(160) $+ semanas)
}
on 1:text:*:?: {
if ($level($nick) == 1) {
if ($strip($1) == moderadores) {
set %nickInfoIdles $nick
set %idleON $true
var %nickident = ( $address )
var %cuentaOpers = 1
while (%cuentaOpers <= $opnick(#tarragona,*)) {
whois $opnick(#tarragona,%cuentaOpers)
inc %cuentaOpers
}
set %ultimoNick $opnick(#tarraona,%cuentaOpers)
}
}
}
raw 317:*: {
if (%idleON == $true) {
msg %nickInfoIdles $+ $2 %nickident - Inactivo: $tiempoausente($duration($3))
msg %nickInfoidles puedes abrirle privado a cualquiera de ellos mediante privado
msg %nickInfoidles el comando es /query <nick> (Ejemplo: /query S )
if ($2 == %ultimoNick) { set %idleON $false }
--- Fin del código ---
}
}
El problema es que algo deben coincidir ambos addons, que si pone el usuario "Moderadores" no le va a soltar los moderadores que hay y su inactividad hasta que el primero haga un whois a los moderadores.
¿Es posible que cuando ponga MODERADORES, haga el whois del tirón sin interferir en el addon de arriba?
¡Gracias!
Cadaver:
Aquí esta corregido y funcionando:
--- Código: ---on *:connect: {
set %canalOPs #tarragona
set %canalDebug #tarragona_deb
set %tiempoIdle 1800
timerCompruebaInactividad 0 900 WhoisAuto
}
on *:text:*:?: {
if ($strip($1) == moderadores) {
set %nickInfoIdles $nick
set %idleON 1
var %cuentaOpers = 1
set %ultimoNick $opnick(%canalOPs,0)
set %ultimoNick $opnick(%canalOPs,%ultimoNick)
while (%cuentaOpers <= $opnick(%canalOPs,0)) {
var %nickOper = $opnick(%canalOPs,%cuentaOpers)
whois %nickOper %nickOper
inc %cuentaOpers
}
}
}
alias WhoisAuto {
var %cuentaOpers = 1
while (%cuentaOpers <= $opnick(%canalOPs,0)) {
var %nickOper = $opnick(%canalOPs,%cuentaOpers)
if ($+(%nickOper,!*@*) !isignore) && (%nickOper !iswm $me) && (%nickOper !iswm rayco) && (%nickOper !iswm Win-Stats) && (%nickOper !iswm IrcGuarD) {
whois %nickOper %nickOper
}
inc %cuentaOpers
}
}
raw 317:*: {
if (%idleON) {
msg %nickInfoIdles $+ $2 %nickident - Inactivo: $tiempoausente($duration($3))
msg %nickInfoidles puedes abrirle privado a cualquiera de ellos mediante el comando /query $2
if ($2 == %ultimoNick) { unset %idleON | unset %nickInfoIdles | unset %ultimoNick | halt }
}
if (!%idleON) && ($3 > %tiempoIdle) {
mode %canalOPs -o $2 | msg %canalDebug Deopea a4 $2 por ausente
}
}
alias tiempoAusente {
return $replace($1-,sec,$chr(160) $+ segundo,secs,$chr(160) $+ segundos,min,$chr(160) $+ minuto,mins,$chr(160) $+ minutos,hr,$chr(160) $+ hora,hrs,$chr(160) $+ horas,day,$chr(160) $+ día,days,$chr(160) $+ días,wk,$chr(160) $+ semana,wks,$chr(160) $+ semanas)
}
--- Fin del código ---
rayco:
Hola Cadaver muchas gracias por responder
Una cosita si no es mucho pedir.
¿Los nicks que están en ignore, cuando pongas "moderadores", los puede excluir?
¿Y se puede poner que si un usuario pone "Moderadores" ignore al usuario 300s?
Muchísimas gracias!
Cadaver:
Aquí esta:
--- Código: ---on *:connect: {
set %canalOPs #tarragona
set %canalDebug #tarragona_deb
set %tiempoIdle 1800
timerCompruebaInactividad 0 900 WhoisAuto
}
on *:text:*:?: {
if ($strip($1) == moderadores) {
set %nickInfoIdles $nick
set %idleON 1
set %ultimoNick $opnick(%canalOPs,0)
set %ultimoNick $opnick(%canalOPs,%ultimoNick)
WhoisAuto
ignore -pu300 $address($nick,2)
}
}
alias WhoisAuto {
var %cuentaOpers = 1
while (%cuentaOpers <= $opnick(%canalOPs,0)) {
var %nickOper = $opnick(%canalOPs,%cuentaOpers)
if ($+(%nickOper,!*@*) !isignore) && (%nickOper !iswm $me) && (%nickOper !iswm rayco) && (%nickOper !iswm Win-Stats) && (%nickOper !iswm IrcGuarD) {
whois %nickOper %nickOper
}
inc %cuentaOpers
}
}
raw 317:*: {
if (%idleON) {
msg %nickInfoIdles $+ $2 %nickident - Inactivo: $tiempoausente($duration($3))
msg %nickInfoidles puedes abrirle privado a cualquiera de ellos mediante el comando /query $2
if ($2 == %ultimoNick) { unset %idleON | unset %nickInfoIdles | unset %ultimoNick | halt }
}
if (!%idleON) && ($3 > %tiempoIdle) {
mode %canalOPs -o $2 | msg %canalDebug Deopea a4 $2 por ausente
}
}
alias tiempoAusente {
return $replace($1-,sec,$chr(160) $+ segundo,secs,$chr(160) $+ segundos,min,$chr(160) $+ minuto,mins,$chr(160) $+ minutos,hr,$chr(160) $+ hora,hrs,$chr(160) $+ horas,day,$chr(160) $+ día,days,$chr(160) $+ días,wk,$chr(160) $+ semana,wks,$chr(160) $+ semanas)
}
--- Fin del código ---
Navegación
[#] Página Siguiente
Ir a la versión completa