begin process at 2008 08 20 13:21:50
1 228 858 membres
224 nouveaux aujourd'hui
14 257 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ANTIBAN PROTECTION BY DJUL.


Information sur la source

Catégorie :AddOns Classé sous : antiban, ban, protection, multikick, unban Niveau : Débutant Date de création : 02/08/2008 Date de mise à jour : 08/08/2008 17:47:38 Vu : 798

Note :
6 / 10 - par 2 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note

Description

Il s'agit d'une simple protection anti ban offrant la possibilité de choisir entre différentes options lors du ban. Simple deop de l'user ayant posé le ban, kick, kickban ou bien multikick. Message et nombre de kicks étant paramétrable. (Merci à devorZ qui m'a fait l'optimisation au niveau de $devent pendant que je corrigeais autre chose.)

Source

  • ;; AntiBan ;;
  • ;2008-djul©
  • ;
  • On *:LOAD:{
  • set %ab-msg i'm2fast4u
  • set %ab-nbk 5
  • set %ab-state ON
  • echo -at 3[AntiBan3] -
  • echo -at 3[AntiBan3] Add On 3Chargé.
  • echo -at 3[AntiBan3]-
  • .timerab 1 3 ab
  • }
  • On *:UNLOAD:{
  • unset %ab-*
  • echo -at 3[AntiBan3] -
  • echo -at 3[AntiBan3] Add On 4Déchargé.
  • echo -at 3[AntiBan3]-
  • }
  • alias Ab if (!$dialog(Ab)) dialog -m Ab Ab
  • dialog ab {
  • title "AntiBan /ab"
  • size -1 -1 70 142
  • option dbu
  • check "Activer la protection", 1, 5 5 69 10
  • box "Action", 2, 5 15 60 55
  • radio "Deop", 3, 10 25 50 10
  • radio "Kick", 4, 10 35 50 10
  • radio "Multi Kick", 5, 10 45 50 10
  • radio "Kick Ban", 6, 10 55 50 10
  • box "Options", 7, 5 75 60 45
  • text "Nombre Kick:", 8, 10 85 31 8
  • edit "", 9, 45 85 15 10, center
  • text "Raison kick:", 10, 10 95 30 8
  • edit "", 11, 10 105 50 10, center
  • button "Fermer", 12, 5 125 60 12, default flat ok
  • }
  • on *:dialog:ab:*:*:{
  • If ($devent == Init) {
  • did -a ab 9 %ab-nbk
  • did -a ab 11 %ab-msg
  • if (%ab-state = 1) did -c ab 1
  • if (%ab-action == dop) did -c ab 3
  • elseif (%ab-action == k) did -c ab 4
  • elseif (%ab-action == mk) did -c ab 5
  • elseif (%ab-action == kb) did -c ab 6
  • }
  • Elseif ($devent == Edit) {
  • if ($did == 9) set %ab-nbk $did(9)
  • if ($did == 11) set %ab-msg $did(11)
  • }
  • Elseif ($devent == Sclick) {
  • if ($did == 1) set %ab-state $did(1).state
  • if ($did == 3) set %ab-action dop
  • if ($did == 4) set %ab-action k
  • if ($did == 5) set %ab-action mk
  • if ($did == 6) set %ab-action kb
  • }
  • }
  • on @!*:ban:#:{
  • if (%ab-state = 1) {
  • if ($banmask iswm $ial($me)) {
  • if (%ab-action == dop) { set %ab-banmask $banmask | echo -a 3[AntiBan3] Activé sur $chan ( $+ $network $+ ) | mode # -ob $nick %ab-banmask }
  • if (%ab-action == k) { set %ab-banmask $banmask | echo -a 3[AntiBan3] Activé sur $chan ( $+ $network $+ ) | mode # -b %ab-banmask | kick # $nick %ab-msg }
  • if (%ab-action == kb) { set %ab-banmask $banmask | echo -a 3[AntiBan3] Activé sur $chan ( $+ $network $+ ) | mode # -ob+b $nick %ab-banmask $wildsite | kick # $nick %ab-msg }
  • if (%ab-action == mk) {
  • echo -a 3[AntiBan3] Activé sur $chan ( $+ $network $+ )
  • set %ab-tmp %ab-nbk
  • set %ab-banmask $banmask
  • set %ab-nick $address($nick,2)
  • set %ab-chan $chan
  • mode # -b %ab-banmask
  • kick # $nick %ab-msg
  • }
  • }
  • }
  • }
  • on *:JOIN:%ab-chan:{
  • if ( ( %ab-nick == $address($nick,2) ) && (%ab-tmp > 0) && (%ab-state = 1) ) { kick # $nick now cry... more %ab-tmp | dec %ab-tmp 1 }
  • }
;; AntiBan ;;
;2008-djul©
;

On *:LOAD:{
  set %ab-msg i'm2fast4u
  set %ab-nbk 5
  set %ab-state ON
  echo -at 3[AntiBan3] -
  echo -at 3[AntiBan3] Add On 3Chargé.
  echo -at 3[AntiBan3]-
  .timerab 1 3 ab
}
On *:UNLOAD:{ 
  unset %ab-*
  echo -at 3[AntiBan3] -
  echo -at 3[AntiBan3] Add On 4Déchargé.
  echo -at 3[AntiBan3]-
}
alias Ab if (!$dialog(Ab)) dialog -m Ab Ab 
dialog ab {
  title "AntiBan /ab"
  size -1 -1 70 142
  option dbu
  check "Activer la protection", 1, 5 5 69 10
  box "Action", 2, 5 15 60 55
  radio "Deop", 3, 10 25 50 10
  radio "Kick", 4, 10 35 50 10
  radio "Multi Kick", 5, 10 45 50 10
  radio "Kick Ban", 6, 10 55 50 10
  box "Options", 7, 5 75 60 45
  text "Nombre Kick:", 8, 10 85 31 8
  edit "", 9, 45 85 15 10, center
  text "Raison kick:", 10, 10 95 30 8
  edit "", 11, 10 105 50 10, center
  button "Fermer", 12, 5 125 60 12, default flat ok
}
on *:dialog:ab:*:*:{
  If ($devent == Init) {
    did -a ab 9 %ab-nbk
    did -a ab 11 %ab-msg
    if (%ab-state = 1) did -c ab 1
    if (%ab-action == dop) did -c ab 3
    elseif (%ab-action == k) did -c ab 4
    elseif (%ab-action == mk) did -c ab 5
    elseif (%ab-action == kb) did -c ab 6
  }
  Elseif ($devent == Edit) {
    if ($did == 9) set %ab-nbk $did(9)
    if ($did == 11) set %ab-msg $did(11)
  }
  Elseif ($devent == Sclick) {
    if ($did == 1) set %ab-state $did(1).state
    if ($did == 3) set %ab-action dop
    if ($did == 4) set %ab-action k
    if ($did == 5) set %ab-action mk
    if ($did == 6) set %ab-action kb
  }
}
on @!*:ban:#:{ 
  if (%ab-state = 1) { 
    if ($banmask iswm $ial($me))  {
      if (%ab-action == dop) { set %ab-banmask $banmask | echo -a 3[AntiBan3] Activé  sur $chan ( $+ $network $+ ) | mode # -ob $nick %ab-banmask }
      if (%ab-action == k) { set %ab-banmask $banmask |  echo -a 3[AntiBan3] Activé sur $chan ( $+ $network $+ ) | mode # -b %ab-banmask | kick # $nick %ab-msg }
      if (%ab-action == kb) { set %ab-banmask $banmask |  echo -a 3[AntiBan3] Activé sur $chan ( $+ $network $+ ) | mode # -ob+b $nick %ab-banmask $wildsite | kick # $nick %ab-msg }
      if (%ab-action == mk) { 
        echo -a 3[AntiBan3] Activé sur $chan ( $+ $network $+ )
        set %ab-tmp %ab-nbk 
        set %ab-banmask $banmask
        set %ab-nick $address($nick,2) 
        set %ab-chan $chan
        mode # -b %ab-banmask
        kick # $nick %ab-msg
      }
    }
  }
}
on *:JOIN:%ab-chan:{
  if ( ( %ab-nick == $address($nick,2) ) && (%ab-tmp > 0) && (%ab-state = 1) ) { kick # $nick now cry... more %ab-tmp | dec %ab-tmp 1 }
}

Conclusion

Vous avez peut être déjà vu ce type de source de nombreuses fois... c'est pas le cas de tous, à bon entendeur :]
Critiques constructives acceptées.
08 août 2008 17:47:38 :
Remplacement de l'alias ab. Optimisation du On Ban. Décrassage du Check. Lors du multikick, ce n'est plus le pseudo avant le séparateur pipe qui est pris en compte mais $address($nick,2) rendant la source multiserver.
  • signaler à un administrateur
    Commentaire de devorZ le 02/08/2008 09:46:28 7/10

    Hello, je met 7/10 car je n'est pas vu ceux genre de source nul part, asser bien codé, j'ai testé aucun bugs bonne continuation.

    Cordialement  devorZ

  • signaler à un administrateur
    Commentaire de PaDa le 02/08/2008 11:30:22 5/10

    Bof... Quelques répétitions, rien de bien original, des variables globales inutiles, les on dialog qui pourraient être mieux organisés... Comme ça doit marcher je pense que ça mérite un 5. Bonne continuation

  • signaler à un administrateur
    Commentaire de WorldDMT le 02/08/2008 12:17:16

    salut

    alias Ab { if dialog(Ab) { dialog -m Ab Ab } }

    c'est plutot alias Ab { if !$dialog(Ab) { dialog -m Ab Ab } }

    pas besoin de tout ces acolades alors

    alias Ab if (!$dialog(Ab)) dialog -m Ab Ab

    pour le check

    if ($did == 1) { if (%ab-state == ON) { set %ab-state OFF } | else { set %ab-state ON } }

    tu peux mettre

    if ($did(2).state) set %ab-state 1 | else unset %ab-state

    comme ça dans la condition il te suffira de mettre

    if (%ab-state) { ... }

    au lieu de

    if (%ab-state == on) { ... }

    tu peux mettre dans l'entete un "!" avant le level

    on @!*:ban:#:{

    tu n'aura plus besoin de mettre

    if ($nick == $me) { halt }
    if ($me isop #)

    attention au parentheses

    if (%ab-action == dop) && ($banmask iswm $address($me,5)) { set ... }

    utilise ce syntaxe je pense que ça doit etre mieu

    if ((%ab-action == dop) && ($banmask iswm $address($me,5))) { set ... }

    pour le ban au niveau de KB au lieu de

    $address($me,5) tu peux mettre $ial($me)

    $address($nick,2) dans le ban tu peux mettre $wildsite

    et pour le join

    on *:JOIN:%ab-chan:{
      if ( ( $gettok($nick,1,124) == %ab-nick) && (%ab-tmp > 0) && (%ab-state == ON) ) { kick # $nick now cry... more %ab-tmp | dec %ab-tmp 1 }
    }

    pourquoi tu as mis "$gettok($nick,1,124) == %ab-nick" ?? c'est tjr $nick == %ab-nick et dans ce cas il peu changer de pseudo et il entre sans que ton code lui regarde


    ton code marche sur une seul personne et un seul chan vu que tu utilise tout les pseudo ou chan pour une seule variable

    il va falloir mettre au lieu de

    set %ab-banmask $banmask
    set %ab-nick $nick
    set %ab-chan $chan

    tu met plutot

    set %ab-banmask $+ $banmask $banmask
    set %ab-nick $+ $nick  $nick
    set %ab-chan $+ $chan $chan


  • signaler à un administrateur
    Commentaire de WorldDMT le 02/08/2008 12:33:29

    excuse moi pour le chek

    if ($did(2).state) set %ab-state 1 | else unset %ab-state

    c'est if ($did(1).state) set %ab-state 1 | else unset %ab-state

    j'ai mis 2 au lieu de 1 dsl

  • signaler à un administrateur
    Commentaire de PaDa le 02/08/2008 12:42:18

    Et pourquoi pas :

    set %ab-state $did(1).state

    Non ? Vous vous compliquez tellement la vie...

  • signaler à un administrateur
    Commentaire de PaDa le 02/08/2008 12:48:38

    "pourquoi tu as mis "$gettok($nick,1,124) == %ab-nick" ?? c'est tjr $nick == %ab-nick et dans ce cas il peu changer de pseudo et il entre sans que ton code lui regarde"

    Sur certains réseaux (wanadoo/voila au hasard) on ne peut pas changer complètement de pseudo.
    Ton pseudo est : "Pada"
    /nick test => "Pada|test"
    /nick away => "Pada|away"
    /nick me => "Pada"

    Le séparateur pipe est le $chr(124), d'où le test qu'il réalise, pour partir sur le pseudo "de base" et non le pseudo complet. C'est évidemment inadapté pour d'autres réseaux...

  • signaler à un administrateur
    Commentaire de WorldDMT le 02/08/2008 12:58:59

    oui PADA

    if ($did(1).state) set %ab-state 1 | else unset %ab-state

    donc si il coche => %ab-state 1 et si il decoche il n'a aucune variable nomé %ab-state

    pour ton cas il va falloir faire

    if ($did(1).state) set %ab-state $did(1).state

    donc si il coche => %ab-state 1 et si il decoche %ab-state 1

    donc il va falloir mettre else uset %ab-state alors selon toi il va faire cela

    if ($did(1).state) set %ab-state $did(1).state | else unset %ab-state

    c'est toi plutot qui complique ici

    pour le nick je ne savais pas ça merci pour l'info mais dans ce cas il doi precisé que cet addon s'utilise rien que pour ce jare de reseaux

  • signaler à un administrateur
    Commentaire de WorldDMT le 02/08/2008 13:03:10

    si c'est un cas direct
    set %ab-state $did(1).state
    si il decoche la variable est tjr là "%ab-state 0"

    donc il sera tjr obligé de precisé if (%ab-state == 1) { ... }

    si non dans l'autre cas il le suffit de mettre if (%ab-state) { ... } pour controlé si c'est ON ou OFF

  • signaler à un administrateur
    Commentaire de PaDa le 02/08/2008 13:06:30

    Non, je ne mets pas de condition, relis mon post. Il met JUSTE "set %ab-state $did(1).state" sans condition ni rien, ni avant ni après.

    Je sais bien que mon code ne fait pas la même chose que le sien, mais qu'est-ce qu'on s'en fout qu'il y ait une variable en plus ou en moins ? Qu'elle soit à "0" ou à "$null", quelle importance ? Ca évite un test inutile, et ça rend le code un peu propre et lisible (si on fait abstraction du fait que l'on utilise des horribles variables globales).

    Enfin, on peut mettre des conditions pour tout et pour rien si ça vous amuse, c'est juste que je ne comprends pas l'intérêt.

  • signaler à un administrateur
    Commentaire de PaDa le 02/08/2008 13:08:55

    Ok, t'avais compris entre temps. Donc je te réponds : "non et encore non". "if (%ab-state)" suffit avec "ma" façon de faire, cf notre discussion de la dernière fois. "if (%ab-state)" n'est PAS EQUIVALENT A "if (%ab-state != $null)". Ca ne veut pas dire "si %ab-state existe".

    %ab-state = 1
    if (%ab-state) => true
    %ab-state = 0
    if (%ab-state) => false

  • signaler à un administrateur
    Commentaire de WorldDMT le 02/08/2008 13:27:51

    ok je vois ce que tu dis

    donc en general si une variable %x 0 donc au cas d'une condition if (%x) return $false

    ok ça va déjà

  • signaler à un administrateur
    Commentaire de ISoKa le 02/08/2008 15:36:09

    bonjour,

    Question con : j'ai rarement vu un ban entre op ne pas être accompagné d'un kick. donc en gros tu te fais kickban, tu le détecte mais le code peux rien faire vu que t'es pas op. donc en faite ma question c'est: à quoi sert le code sans un module de gestion d'axx et d'opage automatique ou d'intervention à travers un bot ? perso moi je voi pas trop.

  • signaler à un administrateur
    Commentaire de wims le 02/08/2008 15:43:22

    if (qqch) { }
    la condition ci-dessus n'est validé que si qqch est différent de 0, $false, ou $null

    if (!qqch) { }
    la condition ci dessus n'est validé que si qqch est 0, $false, ou $null

    a noté que 00000000000000000000000000000 sera considéré comme 0

  • signaler à un administrateur
    Commentaire de devorZ le 02/08/2008 16:16:52

    isoka dit : bonjour,

    Question con : j'ai rarement vu un ban entre op ne pas être accompagné d'un kick. donc en gros tu te fais kickban, tu le détecte mais le code peux rien faire vu que t'es pas op. donc en faite ma question c'est: à quoi sert le code sans un module de gestion d'axx et d'opage automatique ou d'intervention à travers un bot ? perso moi je voi pas trop.

    je dit :
    toi de toute façon tu vois jamais a quoi sert un code a part critiquer je ne te vois jamais rien dire ou poster..

  • signaler à un administrateur
    Commentaire de ISoKa le 02/08/2008 16:38:45

    devorZ :
    bin soit ma remarque est infondée et alors tu me le montre voir démontre et je serai tout disposé à écouter ce que tu aurais de constructif à dire à ce moment, soit tu es très colère des commentaire que j'ai fait sur tes sources et tu viens nous faire ton gros caprice ici.
    il me semble pas avoir dit "c'est de la merde" je donne mon avis sur une source en essayant toujours de donné une idée de ce que je ferai moi même si je dis pas avoir forcement raison. après si ton petit égo a été froissé la der fois avec tes magnifiques sources j'en suis navré pour toi. Pour ce qui est de mes contributions, tu peux toujours mater les sources que j'ai déposé ici même si c'est vrai elles ne sont pas du niveau des tiennes.

  • signaler à un administrateur
    Commentaire de djul51 le 02/08/2008 16:52:38

    Réponse con pour ISoKa le temps de prendre en considération les remarques précédentes:
    Certains nooby lorsqu'ils font un Take Over, posent un ban sur *!*@*, cet add on sert à éviter cela. Autre chose, dans le popup initial de mIRC, le kickban fonctionne via un timer, il y  le ban, puis un timer de 2/3 secondes pour le kick ... cet add on peut aussi fonctionner dans ce cas la :]
    ISoKa: "module de gestion d'axx et d'opage automatique ou d'intervention à travers un bot" <- quasi impossible à réaliser sur Orange étant donné le fonctionnement du serveur... Par contre je pense remplacer le $gettok($nick,1,124) par l'host ce qui rendrait l'add on 'multiserver'.
    En réponse à WorldDMT au niveau de mes parenthèses, en fait au début sur le on ban, j'avais mis if ($me isop $chan) à chaque début de ligne, puis je l'ai mis tout seul ensuite, d'ailleurs je peux y ajouter le ($banmask iswm $address($me,5) plutôt que de le répéter à chaque ligne. Merci pour vos commentaires en tout les cas.

    La source sera mise à jour dans la nuit probablement si le temps me le permet.

  • signaler à un administrateur
    Commentaire de devorZ le 02/08/2008 17:06:31

    "soit tu es très colère des commentaire que j'ai fait sur tes sources et tu viens nous faire ton gros caprice ici." haha t'es commentaires ne m'on pas touché juste des petites remarques je dit sa car je matte tout le temps les sources et je te vois toujours critiquer ou quand c'est trés bien rien a dire d'un coup on te vois plus lol.. "tu peux toujours mater les sources que j'ai déposé" j'aimerais bien voir car j'ai cherché j'ai pas trouver .. et autre réponse j'ai un Antiban pas du tout comme celui là pas aussi developpez et sa ma servis plusieurs fois car si chez toi tout est roze sur voiladoob les take over c'est tout le temps :]

  • signaler à un administrateur
    Commentaire de wims le 02/08/2008 17:31:13

    Quand on pense qu'il suffit de cliquer sur le pseudo pour voir les sources de celui ci, on a vraiment du mal a croire que ta cherché, suffisait de cliquer.

    http://www.codes-sources.com/codes_auteur/ISOKA/758969.aspx

  • signaler à un administrateur
    Commentaire de djul51 le 08/08/2008 17:56:13

    Comme prévu, j'ai mis à jour la source pour remplacer certains bout de code en fonction de vos remarques. Merci donc particulièrement à WolrdDMT et PaDa.
    Seule modification non apportée et qui est volontaire c'est:
    WolrdDMT: "ton code marche sur une seul personne et un seul chan vu que tu utilise tout les pseudo ou chan pour une seule variable (...) "
    Je vois pas l'intérêt d'exécuter l'action sur la personne sur tout les salons ou je suis @ sauf en cas de mal chance ou il aurait réussi à Take Over tout mes salons d'un coup..et la en effet, je "pleure". Mais pour moi chaque salon est différent d'un autre, donc pour exemple, une personne ban à vue (oui, c'est la mode sur Orange) sur un salon en particulier, n'a pas à l'être sur tout les salons. C'est donc une question d'éthique sur ce point.
    Je pense avoir pris en considération toutes vos requêtes.. merci encore (si certains en avaient d'autres à l'avenir..pourquoi pas.)

    djul.

  • signaler à un administrateur
    Commentaire de WorldDMT le 08/08/2008 20:10:36

    salut

    j'ai dis ça ne marche que sur un seul chan j'explique avec un exemple

    sur #chan1

    DouDou tu l'a banni il entre plus tu a eus ce que tu veu et il peu entrer sur tout les autres chan pas de probleme

    mais au cas qu'un autre pseudo RouRou sur le chan #chan2 a été banni

    regarde ce qui va se passé

    - Cas 1

    set %ab-nick $address($nick,2) (tu peux aussi mettre set %ab-nick $wildsite)
    set %ab-chan $chan
            
    donc

    %ab-nick *!*@host_de_DouDou
    %ab-chan #chan1

    - Cas 2

    %ab-nick *!*@host_de_RouRou
    %ab-chan #chan2

    ici automatiquement DouDou est dejà libre parceque "%ab-chan" a été remplacé par #chan2 donc il peux entré a nouveau sur #chan1 sans aucun probleme tu vois ce que je voulais dire??

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS