Autor Tema: duda sobre anticolores de ircap  (Leído 857 veces)

0 Usuarios y 5 Visitantes están viendo este tema.

Desconectado Diablo

  • Novato
  • *
  • Mensajes: 19
  • Karma: +0/-165
duda sobre anticolores de ircap
« en: Enero 01, 2020, 03:56:09 pm »
1º feliz Año a todos 

 Y bueno mi consulta /ayuda   ,  no soy capaz con las protecciones del ircap  (usando  mirc 6.2 / ircap 8.72 ) que me banee a los usuarios de web y que  no baneen a  el  Nick  Completion
Yo prepare a traves de mirar muchas cosas  un scrip /addons  automatico por remotes  y me sucede lo mismo
 
on 1!:text:*:#canal: {

 if ( $chr(3) isin $1- ) {  .msg $chan $nick --> esta Baneado : no use TEXTO CON COLORES!  estan prohibidos en # (X ban)  }   ;>>>>  no es codigo    esto es para en las pruebas no tanto baneo
me he llevado algun glined "por abuso de red" por eso decidi que era mejor un aviso que no un ban  jajajajajaja
 

Bueno con esto me hace igual que las protecciones del Ircap  ,con $1- banea  todo lo que se ponga por delante en color pero si cambio a

if ( $chr(3) isin $2- ) {  .msg $chan $nick --> esta Baneado : no use TEXTO CON COLORES!  estan prohibidos en # (X ban)  } 

No banea  el  nick completion  , pero los de web a ninguno le banea  es como si no entendiera que coja la 2º palabra y seguidas  que si son en color  les banee


 Ahi estoy no hay manera , con mis pocos conocimientos de  pasar de ahi , habia considerado haciendo un whois  aprovechar el fullname , que si fueras en color y con tal fulname  les banee , pero es igual no puedo poner por un lado, todos los fullname de los usuarios de Ircap  o los de  los usuarios de web que podria ser mas factible

En el caso de  :
if ( $chr(3) == $1- ) {  .msg $chan $nick --> esta Baneado : no use TEXTO CON COLORES!  estan prohibidos en # (X ban)  } 

No parece que reconoce nada lo mismo que con $2-

Asi que si alguien  , con mas conocimientos que yo , lo ve  posible y decide ayudarme , estaria encantado por dos razones yo  pienso que no se puede  pero ?

1º aprenderia
2º dejaria de estar estancado

Ya de vicio , si se puede hacer , que yo no se como , que esto funcione  y se pudiera 1º dar un aviso y si continuan  kick  y si continuasen ban/kick  lo que  decia un vicio

PD la red donde lo usaria principalmente seria Zonachat y digo esto por que tambien me gustaria que si se puede  y alguien sabe  fuera para mas redes (supongo sea mas lio) asi no seria exclusibo de nadie y ninguna red

Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:duda sobre anticolores de ircap
« Respuesta #1 en: Enero 01, 2020, 08:56:35 pm »
Hola

El problema que veo es que en todo los códigos estas cometiendo el mismo error, y si no intentas una cosa diferente no obtendrás resultados diferentes. Para empezar a como lo veo estas tratando de correr sin antes aprender a caminar, lo digo por lo siguiente, estas evaluando el carácter de color en toda una cadena, ya sea un $1- o $2-, dado que tienes:
if ( $chr(3) isin $1- ) { ..... }
Si (CaracterDEcolor estaEn LAcadena) { haz esto. }

correr = aplicarlo a una cadena de texto
caminar = evaluar parte porte por parte

Por ende incluso en un completation de carita actuaria el código.
Lo ideal seria aplicar un bucle, el cual evalué la cadena o dentro de los if de detección de color aplicarlo. en en primer caso se me ocurre algo sencillo como colocar una variable temporal de conteo y después obtener palabra por palabra en el while.
ejemplo: caminando
Código: [Seleccionar]
//var %a 1, %b Este es un ejemplo de una cadena | while ($gettok(%b,%a,32))  { echo -s $ifmatch | inc %a }donde %b se refiere a la cadena de texto la cual seria $1- o $2- dependiendo como lo manejes y ya solo quedaría evaluar el $ifmatch del while, para ello no solo bastaría usar para el color
 if ($chr(3) isin $ifmatch) { blablabla | break o return }
podría ampliarse ese simple if y usarlo para detectar si el parámetro $ifmatch es un nick dentro del canal para ello quedaría algo como
Código: [Seleccionar]
if (($chr(3) isin $ifmatch) && ($strip($ifmatch) !ison $chan))  { blablabla | break o return }así de simple limpiando la palabra evaluada de colores y si no esta en el canal(no es un nick dentro del canal) entonces proceda con el código, habría que hacer notar que $strip($ifmatch) solo esta quitando los colores, pero si existen nick completation con caracteres como [, ], (, ) . : * ~, etc habría que quitarlos con su valor numérico aplicando un remove ya que con un replace alargaria mucho mas el código, ejemplo
si [ es en código ASCII: 91 Octal: \133 HEX: \x5B, nos quedaría algo como $remove($strip($ifmatch),$chr(91))

corriendo
Hasta esta parte ya esta resuelto lo que debería proceder,  la aplicación dependerá de ti si requieres meterlo a un evento on text o manejarlo con el código del ircap. lo que yo recomendaría es usarlo como un alias el cual podrías llamarlo en ambos casos, si es por evento y el alias le pones deteccion seria como
on 1!:text:*:#canal: {
deteccion $1-
otras lineas
mas lineas
que tengas en tu evento
}
en el ircap seria lo mismo como mencionas solo haciendo el cambio por el $2-.

Con lo que respecta a los avisos y sanciones, pues ya hay ejemplos en el foro, creando una variable temporal con set -uX [ nickFLOOD_[ $nick ] ] Nadvertencia
donde la Nadvertencia se refiere al numero de advertencias y/o infracciones recibidas por el nick, y -uX la X seria el tiempo en segundos que exisitira esa variable antes de auoborrarse.

Saludos Diablo
PD: en este caso use $ifmatch pero puedes usar $v1 o incluso asignarla a una variable temporal previamente declarada o usar otro medio de control para el while.
pd2: no entendi tu pd en tu post
pd3: preferí explicarte que ponerte el código, por que así aprenderías mas que si solo se te da

Desconectado Diablo

  • Novato
  • *
  • Mensajes: 19
  • Karma: +0/-165
Re:duda sobre anticolores de ircap
« Respuesta #2 en: Enero 02, 2020, 12:25:31 am »
Quetzalcoatl , muchas gracias por la respuesta , pero sigo teniendo el problema de casi no saber ,  me gusta  que me intentes enseñar y de verdad que lo  voy a intentar , haber si me sale algo  ,con todo lo que me comentas
  Tengo paciencia , asi que en unos dias , estare liado con todo esto  y lo creas o no me encantara

Lo del correr  se nota que sabes  , pero es que no encontraba nada y de repente se me ocurrio , crei que lo tenia , pero el lio es que la opcion $1 me sacaba a unos , $2 me sacaba a otros  , por mas que lo he intentado , no he sido capaz , ya digo que mis conocimientos , son muy escasos poco mas que  popups , para unos dibujitos ascii y frases

Esto es un buen reto para mi , espero lograrlo

Lo de la PD , era que mas de una vez  , han preguntado , en que red se va a usar , por eso lo habia puesto

Desconectado Diablo

  • Novato
  • *
  • Mensajes: 19
  • Karma: +0/-165
Re:duda sobre anticolores de ircap
« Respuesta #3 en: Enero 05, 2020, 06:42:32 pm »
Gracias  Quetzalcoatl  , tengo que decirte   jajajaj , que desisto , creo que he hecho todas las convinaciones por hacer  y con mis pocos  conocimientos ,  mejor lo dejo por que sueño con el dichoso remote
Le he dedicado , si te digo  que mas de 24 horas , en estos tres dias ,  igual son pocas , eso si contento , pero ya habia  momentos , que  no sabia ni lo que ponia , veo que me sobrepasa , gracias de nuevo por tu ayuda

Un saludo  Diablo (natxo)  seguire leiendo en foro y le  ire dando algun tiempo mas , pero jajajajajajaja no creo saque nada en claro  :) :)

P.D.  me rio por que es rarisimo que me enfade y te digo que si pensaba que podria

Desconectado Cadaver

  • Novato
  • *
  • Mensajes: 44
  • Karma: +115/-3
  • Sexo: Masculino
    • ElChatIRC.com
Re:duda sobre anticolores de ircap
« Respuesta #4 en: Enero 06, 2020, 04:23:28 pm »
El primer error que veo es esto on 1!:text:*:#canal: { cambialo por on 1:text:*:#canal: { espero que #canal sea un canal verdadero o que lo sustituyas por el nombre del canal donde quieras aplicarlo, ya nos cuentas que paso.

Desconectado Diablo

  • Novato
  • *
  • Mensajes: 19
  • Karma: +0/-165
Re:duda sobre anticolores de ircap
« Respuesta #5 en: Enero 07, 2020, 01:03:58 am »
 Hola   Cadaver  , si donde pone canal va uno en concreto que es el que hago las pruebas

on 1:text:*:#canal: {
var %a 1, %b  $1 | while ($gettok(%b,%a,32))  { echo -s $ifmatch | inc %a }

Tambien var %a 1, %b  $2 | while ($gettok(%b,%a,32))  { echo -s $ifmatch | inc %a }

if (($chr(3) isin $ifmatch) && ($strip($ifmatch) !ison $chan)) {  .msg $chan $nick Por favor desactive los colores , no estan permitidos en  este canal # (AVISO)

Y no he conseguido ni respuesta , he sustituido    if (($chr(3) isin $ifmatch) por if (($chr(3) isin $1) y tambien $2 y me temo que  nada

Y estoy con otro ircap y una web asi pruebo las dos opciones , ya os digo que  creo haber porobado todo , seguro que algo se me escapa , pero no doy mas de si   jasjajajajajaja


Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:duda sobre anticolores de ircap
« Respuesta #6 en: Enero 07, 2020, 01:42:44 am »
Te has dado cuenta que solo estas evaluando la primera palabra? y no la cadena en si
por ejemplo que alguien en el canal pusiera esto asi

FULANITO : hola mundo

donde FULANITO = $nick
$1 = hola
$2 = mundo
cuando mencione que %b era la cadena de texto me refería a que podías usarla como $1- o $2- siempre con el guion medio seguido al numero donde estas tomando la palabra, esto para que el resto de las palabras a partir de donde las tomas, sean evaluadas. esto dependiendo si es un evento o usas de un evento redirigido al alias.

ejemplo2: tres tristes tigres tragaban trigo en un trigal
 ---------->  $1      $2     $3       $4       $5     $6  $7  $8

si pusieras por ejemplo
Código: [Seleccionar]
//var %a tres tristes tigres tragaban trigo en un trigal | echo -s $4-tendrias como resultado tragaban trigo en un trigal

los ejemplos que puse en el post anterior era en lo que te podías basar para realizar lo que pides, mas no es la solución, cosa que explique en el pd3

Lo que pides de que sancione cuando se usa colores y exceptué el nickcompletation, es facil de hacer, siempre y cuando el nickcompletation sea en el token $1, pero hay quienes lo usan en cualquier parte del texto, es por eso que uso el while. Si no tienes usuarios que usen esto entonces solo tendrías que evaluar el primer elemento en la cadena si tiene carácter de color $chr(3) y poner un if que determine si ese $1 es un nick en el canal, obviamente eliminado sus colores de nickcompletation(me baso en los ejemplos que has puesto.)

saludos

Desconectado Diablo

  • Novato
  • *
  • Mensajes: 19
  • Karma: +0/-165
Re:duda sobre anticolores de ircap
« Respuesta #7 en: Enero 07, 2020, 07:10:50 pm »
Buenas Quetzalcoatl ,  me rio hasta yo mismo y de mi , como podre ser tan torpe  , madre mia , que no doy con ello
Segun que conbinaciones ,en status la 2º palabra pero siempre en negro , no  hay manera que lo consiga , ya lo siento por vosotros y vuestro esfuerzo , pero es que ya ,no veo la forma


Gracias a los dos Quetzalcoatl y Cadaver

Desconectado Diablo

  • Novato
  • *
  • Mensajes: 19
  • Karma: +0/-165
Re:duda sobre anticolores de ircap
« Respuesta #8 en: Enero 09, 2020, 04:04:51 pm »
Buenas , como veis sigo sin rendirme  pero lo cierto es que no logro el resultado que yo busco

;donde pone canal va uno en concreto que es el que hago las pruebas

Ejemplo 1 por web : con " tres tristes tigres tragaban trigo en un trigal" en rojo
on 1:text:*:#canal: {
var %a 1, %b $1- | while ($gettok(%b,%a,32))  { echo -s $ifmatch | inc %a }
if ( $chr(3) isin $ifmatch) {  QUERY $ME  HABER $1 como $2 FURRULA $3 C $time }
}
Resultado  : no abre query y sale en status salen todas las  palabras una encima de otra y solo tres en rojo el resto en negro

Ejemplo 2 por web : con " tres tristes tigres tragaban trigo en un trigal" en rojo
on 1:text:*:#gor: {
var %a 1, %b $1 | while ($gettok(%b,%a,32))  { echo -s $ifmatch | inc %a }
if ( $chr(3) isin $ifmatch) {  QUERY $ME  HABER $1 como $2 FURRULA $3 C $time }
}
Resultado:no abre query y solo sale logicamente en status tres en rojo

Ejemplo 3 por web : con " tres tristes tigres tragaban trigo en un trigal" en rojo
 on 1:text:*:#gor: {
var %a 1, %b $2 | while ($gettok(%b,%a,32))  { echo -s $ifmatch | inc %a }
if ( $chr(3) isin $ifmatch) {  QUERY $ME  HABER $1 como $2 FURRULA $3 C $time }
}
Resultado:no abre query y en status sale tristes en negro

Ejemplo 4 por web : con " tres tristes tigres tragaban trigo en un trigal" en rojo
on 1:text:*:#gor: {
var %a 1, %b $3 | while ($gettok(%b,%a,32))  { echo -s $ifmatch | inc %a }
if ( $chr(3) isin $ifmatch) {  QUERY $ME  HABER $1 como $2 FURRULA $3 C $time }
}
Resultado:no abre query y en status sale tigres en negro

