Ayuda IRcap > Ayuda scripting IRcap

Avise en privado los moderadores y su tiempo de ausencia (con la @ puesta)

(1/3) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Responder

Ir a la versión completa