Comment kicker mineur sur $chan adultes ? [Résolu]

Signaler
Messages postés
147
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
6 avril 2009
-
Messages postés
147
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
6 avril 2009
-
Bonjour tout le monde.,
je suis OP sur un salon irc et dont le topic précise que le $chan est dédié aux adultes..
voici mon petit problème :
quand un user entre sur salon avec applet ou script, son who is donne ceci :
28F002
ou encore:
30M001
et si absence d'âge:
U003
ou:
?
========================================
voici le whois en accès salon:
_ _[ Evev21 [Eveve21@922A9D31.D48CDF27.8A3B3F2.IP] •
|---› Nom     ?': 25M002Paris
|---› Salles   ?': #adultesOnly
|---› Serveur ': key.trukmuche.org
|---› Connexion. : 10 sec  Inactif : 1sec
========================================
alors j'essaye de poser un kick "automatique" quand pas d'âge.
J'ai testé ces 3 formules, mais ça ne marche pas :/

1cmd
On *:Join:#adultesOnly:
 if ($me isop $chan) { whois $nick }
{ if (<18 isnum $6-) { k $2 reviens avec ton âge sur profil :) }
}

2eme cmd:
On *:Join:#adultesOnly:
If ($me isop $chan) { whois $nick }
raw 311:*:{ if (<18 isnum $6-) { kick $chan $2 reviens avec ton âge sur profil :) }
}

3eme cmd:
On *:Join:#adultesOnly:If ($nick !ison #domtom) whois $nick
raw 311:*:if (<18 isnum $6-)  Kick #adultesOnly $2 .notice $nick reviens avec ton âge sur profil :)

j'ai essayé de construire ces cmd en lisant les posts sur CS qui abordent le kick, et en cherchant dans l'aide de Mirc en français.
j'aimerais avoir une aide ou à défaut une piste ...
merci à tous.

 

13 réponses

Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011

Ah oui exact. Il suffit alors de rajouter 1 caractère :