TODO LO ANTERIOR HA SIDO MANDANDOLO AL CANAL CON WEB

AHORA ESPONGO LAS MISMAS PRUEBAS POR IRCAP SIN NICK COMPLETION

Ejemplo 1 POR IRCAP SIN NICK COMPLETION: con " tres tristes tigres tragaban trigo en un trigal" en AZUL
on 1:text:*:#canal: {
var %a 1, %b $1- | while ($gettok(%b,%a,32))  { echo -s $ifmatch | inc %a }
if ( $chr(3) isin $ifmatch) {  QUERY $ME  HABER $1 como $2 FURRULA $3 C $time }
}
Resultado  : no abre query y sale en status salen todas las  palabras una encima de otra  ninguna en azul ,poniendo el nick con completion sale el nick el tres en azul y todas las palabras en negro

Ejemplo 2 POR IRCAP SIN NICK COMPLETION: con " tres tristes tigres tragaban trigo en un trigal" en azul
on 1:text:*:#gor: {
var %a 1, %b $1 | while ($gettok(%b,%a,32))  { echo -s $ifmatch | inc %a }
if ( $chr(3) isin $ifmatch) {  QUERY $ME  HABER $1 como $2 FURRULA $3 C $time }
}
Resultado:no abre query y solo sale logicamente en status tres en azul ,poniendo el nick con completion sale solo el nick

Ejemplo 3 POR IRCAP SIN NICK COMPLETION: con " tres tristes tigres tragaban trigo en un trigal" en azul
 on 1:text:*:#gor: {
var %a 1, %b $2 | while ($gettok(%b,%a,32))  { echo -s $ifmatch | inc %a }
if ( $chr(3) isin $ifmatch) {  QUERY $ME  HABER $1 como $2 FURRULA $3 C $time }
}
Resultado:no abre query y en status sale tristes en negro , poniendo el nick con completion sale solo tres en azul

Ejemplo 4 POR IRCAP SIN NICK COMPLETION: con " tres tristes tigres tragaban trigo en un trigal" en azul
on 1:text:*:#gor: {
var %a 1, %b $3 | while ($gettok(%b,%a,32))  { echo -s $ifmatch | inc %a }
if ( $chr(3) isin $ifmatch) {  QUERY $ME  HABER $1 como $2 FURRULA $3 C $time }
}
Resultado:no abre query y en status sale tigres en negro

Y ME ACABO DE DAR CUENTA  "SI EN IRCAP SE PONE EL NICKY1 SIN ESPACIOS CTRL+12 SALE tigres CON EL ESPACIO NORMAL SALE TRISTES

Pues ya veis  que le meto horas y ciertamente  hasta me rio pero soy cabezon y tengo paciencia pero estoy en un atolladero  vamos que no salgo de ahi . Si veis que me falte algun prueba decirme que lo probare no tengo problemas

