Kod: Kodu kopyalamak için üzerine çift tıklayın!
menu menubar,status,channel {
.-
» Scan Clone :Clonescan
}
alias clonescan {
if ($chan == $null) && ($1 == $null) { echo -a [clones]: Syntax: /clonescan #chan $+ $chr(124) $+ config | halt }
if ($1 == $null) { %cscan.chan = $chan }
elseif ($1 ischan) { %cscan.chan = $1 }
if ($dialog(clone.dialog) == $null) { dclonescan }
filldialogchan
if ($1 != config) { .timercallcscan -m 1 10 cscan %cscan.chan }
}
alias cscan {
%cscan.chan = $1 | %cscan.total = $nick($1,0) | %cscan.clone.num = 0
.enable #who.halt | .quote WHO %cscan.chan
:loop
if (%cscan.total == 0) { goto end }
%cscan.clone = $ialchan($address($nick(%cscan.chan,%cscan.total),2),%cscan.chan,0)
%cscan.host = $address($nick(%cscan.chan,%cscan.total),2)
if (%cscan.clone > 1) {
if (%cscan.info. [ $+ [ %cscan.host ] ] != $null) { goto endb }
%cscan.info. [ $+ [ %cscan.host ] ] = 1
:loopa
if (%cscan.clone == 0) { goto enda }
inc %cscan.clone.num
if ($istok(%cscan.clone.nicks,$ialchan(%cscan.host,%cscan.chan,%cscan.clone).nick,32) == $true) { dec %cscan.clone | goto loopa }
%cscan.clone.nicks = %cscan.clone.nicks $ialchan(%cscan.host,%cscan.chan,%cscan.clone).nick
dec %cscan.clone | goto loopa
:enda
did -a clone.dialog 14 $space(3) $ialchan(%cscan.host,%cscan.chan,0) $space(6) $right(%cscan.host,$calc($len(%cscan.host) - 4)) ( $+ %cscan.clone.nicks $+ )
unset %cscan.clone.nicks
}
:endb
dec %cscan.total | goto loop
:end
if (%cscan.clone.num == 0) { did -a clone.dialog 14 $space(3) 0 $space(6) no clones found | unset %cscan* | halt }
unset %cscan*
}
alias jcscan {
%cscan.chan = $1 | %cscan.total = $nick(%cscan.chan,$2) | %cscan.clone.num = 0
%cscan.clone = $ialchan($address($nick(%cscan.chan,%cscan.total),2),%cscan.chan,0)
%cscan.host = $address($nick(%cscan.chan,%cscan.total),2)
if (%cscan.clone > 1) {
if (%cscan.info. [ $+ [ %cscan.host ] ] != $null) { goto end }
%cscan.info. [ $+ [ %cscan.host ] ] = 1
:loop
if (%cscan.clone == 0) { goto end }
inc %cscan.clone.num
if ($istok(%cscan.clone.nicks,$ialchan(%cscan.host,%cscan.chan,%cscan.clone).nick,32) == $true) { dec %cscan.clone | goto loopa }
%cscan.clone.nicks = %cscan.clone.nicks $ialchan(%cscan.host,%cscan.chan,%cscan.clone).nick
dec %cscan.clone | goto loop
:end
echo %cscan.chan 10 clones : $+ $ialchan(%cscan.host,%cscan.chan,0) $+ 10Aynı İp $+ $right(%cscan.host,$calc($len(%cscan.host) - 4)) $+ 4[10 $+ %cscan.clone.nicks $+ 4]
if ($me !isop %cscan.chan) { goto e }
if ($readclones(clones,joinkickban) == on) { .quote MODE %cscan.chan +b *!*@ $+ $right(%cscan.host,$calc($len(%cscan.host) - 4)) }
if ($readclones(clones,joinkick) == on) || ($readclones(clones,joinkickban) == on) { if ($readclones(clones,kickm) == on) { _ckick %cscan.chan $right(%cscan.host,$calc($len(%cscan.host) - 4)) $readclones(clones,kickmsg) } | else { _ckick %cscan.chan $right(%cscan.host,$calc($len(%cscan.host) - 4)) } }
:e
unset %cscan*
}
}
on !*:join:#:{ if ($readclones(clones,joindetect) == on) { jcscan $chan $nick } }
#who.halt off
raw 352:*:halt
raw 315:*:.disable #who.halt | halt
#who.halt end
alias dclonescan { dialog -m clone.dialog clone.dialog }
dialog clone.dialog {
title "Global Clone Scan"
option dbu
size -1 -1 200 180
box " Kanal ", 1, 5 2 70 24
combo 2, 10 10 60 40, drop
box " Action ", 3, 5 30 70 36
button "Tarama", 4, 9 39 30 10
button "Ban", 5, 41 39 30 10
button "Kick", 6, 9 51 30 10
button "Akick", 7, 41 51 30 10
box "", 8, 5 71 189 85
text "Kisi", 9, 14 78 14 10
text "Nick/Adres", 10, 32 78 25 10
list 14, 9 86 181 74, vsbar hsbar
box "", 15, 80 2 114 64
check " Clone Girisini Göster", 16, 85 7 62 12
check " Giren Clonu Kickle", 17, 85 18 60 12
check " Giren Clonu Banla", 18, 85 29 70 12
check " Clone Kick Sebebi", 19, 85 40 64 11
edit "", 20, 85 51 104 11, autohs limit 150
button "Kapat", 21, 83 157 36 13, cancel
box "Coded by UniversaL", 22, 60 170 78 10
}
on *:dialog:clone.dialog:init:*:{ unset %cfg.* | did -r clone.dialog 14 | did -m clone.dialog 20 | fillcloneoptions }
on *:dialog:clone.dialog:sclick:*:{
if ($did == 4) { if ($did(clone.dialog,2) == $null) { halt } | else { did -r clone.dialog 14 | cscan $did(clone.dialog,2) } }
if ($did == 5) { if ($did(clone.dialog,2) == $null) { halt } | else { if ($me isin $did(clone.dialog,2)) { halt } | /cs akick $did(clone.dialog,2) add *!*@ $+ $gettok($did(clone.dialog,14,$did(clone.dialog,14).sel),4,32) 5,1 ~ Clone Girişi Tespit Edilmiştir ~ 4 « $me » | /cs akick $did(clone.dialog,2) enforce | /cs akick $did(clone.dialog,2) del *!*@ $+ $gettok($did(clone.dialog,14,$did(clone.dialog,14).sel),4,32) 5,1 ~ Clone Protections ~ } }
if ($did == 6) { if ($did(clone.dialog,2) == $null) { halt } | else { if ($me isin $did(clone.dialog,2)) { halt } | /cs akick $did(clone.dialog,2) add *!*@ $+ $gettok($did(clone.dialog,14,$did(clone.dialog,14).sel),4,32) 5,1 ~ Clone Girişi Tespit Edilmiştir ~ 4 « $me » | /cs akick $did(clone.dialog,2) enforce | /cs akick $did(clone.dialog,2) del *!*@ $+ $gettok($did(clone.dialog,14,$did(clone.dialog,14).sel),4,32) 5,1 ~ Clone Protections ~ } }
if ($did == 7) { if ($did(clone.dialog,2) == $null) { halt } | else { if ($me isin $did(clone.dialog,2)) { halt } | /cs akick $did(clone.dialog,2) add *!*@ $+ $gettok($did(clone.dialog,14,$did(clone.dialog,14).sel),4,32) 5,1 ~ Clone Girişi Tespit Edilmiştir ~ 4 « $me » | /cs akick $did(clone.dialog,2) enforce | /cs akick $did(clone.dialog,2) del *!*@ $+ $gettok($did(clone.dialog,14,$did(clone.dialog,14).sel),4,32) 5,1 ~ Clone Protections ~ } }
if ($did == 16) { if ($did(clone.dialog,16).state == 1) { %cfg.joindetect = on } | else { %cfg.joindetect = off } }
if ($did == 17) { if ($did(clone.dialog,17).state == 1) { did -u clone.dialog 18 | %cfg.kick = on | %cfg.kickban = off } | else { %cfg.kick = off | if ($did(clone.dialog,18).state == 1) { %cfg.kickban = on } | else { %cfg.kickban = off } } }
if ($did == 18) { if ($did(clone.dialog,18).state == 1) { did -u clone.dialog 17 | %cfg.kickban = on | %cfg.kick = off } | else { %cfg.kickban = off | if ($did(clone.dialog,17).state == 1) { %cfg.kick = on } | else { %cfg.kick = off } } }
if ($did == 19) { if ($did(clone.dialog,19).state == 0) { did -m clone.dialog 20 | %cfg.kickm = off } | else { did -n clone.dialog 20 | %cfg.kickm = on | %cfg.kickmsg = $did(clone.dialog,20).text } }
if ($did == 21) { %cfg.kickmsg = $did(clone.dialog,20).text | .timersavecloneS - m 1 100 savecloneoptions }
}
alias fillcloneoptions {
if ($readclones(clones,joindetect) == on) { did -c clone.dialog 16 | %cfg.joindetect = on }
if ($readclones(clones,joinkick) == on) { did -c clone.dialog 17 | %cfg.kick = on }
if ($readclones(clones,joinkickban) == on) { did -c clone.dialog 18 | %cfg.kickban = on }
if ($readclones(clones,kickm) == on) { did -c clone.dialog 19 | did -n clone.dialog 20 | did -a clone.dialog 20 $readclones(clones,kickmsg) | %cfg.kickm = on }
}
alias savecloneoptions {
if (%cfg.joindetect != $null) { writeclones clones joindetect %cfg.joindetect }
if (%cfg.kick != $null) { writeclones clones joinkick %cfg.kick | if (%cfg.kickban == off) { writeclones clones joinkickban off } }
if (%cfg.kickban != $null) { writeclones clones joinkickban %cfg.kickban | if (%cfg.kick == off) { writeclones clones joinkick off } }
if (%cfg.kickm != $null) { writeclones clones kickm %cfg.kickm | writeclones clones kickmsg %cfg.kickmsg }
}
alias space { if ($1 == $null) { return $chr(160) } | if ($1 !isnum) { halt } | return $str($chr(160),$1) }
alias _ckick {
var %ckick.chan $1, %ckick.total $nick($1,0), %ckick.host *!*@ $+ $2, %ckick.reason $3-
if ($1 == $null) || ($2 == $null) { halt }
:loop
if (%ckick.total == 0) { goto end }
if ($nick(%ckick.chan,%ckick.total) == $me) { dec %ckick.total | goto loop }
if (%ckick.host == $address($nick(%ckick.chan,%ckick.total),2)) { if (%ckick.reason == $null) { .quote KICK %ckick.chan $nick(%ckick.chan,%ckick.total) :10Clones Forbidden! 3 %ckick.host )( %soul } | else { .quote KICK %ckick.chan $nick(%ckick.chan,%ckick.total) : $+ %ckick.reson } }
dec %ckick.total
goto loop
:end
}
alias filldialogchan {
var %dchan $chan(0), %daux 1
:loop
if (%daux > %dchan) { goto end }
did -a clone.dialog 2 $chan(%daux)
if ($chan(%daux) == %cscan.chan) { did -c clone.dialog 2 %daux }
inc %daux
goto loop
:end
}
alias readclones {
if ($1 == $null) || ($2 == $null) { halt }
return $readini clones.ini $1 $2
}
alias writeclones {
if ($1 == $null) || ($2 == $null) || ($3 == $null) { halt }
.writeini clones.ini $1 $2 $3-
}
alias makeclonesconf { writeclones clones joindetect on | writeclones clones joinkick off | writeclones clones joinkickban off | writeclones clones kickm off }