on !*:join:#adultesOnly:.whois $nick
raw
311:*:if (($regex($6-,/^(0?[0-9]|1[0-7]|[^0-9])?[^0-9]/)) &&
($2 ison #adultesOnly)) kick #adultesOnly $2 salon pour adultes

Cordialement, uaip.
Messages postés
147
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
6 avril 2009

oops...pour le 3eme exemple, erreur :
lire :
On *:Join:#adultesOnly:If ($nick !ison #adultesOnly) whois $nick
raw 311:*:if (<18 isnum $6-)  Kick #adultesOnly $2 .notice $nick reviens avec ton âge sur profil :)

...mais vous l'aviez sans doute compris :)

merci à tous.

 
Messages postés
969
Date d'inscription
lundi 16 juin 2003
Statut
Membre
Dernière intervention
1 juillet 2012
1
Salut,

L'utilisation du raw 311 est correct mais... le "<18 isnum $6-" ne l'est pas.

Pour vérifier si l'âge (les 2 premiers caractères de "$6-") est supérieur à 18 (ou inférieur hein), utilise $left($6,2) pour récuperer les 2 premiers paramètres et ensuite faire ton if.

exemple de l'/help:

$left(texte,N)

Retourne les N caractères gauches du texte.

$left(goodbye,4), retourne good

Si N a une valeur négative, ça retourne tout sauf les N caractères. 


Admntium.
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011

Salut,
La 1ère commande n'est pas bonne, car l'événement JOIN ne retourne pas de chaine (donc $6- est inutile).
la 2ème est également fausse. Si ma mémoire est bonne, mIRC ne tolère pas le retour à la ligne d'un bloc sans accolade ouvrante. Et même s'il y en avait une à la 1ère ligne, l'événement RAW n'a rien à faire dans l'événement JOIN.
Quant à la 3ème, il n'y a aucune logique : "lorsqu'un user rejoint #adultesOnly, je vérifie qu'il n'est pas sur ce salon et je le whois"... Or s'il vient de rejoindre ce salon, c'est qu'il est dessus, non ?
De plus, tu fais quelques erreurs qui n'ont pas lieu d'être.
Je ne garantie rien (j'ai arrêté le mIRC scripting depuis assez de temps pour oublier) mais essaie ceci :

on !*:join:#adultesOnly:.whois $nick
raw 311:*:if (($regex($6-,/^(0?[0-9]|1[0-7])[^0-9]/)) && ($2 ison #adultesOnly)) kick #adultesOnly $2 salon pour adultes

On peut faire plus simple je pense, mais tu n'as pas précisé si l'age était toujours sur 2 chiffres (exemple: 05 au lieu de 5), etc...
Bref, là normalement ça devrait kicker les mineurs + les gens qui n'ont pas d'age dans leur realname.

Cordialement, uaip.
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011

Arf, le temps d'écrire, et j'ai été devancé ^^
Le $left() ne marche pas dans tous les cas. Il a précisé que le realname pouvait être de la forme U003 dans le cas d'une absence d'age.
Donc...
($left(25F002,2) < 18) retourne $false -> on ne kicke pas
($left(5F002,2) < 18) retourne $false -> or on devrait kicker (mais à la limite, freenaute n'a pas précisé si ce cas était possible)
($left(05F002,2) < 18) retourn $true -> on kicke
($left(U002,2) < 18) retourn $false -> or on devrait kicker pour absence d'age dans le realname.

Cordialement, uaip.
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011

Mouarf, désolé pour ces 3 messages successifs, mais du coup mon code est faux aussi, il ne kicke pas les absences d'age, je rectifie :

on !*:join:#adultesOnly:.whois $nick
raw 311:*:if (($regex(UF002,/^(0?[0-9]|1[0-7]|[^0-9])[^0-9]/)) && ($2 ison #adultesOnly)) kick #adultesOnly $2 salon pour adultes

A tester.
Bonne soirée.

Cordialement, uaip.
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
$regex(UF002, ? tu doit pas chécké un $N là ? c'est quoi UF002 ?
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011

Mince, c'est $6- en fait.
Je faisais des tests et j'ai bêtement c/c ma ligne, sans changer UF002 par $6-...
Sorry.

Cordialement, uaip.
Messages postés
147
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
6 avril 2009

merci à vous, uaip et wims, ça marche ! et du coup ça m'évite de faire des who répétitifs, lassants qui mènent droit au flood .
en même temps je viens de mieux comprendre $left et l'intérêt des $regex
donc merci.
Messages postés
147
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
6 avril 2009

J'ai donc mis dans mes remotes ceci:
on !*:join:#adultesOnly:.whois $nick
raw 311:*:if (($regex($6-,/^(0?[0-9]|1[0-7]|[^0-9])[^0-9]/)) && ($2 ison #adultesOnly)) kick #adultesOnly $2 salon pour adultes , ton âge est requis en accès.
ça marche !
ce qui éjecte aussi ceux qui écrivent 00 comme âge.

je précise que dans le whois, quand l'âge est renseigné il entre comme ceci en salon:
 
34M002Saint_Pierre
ou encore :
27F002Paris Nantes
et s'il écrit 00 :
00F002 Reims (  F ne souhaitant pas donner d'âge, elle remplace par 00
bref :
donc pour ces exemples , le kick est effectif.

Par contre, rien ne se passe pour celui qui ne donne que son pseudo en ignorant complètement de renseigner l'âge de l'applet . Il laisse la "case" sans rien y écrire...:
il arrive ainsi en salle:
(16:02:11:39:)   _ _[ testAge [ctr-testAge-********.fbx.proxad.net] •
(16:02:11:39:)  |---› Nom     ?': U003
(16:02:11:39:)  |---› Salles   ?': #adultesOnly

idem pour celui-ci :
(16:02:12:46:)   _ _[ Arkange [arkange@*********.fbx.proxad.net] •
(16:02:12:46:)  |---› Nom     ?': M002
(16:02:12:46:)  |---› Salles   ?': #adultesOnly

voilà où ça coince un peu....

merci pour une piste qui m'aiderait à compléter ce code.
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011

Salut,
Je te l'ai donné plus haut.

Cordialement, uaip.
Messages postés
147
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
6 avril 2009

"Mince, c'est $6- en fait.
Je faisais des tests et j'ai bêtement c/c ma ligne, sans changer UF002 par $6-..."
donc j'ai mis $6-
:/ ça le fait pour partie, mais pas quand l'user a U00 ou même M002 .
mais je cherche.
merci

 
Messages postés
147
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
6 avril 2009

merci.^^