Es un gusto ver que alguien intenta ayudar a los que no sabemos o no podemos

Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:duda sobre anticolores de ircap
« Respuesta #9 en: Enero 10, 2020, 04:30:56 am »
Es que en ninguno te va a salir el privado por el simple hecho que estas usando el if del color fuera del while, esto es debido a que $ifmatch se refiere al valor evaluado, es decir
$ifmatch = devuelve la primera parte de la última declaración condicional realizada.
es decir que tendria la misma funcion de $v1(y tu estas usando el $ifmatch una ves terminado el while)
EXPLICACION DEL $IFMATCH
ejemplo1
Código: [Seleccionar]
alias ejemplo1 {  if ($time) {  echo -s $ifmatch } }esto te regres el $time en el status
y si tuvieras algo como....
Código: [Seleccionar]
if ((X == X) && (Y == Y) { echo resultado1 $ifmatch }
if ((X == X) || (Y == Y) { echo resultado2 $ifmatch }
el identificador $ifmatch te regresaría lo evaluado
y optativamente pudieras usar $v1 y/o $v2 para obtener el valor de los paracentesis que se evalúen, por ejemplo
Código: [Seleccionar]
if ((X == X) && (Y == Y) { echo -s V1 es $v1 y V2 es $v2 }donde $v1 seria 1 por que X == X lo mismo seria para $v2 ya que Y == Y
FIN DE EXPLICACION DEL $IFMATCH
Por lo que leo en todos los codigos usas el patron de
Código: [Seleccionar]
on 1:evento:* {
variables | lazo
comparacion
}


debes meter la comparación en el lazo por ejemplo
Ejemplo 2 por web : con " tres tristes tigres tragaban trigo en un trigal" en rojo
Código: [Seleccionar]
on 1:text:*:#gor: {
var %a 1, %b $1 | while ($gettok(%b,%a,32)) { echo -s $ifmatch | inc %a
if ( $chr(3) isin $ifmatch) { QUERY $ME HABER $1 como $2 FURRULA $3 C $time }
 }
}
Bueno una ves hecho esto como te mencione en mi primera respuesta a este post, si en alguna palabra contiene un color este lo detectara, no solo se limitara al primer color con el que inicia la palabra
podrías probar con algo como:
tres tristes tigres tragaban trigo en un trigal
y con
tres tristes tigres tragaban trigo en un trigal

Ya hasta aquí solo faltaría la detección del nickcompletation y los contadores de sanciones(obviamente esta parte deberá ir en donde tienes el if que te manda el query)

Saludos Diablo


*notas
$ifmatch se puede usar en cualquier comparación como if y/o while, de igual los $v1 $v2 etc
$v1 = se encarga de devolver el valor del operando de la izquierda de la declaración condicional ejecutada más recientemente.
$v2 = lo mismo que $v1 pero es el siguiente valor a la derecha de $v1, dependiendo de cuantas comparaciones en el if tengas
ya no es prescindible el echo -s $ifmatch pero si el inc %a en el while.

Desconectado Diablo

  • Novato
  • *
  • Mensajes: 19
  • Karma: +0/-165
Re:duda sobre anticolores de ircap
« Respuesta #10 en: Enero 12, 2020, 07:57:51 pm »
 Buenas caballeros , sigo en el lio  ::)

on 1:text:*:#canal: {
var %a 1, %b $1 | while ($gettok(%b,%a,32)) { echo -s $ifmatch | inc %a
if ( $chr(3) isin $ifmatch) {  .msg $chan $nick  --> esta Baneado }
 }
}
.-
Por ircap
Con la frase "Para recuperar el nick hay que poner"
.-
Banea Nick completion , Nick completion con frase en color y solo frase en color ; seria perfecto para el ircap perfecto  en todos ellos sale  en status el Nick
.-
Por web
Con la frase "Para recuperar el nick hay que poner"
.-
Banea al nick si va solo  y si va el en color y con frase en colores
status  sale el nick

En ircap  no banea  nick completion

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

var %a 1, %b $2 | while ($gettok(%b,%a,32)) { echo -s $ifmatch | inc %a  -----  aqui cambio $1 por $2
if ( $chr(3) isin $ifmatch) {  .msg $chan $nick  --> esta Baneado }
 }
}

Por ircap
Banea Nick completion y Nick completion con frase en color    No banea  la frase sola en color
status sale el Nick
.-
Por web
No banea nada Banea Nick completion , Nick completion con frase en color y solo frase en color
status  pone nick
.-
 Por lo que veo , no banea la frase por ircap , si va en color

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

 He hecho muchas mas convinaciones
var %a 1, %b $1 | while ($gettok(%b,%a,32)) { echo -s $ifmatch | inc %a         --------- al $1  he llegado aponerle en $5

( $chr(3) isin $ifmatch)   ------  tambien como $1  y hasta $5  en todas esas pruebas  falla en alguna cosa

( $chr(3) isin $ifmatch)   ------  con esto tambien he usado $v1  y $v2 parecidos resultados

Para el nick completion que me  comentaste if (($chr(3) isin $ifmatch) && ($strip($ifmatch) !ison $chan)) me faltaria para los corchetes   que tal vez podria ser asi if (($chr(3) isin $1) && ($remove($+($strip($1)),$chr(91),$chr(93))))  , pero no lo se seguro y si se pòndrian  donde dices o como iria  por que sigue baneandome el nick completion

Aunque parezca mentira, ademas de los muchos improperios que le doy al $criping, al ircap , a las web jajajajajaj , creo que voy aprendiendo  , con tantas pruebas y con mucho mirar cosas  :) :D

Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:duda sobre anticolores de ircap
« Respuesta #11 en: Enero 12, 2020, 10:11:12 pm »
no entendi la mayoria de las cosas, pero ....
Citar
He hecho muchas mas convinaciones
var %a 1, %b $1 | while ($gettok(%b,%a,32)) { echo -s $ifmatch | inc %a         --------- al $1  he llegado aponerle en $5

( $chr(3) isin $ifmatch)   ------  tambien como $1  y hasta $5  en todas esas pruebas  falla en alguna cosa

( $chr(3) isin $ifmatch)   ------  con esto tambien he usado $v1  y $v2 parecidos resultados
según lo que tienes solo mostrara las palabras que contenga el $chr(3) (control + k), es decir que si inicia una frase como ...
Para recuperar el nick hay que poner
solo detectara nick y poner, ya que usa negritas--> $chr(2) y el control + o, pero solo el if esta para detectar el código de color.

con lo que mencionas del nick completation pues..... cuando usan un ircap sin modificar, la primera palabra es donde aplica el nickcompletation, con lo que mencionas a lo de la remoción de los corchetes es correcto, aunque igual podria usarse regex para limpiar la palabra para determinar si es un nick en el canal, o crear un alias que evalue rangos de letras y las que no son letras que las descarte como var %caracter $mid($strip($lower($1)),x,y... | if (122 >= $asc(%caracter) <= 97) { asignacion en palabra temporal } | aqui va un fin de un lazo | if ( de la palabra tremporal ison $chan) {codigo a procesar o un return para decir que si es un nick en el canal}
solo son tres ejemplos que se me ocurren, en el ultimo use 122 y 97 en el if, ya que corresponderia a la letra a hasta la z en minúsculas, y cualquier otro carácter fuera de ese rango seria adorno  ;)

ya por ultimo cuando pones
Citar
var %a 1, %b $2 | while ($gettok(%b,%a,32)) { echo -s $ifmatch | inc %a  -----  aqui cambio $1 por $2
if ( $chr(3) isin $ifmatch) {  .msg $chan $nick  --> esta Baneado }
 }
}
no seria mejor usar
Código: [Seleccionar]
var %a 1
 while ($gettok($1-,%a,32)) { echo -s $ifmatch | inc %a
if ( $chr(3) isin $ifmatch) {  .msg $chan $nick  --> esta Baneado }
 }
