Autor Tema: modos de canal  (Leído 327 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado rank

  • Novato
  • *
  • Mensajes: 14
  • Karma: +0/-104
modos de canal
« en: Agosto 23, 2019, 05:28:32 am »
Hola.

He intentado hacer un pequeño código, para cuando pongan algún moderador de mi canal, un modo restrictivo, el mismo bot cuando pase cierto tiempo lo quite, por si en algún momento se le va la pinza y cierra y deja el modo puesto.

Código: [Seleccionar]
on @*:mode:#xe:{

   notice $me $2 pone modo +R | .timerModeR 0 300 mode #xe -R
}

on @*:mode:#xe:{

   notice $me $2 pone modo +W | .timerW 0 1800 mode #xe -W

}

on @*:mode:#xe:{

   notice $me $2 pone modo +M | .timereme 0 600 mode #xe -M
}

on @*:mode:#xe:{

   notice $me $2 pone modo +m | .timerres 0 250 mode #xe -m
}

El problema es que solo quita el tiempo por el tiempo que le he puesto.

Los demás cuando ponen el modo lo quita al instante.

¿qué hago mal?

Un saludo.


Desconectado Quetzalcoatl

  • Novato
  • *
  • Mensajes: 30
  • Karma: +58/-1
  • HipercomputoHipermegared
    • elchatirc
Re:modos de canal
« Respuesta #1 en: Agosto 23, 2019, 08:03:08 am »
Que tal RANK

 Aunque no se si entendí bien, pero tu código es para que cuando se cambien los modos restrictivos en el canal ya sea por cualquier @op, estos sean quitados después de expirar X tiempo después, variando de acuerdo al tipo.

Después de ver tu código a simple vista encontré tres detalles siendo el ultimo el de tú duda
1.- No se debe tener mas de un evento repetido, es mejor poner solo un evento ya que en algunas versiones del mIRC, solo toma el primero que le hará caso(varia de acuerdo a la versión)
2.- El identificador de $1 aplica solo a los modos que se aplican al canal, por lo que cuando mandas un notice $me $2 no te aparece quien puso el modo, para ello se usa $nick
3.- La razón por la que los modos se quiten, es por que estas creando timers infinitos la sintaxis es timer<nombre/opcional> <repeticiones> <Tiempo en seg> <Comando(s)> y en tu ejemplo pones 0, el cual es indicativo para que sea infinito, es por ello que cuando alguien pone un modo restrictivo, este se removerá si es que el ciclo de su remoción llego de nuevo.

Quizás este código te sea útil para lo que intentas realizar:
Código: [Seleccionar]
on @*:mode:#xe:{
  var %a $remove($1,+), %b
  if (($left($1,1) == +) && (%a isin RWMm)) {
    if ($asc(%a) == 109) { %b = 250 } | elseif ($asc(%a) == 77) { %b = 600 } | else { %b = $replace(%a,$chr(82),300,$chr(87),1800) }
    .notice $me $nick pone modo $1-
    .timerMODE_ $+ $asc(%a) 1 %b mode $chan $replace($1,+,-)
  }
}

Saludos cordiales.

PD: la variable %a es el modo y %b se usara para el tiempo, de acuerdo al valor ascii del modo, es como se asigna el tiempo en %b
« última modificación: Agosto 23, 2019, 08:09:58 am por Quetzalcoatl »

Desconectado rank

  • Novato
  • *
  • Mensajes: 14
  • Karma: +0/-104
Re:modos de canal
« Respuesta #2 en: Agosto 27, 2019, 03:08:28 pm »
Muchas gracias!!!!!


 

anything