Autor Tema: Expulsar usuarios dentro del canal.  (Leído 2330 veces)

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

Desconectado chicharrero

  • Novato
  • *
  • Mensajes: 26
  • Karma: +0/-2
  • Sexo: Masculino
Re:Expulsar usuarios dentro del canal.
« Respuesta #15 en: Enero 18, 2022, 08:17:54 pm »
al final cual seria la solucion para que cuando yo entre en el canal saque a los nick que ya están dentro de la sala antes que yo y que tenga añadidos a patrones.txt
(A)bortar (R)eintentar (E)liminar usuario?  :)

Desconectado chicharrero

  • Novato
  • *
  • Mensajes: 26
  • Karma: +0/-2
  • Sexo: Masculino
Re:Expulsar usuarios dentro del canal.
« Respuesta #16 en: Enero 19, 2022, 06:23:02 pm »
buenas de nuevo, tras hacer exactamente lo que comento Quetzalcoatl de poner así:
Código: [Seleccionar]
alias revisarcanalalentrar { var %i 1 | while ($nick($chan,%i)) { echo -a BaneaUsuarios  $ifmatch  | inc %i }} solo una curiosidad esto va asi: while ($nick($chan,%i)) o asi: while ($nick($chan, %i)) pregunto?

los mensajes que me sale en status:

* /goto: duplicate 'SumaNums' found (line 27, nicksprohibidos.mrc)
y en la line 27 esta el codigo alias revisarcanalalentrar { blaaaa blaaaa etc
(A)bortar (R)eintentar (E)liminar usuario?  :)

Desconectado chicharrero

  • Novato
  • *
  • Mensajes: 26
  • Karma: +0/-2
  • Sexo: Masculino
Re:Expulsar usuarios dentro del canal.
« Respuesta #17 en: Enero 22, 2022, 12:11:09 pm »
nadie echa una mano a ver si soluciono el problema, gracias
(A)bortar (R)eintentar (E)liminar usuario?  :)

Desconectado chicharrero

  • Novato
  • *
  • Mensajes: 26
  • Karma: +0/-2
  • Sexo: Masculino
Re:Expulsar usuarios dentro del canal.
« Respuesta #18 en: Enero 24, 2022, 02:14:34 pm »
buenas Quetzalcoatl
podrías echarme un capote por favor a ver si busca en la lista de user cuando entro en sala y saca a los malos nick añadidos a la lista de nick prohibidos, copio el codigo completo por si algo mas esta afectando a lo que ya comentaste.
Código: [Seleccionar]
menu status  {
  $iif($group(#Npro) == on,$style(1) Ctrl-Npro     ON,Ctrl-Npro    OFF) { $iif($group(#Npro) == on, .disable  #Npro, .enable #Npro) }
  -
}

#Npro off



on 1:join:#: {
  $BaneaUsuarios($nick,$chan)
}


On *:nick:{
  var %a 1 | while ($comchan($newnick, %a)) { $BaneaUsuarios($newnick,$v1) | inc %a }
}


alias BaneaUsuarios {
  var %cuentaNicks = 1
  while (%cuentaNicks <= $lines(patrones.txt)) {
    if ($read(patrones.txt,%cuentaNicks) isin $1) || ($read(patrones.txt,%cuentaNicks) iswm $1) {
      var %cuentaExcepciones = 1
      while (%cuentaExcepciones <= $lines(patrones-exceptuados.txt)) {
        if ($read(patrones-exceptuados.txt,%cuentaExcepciones) isin $1) || ($read(patrones-exceptuados.txt,%cuentaExcepciones) iswm $1) {
          halt
        }
        inc %cuentaExcepciones
      }
      ban $2 $1 $+ !*@* | kick $2 $1 1Su nick no es el mas adecuado para la tematica del canal 4 $chan 1Por Favor, cambielo. 4Gracias.
      halt
    }
    inc %cuentaNicks
  }
}


#NickProhibidos end

alias adnick {
  :AgregarNick
  var %x $read(patrones.txt,w,$$?="Escribe aquí el nick")
  if (%x) { echo -s 64 » » » » » » 1 El Nick 52 %x 1 ya existe en 64 Nicks Prohibidos!!! }
  if (!%x) { write patrones.txt $! | echo -s 64 » » » 2El Nick 44 $! 2 ha sido agregado 64 Nicks Prohibidos!!! }
  goto AgregarNick
}

alias bnick {
  if ($1 != $null) {
    if ($read(patrones.txt,w,$1) != $null) { write -dl $+ $readn patrones.txt | echo -s 44 » » »2El Nick 44 $1 2ha sido borrado 64 Nicks Prohibidos!!! }
    else echo -s 44 » » »  2El Nick 44 $1  2no existe como 64 Nicks Prohibidos!!!!
  }
}

alias lnick {
  echo -se 0,64Listado de Nick Prohibidos (Total: $lines(patrones.txt) $+ ):
  var %nicks = 0
  :SumaNums
  inc %nicks
  if (%nicks <= $lines(patrones.txt)) echo -s 4 $read(patrones.txt,%nicks)
  else { echo -se  4 $+ $str(¯,33) | return }
  goto SumaNums
}

alias npro {
  if ($1 == on) {
    set %nickPro.dir $scriptdir $+ NicksProhibidos.txt | .enable #NicksProhibidos | echo -s 0,12La Protección de NicksProhibidos ha sido activada!
    if ($exists(%nickPro.dir) == $false) { write $mircdir $+ NicksProhibidos.txt }
  }
  else if ($1 == off) { unset %nickPro.dir | .disable #NicksProhibidos | echo -s 0,12La Protección de NicksProhibidos ha sido desactivada! }
  else if ($1 == $null) {
    echo -s 0,12Faltan parámetros! el comando para Activar o Desactivar , la Protección de NicksProhibidos es (/npro on Activa)--(/npro off Desactiva)
  }
}


alias adnickex {
  :Ponexcepcion
  var %x $read(patrones-exceptuados.txt,w,$$?="Escribe aquí el nick"))
  if (%x) { echo -s 44 » » » » » 1El Nick 4 %x  1ya existe en 44 Nick Excepciones!!! }
  if (!%x) { write patrones-exceptuados.txt $! | echo -s 44 » » » » » 1El Nick 44 $! 1 ha sido agregado a 44 Nick Excepciones!!! }
  goto Ponexcepcion
}

alias bnickex {
  if ($1 != $null) {
    if ($read(patrones-exceptuados.txt,w,$1) != $null) { write -dl $+ $readn patrones-exceptuados.txt | echo -s 44 » » »1El Nick 44 $1 1ha sido borrado de Excepciones. }
    else echo -s 44 » » »  1La Execepcion 44 $1  1no existe!
  }
}

alias lnickex {
  echo -se 0,44 Listado de Nick Execeptuados (Total: $lines(patrones-exceptuados.txt) $+ ):
  var %nicks = 0
  :SumaNums
  inc %nicks
  if (%nicks <= $lines(patrones-exceptuados.txt)) echo -s 3 $read(patrones-exceptuados.txt,%nicks)
  else { echo -se  3 $+ $str(¯,33) | return }
  goto SumaNums
}

#Npro end
(A)bortar (R)eintentar (E)liminar usuario?  :)