en donde si lo quieres para ircap en ves de usar $2 solo en %a incrementas el valor a 2 y no en uno, y asi te ahorras %b o modificar el while, y/o quizas
Código: [Seleccionar]
var %a 1
while ($gettok($1-,%a,32)) {
if ($chr(3) isin $ifmatch) {  echo -s $v2 | .msg $chan $nick  --> esta Baneado } | inc %a
}
para no tener tantas letras en el status al hacer tus pruebas.

Saludos
« última modificación: Enero 12, 2020, 10:17:30 pm por Quetzalcoatl »

Desconectado Diablo

  • Novato
  • *
  • Mensajes: 19
  • Karma: +0/-165
Re:duda sobre anticolores de ircap
« Respuesta #12 en: Enero 13, 2020, 01:12:57 am »

Buenas Quetzalcoatl , si tenia previsto tambien con ascii  3 , 2 , 22  y 31 aunque estos ultimos dan menos dolores de cabeza

Tambien te digo que  ni idea de regex  ( ;D  ;D )  ya me has dado tema para aprenderlo , eso si, lo mismo que soy cabezon para  intentar hacerlo , lo soy para que se me quede en la cabeza  ( ;D  ;D )

var %caracter $mid($strip($lower($1)),x,y... | if (122 >= $asc(%caracter) <= 97) { asignacion en palabra temporal } | aqui va un fin de un lazo | if ( de la palabra tremporal ison $chan) {codigo a procesar o un return para decir que si es un nick en el canal}
 
Me pasa lo mismo con , $mdi , $lower , x,y...  que no se si son variables o que , para mi son terminos nuevos , mas para aprender

 Me comentas , lo de   if (122 >= $asc(%caracter) <= 97) && (90 >= $asc(%caracter) <= 65) { asignacion en palabra temporal } y se me ha ocurrido que quizas fuera tambien conveniente " no se si eso sera o no correcto "

E esta seccion creo entender :

var %a 1
while ($gettok($1-,%a,32)) {
if ($chr(3) isin $ifmatch) {  echo -s $v2 | .msg $chan $nick  --> esta Baneado } | inc %a
}

poniendolo mas menos en castellano

var asignamos variable 1

 mientras $gettok coge de la frase entera solo la primera palabra despues del espacio
 
si  ( color esta en  primera palabra ) escribe en status  la segunda evaluacion  del ultimo ( ) manda el msg al canal  e incrementa 1

sigo sin pillar bien lo del inc %a  ( en este caso )

Lo del nick completion ,en los canales que yo estoy  solo se deja [nick] con colores , las demas florituras no se dejan , osea que menos problema
Siempre estara el que pregunta "si no se pueden poner colores , por que no los quitan"   sea de web o de ircap , a lo cual yo les suelo decir , tambien la velocidad maxima es 120  en los coches , viene en el marcador bastante mas velocidad y luego hay multas de radar

Bueno, pues ya tengo para un par de dias , de romperme la cabeza ( ;D  ;D )

Gracias de nuevo   un saludo

Desconectado Cadaver

  • Novato
  • *
  • Mensajes: 44
  • Karma: +115/-3
  • Sexo: Masculino
    • ElChatIRC.com
Re:duda sobre anticolores de ircap
« Respuesta #13 en: Enero 13, 2020, 10:02:38 pm »
Te estas complicando demasiado para algo tan simple no necesitas evaluar cadenas whiles ifmatchs, solo un simple if y es todo:

Código: [Seleccionar]
on *:text:*:#canal: {
  if ($chr(3) isin $1-) {
  -- Aqui va lo que quieres ejecutar
  }
}

