Accueil > > > ANTI INSULTES EN HASHTABLE
ANTI INSULTES EN HASHTABLE
Information sur la source
Description
Salut.
Je propose ma premiere source issue de moi-même et de mon ami came boy pour le citer.Apres en avoir testé un paquets ayants tous des bugs ou problèmes de reconnaissance réelle des mots,on a tenté de faire un bon anti insulte qui fasse vraiment la diférence entre une insulte et non pas un mot comme "con" reperé dans "connaitre" par exemple,et devant aussi prendre en compte les diférences de codes compris dans l'écriture d'un script utilisant la couleur dans l'écriture. c'est pourquoi nous avons utilisé les tokens,de plus ce code fonctionne en hashtable.Il suffit d'entrer sois-même tous les mots et insultes dans la liste,modifiable à volonté biensur.Il est activable ou non,avec choix de protections des ops,voice,choix des sentence : avertir,kick ou kickban et choix du canal d'action (# pour tous les chans ou l'on est op).Ce code tourne depuis longtemps sur mon salon et fonctionne parfaitement et fait vraiment son boulot.Puisse-t-il servir à d'autre, enjoy ;o)
Source
- dialog badwords {
- title "© •anti-insultes•"
- size -1 -1 152 190
- option dbu
- list 2, 21 44 110 125, size
- button "Nouveau", 1, 22 27 37 12
- button "Supprimer", 3, 93 27 37 12
- button "OK", 5, 57 176 37 12, ok
- text "choisis le canal d'action", 8, 48 5 55 8
- edit "", 9, 51 12 50 10
- box "", 10, 18 39 116 133
- menu "activation", 24
- item "on", 25, 24
- item "off", 27, 24
- menu "protection", 28
- item "op", 29, 28
- item "halfop", 13, 28
- item "voice", 30, 28
- menu "sentence", 31
- item "avertir", 34, 31
- item "kick", 35, 31
- item "kickban", 36, 31
- }
-
-
-
- alias badwords { dialog -m badwords badwords }
-
- alias ap {
- if ($isid) return $hget(badwords,$1)
- else hadd badwords $1-
- }
-
- on *:text:*:%wordchan:{
- if ((($nick isop #) && ($ap(op) == on)) || (($nick isvoice #) && ($ap(voice) == on)) || (($nick($chan,$nick,h)) && ($ap(halfop))) || ($ap(actif) != on) || ($me !isop #)) { halt }
- else {
- var %i 1
- while (%i <= $0) {
- if ($istok($ap(list),$strip($gettok($1-,%i,32)),182) == $true) && ($ap(sent) == a) { /msg # Le mot $gettok($1-,%i,32) est interdit | .halt }
- if ($istok($ap(list),$strip($gettok($1-,%i,32)),182) == $true) && ($ap(sent) == k) { /msg # Le mot $gettok($1-,%i,32) est interdit | /kick # $nick | .halt }
- if ($istok($ap(list),$strip($gettok($1-,%i,32)),182) == $true) && ($ap(sent) == kb) { /msg # Le mot $gettok($1-,%i,32) est interdit | ban # $nick 2 | /kick # $nick | .halt }
- inc %i
- }
- }
- }
-
-
- on *:action:*:%wordchan:{
- if ((($nick isop #) && ($ap(op) == on)) || (($nick isvoice #) && ($ap(voice) == on)) || (($nick($chan,$nick,h)) && ($ap(halfop))) || ($ap(actif) != on) || ($me !isop #)) { halt }
- else {
- var %i 1
- while (%i <= $0) {
- if ($istok($ap(list),$strip($gettok($1-,%i,32)),182) == $true) && ($ap(sent) == a) { /msg # Le mot $gettok($1-,%i,32) est interdit | .halt }
- if ($istok($ap(list),$strip($gettok($1-,%i,32)),182) == $true) && ($ap(sent) == k) { /msg # Le mot $gettok($1-,%i,32) est interdit | /kick # $nick | .halt }
- if ($istok($ap(list),$strip($gettok($1-,%i,32)),182) == $true) && ($ap(sent) == kb) { /msg # Le mot $gettok($1-,%i,32) est interdit | ban # $nick 2 | /kick # $nick | .halt }
- inc %i
- }
- }
- }
-
- on *:exit:{ hsave -o badwords badwords }
-
- on *:start:{
- if ($ap(badwords)) .hfree badwords | hmake badwords 200
- if ($exists(badwords) = $true) .hload badwords badwords
- else { ap badwords off }
- }
-
- on *:DIALOG:badwords:*:*:{
- if ($devent == init) {
- did -r $dname 2
- if ($ap(actif) == on) { did -c $dname 25 | did -u $dname 27 }
- else { did -c $dname 27 | did -u $dname 25 }
- didtok $dname 2 182 $ap(list)
- did -a $dname 9 %wordchan
- $iif($ap(op) == on,did -c $dname 29,did -u $dname 29)
- $iif($ap(halfop),did -c $dname 13,did -u $dname 13)
- $iif($ap(voice) == on,did -c $dname 30,did -u $dname 30)
- if ($ap(sent) == a) { did -c $dname 34 | did -u $dname 35 | did -u $dname 36 }
- elseif ($ap(sent) == k) { did -u $dname 34 | did -c $dname 35 | did -u $dname 36 }
- else { did -u $dname 34 | did -u $dname 35 | did -c $dname 36 }
- }
- elseif ($devent == sclick) {
- if ($did == 1) {
- var %tps = $$?="Entrer le mot a kicker"
- if (%tps == $null) halt
- elseif ($count(%z,¶) != 0) { var %tps = $input(Ne peut pas contenir ce caractaire : ¶,-o,ERREUR) | halt }
- elseif ($istok($ap(list),%tps,182) == $true) { var %tps = $input(Désolé mais ce mot est déjà dans la liste !,-o,ERREUR) | halt }
- ap list $addtok($ap(list),%tps,182)
- did -r $dname 2
- didtok $dname 2 182 $ap(list)
- }
- elseif ($did == 3) {
- ap list $deltok($ap(list),$did(2).sel,182)
- did -r $dname 2
- didtok $dname 2 182 $ap(list)
- }
- elseif ($did == 9) { $did($dname,9) badwords %wordchan }
- elseif ($did == 5) { set %wordchan $did($dname,9) }
- }
- elseif ($devent == menu) {
- if ($did == 25) { ap actif on
- did -c $dname 25
- did -u $dname 27
- }
- elseif ($did == 27) { ap actif off
- did -c $dname 27
- did -u $dname 25
- }
- elseif ($did = 29) { $iif($ap(op) == off,ap op on,ap op off)
- $iif($ap(op) == on,did -c $dname 29,did -u $dname 29)
- }
- elseif ($did = 13) { $iif($ap(halfop) == 0,ap halfop 1,ap halfop 0)
- $iif($ap(halfop),did -c $dname 13,did -u $dname 13)
- }
- elseif ($did = 30) { $iif($ap(voice) == off,ap voice on,ap voice off)
- $iif($ap(voice) == on,did -c $dname 30,did -u $dname 30)
- }
- elseif ($did = 34) { ap sent a
- did -c $dname 34 | did -u $dname 35 | did -u $dname 36
- }
- elseif ($did = 35) { ap sent k
- did -u $dname 34 | did -c $dname 35 | did -u $dname 34
- }
- elseif ($did = 36) { ap sent kb
- did -u $dname 34 | did -u $dname 35 | did -c $dname 36
- }
- }
- }
dialog badwords {
title "© •anti-insultes•"
size -1 -1 152 190
option dbu
list 2, 21 44 110 125, size
button "Nouveau", 1, 22 27 37 12
button "Supprimer", 3, 93 27 37 12
button "OK", 5, 57 176 37 12, ok
text "choisis le canal d'action", 8, 48 5 55 8
edit "", 9, 51 12 50 10
box "", 10, 18 39 116 133
menu "activation", 24
item "on", 25, 24
item "off", 27, 24
menu "protection", 28
item "op", 29, 28
item "halfop", 13, 28
item "voice", 30, 28
menu "sentence", 31
item "avertir", 34, 31
item "kick", 35, 31
item "kickban", 36, 31
}
alias badwords { dialog -m badwords badwords }
alias ap {
if ($isid) return $hget(badwords,$1)
else hadd badwords $1-
}
on *:text:*:%wordchan:{
if ((($nick isop #) && ($ap(op) == on)) || (($nick isvoice #) && ($ap(voice) == on)) || (($nick($chan,$nick,h)) && ($ap(halfop))) || ($ap(actif) != on) || ($me !isop #)) { halt }
else {
var %i 1
while (%i <= $0) {
if ($istok($ap(list),$strip($gettok($1-,%i,32)),182) == $true) && ($ap(sent) == a) { /msg # Le mot $gettok($1-,%i,32) est interdit | .halt }
if ($istok($ap(list),$strip($gettok($1-,%i,32)),182) == $true) && ($ap(sent) == k) { /msg # Le mot $gettok($1-,%i,32) est interdit | /kick # $nick | .halt }
if ($istok($ap(list),$strip($gettok($1-,%i,32)),182) == $true) && ($ap(sent) == kb) { /msg # Le mot $gettok($1-,%i,32) est interdit | ban # $nick 2 | /kick # $nick | .halt }
inc %i
}
}
}
on *:action:*:%wordchan:{
if ((($nick isop #) && ($ap(op) == on)) || (($nick isvoice #) && ($ap(voice) == on)) || (($nick($chan,$nick,h)) && ($ap(halfop))) || ($ap(actif) != on) || ($me !isop #)) { halt }
else {
var %i 1
while (%i <= $0) {
if ($istok($ap(list),$strip($gettok($1-,%i,32)),182) == $true) && ($ap(sent) == a) { /msg # Le mot $gettok($1-,%i,32) est interdit | .halt }
if ($istok($ap(list),$strip($gettok($1-,%i,32)),182) == $true) && ($ap(sent) == k) { /msg # Le mot $gettok($1-,%i,32) est interdit | /kick # $nick | .halt }
if ($istok($ap(list),$strip($gettok($1-,%i,32)),182) == $true) && ($ap(sent) == kb) { /msg # Le mot $gettok($1-,%i,32) est interdit | ban # $nick 2 | /kick # $nick | .halt }
inc %i
}
}
}
on *:exit:{ hsave -o badwords badwords }
on *:start:{
if ($ap(badwords)) .hfree badwords | hmake badwords 200
if ($exists(badwords) = $true) .hload badwords badwords
else { ap badwords off }
}
on *:DIALOG:badwords:*:*:{
if ($devent == init) {
did -r $dname 2
if ($ap(actif) == on) { did -c $dname 25 | did -u $dname 27 }
else { did -c $dname 27 | did -u $dname 25 }
didtok $dname 2 182 $ap(list)
did -a $dname 9 %wordchan
$iif($ap(op) == on,did -c $dname 29,did -u $dname 29)
$iif($ap(halfop),did -c $dname 13,did -u $dname 13)
$iif($ap(voice) == on,did -c $dname 30,did -u $dname 30)
if ($ap(sent) == a) { did -c $dname 34 | did -u $dname 35 | did -u $dname 36 }
elseif ($ap(sent) == k) { did -u $dname 34 | did -c $dname 35 | did -u $dname 36 }
else { did -u $dname 34 | did -u $dname 35 | did -c $dname 36 }
}
elseif ($devent == sclick) {
if ($did == 1) {
var %tps = $$?="Entrer le mot a kicker"
if (%tps == $null) halt
elseif ($count(%z,¶) != 0) { var %tps = $input(Ne peut pas contenir ce caractaire : ¶,-o,ERREUR) | halt }
elseif ($istok($ap(list),%tps,182) == $true) { var %tps = $input(Désolé mais ce mot est déjà dans la liste !,-o,ERREUR) | halt }
ap list $addtok($ap(list),%tps,182)
did -r $dname 2
didtok $dname 2 182 $ap(list)
}
elseif ($did == 3) {
ap list $deltok($ap(list),$did(2).sel,182)
did -r $dname 2
didtok $dname 2 182 $ap(list)
}
elseif ($did == 9) { $did($dname,9) badwords %wordchan }
elseif ($did == 5) { set %wordchan $did($dname,9) }
}
elseif ($devent == menu) {
if ($did == 25) { ap actif on
did -c $dname 25
did -u $dname 27
}
elseif ($did == 27) { ap actif off
did -c $dname 27
did -u $dname 25
}
elseif ($did = 29) { $iif($ap(op) == off,ap op on,ap op off)
$iif($ap(op) == on,did -c $dname 29,did -u $dname 29)
}
elseif ($did = 13) { $iif($ap(halfop) == 0,ap halfop 1,ap halfop 0)
$iif($ap(halfop),did -c $dname 13,did -u $dname 13)
}
elseif ($did = 30) { $iif($ap(voice) == off,ap voice on,ap voice off)
$iif($ap(voice) == on,did -c $dname 30,did -u $dname 30)
}
elseif ($did = 34) { ap sent a
did -c $dname 34 | did -u $dname 35 | did -u $dname 36
}
elseif ($did = 35) { ap sent k
did -u $dname 34 | did -c $dname 35 | did -u $dname 34
}
elseif ($did = 36) { ap sent kb
did -u $dname 34 | did -u $dname 35 | did -c $dname 36
}
}
}
Historique
- 04 novembre 2006 16:23:42 :
- Ajout de l'option de protection des halfops activable à volonté
- 05 novembre 2006 16:42:46 :
- Ajout de l'option de protection des halfops fonctionnelle (merci rca arkanis)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Anti Insulte [ par Crazy KiD ]
oui je cherche un anti-insulte mais qui qu'on peux configurer pour pas que je kick mon ami ché pas si vous comprenez :P
probleme de hashtables [ par kishkaya ]
ben j'ai cherché dans l'aide mais j'ai pas trouvéje crés un systeme de log de membres avec une hashtablej'ai deux problemes : if ($hget(log) != lo
modification de hashtable des que quelqu'un quit un salon [ par kishkaya ]
Voila j'ai essayé plein de syntax mais ca a rien donnéj'aimerai que l'on supprime l'insertion $gettok($nick,1,124) de la hashtable 'authen' quand $nic
Afficher le contenu d'une hashtable [ par kishkaya ]
voila le contenu d'une hashtable est sous cette forme :$nick|logincela est geré par un bot et j'aimerai rajouter une fenetre, une windows dans ce bot
Anti insulte aide [ par Adnim_Sonic ]
bonjour je sais comment faire mon anti insulte mais je voudrais passe o stade avec un avertisement avent kick mais un fois que je la fait je l active
hashtable et pixel [ par ranny ]
Bonsoir tout le monde,Voila j'ai 2 petites questions.1/ Comment intervertir les valeurs d'une variable $hget.Par exemple comment donner la valeur de $
problème de hashtable [ par doob666 ]
Bonjour,J'aimerais savoir comment on peut récupérer des données commençant par le même item dans une hashtable en une seule fois ? Je m'explique, j'ai
Détection mots (insulte, provocation, badword) [ par Surfsp33 ]
Bonjour, Je sais que le site regorge d'anti-insulte et d'anti-badword. J'ai déjà regardé par mal de script mais je n'arrive pas à trouver ce que je
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : AIDERE : AIDE par Nico26000
Cliquez pour lire la suite par Nico26000 RE : AIDERE : AIDE par WorldDMT
Cliquez pour lire la suite par WorldDMT AIDEAIDE par Nico26000
Cliquez pour lire la suite par Nico26000
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|