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 !

ANTI CLONE 1.3 OU SCAN CLONE OU DÉTECTEUR DE CLONE


Information sur la source

Catégorie :AddOns Niveau : Initié Date de création : 15/01/2004 Date de mise à jour : 10/09/2005 19:20:23 Vu : 7 321

Note :
9 / 10 - par 7 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Cliquez pour voir la capture en taille normale
Détecteur de clone ( Scan Clone ou Anti Clone Comme vous le voulez) Je vien de modifier la version 1.3 car elle avait un petit problème je crois l'avoir arrenger, prochaine version à venir :) et d'Autre source a venir

J'aimerais préciser que les sources Antérieurs sont des sources Noobs très Noobs alors je suis désolé faite assemblant que mon ANTI CLONE Est ma première source et le reste seras encore meilleur :)
 

Source

  • ;#########################
  • ;####### Clone Scan ######
  • ;###### Version 1.3 ######
  • ;## ©© Par OmbreNoir ©© ##
  • ;## Tous Droits Résevés ##
  • ;# Canal #DoYouSoundGood #
  • ;### Canal #Script-Irc ###
  • ;#########################
  • ;Pour vos commantaires Vener me voir sur les canaux.
  • ;Section Dialog
  • On *:load:{
  • Echo -a Aller le configurer, pour ce faire, Bouton de droite sur un canal, Clone Scan/Configuration
  • Echo -a Aller voir la Section Créateur Merci!
  • Echo -a Tous Droits mes réservés!!! OmbreNoir ©
  • set %ACNWBAN Oui
  • set %ACNWKick Oui
  • set %ACNWAdve Non
  • set %ACNWPh Vous devez enelver tout clones sur le canal. Merci.
  • set %ACNWM Notice
  • set %ActiveAC0 Oui
  • }
  • dialog CfAC {
  • title "Anti-Clone Configuration Version 1.3 ©"
  • size -1 -1 156 221
  • option dbu
  • tab "Infos", 1, 3 4 148 214
  • tab "Ajouter", 2
  • tab "Général", 31
  • box "", 4, 59 28 91 149, tab 1
  • box "", 6, 9 28 52 149, tab 1
  • box "", 67, 9 177 141 38, tab 1
  • box "La Phrase de Kick", 3, 8 110 141 42, tab 2
  • box "Pseudonyme à Ne Pas Kicker ou Bannir", 14, 7 23 141 39, tab 2
  • box "*!*@Adresse à Ne Pas Kicker ou Bannir", 19, 7 64 141 44, tab 2
  • box "Option d'Anti-Clone", 32, 6 19 140 74, tab 31
  • box "Option Sauvegardé", 48, 6 94 142 68, tab 31
  • box "", 13, 6 162 141 54, tab 31
  • box "", 12, 71 19 75 74, tab 31
  • list 7, 11 51 45 124, tab 1 size
  • list 11, 62 51 83 124, tab 1 size
  • text "Pseudo", 8, 20 40 25 8, tab 1
  • text "Pseudo et *!*@Adresse à ne pas bannir", 9, 19 22 97 8, tab 1
  • text "*!*@Adresse", 10, 79 40 35 8, tab 1
  • text "", 66, 32 203 93 8, tab 1
  • text "Pseudo", 15, 10 33 23 8, tab 2
  • text "U@H", 20, 10 75 20 8, tab 2
  • text "Bannir", 33, 19 27 19 8, tab 31
  • text "Kicker", 36, 19 44 18 8, tab 31
  • text "Avertir", 39, 19 64 22 8, tab 31
  • text "Phrase d'avertissement", 42, 77 26 60 8, disable tab 31
  • text "Méthode de méssage", 44, 76 47 56 8, disable tab 31
  • text "Bannir", 49, 9 106 19 8, tab 31
  • text "Par défault - Oui -", 51, 51 120 57 8, tab 31
  • text "Par défault - Oui -", 54, 51 107 58 8, tab 31
  • text "Kicker", 52, 9 118 19 8, tab 31
  • text "Avertir", 55, 9 131 21 8, tab 31
  • text "Par défault - Non -", 57, 51 131 56 8, tab 31
  • text "Par défault - Notice -", 62, 92 151 52 8, tab 31
  • text "Méthode de méssage", 60, 9 151 56 8, disable tab 31
  • text "Phrase d'avertissement", 58, 8 141 60 8, disable tab 31
  • text "Exécuter les informations enrégistré ou seulement se faire avertir?", 97, 9 187 135 14, tab 31
  • text "Exécuter le Scan dès que quelqu'un entre dans un canal.", 23, 7 166 138 8, tab 31
  • edit "", 64, 23 182 110 10, tab 1 read
  • edit "", 16, 36 31 105 10, tab 2
  • edit "", 18, 52 46 90 11, tab 2 read
  • edit "", 21, 30 74 112 10, tab 2
  • edit "", 25, 51 90 90 10, tab 2 read
  • edit "Pas Encore modifiable", 26, 11 119 77 10, tab 2 autohs read
  • edit "No{[Sc|ri|pT}]War", 27, 89 119 52 10, tab 2 read
  • edit "", 30, 51 134 90 10, tab 2 read
  • edit "Vous devez enelver tout clones sur le canal. Merci.", 43, 73 35 68 10, disable tab 31 autohs
  • edit "Oui", 50, 32 106 17 10, tab 31 read
  • edit "Oui", 53, 32 118 17 10, tab 31 read
  • edit "Non", 56, 32 130 17 10, tab 31 read
  • edit "Vous devez enelver tout clones sur le canal. Merci.", 59, 70 139 69 10, disable tab 31 autohs
  • edit "Notice", 61, 68 150 22 10, tab 31 read
  • edit "Désactiver", 29, 8 175 34 10, tab 31 read
  • button "Supprimer", 65, 47 192 53 10, tab 1
  • button "Enrégistrer", 17, 11 46 37 10, disable tab 2
  • button "Enrégistrer", 22, 10 89 37 10, disable tab 2
  • button "Enregistrer", 28, 12 134 37 10, disable tab 2
  • button "Enregistrer", 47, 73 69 33 10, tab 31
  • button "Par Défault", 68, 108 69 33 10, tab 31
  • button "Rapide", 5, 90 80 37 10, tab 31
  • button "Activer", 24, 43 175 37 10, tab 31
  • button "Ok", 100, 92 203 26 10, tab 31 ok
  • check "Oui", 34, 9 35 22 10, tab 31
  • check "Non", 35, 34 36 24 10, tab 31
  • check "Oui", 37, 9 53 22 10, tab 31
  • check "Non", 38, 34 53 24 10, tab 31
  • check "Oui", 40, 9 73 21 10, tab 31
  • check "Non", 41, 34 73 22 9, tab 31
  • check "Notice", 45, 74 57 27 10, disable tab 31
  • check "Msg", 46, 110 57 25 10, disable tab 31
  • check "Exécuter", 98, 10 203 38 10, tab 31
  • check "Avertir", 99, 53 203 32 9, tab 31
  • }
  • dialog RapideCSNW {
  • title "Chosir le Canal"
  • size -1 -1 98 56
  • option dbu
  • button "Continuer", 1, 28 45 37 10
  • list 2, 3 5 95 40, size
  • }
  • dialog RapideScan {
  • title "Rapide Scan"
  • size -1 -1 207 221
  • option dbu
  • list 1, 8 29 70 75, size
  • box "", 2, 2 4 202 215
  • text "NickName", 3, 9 20 59 8
  • list 4, 81 29 117 76, size
  • text "Address ( User@Host )", 5, 83 20 115 8
  • list 6, 8 123 69 74, size
  • text "Clones Trouvés", 7, 20 114 40 8
  • button "Scan", 8, 85 194 34 8
  • button "Kick", 9, 85 151 37 10
  • button "Bannir", 10, 85 161 37 10
  • button "Op", 11, 85 130 37 10
  • button "Voice", 12, 85 141 37 10
  • button "Avertir", 13, 85 171 37 10
  • button "Ignoré", 14, 85 181 37 10
  • text "", 16, 13 198 30 8
  • text "", 17, 48 198 30 8
  • text "Clone Scan Pour %chan", 18, 10 10 117 8
  • box "", 15, 79 123 50 71
  • }
  • ;Construction des boutons etc des dialog.
  • On *:dialog:RapideScan:*:*:{
  • If ($devent == init) {
  • If ($Did == 0) {
  • did -a RapideScan 18 Clone Scan Pour %SetCanal
  • var %WhileJadoreSa = 1
  • while (%WhileJadoreSa <= $nick(%SetCanal,0)) {
  • did -a RapideScan 1 $nick(%SetCanal, %WhileJadoreSa)
  • did -a RapideScan 4 $address($nick(%SetCanal, %WhileJadoreSa),2)
  • var %VaRNickClone = $nick(%SetCanal, %WhileJadoreSa)
  • var %YoWhile23 = 1
  • If ($read(ScanClone2.NOWAR, s, $address(%VaRNickClone,2)) == Yup) {
  • If (%NbClone2) {
  • Inc %NbClone2
  • }
  • If (!%NbClone2) {
  • set %NbClone2 1
  • }
  • var %CloneTrouverAddress = $address($nick(%SetCanal, %WhileJadoreSa),2)
  • while (%YoWhile23 <= $Nick(%SetCanal,0)) {
  • If ($address($Nick(%SetCanal,%YoWhile23),2) == %CloneTrouverAddress) {
  • If (!$Read(CloneTrouve2.NOWAR, w, * [ $+ [ $Nick(%SetCanal, %YoWhile23) ] ] [ $+ [ * ] ])) {
  • write CloneTrouve2.NOWAR $Nick(%SetCanal, %YoWhile23)
  • }
  • }
  • Inc %YoWhile23
  • }
  • }
  • If ($read(ScanClone2.NOWAR, s, $address(%VaRNickClone,2)) != Yup) {
  • write ScanClone2.NOWAR $address($nick(%SetCanal, %WhileJadoreSa),2) Yup
  • }
  • Inc %WhileJadoreSa
  • }
  • }
  • }
  • If ($devent == Sclick) {
  • If ($Did == 8) {
  • If (!$Exists(CloneTrouve2.NOWAR)) {
  • Did -a RapideScan 6 Aucun Clone Trouvé
  • }
  • var %BonBonBonAutresWhile = 1
  • While (%BonBonBonAutresWhile <= $Lines(CloneTrouve2.NOWAR)) {
  • did -a RapideScan 6 $Read(CloneTrouve2.NOWAR, %BonBonBonAutresWhile)
  • Inc %BonBonBonAutresWhile
  • }
  • If (%NbClone2) {
  • Did -a RapideScan 16 %NbClone2 Host
  • }
  • If (!%NbClone2) {
  • Did -a RapideScan 16 Aucun Clone
  • }
  • .Remove ScanClone2.NOWAR
  • .Remove CloneTrouve2.NOWAR
  • .Unset %NbClone2
  • }
  • IF ($did == 11) {
  • mode %SetCanal +o $did($dname,6).seltext
  • }
  • If ($did == 12) {
  • mode %SetCanal +v $did($dname,6).seltext
  • }
  • IF ($did == 9) {
  • var %raisonKick = $$?="Marquer Une Raison Du kick"
  • kick %SetCanal $did($dname,6).seltext %RaisonKick
  • }
  • If ($did == 10) {
  • mode %setcanal +b $did($dname,6).seltext
  • kick %SetCanal $did($dname,6).seltext Clone Trouvé No{[Sc|ri|pT}]War
  • }
  • If ($did == 13) {
  • var %NoticeRaison0 = $$?="Marquer Votre Avertissement"
  • .notice $did($dname,6).seltext %NoticeRaison0
  • }
  • If ($did == 14) {
  • var %Nbtempsignore = $$?="Le Temp que tu veux l'ignorer en seconde"
  • .ignore $did($dname,6).seltext
  • .timer $+ $did($dname,6).seltext 1 %Nbtempsignore ignore -r $did($dname,6).seltext
  • }
  • }
  • }
  • On *:dialog:RapideCSNW:*:*:{
  • If ($devent == Init) {
  • If ($did == 0) {
  • var %VarName = 1
  • while (%VarName <= $Chan(0)) {
  • did -a RapideCSNW 2 $Chan(%VarName)
  • Inc %VarName
  • }
  • }
  • }
  • If ($devent == Sclick) {
  • If ($did == 1) {
  • set %SetCanal $did(RapideCSNW,2).seltext
  • dialog -m RapideScan RapideScan
  • dialog -c RapideCSNW
  • }
  • }
  • }
  • On *:dialog:CfAC:*:*:{
  • If ($Devent == Init) {
  • If ($Did == 0) {
  • var %EtEncoreUnWhile = 1
  • While (%EtEncoreUnWhile <= $Lines(NickNoBan.NOWAR)) {
  • did -a CfAC 7 $Read(NickNoBan.NOWAR, %EtEncoreUnWhile)
  • Inc %EtEncoreUnWhile
  • }
  • }
  • var %WoWUnWhile = 1
  • while (%WoWUnWhile <= $Lines(AddressNoBan.NOWAR)) {
  • did -a CfAC 11 $Read(AddressNoBan.NOWAR, %WowUnWhile)
  • Inc %WoWUnWhile
  • }
  • If (%ActiveAJ) {
  • did -ra CfAC 29 Activer
  • did -ra CfAC 24 Désactiver
  • }
  • If (!%ActiveAJ) {
  • did -ra CfAC 29 Désactiver
  • did -ra CfAC 24 Activer
  • }
  • If (%ACNWBAN == Non) {
  • did -c CfAC 35
  • did -ra CfAC 50 Non
  • }
  • If (%ACNWBAN == Oui) {
  • did -c CfAC 34
  • did -ra CfAC 50 Oui
  • }
  • If (%ACNWKick == Non) {
  • did -c CfAC 38
  • did -ra CfAC 53 Non
  • }
  • If (%ACNWKick == Oui) {
  • did -c CfAC 37
  • did -ra CfAC 56 Oui
  • }
  • If (%ACNWAdve == Oui) {
  • did -e CfAC 58,60
  • did -ra CfAC 50,53 Non
  • did -ra CfAC 56 Oui
  • did -ra CfAC 59 %ACNWPh
  • did -c CfAC 40
  • did -b CfAC 34,35,37,38
  • did -e CfAC 42,43,44,45,46
  • did -ra CfAC 43 %ACNWPh
  • }
  • If (%ACNWAdve == Non) {
  • did -c CfAC 41
  • did -ra CfAC 56 Non
  • }
  • If (%ACNWM == Notice) {
  • did -c CfAC 45
  • did -ra CfAC 61 Notice
  • }
  • If (%ACNWM == Msg) {
  • did -c CfAC 46
  • did -ra CfAC 61 Msg
  • }
  • If (%Join == VS) {
  • did -c CfAC 99
  • }
  • If (%Join == Ex) {
  • did -c CfAC 98
  • }
  • }
  • If ($devent == Sclick) {
  • If ($did == 98) {
  • did -u CfAC 99
  • set %Join Ex
  • }
  • If ($did == 99) {
  • did -u CfAC 98
  • Set %Join VS
  • }
  • If ($did == 7) {
  • did -ra CfAC 64 $did(CfAC,7).seltext
  • did -u CfAC 11
  • }
  • If ($did == 11) {
  • did -ra CfAC 64 $did(CfAC,11).seltext
  • did -u CfAC 7
  • }
  • If ($did == 5) {
  • dialog -m RapideCSNW RapideCSNW
  • }
  • If ($did == 65) {
  • If ($did(CfAC,11).seltext) {
  • If ($Lines(AddressNoBan.NOWAR) == 1) {
  • .Remove AddressNoBan.NOWAR
  • did -r CfAC 11
  • }
  • If ($Lines(AddressNoBan.NOWAR) > 1) {
  • write -ds $+ $did(CfAC,11).seltext AddressNoBan.NOWAR
  • var %WoWUnWhile = 1
  • did -r CfAC 11
  • while (%WoWUnWhile <= $Lines(AddressNoBan.NOWAR)) {
  • did -a CfAC 11 $Read(AddressNoBan.NOWAR, %WowUnWhile)
  • Inc %WoWUnWhile
  • }
  • }
  • }
  • If ($did(CfAC,7).seltext) {
  • If ($Lines(NickNoBan.NOWAR) == 1) {
  • .Remove NickNoBan.NOWAR
  • did -r CfAC 7
  • }
  • If ($Lines(NickNoBan.NOWAR) > 1) {
  • write -ds $+ $did(CfAC,7).seltext NickNoBan.NOWAR
  • var %EtEncoreUnWhile = 1
  • did -r CfAC 7
  • While (%EtEncoreUnWhile <= $Lines(NickNoBan.NOWAR)) {
  • did -a CfAC 7 $Read(NickNoBan.NOWAR, %EtEncoreUnWhile)
  • Inc %EtEncoreUnWhile
  • }
  • }
  • }
  • }
  • If ($Did == 17) {
  • if (!$read(NickNoBan.NOWAR, w, $did(CfAC,16))) {
  • write NickNoBan.NOWAR $did(CfAC,16)
  • did -ra CfAC 18 $Did(CfAC,16)
  • did -r CfAC 7
  • var %EtEncoreUnWhile = 1
  • While (%EtEncoreUnWhile <= $Lines(NickNoBan.NOWAR)) {
  • did -a CfAC 7 $Read(NickNoBan.NOWAR, %EtEncoreUnWhile)
  • Inc %EtEncoreUnWhile
  • }
  • }
  • else {
  • did -ra CfAC 18 Désolé il est déjà dans votre liste.
  • }
  • }
  • If ($Did == 22) {
  • if (!$read(AddressNoBan.NOWAR, w, $did(CfAC,21))) {
  • write AddressNoBan.NOWAR $did(CfAC,21)
  • did -ra CfAC 25 $Did(CfAC,21)
  • did -r CfAC 11
  • var %WoWUnWhile = 1
  • while (%WoWUnWhile <= $Lines(AddressNoBan.NOWAR)) {
  • did -a CfAC 11 $Read(AddressNoBan.NOWAR, %WowUnWhile)
  • Inc %WoWUnWhile
  • }
  • }
  • else {
  • did -ra CfAC 25 Désolé il est déjà dans votre liste.
  • }
  • }
  • If ($did == 34) {
  • If ($did(CfAC,35).state == 1) {
  • did -u CfAC 35
  • }
  • }
  • If ($did == 35) {
  • If ($did(CfAC,34).state == 1) {
  • did -u CfAC 34
  • }
  • }
  • If ($did == 37) {
  • If ($did(CfAC,38).state == 1) {
  • did -u CfAC 38
  • }
  • }
  • If ($Did == 38) {
  • If ($Did(CfAC,37).state == 1) {
  • did -u CfAC 37
  • }
  • }
  • If ($did == 40) {
  • If ($did(CfAC,41).state == 1) {
  • did -u CfAC 41
  • }
  • If (%did40) {
  • did -e CfAC 34,35,37,38
  • did -ub CfAC 42,43,44,45,46
  • did -c CfAC 41
  • unset %did40
  • halt
  • }
  • If (!%did40) {
  • set %did40 40
  • did -ub CfAC 34,35,37,38
  • did -e CfAC 42,43,44,45,46
  • halt
  • }
  • }
  • If ($Did == 41) {
  • If ($Did(CfAC,40).state == 1) {
  • did -u CfAC 40
  • did -e CfAC 34,35,37,38
  • did -b CfAC 42,43,44,45,46
  • unset %did40
  • }
  • }
  • If ($did == 45) {
  • If ($did(CfAC,46).state == 1) {
  • did -u CfAC 46
  • }
  • }
  • If ($Did == 46) {
  • If ($Did(CfAC,45).state == 1) {
  • did -u CfAC 45
  • }
  • }
  • If ($did == 68) {
  • set %ACNWBAN Oui
  • Set %ACNWKick Oui
  • Set %ACNWAdve Non
  • did -u CfAC 40
  • did -e CfAC 34,35,37,38
  • did -b CfAC 42,43,44,45,46
  • did -c CfAC 34,37,41
  • did -u CfAC 35,38,40
  • did -ra CfAC 50 Oui
  • did -ra CfAC 53 Oui
  • did -ra CfAC 56 Non
  • Unset %ACNWM %ACNWPh
  • }
  • If ($Did == 47) {
  • If ($did(CfAC,34).state == 1) {
  • set %ACNWBAN Oui
  • }
  • If ($did(CfAC,34).state == 0) {
  • set %ACNWBAN Non
  • }
  • If ($did(CfAC,37).state == 1) {
  • set %ACNWKick Oui
  • }
  • If ($did(CfAC,37).state == 0) {
  • set %ACNWKick Non
  • }
  • If ($did(CfAC,40).state == 1) {
  • set %ACNWAdve Oui
  • set %ACNWPh $did(CfAC,43)
  • If ($did(CfAC,46).state == 1) {
  • set %ACNWM Msg
  • }
  • If ($did(CfAC,45).state == 1) {
  • set %ACNWM Notice
  • }
  • If ($did(CfAC,45).state == 0) && ($did(CfAC,46).state == 0) {
  • set %ACNWM Notice
  • }
  • }
  • did -ra CfAC 50 %ACNWBAN
  • did -ra CfAC 53 %ACNWKick
  • did -ra CfAC 56 %ACNWAdve
  • did -ra CfAC 59 %ACNWPh
  • did -ra CfAC 61 %ACNWM
  • If ($did(CfAC,40).state == 0) {
  • set %ACNWAdve Non
  • }
  • }
  • If ($Did == 24) {
  • If (!%ActiveAJ) {
  • Set %ActiveAJ Oui
  • did -ra CfAC 29 Activer
  • did -a CfAC 24 Désactiver
  • halt
  • }
  • If (%ActiveAJ) {
  • did -ra CfAC 29 Désactiver
  • unset %ActiveAJ
  • did -a CfAC 24 Activer
  • }
  • }
  • }
  • If ($devent == Close) {
  • If (%did40) {
  • unset %did40
  • }
  • }
  • If ($Devent == Edit) {
  • If ($Did == 16) {
  • did -e CfAC 17
  • }
  • If ($Did == 21) {
  • did -e CfAC 22
  • }
  • If ($Did == 26) {
  • did -e CfAC 28
  • }
  • }
  • }
  • ;Commande que j'avais oublié Merci à ESTsidAZZ
  • On *:join:#:{
  • if ($Nick == $Me) {
  • .who #
  • }
  • If (%ActiveAJ) {
  • If (%Join == Ex) {
  • BanClone
  • }
  • If (%Join == VS) {
  • var %banclone1 = 1
  • while (%banclone1 <= $nick(#,0)) {
  • If (!$read(CloneScan.txt, s, $address($Nick(#, %banclone1) ,2))) {
  • Write CloneScan.txt $address($Nick(#,%banclone1),2) $nick(#, %banclone1)
  • }
  • Else {
  • var %addressban = $address($Nick(#, %banclone1),2))
  • var %clonedetect = $nick(#, %banclone1)
  • var %CloneScan2 = 1
  • while (%cloneScan2 <= $nick(#,0)) {
  • var %NickCheck = $Nick(#, %CloneScan2)
  • If ($address(%NickCheck, 2) == %addressban) {
  • If ($Read(ScanClonesTxt.txt, s, $address(%NickCheck,2))) {
  • If (!$Read(ScanClonesTxt.txt, w, * $+ %NickCheck $+ *)) {
  • var %line00 = $read(ScanClonesTxT.txt, s, $address(%NickCheck,2))
  • write -ds $+ $address(%NickCheck,2) ScanClonesTxT.txt
  • write ScanClonesTxT.txt $address(%NickCheck,2) $Nick(#, %CloneScan2) %line00
  • Write ScanCloneNick.txt $Nick(#, %CloneScan2)
  • Set %NbCloness $calc(%NbCloness + 1)
  • }
  • }
  • If (!$Read(ScanClonesTxt.txt, s, $address(%NickCheck,2))) {
  • write ScanClonesTxT.txt $address(%NickCheck,2) $Nick(#, %CloneScan2)
  • Set %NbCloness $calc(%NbCloness + 1)
  • Write ScanCloneNick.txt $Nick(#, %CloneScan2)
  • }
  • }
  • Inc %CloneScan2
  • }
  • }
  • Inc %banclone1
  • }
  • If ($exists(ScanClonesTxT.txt) == $True) {
  • window -n @CloneScan
  • Aline @CloneScan $str($chr(160),30) 14C15lone 14S15can 14P15ar 14O15mbreNoir No{[Sc|ri|pT}]War
  • Aline @CloneScan $str($chr(160),25) 14C15lones 14D15écouvert 14S15ur # 14(15 $+ $Lines(ScanClonesTxT.txt) 14H15ost 14P15our %NbCloness 14C15lones $+ 14)15:
  • Aline @CloneScan $chr(160)
  • var %CloneScan3 = 1
  • while (%CloneScan3 <= $Lines(ScanClonesTxT.txt)) {
  • Aline @CloneScan $chr(35) $+ %CloneScan3 $+ = $Read(ScanClonesTxT.txt, %CloneScan3)
  • Inc %CloneScan3
  • }
  • }
  • .Remove ScanClonesTxT.txt
  • .Unset %NbCloness
  • .Remove CloneScan.txt
  • .Remove ScanCloneNick.txt
  • }
  • }
  • }
  • Menu Channel {
  • Clone Scan
  • .Configuration:/dialog -m CfAC CfAC
  • .Seulement Voir:/VoirCLONE
  • .Exécuter:/BanClone
  • }
  • Alias BanClone {
  • var %banclone1 = 1
  • while (%banclone1 <= $nick(#,0)) {
  • If (!$read(CloneScan.txt, s, $address($Nick(#, %banclone1) ,2))) {
  • Write CloneScan.txt $address($Nick(#,%banclone1),2) $nick(#, %banclone1)
  • }
  • Else {
  • var %addressban = $address($Nick(#, %banclone1),2))
  • var %clonedetect = $nick(#, %banclone1)
  • var %CloneScan2 = 1
  • while (%cloneScan2 <= $nick(#,0)) {
  • var %NickCheck = $Nick(#, %CloneScan2)
  • If ($address(%NickCheck, 2) == %addressban) {
  • If ($Read(ScanClonesTxt.txt, s, $address(%NickCheck,2))) {
  • If (!$Read(ScanClonesTxt.txt, w, * $+ %NickCheck $+ *)) {
  • var %line00 = $read(ScanClonesTxT.txt, s, $address(%NickCheck,2))
  • write -ds $+ $address(%NickCheck,2) ScanClonesTxT.txt
  • write ScanClonesTxT.txt $address(%NickCheck,2) $Nick(#, %CloneScan2) %line00
  • Write ScanCloneNick.txt $Nick(#, %CloneScan2)
  • Set %NbCloness $calc(%NbCloness + 1)
  • }
  • }
  • If (!$Read(ScanClonesTxt.txt, s, $address(%NickCheck,2))) {
  • write ScanClonesTxT.txt $address(%NickCheck,2) $Nick(#, %CloneScan2)
  • Set %NbCloness $calc(%NbCloness + 1)
  • Write ScanCloneNick.txt $Nick(#, %CloneScan2)
  • }
  • }
  • Inc %CloneScan2
  • }
  • }
  • Inc %banclone1
  • }
  • If ($exists(ScanClonesTxT.txt) == $True) {
  • window -n @CloneScan
  • Aline @CloneScan $str($chr(160),30) 14C15lone 14S15can 14P15ar 14O15mbreNoir No{[Sc|ri|pT}]War
  • Aline @CloneScan $str($chr(160),25) 14C15lones 14D15écouvert 14S15ur # 14(15 $+ $Lines(ScanClonesTxT.txt) 14H15ost 14P15our %NbCloness 14C15lones $+ 14)15:
  • Aline @CloneScan $chr(160)
  • var %CloneScan3 = 1
  • while (%CloneScan3 <= $Lines(ScanClonesTxT.txt)) {
  • Aline @CloneScan $chr(35) $+ %CloneScan3 $+ = $Read(ScanClonesTxT.txt, %CloneScan3)
  • Inc %CloneScan3
  • }
  • }
  • If ($exists(ScanClonesTxT.txt) == $False) {
  • window -n @CloneScan
  • Aline @CloneScan $str($chr(160),30) 14C15lone 14S15can 14P15ar 14O15mbreNoir No{[Sc|ri|pT}]War
  • Aline @CloneScan $str($chr(160),35) 14A15ucun 14C15lone 14D15étecté 14S15ur #
  • }
  • Var %FuckWhile = 1
  • While (%FuckWhile <= $Lines(ScanCloneNick.txt)) {
  • If (!$Read(NickNoBan.NOWAR, w, * $+ $Read(ScanCloneNick.txt, %FuckWhile) $+ *)) {
  • If (!$Read(AddressNoBan.NOWAR, w, * $+ %addressban $+ *)) {
  • If (%ACNWBAN == Oui) {
  • If ($me Isop $chan) {
  • mode # +b %addressban
  • }
  • }
  • If ($me Isop $chan) {
  • If (%ACNWKick == Oui) {
  • kick # $Read(ScanCloneNick.txt, %FuckWhile) 14C15lones 14D15étectés 14S15ur # No{[Sc|ri|pT}]War
  • }
  • }
  • If (%ACNWAdve == Oui) {
  • . $+ %ACNWM $Read(ScanCloneNick.txt, %FuckWhile) %ACNWPh
  • }
  • }
  • }
  • Inc %FuckWhile
  • }
  • .Remove ScanClonesTxT.txt
  • .Unset %NbCloness
  • .Remove CloneScan.txt
  • .Remove ScanCloneNick.txt
  • }
  • Alias VoirCLONE {
  • var %banclone1 = 1
  • while (%banclone1 <= $nick(#,0)) {
  • If (!$read(CloneScan.txt, s, $address($Nick(#, %banclone1) ,2))) {
  • Write CloneScan.txt $address($Nick(#,%banclone1),2) $nick(#, %banclone1)
  • }
  • Else {
  • window @CloneScan
  • var %addressban = $address($Nick(#, %banclone1),2))
  • var %clonedetect = $nick(#, %banclone1)
  • var %CloneScan2 = 1
  • while (%cloneScan2 <= $nick(#,0)) {
  • var %NickCheck = $Nick(#, %CloneScan2)
  • If ($address(%NickCheck, 2) == %addressban) {
  • If ($Read(ScanClonesTxt.txt, s, $address(%NickCheck,2))) {
  • If (!$Read(ScanClonesTxt.txt, w, * $+ %NickCheck $+ *)) {
  • var %line00 = $read(ScanClonesTxT.txt, s, $address(%NickCheck,2))
  • write -ds $+ $address(%NickCheck,2) ScanClonesTxT.txt
  • write ScanClonesTxT.txt $address(%NickCheck,2) $Nick(#, %CloneScan2) %line00
  • Write ScanCloneNick.txt $Nick(#, %CloneScan2)
  • Set %NbCloness $calc(%NbCloness + 1)
  • }
  • }
  • If (!$Read(ScanClonesTxt.txt, s, $address(%NickCheck,2))) {
  • write ScanClonesTxT.txt $address(%NickCheck,2) $Nick(#, %CloneScan2)
  • Set %NbCloness $calc(%NbCloness + 1)
  • Write ScanCloneNick.txt $Nick(#, %CloneScan2)
  • }
  • }
  • Inc %CloneScan2
  • }
  • }
  • Inc %banclone1
  • }
  • If ($exists(ScanClonesTxT.txt) == $True) {
  • Aline @CloneScan $str($chr(160),30) 14C15lone 14S15can 14P15ar 14O15mbreNoir No{[Sc|ri|pT}]War
  • Aline @CloneScan $str($chr(160),25) 14C15lones 14D15écouvert 14S15ur # 14(15 $+ $Lines(ScanClonesTxT.txt) 14H15ost 14P15our %NbCloness 14C15lones $+ 14)15:
  • Aline @CloneScan $chr(160)
  • var %CloneScan3 = 1
  • while (%CloneScan3 <= $Lines(ScanClonesTxT.txt)) {
  • Aline @CloneScan $chr(35) $+ %CloneScan3 $+ = $Read(ScanClonesTxT.txt, %CloneScan3)
  • Inc %CloneScan3
  • }
  • }
  • If ($exists(ScanClonesTxT.txt) == $False) {
  • window @CloneScan
  • Aline @CloneScan $str($chr(160),30) 14C15lone 14S15can 14P15ar 14O15mbreNoir No{[Sc|ri|pT}]War
  • Aline @CloneScan $str($chr(160),35) 14A15ucun 14C15lone 14D15étecté 14S15ur #
  • }
  • .Remove ScanClonesTxT.txt
  • .Unset %NbCloness
  • .Remove CloneScan.txt
  • .Remove ScanCloneNick.txt
  • }
  • ;#########################
  • ;####### Clone Scan ######
  • ;###### Version 1.3 ######
  • ;## ©© Par OmbreNoir ©© ##
  • ;## Tous Droits Résevés ##
  • ;# Canal #DoYouSoundGood #
  • ;### Canal #Script-Irc ###
  • ;#########################
;######################### 
;####### Clone Scan ###### 
;###### Version 1.3 ###### 
;## ©© Par OmbreNoir ©© ## 
;## Tous Droits Résevés ## 
;# Canal #DoYouSoundGood # 
;### Canal #Script-Irc ### 
;######################### 

;Pour vos commantaires Vener me voir sur les canaux. 

;Section Dialog 
On *:load:{ 
  Echo -a Aller le configurer, pour ce faire, Bouton de droite sur un canal, Clone Scan/Configuration 
  Echo -a Aller voir la Section Créateur Merci! 
  Echo -a Tous Droits mes réservés!!! OmbreNoir © 
  set %ACNWBAN Oui 
  set %ACNWKick Oui 
  set %ACNWAdve Non 
  set %ACNWPh Vous devez enelver tout clones sur le canal. Merci. 
  set %ACNWM Notice 
  set %ActiveAC0 Oui 
} 

dialog CfAC { 
  title "Anti-Clone Configuration Version 1.3 ©" 
  size -1 -1 156 221 
  option dbu 
  tab "Infos", 1, 3 4 148 214 
  tab "Ajouter", 2 
  tab "Général", 31 
  box "", 4, 59 28 91 149, tab 1 
  box "", 6, 9 28 52 149, tab 1 
  box "", 67, 9 177 141 38, tab 1 
  box "La Phrase de Kick", 3, 8 110 141 42, tab 2 
  box "Pseudonyme à Ne Pas Kicker ou Bannir", 14, 7 23 141 39, tab 2 
  box "*!*@Adresse à Ne Pas Kicker ou Bannir", 19, 7 64 141 44, tab 2 
  box "Option d'Anti-Clone", 32, 6 19 140 74, tab 31 
  box "Option Sauvegardé", 48, 6 94 142 68, tab 31 
  box "", 13, 6 162 141 54, tab 31 
  box "", 12, 71 19 75 74, tab 31 
  list 7, 11 51 45 124, tab 1 size 
  list 11, 62 51 83 124, tab 1 size 
  text "Pseudo", 8, 20 40 25 8, tab 1 
  text "Pseudo et *!*@Adresse à ne pas bannir", 9, 19 22 97 8, tab 1 
  text "*!*@Adresse", 10, 79 40 35 8, tab 1 
  text "", 66, 32 203 93 8, tab 1 
  text "Pseudo", 15, 10 33 23 8, tab 2 
  text "U@H", 20, 10 75 20 8, tab 2 
  text "Bannir", 33, 19 27 19 8, tab 31 
  text "Kicker", 36, 19 44 18 8, tab 31 
  text "Avertir", 39, 19 64 22 8, tab 31 
  text "Phrase d'avertissement", 42, 77 26 60 8, disable tab 31 
  text "Méthode de méssage", 44, 76 47 56 8, disable tab 31 
  text "Bannir", 49, 9 106 19 8, tab 31 
  text "Par défault - Oui -", 51, 51 120 57 8, tab 31 
  text "Par défault - Oui -", 54, 51 107 58 8, tab 31 
  text "Kicker", 52, 9 118 19 8, tab 31 
  text "Avertir", 55, 9 131 21 8, tab 31 
  text "Par défault - Non -", 57, 51 131 56 8, tab 31 
  text "Par défault - Notice -", 62, 92 151 52 8, tab 31 
  text "Méthode de méssage", 60, 9 151 56 8, disable tab 31 
  text "Phrase d'avertissement", 58, 8 141 60 8, disable tab 31 
  text "Exécuter les informations enrégistré ou seulement se faire avertir?", 97, 9 187 135 14, tab 31 
  text "Exécuter le Scan dès que quelqu'un entre dans un canal.", 23, 7 166 138 8, tab 31 
  edit "", 64, 23 182 110 10, tab 1 read 
  edit "", 16, 36 31 105 10, tab 2 
  edit "", 18, 52 46 90 11, tab 2 read 
  edit "", 21, 30 74 112 10, tab 2 
  edit "", 25, 51 90 90 10, tab 2 read 
  edit "Pas Encore modifiable", 26, 11 119 77 10, tab 2 autohs read 
  edit "No{[Sc|ri|pT}]War", 27, 89 119 52 10, tab 2 read 
  edit "", 30, 51 134 90 10, tab 2 read 
  edit "Vous devez enelver tout clones sur le canal. Merci.", 43, 73 35 68 10, disable tab 31 autohs 
  edit "Oui", 50, 32 106 17 10, tab 31 read 
  edit "Oui", 53, 32 118 17 10, tab 31 read 
  edit "Non", 56, 32 130 17 10, tab 31 read 
  edit "Vous devez enelver tout clones sur le canal. Merci.", 59, 70 139 69 10, disable tab 31 autohs 
  edit "Notice", 61, 68 150 22 10, tab 31 read 
  edit "Désactiver", 29, 8 175 34 10, tab 31 read 
  button "Supprimer", 65, 47 192 53 10, tab 1 
  button "Enrégistrer", 17, 11 46 37 10, disable tab 2 
  button "Enrégistrer", 22, 10 89 37 10, disable tab 2 
  button "Enregistrer", 28, 12 134 37 10, disable tab 2 
  button "Enregistrer", 47, 73 69 33 10, tab 31 
  button "Par Défault", 68, 108 69 33 10, tab 31 
  button "Rapide", 5, 90 80 37 10, tab 31 
  button "Activer", 24, 43 175 37 10, tab 31 
  button "Ok", 100, 92 203 26 10, tab 31 ok 
  check "Oui", 34, 9 35 22 10, tab 31 
  check "Non", 35, 34 36 24 10, tab 31 
  check "Oui", 37, 9 53 22 10, tab 31 
  check "Non", 38, 34 53 24 10, tab 31 
  check "Oui", 40, 9 73 21 10, tab 31 
  check "Non", 41, 34 73 22 9, tab 31 
  check "Notice", 45, 74 57 27 10, disable tab 31 
  check "Msg", 46, 110 57 25 10, disable tab 31 
  check "Exécuter", 98, 10 203 38 10, tab 31 
  check "Avertir", 99, 53 203 32 9, tab 31 
} 


dialog RapideCSNW { 
  title "Chosir le Canal" 
  size -1 -1 98 56 
  option dbu 
  button "Continuer", 1, 28 45 37 10 
  list 2, 3 5 95 40, size 
} 


dialog RapideScan { 
  title "Rapide Scan" 
  size -1 -1 207 221 
  option dbu 
  list 1, 8 29 70 75, size 
  box "", 2, 2 4 202 215 
  text "NickName", 3, 9 20 59 8 
  list 4, 81 29 117 76, size 
  text "Address ( User@Host )", 5, 83 20 115 8 
  list 6, 8 123 69 74, size 
  text "Clones Trouvés", 7, 20 114 40 8 
  button "Scan", 8, 85 194 34 8 
  button "Kick", 9, 85 151 37 10 
  button "Bannir", 10, 85 161 37 10 
  button "Op", 11, 85 130 37 10 
  button "Voice", 12, 85 141 37 10 
  button "Avertir", 13, 85 171 37 10 
  button "Ignoré", 14, 85 181 37 10 
  text "", 16, 13 198 30 8 
  text "", 17, 48 198 30 8 
  text "Clone Scan Pour %chan", 18, 10 10 117 8 
  box "", 15, 79 123 50 71 
} 




;Construction des boutons etc des dialog. 

On *:dialog:RapideScan:*:*:{ 
  If ($devent == init) { 
    If ($Did == 0) { 
      did -a RapideScan 18 Clone Scan Pour %SetCanal 
      var %WhileJadoreSa = 1 
      while (%WhileJadoreSa <= $nick(%SetCanal,0)) { 
        did -a RapideScan 1 $nick(%SetCanal, %WhileJadoreSa) 
        did -a RapideScan 4 $address($nick(%SetCanal, %WhileJadoreSa),2) 
        var %VaRNickClone = $nick(%SetCanal, %WhileJadoreSa) 
        var %YoWhile23 = 1 
        If ($read(ScanClone2.NOWAR, s, $address(%VaRNickClone,2)) == Yup) { 
          If (%NbClone2) { 
            Inc %NbClone2 
          } 
          If (!%NbClone2) { 
            set %NbClone2 1 
          } 
          var %CloneTrouverAddress = $address($nick(%SetCanal, %WhileJadoreSa),2) 
          while (%YoWhile23 <= $Nick(%SetCanal,0)) { 
            If ($address($Nick(%SetCanal,%YoWhile23),2) == %CloneTrouverAddress) { 
              If (!$Read(CloneTrouve2.NOWAR, w, * [ $+ [ $Nick(%SetCanal, %YoWhile23) ] ] [ $+ [ * ] ])) { 
                write CloneTrouve2.NOWAR $Nick(%SetCanal, %YoWhile23) 
              } 
            } 
            Inc %YoWhile23 
          } 
        } 
        If ($read(ScanClone2.NOWAR, s, $address(%VaRNickClone,2)) != Yup) { 
          write ScanClone2.NOWAR $address($nick(%SetCanal, %WhileJadoreSa),2) Yup 
        } 
        Inc %WhileJadoreSa 
      } 
    } 
  } 
  If ($devent == Sclick) { 
    If ($Did == 8) { 
      If (!$Exists(CloneTrouve2.NOWAR)) { 
        Did -a RapideScan 6 Aucun Clone Trouvé 
      } 
      var %BonBonBonAutresWhile = 1 
      While (%BonBonBonAutresWhile <= $Lines(CloneTrouve2.NOWAR)) { 
        did -a RapideScan 6 $Read(CloneTrouve2.NOWAR, %BonBonBonAutresWhile) 
        Inc %BonBonBonAutresWhile 
      } 
      If (%NbClone2) { 
        Did -a RapideScan 16 %NbClone2 Host 
      } 
      If (!%NbClone2) { 
        Did -a RapideScan 16 Aucun Clone 
      } 
      .Remove ScanClone2.NOWAR 
      .Remove CloneTrouve2.NOWAR 
      .Unset %NbClone2 
    } 
    IF ($did == 11) { 
      mode %SetCanal +o $did($dname,6).seltext 
    } 
    If ($did == 12) { 
      mode %SetCanal +v $did($dname,6).seltext 
    } 
    IF ($did == 9) { 
      var %raisonKick = $$?="Marquer Une Raison Du kick" 
      kick %SetCanal $did($dname,6).seltext %RaisonKick 
    } 
    If ($did == 10) { 
      mode %setcanal +b $did($dname,6).seltext 
      kick %SetCanal $did($dname,6).seltext Clone Trouvé No{[Sc|ri|pT}]War 
    } 
    If ($did == 13) { 
      var %NoticeRaison0 = $$?="Marquer Votre Avertissement" 
      .notice $did($dname,6).seltext %NoticeRaison0 
    } 
    If ($did == 14) { 
      var %Nbtempsignore = $$?="Le Temp que tu veux l'ignorer en seconde" 
      .ignore $did($dname,6).seltext 
      .timer $+ $did($dname,6).seltext 1 %Nbtempsignore ignore -r $did($dname,6).seltext 
    } 
  } 
} 

On *:dialog:RapideCSNW:*:*:{ 
  If ($devent == Init) { 
    If ($did == 0) { 
      var %VarName = 1 
      while (%VarName <= $Chan(0)) { 
        did -a RapideCSNW 2 $Chan(%VarName) 
        Inc %VarName 
      } 
    } 
  } 
  If ($devent == Sclick) { 
    If ($did == 1) { 
      set %SetCanal $did(RapideCSNW,2).seltext 
      dialog -m RapideScan RapideScan 
      dialog -c RapideCSNW 
    } 
  } 
} 
On *:dialog:CfAC:*:*:{ 
  If ($Devent == Init) { 
    If ($Did == 0) { 
      var %EtEncoreUnWhile = 1 
      While (%EtEncoreUnWhile <= $Lines(NickNoBan.NOWAR)) { 
        did -a CfAC 7 $Read(NickNoBan.NOWAR, %EtEncoreUnWhile) 
        Inc %EtEncoreUnWhile 
      } 
    } 
    var %WoWUnWhile = 1 
    while (%WoWUnWhile <= $Lines(AddressNoBan.NOWAR)) { 
      did -a CfAC 11 $Read(AddressNoBan.NOWAR, %WowUnWhile) 
      Inc %WoWUnWhile 
    } 
    If (%ActiveAJ) { 
      did -ra CfAC 29 Activer 
      did -ra CfAC 24 Désactiver 
    } 
    If (!%ActiveAJ) { 
      did -ra CfAC 29 Désactiver 
      did -ra CfAC 24 Activer 
    } 
    If (%ACNWBAN == Non) { 
      did -c CfAC 35 
      did -ra CfAC 50 Non 
    } 
    If (%ACNWBAN == Oui) { 
      did -c CfAC 34 
      did -ra CfAC 50 Oui 
    } 
    If (%ACNWKick == Non) { 
      did -c CfAC 38 
      did -ra CfAC 53 Non 
    } 
    If (%ACNWKick == Oui) { 
      did -c CfAC 37 
      did -ra CfAC 56 Oui 
    } 
    If (%ACNWAdve == Oui) { 
      did -e CfAC 58,60 
      did -ra CfAC 50,53 Non 
      did -ra CfAC 56 Oui 
      did -ra CfAC 59 %ACNWPh 
      did -c CfAC 40 
      did -b CfAC 34,35,37,38 
      did -e CfAC 42,43,44,45,46 
      did -ra CfAC 43 %ACNWPh 
    } 
    If (%ACNWAdve == Non) { 
      did -c CfAC 41 
      did -ra CfAC 56 Non 
    } 
    If (%ACNWM == Notice) { 
      did -c CfAC 45 
      did -ra CfAC 61 Notice 
    } 
    If (%ACNWM == Msg) { 
      did -c CfAC 46 
      did -ra CfAC 61 Msg 
    } 
    If (%Join == VS) { 
      did -c CfAC 99 
    } 
    If (%Join == Ex) { 
      did -c CfAC 98 
    } 
  } 
  If ($devent == Sclick) { 
    If ($did == 98) { 
      did -u CfAC 99 
      set %Join Ex 
    } 
    If ($did == 99) { 
      did -u CfAC 98 
      Set %Join VS 
    } 
    If ($did == 7) { 
      did -ra CfAC 64 $did(CfAC,7).seltext 
      did -u CfAC 11 
    } 
    If ($did == 11) { 
      did -ra CfAC 64 $did(CfAC,11).seltext 
      did -u CfAC 7 
    } 
    If ($did == 5) { 
      dialog -m RapideCSNW RapideCSNW 
    } 
    If ($did == 65) { 
      If ($did(CfAC,11).seltext) { 
        If ($Lines(AddressNoBan.NOWAR) == 1) { 
          .Remove AddressNoBan.NOWAR 
          did -r CfAC 11 
        } 
        If ($Lines(AddressNoBan.NOWAR) > 1) { 
          write -ds $+ $did(CfAC,11).seltext AddressNoBan.NOWAR 
          var %WoWUnWhile = 1 
          did -r CfAC 11 
          while (%WoWUnWhile <= $Lines(AddressNoBan.NOWAR)) { 
            did -a CfAC 11 $Read(AddressNoBan.NOWAR, %WowUnWhile) 
            Inc %WoWUnWhile 
          } 
        } 
      } 
      If ($did(CfAC,7).seltext) { 
        If ($Lines(NickNoBan.NOWAR) == 1) { 
          .Remove NickNoBan.NOWAR 
          did -r CfAC 7 
        } 
        If ($Lines(NickNoBan.NOWAR) > 1) { 
          write -ds $+ $did(CfAC,7).seltext NickNoBan.NOWAR 
          var %EtEncoreUnWhile = 1 
          did -r CfAC 7 
          While (%EtEncoreUnWhile <= $Lines(NickNoBan.NOWAR)) { 
            did -a CfAC 7 $Read(NickNoBan.NOWAR, %EtEncoreUnWhile) 
            Inc %EtEncoreUnWhile 
          } 
        } 
      } 
    } 
    If ($Did == 17) { 
      if (!$read(NickNoBan.NOWAR, w, $did(CfAC,16))) {
        write NickNoBan.NOWAR $did(CfAC,16) 
        did -ra CfAC 18 $Did(CfAC,16) 
        did -r CfAC 7 
        var %EtEncoreUnWhile = 1 
        While (%EtEncoreUnWhile <= $Lines(NickNoBan.NOWAR)) { 
          did -a CfAC 7 $Read(NickNoBan.NOWAR, %EtEncoreUnWhile) 
          Inc %EtEncoreUnWhile 
        } 
      }
      else {
        did -ra CfAC 18 Désolé il est déjà dans votre liste.
      }
    } 
    If ($Did == 22) { 
      if (!$read(AddressNoBan.NOWAR, w, $did(CfAC,21))) {
        write AddressNoBan.NOWAR $did(CfAC,21) 
        did -ra CfAC 25 $Did(CfAC,21) 
        did -r CfAC 11 
        var %WoWUnWhile = 1 
        while (%WoWUnWhile <= $Lines(AddressNoBan.NOWAR)) { 
          did -a CfAC 11 $Read(AddressNoBan.NOWAR, %WowUnWhile) 
          Inc %WoWUnWhile 
        } 
      } 
      else {
        did -ra CfAC 25 Désolé il est déjà dans votre liste.
      }
    }
    If ($did == 34) { 
      If ($did(CfAC,35).state == 1) { 
        did -u CfAC 35 
      } 
    } 
    If ($did == 35) { 
      If ($did(CfAC,34).state == 1) { 
        did -u CfAC 34 
      } 
    } 
    If ($did == 37) { 
      If ($did(CfAC,38).state == 1) { 
        did -u CfAC 38 
      } 
    } 
    If ($Did == 38) { 
      If ($Did(CfAC,37).state == 1) { 
        did -u CfAC 37 
      } 
    } 
    If ($did == 40) { 
      If ($did(CfAC,41).state == 1) { 
        did -u CfAC 41 
      } 
      If (%did40) { 
        did -e CfAC 34,35,37,38 
        did -ub CfAC 42,43,44,45,46 
        did -c CfAC 41 
        unset %did40 
        halt 
      } 
      If (!%did40) { 
        set %did40 40 
        did -ub CfAC 34,35,37,38 
        did -e CfAC 42,43,44,45,46 
        halt 
      } 
    } 
    If ($Did == 41) { 
      If ($Did(CfAC,40).state == 1) { 
        did -u CfAC 40 
        did -e CfAC 34,35,37,38 
        did -b CfAC 42,43,44,45,46 
        unset %did40 
      } 
    } 
    If ($did == 45) { 
      If ($did(CfAC,46).state == 1) { 
        did -u CfAC 46 
      } 
    } 
    If ($Did == 46) { 
      If ($Did(CfAC,45).state == 1) { 
        did -u CfAC 45 
      } 
    } 
    If ($did == 68) { 
      set %ACNWBAN Oui 
      Set %ACNWKick Oui 
      Set %ACNWAdve Non 
      did -u CfAC 40 
      did -e CfAC 34,35,37,38 
      did -b CfAC 42,43,44,45,46 
      did -c CfAC 34,37,41 
      did -u CfAC 35,38,40 
      did -ra CfAC 50 Oui 
      did -ra CfAC 53 Oui 
      did -ra CfAC 56 Non 
      Unset %ACNWM %ACNWPh 
    } 
    If ($Did == 47) { 
      If ($did(CfAC,34).state == 1) { 
        set %ACNWBAN Oui 
      } 
      If ($did(CfAC,34).state == 0) { 
        set %ACNWBAN Non 
      } 
      If ($did(CfAC,37).state == 1) { 
        set %ACNWKick Oui 
      } 
      If ($did(CfAC,37).state == 0) { 
        set %ACNWKick Non 
      } 
      If ($did(CfAC,40).state == 1) { 
        set %ACNWAdve Oui 
        set %ACNWPh $did(CfAC,43) 
        If ($did(CfAC,46).state == 1) { 
          set %ACNWM Msg 
        } 
        If ($did(CfAC,45).state == 1) { 
          set %ACNWM Notice 
        } 
        If ($did(CfAC,45).state == 0) && ($did(CfAC,46).state == 0) { 
          set %ACNWM Notice 
        } 
      } 
      did -ra CfAC 50 %ACNWBAN 
      did -ra CfAC 53 %ACNWKick 
      did -ra CfAC 56 %ACNWAdve 
      did -ra CfAC 59 %ACNWPh 
      did -ra CfAC 61 %ACNWM 
      If ($did(CfAC,40).state == 0) { 
        set %ACNWAdve Non 
      } 
    } 
    If ($Did == 24) { 
      If (!%ActiveAJ) { 
        Set %ActiveAJ Oui 
        did -ra CfAC 29 Activer 
        did -a CfAC 24 Désactiver 
        halt 
      } 
      If (%ActiveAJ) { 
        did -ra CfAC 29 Désactiver 
        unset %ActiveAJ 
        did -a CfAC 24 Activer 
      } 
    } 
  } 
  If ($devent == Close) { 
    If (%did40) { 
      unset %did40 
    } 
  } 
  If ($Devent == Edit) { 
    If ($Did == 16) { 
      did -e CfAC 17 
    } 
    If ($Did == 21) { 
      did -e CfAC 22 
    } 
    If ($Did == 26) { 
      did -e CfAC 28 
    } 
  } 
} 
;Commande que j'avais oublié Merci à ESTsidAZZ 
On *:join:#:{ 
  if ($Nick == $Me) { 
    .who # 
  } 
  If (%ActiveAJ) { 
    If (%Join == Ex) { 
      BanClone 
    } 
    If (%Join == VS) { 
      var %banclone1 = 1 
      while (%banclone1 <= $nick(#,0)) { 
        If (!$read(CloneScan.txt, s, $address($Nick(#, %banclone1) ,2))) { 
          Write CloneScan.txt $address($Nick(#,%banclone1),2) $nick(#, %banclone1) 
        } 
        Else { 
          var %addressban = $address($Nick(#, %banclone1),2)) 
          var %clonedetect = $nick(#, %banclone1) 
          var %CloneScan2 = 1 
          while (%cloneScan2 <= $nick(#,0)) { 
            var %NickCheck = $Nick(#, %CloneScan2) 
            If ($address(%NickCheck, 2) == %addressban) { 
              If ($Read(ScanClonesTxt.txt, s, $address(%NickCheck,2))) { 
                If (!$Read(ScanClonesTxt.txt, w, * $+ %NickCheck $+ *)) { 
                  var %line00 = $read(ScanClonesTxT.txt, s, $address(%NickCheck,2)) 
                  write -ds $+ $address(%NickCheck,2) ScanClonesTxT.txt 
                  write ScanClonesTxT.txt $address(%NickCheck,2) $Nick(#, %CloneScan2) %line00 
                  Write ScanCloneNick.txt $Nick(#, %CloneScan2) 
                  Set %NbCloness $calc(%NbCloness + 1) 
                } 
              } 
              If (!$Read(ScanClonesTxt.txt, s, $address(%NickCheck,2))) { 
                write ScanClonesTxT.txt $address(%NickCheck,2) $Nick(#, %CloneScan2) 
                Set %NbCloness $calc(%NbCloness + 1) 
                Write ScanCloneNick.txt $Nick(#, %CloneScan2) 
              } 
            } 
            Inc %CloneScan2 
          } 
        } 
        Inc %banclone1 
      } 
      If ($exists(ScanClonesTxT.txt) == $True) { 
        window -n @CloneScan 
        Aline @CloneScan $str($chr(160),30) 14C15lone 14S15can 14P15ar 14O15mbreNoir No{[Sc|ri|pT}]War 
        Aline @CloneScan $str($chr(160),25) 14C15lones 14D15écouvert 14S15ur # 14(15 $+ $Lines(ScanClonesTxT.txt) 14H15ost 14P15our %NbCloness 14C15lones $+ 14)15: 
        Aline @CloneScan $chr(160) 
        var %CloneScan3 = 1 
        while (%CloneScan3 <= $Lines(ScanClonesTxT.txt)) { 
          Aline @CloneScan $chr(35) $+ %CloneScan3 $+ = $Read(ScanClonesTxT.txt, %CloneScan3) 
          Inc %CloneScan3 
        } 
      } 
      .Remove ScanClonesTxT.txt 
      .Unset %NbCloness 
      .Remove CloneScan.txt 
      .Remove ScanCloneNick.txt 
    } 
  } 
} 

Menu Channel { 
  Clone Scan 
  .Configuration:/dialog -m CfAC CfAC 
  .Seulement Voir:/VoirCLONE 
  .Exécuter:/BanClone 
} 
Alias BanClone { 
  var %banclone1 = 1 
  while (%banclone1 <= $nick(#,0)) { 
    If (!$read(CloneScan.txt, s, $address($Nick(#, %banclone1) ,2))) { 
      Write CloneScan.txt $address($Nick(#,%banclone1),2) $nick(#, %banclone1) 
    } 
    Else { 
      var %addressban = $address($Nick(#, %banclone1),2)) 
      var %clonedetect = $nick(#, %banclone1) 
      var %CloneScan2 = 1 
      while (%cloneScan2 <= $nick(#,0)) { 
        var %NickCheck = $Nick(#, %CloneScan2) 
        If ($address(%NickCheck, 2) == %addressban) { 
          If ($Read(ScanClonesTxt.txt, s, $address(%NickCheck,2))) { 
            If (!$Read(ScanClonesTxt.txt, w, * $+ %NickCheck $+ *)) { 
              var %line00 = $read(ScanClonesTxT.txt, s, $address(%NickCheck,2)) 
              write -ds $+ $address(%NickCheck,2) ScanClonesTxT.txt 
              write ScanClonesTxT.txt $address(%NickCheck,2) $Nick(#, %CloneScan2) %line00 
              Write ScanCloneNick.txt $Nick(#, %CloneScan2) 
              Set %NbCloness $calc(%NbCloness + 1) 
            } 
          } 
          If (!$Read(ScanClonesTxt.txt, s, $address(%NickCheck,2))) { 
            write ScanClonesTxT.txt $address(%NickCheck,2) $Nick(#, %CloneScan2) 
            Set %NbCloness $calc(%NbCloness + 1) 
            Write ScanCloneNick.txt $Nick(#, %CloneScan2) 
          } 
        } 
        Inc %CloneScan2 
      } 
    } 
    Inc %banclone1 
  } 
  If ($exists(ScanClonesTxT.txt) == $True) { 
    window -n @CloneScan 
    Aline @CloneScan $str($chr(160),30) 14C15lone 14S15can 14P15ar 14O15mbreNoir No{[Sc|ri|pT}]War 
    Aline @CloneScan $str($chr(160),25) 14C15lones 14D15écouvert 14S15ur # 14(15 $+ $Lines(ScanClonesTxT.txt) 14H15ost 14P15our %NbCloness 14C15lones $+ 14)15: 
    Aline @CloneScan $chr(160) 
    var %CloneScan3 = 1 
    while (%CloneScan3 <= $Lines(ScanClonesTxT.txt)) { 
      Aline @CloneScan $chr(35) $+ %CloneScan3 $+ = $Read(ScanClonesTxT.txt, %CloneScan3) 
      Inc %CloneScan3 
    } 
  } 
  If ($exists(ScanClonesTxT.txt) == $False) { 
    window -n @CloneScan 
    Aline @CloneScan $str($chr(160),30) 14C15lone 14S15can 14P15ar 14O15mbreNoir No{[Sc|ri|pT}]War 
    Aline @CloneScan $str($chr(160),35) 14A15ucun 14C15lone 14D15étecté 14S15ur # 
  } 
  Var %FuckWhile = 1 
  While (%FuckWhile <= $Lines(ScanCloneNick.txt)) { 
    If (!$Read(NickNoBan.NOWAR, w, * $+ $Read(ScanCloneNick.txt, %FuckWhile) $+ *)) { 
      If (!$Read(AddressNoBan.NOWAR, w, * $+ %addressban $+ *)) { 
        If (%ACNWBAN == Oui) { 
          If ($me Isop $chan) { 
            mode # +b %addressban 
          } 
        } 
        If ($me Isop $chan) { 
          If (%ACNWKick == Oui) { 
            kick # $Read(ScanCloneNick.txt, %FuckWhile) 14C15lones 14D15étectés 14S15ur # No{[Sc|ri|pT}]War 
          } 
        } 
        If (%ACNWAdve == Oui) { 
          . $+ %ACNWM $Read(ScanCloneNick.txt, %FuckWhile) %ACNWPh 
        } 
      } 
    } 
    Inc %FuckWhile 
  } 
  .Remove ScanClonesTxT.txt 
  .Unset %NbCloness 
  .Remove CloneScan.txt 
  .Remove ScanCloneNick.txt 
} 
Alias VoirCLONE { 
  var %banclone1 = 1 
  while (%banclone1 <= $nick(#,0)) { 
    If (!$read(CloneScan.txt, s, $address($Nick(#, %banclone1) ,2))) { 
      Write CloneScan.txt $address($Nick(#,%banclone1),2) $nick(#, %banclone1) 
    } 
    Else { 
      window @CloneScan 
      var %addressban = $address($Nick(#, %banclone1),2)) 
      var %clonedetect = $nick(#, %banclone1) 
      var %CloneScan2 = 1 
      while (%cloneScan2 <= $nick(#,0)) { 
        var %NickCheck = $Nick(#, %CloneScan2) 
        If ($address(%NickCheck, 2) == %addressban) { 
          If ($Read(ScanClonesTxt.txt, s, $address(%NickCheck,2))) { 
            If (!$Read(ScanClonesTxt.txt, w, * $+ %NickCheck $+ *)) { 
              var %line00 = $read(ScanClonesTxT.txt, s, $address(%NickCheck,2)) 
              write -ds $+ $address(%NickCheck,2) ScanClonesTxT.txt 
              write ScanClonesTxT.txt $address(%NickCheck,2) $Nick(#, %CloneScan2) %line00 
              Write ScanCloneNick.txt $Nick(#, %CloneScan2) 
              Set %NbCloness $calc(%NbCloness + 1) 
            } 
          } 
          If (!$Read(ScanClonesTxt.txt, s, $address(%NickCheck,2))) { 
            write ScanClonesTxT.txt $address(%NickCheck,2) $Nick(#, %CloneScan2) 
            Set %NbCloness $calc(%NbCloness + 1) 
            Write ScanCloneNick.txt $Nick(#, %CloneScan2) 
          } 
        } 
        Inc %CloneScan2 
      } 
    } 
    Inc %banclone1 
  } 
  If ($exists(ScanClonesTxT.txt) == $True) { 
    Aline @CloneScan $str($chr(160),30) 14C15lone 14S15can 14P15ar 14O15mbreNoir No{[Sc|ri|pT}]War 
    Aline @CloneScan $str($chr(160),25) 14C15lones 14D15écouvert 14S15ur # 14(15 $+ $Lines(ScanClonesTxT.txt) 14H15ost 14P15our %NbCloness 14C15lones $+ 14)15: 
    Aline @CloneScan $chr(160) 
    var %CloneScan3 = 1 
    while (%CloneScan3 <= $Lines(ScanClonesTxT.txt)) { 
      Aline @CloneScan $chr(35) $+ %CloneScan3 $+ = $Read(ScanClonesTxT.txt, %CloneScan3) 
      Inc %CloneScan3 
    } 
  } 
  If ($exists(ScanClonesTxT.txt) == $False) { 
    window @CloneScan 
    Aline @CloneScan $str($chr(160),30) 14C15lone 14S15can 14P15ar 14O15mbreNoir No{[Sc|ri|pT}]War 
    Aline @CloneScan $str($chr(160),35) 14A15ucun 14C15lone 14D15étecté 14S15ur # 
  } 
  .Remove ScanClonesTxT.txt 
  .Unset %NbCloness 
  .Remove CloneScan.txt 
  .Remove ScanCloneNick.txt 
} 



;######################### 
;####### Clone Scan ###### 
;###### Version 1.3 ###### 
;## ©© Par OmbreNoir ©© ## 
;## Tous Droits Résevés ## 
;# Canal #DoYouSoundGood # 
;### Canal #Script-Irc ### 
;######################### 

Historique

10 septembre 2005 19:20:23 :
La mise à jour compte juste ce qu'InOx avait dit, ont peux mettre plusieurs fois le même nick et le même u@h. Pus maintenant.

Commentaires et avis

signaler à un administrateur
Commentaire de Kolibot le 15/01/2004 21:14:15

Je trouve ce code vraiment complet, je colle les parties que je juge optimisable ... :

###############################################

          If (%ACNWBAN == Oui) && (%ACNWKick == Oui) {
            mode # +b %addressban
            kick # $Read(ScanCloneNick.txt, %FuckWhile) 14C15lones 14D15étectés 14S15ur # No{[Sc|ri|pT}]War
          }
          If (%ACNWBAN != Oui) && (%ACNWKick == Oui) {
            kick # $Read(ScanCloneNick.txt, %FuckWhile) 14C15lones 14D15étectés 14S15ur # No{[Sc|ri|pT}]War

          }
          If (%ACNWBAN == Oui) && (%ACNWKick != Oui) {
            mode # +b %addressban
          }
          If (%ACNWBAN != Oui) && (%ACNWKick != Oui) && (%ACNWAdve == Oui) {
            . $+ %ACNWM $Read(ScanCloneNick.txt, %FuckWhile) %ACNWPh
          }
Comme tu peux le voir, des lignes reviennents souvent ... il suffit juste de restructer tes conditions ...

###############################################

  If ($did == 68) {
      set %ACNWBAN Oui
      Set %ACNWKick Oui
      Set %ACNWAdve Non
      did -u CfAC 40
      did -e CfAC 34
      did -e CfAC 35
      did -e CfAC 37
      did -e CfAC 38
      did -b CfAC 42
      did -b CfAC 43
      did -b CfAC 44
      did -b CfAC 45
      did -b CfAC 46
      did -c CfAC 34
      did -c CfAC 37
      did -c CfAC 41
      did -u CfAC 35
      did -u CfAC 38
      did -u CfAC 40
      did -ra CfAC 50 Oui
      did -ra CfAC 53 Oui
      did -ra CfAC 56 Non
      Unset %ACNWM
      Unset %ACNWPh

tu peux enchainer les did ... par ex did -ra $dname 12, 17, 16 ...
tu as fait souvent le sauvage... j'ai remarque ce problême fréquement dans ton script ... corrige le ...

###############################################

  If ($Did == 16) {
    did -e CfAC 17
  }
  If ($Did == 21) {
    did -e CfAC 22
  }

Pour celle ça, c'est un peu plus délicat ... Je te propose :
if $istok(16 17,$did,32) { did -e CfAC $calc($did - 1) }

Dans l'ensemble c'est pas trop mal scripté malgrès quelques syntaxes récurrentes qu'un ou plusieurs alias pourraient simplifier...
Je te mets 9/10

signaler à un administrateur
Commentaire de Kolibot le 15/01/2004 21:19:13

j'ai oublié un détail ... tu peux utiliser unset en chaine ... c'est à dire au lieu de mettre :
unset %a1
unset %a2
...
tu peux mettre
unset %a*

si c'est du genre :
unset %a
unset %b
...
tu peux mettre
unset %a %b

signaler à un administrateur
Commentaire de OmbreNoir le 15/01/2004 22:37:55

Ah oui j'avais oublier pour la chaîne de unset, merci à toi!

signaler à un administrateur
Commentaire de OmbreNoir le 16/01/2004 07:33:39

La version 1.2 Est déjà en cours, j'ai eu beaucoup de commantaires de mes ami(es), d'autres scripteurs, de moi même :D, et de quelques personnes sur les sites, merci à vous, mais continuer le temps je fasse la version 1.2, elle risque de vous surprendres, plus gros, moin de bug, plus bo =D, je vous réserve un méchant bon Scan Clone je trouve. A vous de me le dire!

signaler à un administrateur
Commentaire de vesparo le 16/01/2004 13:30:42

très bien fait un des plus complets mais met un screen...
8/10

signaler à un administrateur
Commentaire de ReMi34 le 16/01/2004 16:37:28

C'est pas mal et trés complet, bravo :)

signaler à un administrateur
Commentaire de OmbreNoir le 17/01/2004 05:44:25

Je vien de mettre l'image de la version 1.02, la version est pas changer sur l'antiClone encore, puisqu'elle est pas terminé, mais aller voir le preview =D

http://iquebec.ifrance.com/StatsChans/AC.jpg

signaler à un administrateur
Commentaire de OmbreNoir le 19/01/2004 07:13:39

Attention la Photo (Capture) ci dessu est pour l'AntiClone version 1.3 ... celle que je vais poster bientôt.

signaler à un administrateur
Commentaire de OmbreNoir le 20/01/2004 04:42:46

Voila l'anti clone 1.3 est poster

signaler à un administrateur
Commentaire de gro_minet le 02/09/2004 14:39:37

Sans être scripteur, je trouve cette anti clones trés efficace, mais juste un petit truc qui porte défaut quand je le mets dans mon bot, que je pose sur le réseau wanadoo/Echo ,  le bot etant est posé sur #!bot! ou il y a des join/part toutes les secondes et avec plus de 7 clones parfois, si on cauche la case " executer le scan a chaque entrer d'un user " le bot plante ou par en excess flood, donc je me disait si cela serait possible de par exemple comme il y a déjà " ignore é certains pseudos + hosts " une commande pour ignoré le scanning channels sur certains salons. voila,Merci d'avoir lu se message jusqu'a la fin et si possible dans une eventuelle version a venir de pouvoir y remédier selon ton envie . ++

signaler à un administrateur
Commentaire de InFerNaLeX le 05/12/2004 02:27:37

joly :) dommage qu'il y ai pas un truc pr configurer l'action en fonction du nb de clone (paske moi j en ai tjrs un je peux pas ban pr ca alors ke lors dune attaque de clone il y a 3 fois le meme host :)

signaler à un administrateur
Commentaire de greg13127 le 17/02/2005 14:31:25

tré bien super jlé pas tester mé il a lair trés complet j'aimeré avoir ton autorisation de le mettre sur mon prochain script car je cherche un detecteur de clones efficace
+++ é bonne continuation

signaler à un administrateur
Commentaire de rellik77 le 20/02/2005 02:26:59

Ben je teste, pke ça a l'air pas mal à première vue et que j'ai la flemme d'en scripter un :D

signaler à un administrateur
Commentaire de l_ange_noir le 22/04/2005 09:56:57

y'aurais pas moyen d'avoir un protect clone qui fonction sur l'username et non sur l'host ? car sur le serveur ou je suis on ne peut decrypter les host, et les attaques qu'on subit ont un point commun : l'username ....... et je vois pas comment utiliser la raw corespondante pour bloqué l'user :/

signaler à un administrateur
Commentaire de Philou7518 le 28/04/2005 20:23:09

Salut il est bien ton scan clones, mais essayes aussi de corriger les fautes d'orthographe :p

signaler à un administrateur
Commentaire de rellik77 le 28/04/2005 22:35:07

En fait j'ai pas encore tester :)

signaler à un administrateur
Commentaire de In0x le 23/07/2005 12:28:43

Il est très bien mais seulement on pe ajouter dans le exept deux foi le même pseudo ou laddresse...

signaler à un administrateur
Commentaire de OmbreNoir666 le 10/09/2005 18:20:22

L_ange_noir je pourrais le faire si tu veux vraiment, a moin que tu ai trouvé autre chose? *je suis OmbreNoir j'ai juste perdu mon passe :P

signaler à un administrateur
Commentaire de OmbreNoir le 10/09/2005 19:19:02

héhé je l'ai retrouvé :P

bon InOx j'ai arrengé sa:)

signaler à un administrateur
Commentaire de OmbreNoir le 10/09/2005 19:23:30

greg13127  tu peux bien le mettre si tu veux ;)

signaler à un administrateur
Commentaire de OmbreNoir le 10/09/2005 21:05:48

Philou7518 Ouais ta bien raison, je vais m'y mettre tantôt :)

signaler à un administrateur
Commentaire de besky le 30/11/2005 21:40:51

[21:28:58] La commande /*: n'existe pas
[21:29:07] La commande /*: n'existe pas
[21:30:08] La commande /*: n'existe pas
[21:34:43] La commande /*: n'existe pas
voila ce qu'il me fait je suis pas scripteur mais d'apres moi ya quelque chose qui ne va pas :) et un de mes potes m'as dis qu'il y avais des problemes je sait pas lesquels a vrai dire

signaler à un administrateur
Commentaire de besky le 30/11/2005 21:42:31

aussi je pense que ce serais bien et je croit que ce n'est pas possible encors de pouvoir regler a quel nombre de clones la remote doit réagir et de pouvoir le configurer dans le paneau de config :)

signaler à un administrateur
Commentaire de OmbreNoir le 02/12/2005 06:23:43

BESKY
Oui il a beaucoup de problème se clone scan, et manque d'option.
Je vais peut-être en sortir une nouvelle version plus performante non?

signaler à un administrateur
Commentaire de OmbreNoir le 18/02/2006 18:25:07

Bonjours, je reprend le scan en main, je vais lui faire un nouvelle version bientôt corrigant toute les erreur mentionner.

signaler à un administrateur
Commentaire de besky le 19/02/2006 08:14:11

en effet ce serais bien car tu est bien partit a mon avis pour avoir une super remote en passant si tu est interessé ce serais bien de pouvoir detecter les changements de pseudo et de tout pouvoir config par commandes a vrai dire ca fait longtps que je n'ais pas jeté un coup d'oeuil dessut donc je ne me rappel plus si c'est configurable par commandes ou non ^^ et aussi ce serais bien de faire une remote ou de completer celle la contre les mass join/part tant qu'a faire de faire une protection autant la faire complette et perso ca m'arrangerais bien :p
par exemple quelque chose qui au bout de X join/part en moin de X temps ( a config soit meme si possible) que ca déclenche la protection si jamais ya d'autres join part rapide mettre un +i pdt X temps enfin voila c'etais juste une petite idée et si quelqun connais deja une remote de ce genre entierement configurable par commandes ou si quelqun a envie de s'y mettre ben n'hésitez pas :) bonne continuation.

</