Ejemplo de baneo y pateo si encuentra $chr(3) y hace excepción de usuarios op y voice y detecta si eres op para ejecución:

Código: [Seleccionar]
on *:text:*:#canal: {
  if ($chr(3) isin $1-) && ($me isop $chan) && ($nick !isop $chan) && ($nick !isvoice $chan) {
  mode $chan +b $nick | kick $chan $nick No colores...
  }
}

Otra cosa que debes de considerar es que si tienes muchos eventos ON *:TEXT ... antes de el tuyo te digo porque dices que estas trabajando en ircap lo mas seguro es que no funcione por lo mismo que existen ya muchos eventos del mismo tipo.

Desconectado Diablo

  • Novato
  • *
  • Mensajes: 19
  • Karma: +0/-165
Re:duda sobre anticolores de ircap
« Respuesta #14 en: Enero 14, 2020, 12:29:10 pm »
Buenas    Cadaver , se lo que me dices y si te fijas fue lo primero que puse

Código: [Seleccionar]
on 1:text:*:#canal: {
if ( $chr(3) isin $1- ) {  .msg $chan $nick --> esta Baneado : no use TEXTO CON COLORES! 
}
}
Donde canal si pongo uno real , sin baneo solo para ver que funcione , por que me dieron glined por abusar de la red digeron (jajajaja)

Pero asi me banea nick completion , de ahi el lio que se ha formado

Con esto que me puso Quetzalcoatl , sucede lo mismo por eso hay el comentario de regex (que  no tenia ni idea que era) , he leido  pero no sabria implementarlo , tambien lo de remove , pero me pasa igual y ahi estoy

Esto que me dices
Código: [Seleccionar]
" if ($chr(3) isin $1-) && ($me isop $chan) && ($nick !isop $chan) && ($nick !isvoice $chan) " , lo tengo en mente , como  lo de $chr(2) , $chr(21) , $chr(22) , pero cuando ya vea que funciona bien , antes es tonteria , ya que  yo si soy op de ese canal y soy el que hace las pruebas desde otro ircap y una pagina web

Como tambien dije por ahi arriba , que sabia algo de  popups , pero que de sripting practicamente nada , por eso ha sido pedir la ayuda

Eventos on *:text  no se si los tendra el mismo ircap , pero mios solo hay uno mas , asi que no creo que eso influya , pero todas las sugerencias las miro , repaso , pruebo , pero dentro de mis limitaciones


Un saludo

Desconectado Diablo

  • Novato
  • *
  • Mensajes: 19
  • Karma: +0/-165
Re:duda sobre anticolores de ircap
« Respuesta #15 en: Enero 17, 2020, 11:40:17 am »
Banea  por WEB e IRCAP los colores y no  el nick completion de IRCAP

Programa Baneo por colores                     
  Con la ayuda de  Quetzalcoatl y Cadaver preparado por Diablo 
  Mi agradecimiento , porque sin los cuales , no habria sido capaz terminar
 Eso si jajajajaja, me las habeis hecho pasar moradas , vosotros sabeis yo practicamente nada

Código: [Seleccionar]
on 1:text:*:#: {
 var %a 1, %b $2 | while ($gettok(%b,%a,32)) { inc %a
if ($chr(3) isin $1-) { msg # $nick No use texto con COLORES estan prohibidos en #  | Ban -u600 $chan $address($nick,2) | kick $chan $nick }
  }
 }

Bueno pues eso muchas gracias y  a partir de aqui imaginacion
Yo le he hechado mucha , ya lo tengo  preparado para 4 canales con contador
No lo pongo entero , por que yo asi he aprendido , haciendolo error , acierto y al final salio , pero ya , con una base para empezar , que yo no la tenia


Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:duda sobre anticolores de ircap
« Respuesta #16 en: Febrero 17, 2020, 07:36:29 pm »
Hola que tal Diablo

No había podido responder este post, por que por cuestiones laborales me ocupe y cuando regrese a leer el foro ya había otros post mas recientes.
Acabo de ver el código mas reciente y noto que evalúas si se usa color a partir de la segunda palabra de la frases(supongo para evitar lo del nickcompletation) y sanciona después si se vuelve insertar el carácter de color, por lo tanto si alguien escribe con color en la primera palabra de la frase este no sera sancionado.