Desconectado Quetzalcoatl

  • Miembro de pleno derecho
  • ***
  • Mensajes: 213
  • Karma: +243/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Expulsar usuarios dentro del canal.
« Respuesta #19 en: Enero 25, 2022, 06:10:05 am »
El alias es

Código: [Seleccionar]
alias revisarcanalalentrar { var %i 1 | while ($nick($1,%i)) { $BaneaUsuarios($ifmatch,$1) | inc %i } }
o en su defecto
Código: [Seleccionar]
alias revisarcanalalentrar { var %i 1 | while ($nick($1,%i)) { BaneaUsuarios $ifmatch $1 | inc %i } }
dependiendo como se use, debe de funcionar.
con lo que respecta a
Citar
solo una curiosidad esto va asi: while ($nick($chan,%i)) o asi: while ($nick($chan, %i)) pregunto?
ambas son validas.
Citar
* /goto: duplicate 'SumaNums' found (line 27, nicksprohibidos.mrc)
puede ser que el codigo este doble por eso el problema del goto pero eso ya es otra cuestión ajena a lo del alias baneausuarios.

EN el código que pones al final veo algunos camios en el join pero es factible usarlo asi, pero si en un ataque de clones podria tener lag si son bastantes, o una red grande con los netsplits.
Siendo asi, ¿que problemas te ocurre al usar ese codigo completo que pones? (si es lo del goto es por que quizas esta duplicado)

Desconectado chicharrero

  • Novato
  • *
  • Mensajes: 26
  • Karma: +0/-2
  • Sexo: Masculino
Re:Expulsar usuarios dentro del canal.
« Respuesta #20 en: Enero 25, 2022, 12:04:31 pm »
muy buenas Quetzalcoatl
lo volvi a intentar desactive todos los addons y solo deje este, no hace nada, puse un nick que esta en la lista de nick prohibidos y no lo saca
en status no me da ningun error
si lo usare para una sala entre 300 y 900 user dependiendo los tramos horarios pego el codigo segun lo tengo:

Código: [Seleccionar]
on 1:join:#: {
  if ($nick == $me) { revisarcanalalentrar $chan }
  else { $BaneaUsuarios($nick,$chan) }
}

alias revisarcanalalentrar { var %i 1 | while ($nick($1,%i)) { $BaneaUsuarios($ifmatch,$1) | inc %i } }

PD: la prueba fue hecha en mi sala con un user de nick prohibido
« última modificación: Enero 25, 2022, 12:17:45 pm por chicharrero »
(A)bortar (R)eintentar (E)liminar usuario?  :)

Desconectado chicharrero

  • Novato
  • *
  • Mensajes: 26
  • Karma: +0/-2
  • Sexo: Masculino
Re:Expulsar usuarios dentro del canal.
« Respuesta #21 en: Enero 30, 2022, 01:50:41 pm »
bueno en vista que no tiene solucion doy finalizado el tema muchas gracias Quetzalcoatl y Cadaver por la ayuda prestada
un saludo
(A)bortar (R)eintentar (E)liminar usuario?  :)

 

anything