lo mas simple es como te lo puso Cadaver, así que resumiré esto  ;D
Código de detección simple, solo mensaje
Código: [Seleccionar]
on 1:text:*:#canal: {
if ( $chr(3) isin $1- ) {  .msg $chan $nick --> esta Baneado : no use TEXTO CON COLORES!
}
}
Codigo que evalua el cambio de color en cada palabra de una frase
Código: [Seleccionar]
on 1:text:*:#: {
 var %a 1, %msg No use texto con COLORES estan prohibidos en $remove($chan,$chr(35))
 while ($gettok($1-,%a,32)) {
  if ($chr(3) isin $v1) { msg $chan $nick %msg | Ban -ku600 $chan $nick 2 %msg | return } | inc %a
 }
}
*NOTA: si se requiere que se evalué después de la segunda palabra cambiar el $1- por $2-

Lo mismo que el anterior, pero con advertencias si el usuario no hace caso se le advierte y sanciona después del segundo aviso y al tercero aviso patea(obviamente después de que la sanción del 2do aviso concluya)
Código: [Seleccionar]
on 1:text:*:#: {
  if (($me !isop $chan) || ($nick isop $chan) || ($nick isvoice $chan) ) { return }
  if (($sinNC($1) ison $chan) && ($chr(3) !isin $2-)) { return }
  var %quien $+(NoColor,~,$nick,~,$chan)
  set -u300 % [ $+ [ %quien ] ] $iif(% [ $+ [ %quien ] ],$calc($v1 +1), 1)
  if (1 == % [ $+ [ %quien ] ]) { msg $chan No uses colores en su texto $+($nick,.) Aviso $v2 }
  if (2 == % [ $+ [ %quien ] ]) { msg $chan No uses colores en su texto $nick Aviso $v2 | ban -u120 $chan  $address($nick,2) }
  if (3 == % [ $+ [ %quien ] ]) { ban -ku3600 $chan $nick 2 Se le advirtio de que no deberia usar colores en $chan }
}
alias -l sinNC { var %a 1, %b | tokenize 32 $remove($1,$chr(91),$chr(92),$chr(45)) | while ($mid($strip($1),%a,1)) { if ($v1 isalnum) { %b =  $+(%b,$v1) } | inc %a } | return %b }

el control esta dado por
if (($sinNC($1) ison $chan) && ($chr(3) !isin $2-)) { return }
Donde usa una alias llamado sinNC el cual depura que contenga caracteres raros la palabra y solo permite los alfanbumericos y si esa palabra es un nick en el canal y no hay una inserción del carácter en el color en el canal, entonces no hace nada, de lo contrario entra en el proceso.

Saludos.
PD: Probado en mirc version 7.57 en otras versiones posteriores ignoro si funcione se tendría que verificar que el operador logico isalnum este incluido en esa version
PD2: en repuesta a http://foroircap.org/ayuda-scripting-ircap/un-codigo-que-no-me-funciona/msg7297/#msg7297
« última modificación: Febrero 17, 2020, 07:45:23 pm por Quetzalcoatl »

Desconectado Novatisima

  • Novato
  • *
  • Mensajes: 2
  • Karma: +0/-2
Re:duda sobre anticolores de ircap
« Respuesta #17 en: Ayer a las 12:04:08 pm »
 Hola Quetzalcoatl

He hecho como pones en la nota cambiar el $1-  por el $2- y se si lo hare mal pero no va bien

Despues he probado  el segundo que pones
Tampoco me ha ido bien ya que los dos de entrada  explusan las frases sin color bueno este segundo cuando ha explusado 3 veces ya no expulsa nada

Como dices que lo has probado con mirc 7.57 y yo no tengo ni diea de que version tengo he descargado y pagado mirc 7.57 me lo han instalado con un ircap 8.72 y los fallos son los mismos
Yo no se si se podra hacer pero si se podria estaria muy agradecida


Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:duda sobre anticolores de ircap
« Respuesta #18 en: Ayer a las 06:00:43 pm »
Ya veo, lo que creo que este pasando es que el ban ha sido removido de manera manual y no expiro después de los 5 minutos. Es por eso eso que el contador de sanción se sigue incrementando, si es así solo bastaría que agregar un if cuando llegue a cuatro para hacer un decremento o en su defecto colocar el valor a 2 cuando se da el ban.
una ves dicho esto entonces me gustaría saber ¿El ban fue removido de manera manual antes de que expirara?

Saludos.

pd: Escribir con color negro también utiliza el carácter de color 2. Si se van a hacer pruebas es bueno usar //msg #elcanal el mensaje(opcional el uso de colores)
« última modificación: Ayer a las 06:17:35 pm por Quetzalcoatl »

 

anything