o kod'da eksik olanla uğraşmasanız da size Alience'nin yazdığı bi clone tarama addon'undan bahsetsem ?
kullandığım kadarıyla kısaca anlatıyım..
manuel olarak tarama yapabilirsiniz..
kanala giren ve çıkan eş clone'leri görebilirsiniz..
clone olan nickleri nick listesinde farklı bi renkle görebilirsiniz..
clone olan nickin üzerinde sağ tıklayıp hangi nicklerle clone oldugunu görebilirsiniz..
clone olan nickin üzerinde sağ tıklayıp ban atabilirsiniz..
zamanında kullanmış oldugum addon'lardan biriydi..
ihtiyacı olan için ve denemek isterseniz diye sizler için ekliyorum arkadaslar..
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
;Codded By Alience
;Fin 9/1/2005 17:45
on *:load: {
if ($version < 6) { echo 4 -a Dikkat Mirc versiyonunuz 6 dan küçük addon düzgün çalışmayabilir.! }
writeini $+(",$scriptdir,clonetool.ini") main $chr(35) 4.0.1.1.0
writeini $+(",$scriptdir,clonetool.ini") main genel 0.0.0.0.1.4.1.[k]5>[k]7>[k]5> [k]7[[k]5[b]C[b]lones[k]7][k]5: [clone].1.[k]5<[k]7<[k]5< [k]7[[k]5[b]C[b]lones[k]7][k]5: [clone].250.1
echo 4 -a Addonu /clonetool yazarak çalıştırabilirsiniz
echo 4 -a .. Eğer kanal menüsünü iptal etmişseniz veya addonu kapamışsanız
echo 4 -a .. ana menüden veya /clonetool komutu ile ancak çalıştırabilirsiniz.
echo 4 -a Addonu /clonetool clonelister komutu ile clone list dialoğunu çalıştırırsınız
}
on *:start: { if (!$hget(clonetool)) { hmake clonetool 250 } | hload -i clonetool $+(",$scriptdir,clonetool.ini") main }
on *:exit: { hsave -i clonetool $+(",$scriptdir,clonetool.ini") main }
alias clonetool {
if (!$isid) {
if (!$1) { if (!$dialog(clonetool)) { dialog -m clonetool dlgclonetool } }
if ($1 == clonelister) { if (!$dialog(clonelister)) { dialog -m clonelister dlgclonelister } }
}
}
dialog dlgclonetool {
title "Clonetool - Ayarlar"
size -1 -1 207 164
option dbu
tab "Genel", 1, -2 -16 262 183
check "Kanal menüsünde Clones'i iptal et", 6, 5 5 93 10, tab 1
check "Nick menüsündeki Clones'i iptal et", 7, 5 16 93 9, tab 1
check "Nick list'te clonu olan nickleri renkli göster", 8, 5 26 109 10, tab 1
combo 9, 115 24 25 150, tab 1 , size ,drop
check "Join'lerde cloneleri göster.", 10, 5 36 75 10, tab 1
edit "", 11, 46 46 140 10, tab 1
check "Part ve Quit'lerde cloneleri göster.", 12, 5 57 105 10, tab 1
edit "", 13, 46 68 140 10, tab 1
edit "", 14, 34 82 16 10, tab 1
check "Kanal listesi belirtilenden büyükse ial'i çekmek isteyip istemediğimi sor.", 15, 5 109 171 9, tab 1
text "Gösterme stili:", 16, 11 47 34 8, tab 1
text "Gösterme stili:", 17, 11 69 34 8, tab 1
text "kanal listesi ", 18, 5 83 29 8, tab 1
text "kişiden büyükse ial (internal address list)'i yükleme. Not: laga girersiniz, eğer yüklenmezse cloner çalışmaz tercih sizin.", 19, 52 83 112 22, tab 1
tab "Kanal", 2
check "Yetkim olan tüm kanallarda aktif et", 20, 1 1 94 10, tab 2
check "Kanala girince otomatik tarama yap ve cloneleri banla", 21, 1 11 135 7, tab 2
edit "", 22, 30 20 13 10, tab 2
check "Op", 23, 13 39 20 10, tab 2
check "Halfop", 24, 36 39 27 10, tab 2
check "Voice", 25, 68 39 27 10, tab 2
edit "", 26, 23 49 112 10, tab 2
list 27, 2 59 204 70, tab 2 size
text "'dan çoksa otomatik banla", 32, 43 21 66 8, tab 2
text "Clone'lar", 31, 7 21 22 8, tab 2
text "Kanalda clonelerden aşağıdaki yetkilere sahip olanları gözardı et", 33, 7 30 152 9, tab 2
text "Kanal:", 34, 6 50 16 8, tab 2
button "&Ekle", 28, 177 4 28 12, tab 2
button "&Düzelt", 29, 177 16 28 12, tab 2
button "&Sil", 30, 177 28 28 12, tab 2
check "Addon'u kapat", 3, 2 154 47 10
radio "Genel Ayarlar", 4, 1 136 50 10, push
radio "Kanal Ayarları", 5, 52 136 50 10, push
box "", 35, -5 128 145 4
button "iptal", 36, 148 151 28 12, cancel
button "Tamam", 37, 178 151 28 12, ok
}
on *:dialog:clonetool:*:*: {
if ($devent == init) {
var %i = 0 | while (%i <= 15) { did -a $dname 9 %i | inc %i 1 }
tokenize 46 $replace($hget(clonetool,genel),[comma],$chr(44),[b],,[k],,[o],,[u],,[r],)
if ($1 == 1) { did -c $dname 3 }
did -c $dname $iif($2 == 1,4,5)
if ($did(5).state == 1) { .timer -m 1 2 did -f $dname 2 }
var %i = 3 | while (%i <= 7) { if ([ $ $+ [ %i ] ] >= 1) { did -c $dname $calc(%i + 3) $calc($eval([ $ $+ [ %i ] ]) + 1) } | inc %i 1 }
var %i = 1 | while (%i <= $hget(clonetool,0).item) { if (($left($hget(clonetool,%i).item,1) == $chr(35)) && ($right($hget(clonetool,%i).item,-1) != $null)) { did -a $dname 27 $hget(clonetool,%i).item } | inc %i 1 }
did -ra $dname 11 $8
if ($9 == 1) { did -c $dname 12 }
did -ra $dname 13 $10
did -ra $dname 14 $11
if ($12 == 1) { did -c $dname 15 }
if ($did(8).state == 0) { did -b $dname 9 }
if ($hget(clonetool,$chr(35)) != $null) {
did -b $dname 34,26,27,28,29,30
tokenize 46 $hget(clonetool,$chr(35))
if ($2 == 1) { did -c $dname 21 }
if ($3 == 1) { did -c $dname 23 }
if ($4 == 1) { did -c $dname 24 }
if ($5 == 1) { did -c $dname 25 }
did -ra $dname 22 $1
did -c $dname 20
}
}
if ($devent == edit) {
if (($did == 14) && ($right($did(14),1) !isnum)) { did -ra $dname 14 $left($did(14),-1) }
if (($did == 22) && ($right($did(22),1) !isnum)) { did -ra $dname 22 $left($did(22),-1) }
if (($did == 26) && ($left($did(26),1) != $chr(35))) { did -ra $dname 26 $+($chr(35),$did(26)) }
}
if ($devent == sclick) {
if ($did == 4) { did -f $dname 1 }
if ($did == 5) { did -f $dname 2 }
if ($did == 8) { did $iif($did(8).state == 1,-e,-b) $dname 9 }
if ($did == 20) {
if ($did(20).state == 1) { did -b $dname 34,26,27,28,29,30 }
if ($did(20).state == 0) { did -e $dname 34,26,27,28,29,30 }
}
if ($did == 27) {
did -u $dname 21,23,24,25
if ($gettok($hget(clonetool,$did(27).seltext),2,46) == 1) { did -c $dname 21 }
if ($gettok($hget(clonetool,$did(27).seltext),3,46) == 1) { did -c $dname 23 }
if ($gettok($hget(clonetool,$did(27).seltext),4,46) == 1) { did -c $dname 24 }
if ($gettok($hget(clonetool,$did(27).seltext),5,46) == 1) { did -c $dname 25 }
did -ra $dname 22 $gettok($hget(clonetool,$did(27).seltext),1,46)
did -ra $dname 26 $did(27).seltext
}
if ($did == 28) {
if (($did(26) == $chr(35)) || ($did(26) == $null) || ($did(22) == $null) || ($hget(clonetool,$did(26)) != $null)) { halt }
did -a $dname 27 $did(26) | did -f $dname 26 | did -c $dname 27 $did(27).lines
hadd clonetool $did(26) $+($did(22),.,$did(21).state,.,$did(23).state,.,$did(24).state,.,$did(25).state)
}
if (($did == 29) && ($did(27).sel != $null)) {
if (($did(26) == $chr(35)) || ($did(26) == $null) || ($did(22) == $null)) { halt }
var %confirmation = $hget(clonetool,$did(27).seltext)
hdel clonetool $did(27).seltext
if ($hget(clonetool,$did(26)) != $null) { hadd clonetool $did(27).seltext %confirmation | halt }
hadd clonetool $did(26) $+($did(22),.,$did(21).state,.,$did(23).state,.,$did(24).state,.,$did(25).state)
var %lastsel = $did(27).sel | did -o $dname 27 $did(27).sel $did(26) | did -c $dname 27 %lastsel
}
if (($did == 30) && ($did(27).sel != $null)) { hdel clonetool $did(27).seltext | did -d $dname 27 $did(27).sel | did -c $dname 27 1 }
if ($did == 37) {
hadd clonetool genel $replace($+($did(3).state,.,$did(4).state,.,$did(6).state,.,$did(7).state,.,$did(8).state,.,$did(9),.,$did(10).state,.,$remove($did(11),$chr(46)),.,$did(12).state,.,$remove($did(13),$chr(46)),.,$did(14),.,$did(15).state),,[b],,[k],,[o],,[u],,[r],$chr(44),[comma])
if ($did(20).state == 1) {
if ($did(22) == $null) { halt }
hadd clonetool $chr(35) $+($did(22),.,$did(21).state,.,$did(23).state,.,$did(24).state,.,$did(25).state)
}
if ($did(20).state == 0) { hdel clonetool $chr(35) }
if ($did(3).state == 1) { .disable #clonetool }
if ($did(3).state == 0) { .enable #clonetool }
}
}
}
alias clonelister_alias {
if ($3 != $null) var %kb~ $3 | var %c = $1,%m = $2 | var %mt = $iif(%m isnum,%m,%§.clonetype), %a = $ticks | var %i = 1, %mask, %found, %found2
while ($address($nick(%c,%i,a),%mt)) { %mask = $ifmatch | if ($ialchan(%mask,%c,2)) { if ($len(%found) <= 850) %found = $addtok(%found,%mask,32) | else %found2 = $addtok(%found2,%mask,32) } | inc %i }
if (%found == $null) { if (($dialog(clonelister)) && (%kb~ == $null)) { did -ra clonelister 3 Hiçbir sonuç bulunamadı $+($calc($ticks - %a),ms) } | return } | :n
var %n = 1 | while ($gettok(%found,%n,32)) { var %g = $ifmatch, %nicks, %v = 1 | while ($ialchan(%g,%c,%v).nick) { %nicks = %nicks $ifmatch | inc %v }
if (($dialog(clonelister)) && (%kb~ == $null)) { did -a clonelister 1 $+([,$numtok(%nicks,32),]) %g : %nicks }
if (((%kb~ != $null) && ($numtok(%nicks,32) >= %kb~)) && (($me isop %c) || ($me ishop %c))) {
mode %c +b %g | var %kbi = 1
while ($gettok(%nicks,%kbi,32)) {
if ($ifmatch ison %c) {
if (($4 == 1) && ($gettok(%nicks,%kbi,32) isop %c)) { goto cloend }
if (($5 == 1) && ($gettok(%nicks,%kbi,32) ishop %c)) { goto cloend }
if (($6 == 1) && ($gettok(%nicks,%kbi,32) isvop %c)) { goto cloend }
kick %c $gettok(%nicks,%kbi,32) $numtok(%nicks,32) Clones found on host %g
}
:cloend
inc %kbi 1
}
}
unset %nicks | inc %n
}
if (%found2) { %found = %found2 | unset %found2 | goto n }
if (($dialog(clonelister)) && (%kb~ == $null)) { did -ra clonelister 3 Tarama işlemi $+($calc($ticks - %a),ms) de tamamlandı... }
}
dialog dlgclonelister {
title "Clonetool - Liste"
size -1 -1 250 151
option dbu
list 1, 0 13 219 129, size ,vsbar ,hsbar
text "Status:", 2, 1 143 17 8
text "Hazır...", 3, 20 143 198 8
combo 4, 38 1 100 140, size drop
text "Taranacak tip:", 5, 1 2 36 8
button "Tara", 6, 220 1 30 10
text "Kanal:", 7, 140 2 17 8
combo 8, 158 1 60 140, size drop
button "&Kick", 9, 220 14 30 10
button "&Ban/Kick", 10, 220 24 30 10
button "Kapat", 11, 220 141 30 10, cancel
}
on *:dialog:clonelister:*:*: {
if ($devent == init) {
did -a $dname 4 0: *!user@host.domain.net | did -a $dname 4 1: *!*user@host.domain.net | did -a $dname 4 2: *!*@host.domain.net | did -a $dname 4 3: *!*user@*.host.domain.net | did -a $dname 4 4: *!*@*.host.domain.net | did -c $dname 4 3
var %i = 1 | while ($chan(%i)) { did -a $dname 8 $chan(%i) | if ($chan(%i) == $active) { did -c $dname 8 %i } | inc %i 1 }
}
if ($devent == sclick) {
if ($did == 6) { did -r $dname 1 | $+($dname,_alias) $did(8) $calc($did(4).sel - 1) }
if (($did == 9) && ($did(1).sel != $null)) { var %i = 1 | while ($gettok($gettok($did(1).seltext,2,58),%i,32)) { if (($ifmatch ison $did(8)) && (($me isop $did(8)) || ($me ishop $did(8)))) { kick $did(8) $gettok($gettok($did(1).seltext,2,58),%i,32) $remove($gettok($gettok($did(1).seltext,1,58),1,32),[,]) Clone found on host $gettok($gettok($did(1).seltext,1,58),2,32) } | inc %i 1 } }
if (($did == 10) && ($did(1).sel != $null)) { if (($me isop $did(8)) || ($me ishop $did(8))) { mode $did(8) +b $gettok($gettok($did(1).seltext,1,58),2,32) } | var %i = 1 | while ($gettok($gettok($did(1).seltext,2,58),%i,32)) { if (($ifmatch ison $did(8)) && (($me isop $did(8)) || ($me ishop $did(8)))) { kick $did(8) $gettok($gettok($did(1).seltext,2,58),%i,32) $remove($gettok($gettok($did(1).seltext,1,58),1,32),[,]) Clone found on host $gettok($gettok($did(1).seltext,1,58),2,32) } | inc %i 1 } }
}
}
menu menubar {
-
Clone Tool : clonetool
Clone Lister: Clonetool Clonelister
-
}
#clonetool on
menu channel {
$iif($gettok($hget(clonetool,genel),3,46) == 0,Clones)
.Ayarlar : clonetool
.-
.Listele: clonetool clonelister
.Kick / Ban
..Clone'ler > 2 : clonelister_alias # 2 2 1 1 1
..Clone'ler > 3 : clonelister_alias # 2 3 1 1 1
..Clone'ler > 4 : clonelister_alias # 2 4 1 1 1
..Clone'ler > 5 : clonelister_alias # 2 5 1 1 1
}
menu nicklist {
$iif((($gettok($hget(clonetool,genel),4,46) == 0) && ($ialchan($address($1,2),#,0) > 1)),Clones)
.Listele: clonetool clonelister
.-
.$submenu($clonelists($1))
}
alias clonelists {
if ($1 <= $ialchan($address($snick($active,1),2),$active,0)) return $ialchan($address($snick($active,1),2),$active,$1).nick : kick $active $ialchan($address($snick($active,1),2),$active,$1).nick Clone
if ($1 == end) return -
}
on *:join:#: {
var %i = 1
while (%i <= $ialchan($address($nick,2),$chan,0)) {
if ($gettok($hget(clonetool,$chr(35)),1,46) < $ialchan($address($nick,2),$chan,0)) {
if (($gettok($hget(clonetool,$chr(35)),3,46) == 1) && ($ialchan($address($nick,2),$chan,%i).nick isop $chan)) { goto nextgb }
if (($gettok($hget(clonetool,$chr(35)),4,46) == 1) && ($ialchan($address($nick,2),$chan,%i).nick ishop $chan)) { goto nextgb }
if (($gettok($hget(clonetool,$chr(35)),5,46) == 1) && ($ialchan($address($nick,2),$chan,%i).nick isvoice $chan)) { goto nextgb }
mode $chan +b $address($nick,2) | kick $chan $ialchan($address($nick,2),$chan,%i).nick 7C5lone join!
}
:nextgb
if (($hget(clonetool,$chr(35)) == $null) && ($gettok($hget(clonetool,$chan),1,46) < $ialchan($address($nick,2),$chan,0))) {
if (($gettok($hget(clonetool,$chan),3,46) == 1) && ($ialchan($address($nick,2),$chan,%i).nick isop $chan)) { goto nextch }
if (($gettok($hget(clonetool,$chan),4,46) == 1) && ($ialchan($address($nick,2),$chan,%i).nick ishop $chan)) { goto nextch }
if (($gettok($hget(clonetool,$chan),5,46) == 1) && ($ialchan($address($nick,2),$chan,%i).nick isvoice $chan)) { goto nextch }
mode $chan +b $address($nick,2) | kick $chan $ialchan($address($nick,2),$chan,%i).nick 7C5lone Join!
}
:nextch
inc %i 1
}
if (($gettok($hget(clonetool,genel),7,46) == 1) && ($ialchan($address($nick,2),$chan,0) > 1)) {
var %i = 1, %clonetool = $null
while (%i <= $ialchan($address($nick,2),$chan,0)) {
if ($gettok($hget(clonetool,genel),5,46) == 1) { cline $gettok($hget(clonetool,genel),6,46) $chan $ialchan($address($nick,2),$chan,%i).nick }
if ($len(%clonetool) < 800) { %clonetool = %clonetool $ialchan($address($nick,2),$chan,%i).nick }
inc %i 1
}
echo $iif([tstamp] isin $gettok($hget(clonetool,genel),8,46),-t) $chan $remove($replace($gettok($hget(clonetool,genel),8,46),[clone],%clonetool,[comma],$chr(44),[b],,[k],,[o],,[u],,[r],),[tstamp])
}
}
on *:part:#: {
if (($gettok($hget(clonetool,genel),9,46) == 1) && ($ialchan($address($nick,2),$chan,0) > 1)) {
var %i = 1, %clonetool = $null
while (%i <= $ialchan($address($nick,2),$chan,0)) {
if ($gettok($hget(clonetool,genel),5,46) == 1) { if ($ialchan($address($nick,2),$chan,0) <= 2) { cline $color(listbox text) $chan $ialchan($address($nick,2),$chan,%i).nick } }
if ($len(%clonetool) < 800) { %clonetool = %clonetool $ialchan($address($nick,2),$chan,%i).nick }
inc %i 1
}
echo $iif([tstamp] isin $gettok($hget(clonetool,genel),10,46),-t) $chan $remove($replace($gettok($hget(clonetool,genel),10,46),[clone],%clonetool,[comma],$chr(44),[b],,[k],,[o],,[u],,[r],),[tstamp])
}
}
on *:quit: {
if ($gettok($hget(clonetool,genel),9,46) == 1) {
var %i = 1, %L = 1, %clonetool = $null
while (%L <= $comchan($nick,0)) {
if ($ialchan($address($nick,2),$comchan($nick,1),0) > 1) {
while (%i <= $ialchan($address($nick,2),$comchan($nick,%L),0)) {
if ($gettok($hget(clonetool,genel),5,46) == 1) { if ($ialchan($address($nick,2),$comchan($nick,%L),0) <= 2) { cline $color(listbox text) $comchan($nick,%L) $ialchan($address($nick,2),$comchan($nick,%L),%i).nick } }
if ($len(%clonetool) < 800) { %clonetool = %clonetool $ialchan($address($nick,2),$comchan($nick,%L),%i).nick }
inc %i 1
}
echo $iif([tstamp] isin $gettok($hget(clonetool,genel),10,46),-t) $comchan($nick,%L) $remove($replace($gettok($hget(clonetool,genel),10,46),[clone],%clonetool,[comma],$chr(44),[b],,[k],,[o],,[u],,[r],),[tstamp])
}
inc %L 1
}
}
}
raw 329:*: { var %i = 1 | while ([ $ $+ [ %i ] ] != $null) { if ([ $ $+ [ %i ] ] ischan) { .timer -m 1 15 raw329 [ $ $+ [ %i ] ] | halt } | inc %i 1 } }
alias raw329 {
if (($nick($1,0) > $gettok($hget(clonetool,genel),11,46)) && ($iif($gettok($hget(clonetool,genel),12,46) == 1,$input(Kanalın listesi $gettok($hget(clonetool,genel),11,46) den fazla ial listesini bu kanal için güncellemek istiyormusunuz? $crlf $+ Not: Eğer çekmezseniz cloner çalışmaz),$true) == $true)) {
set %329 $1 | who $1
}
if ($nick($1,0) <= $gettok($hget(clonetool,genel),11,46)) { set %329 $1 | who $1 }
}
raw 352:*: { if (%329) { halt } }
raw 315:*: {
if ($gettok($hget(clonetool,$chr(35)),2,46) == 1) { .timer 1 5 if (($me isop $2) || ($me ishop $2)) /clonelister_alias %329 2 $gettok($hget(clonetool,$chr(35)),1,46) $gettok($hget(clonetool,$chr(35)),3,46) $gettok($hget(clonetool,$chr(35)),4,46) $gettok($hget(clonetool,$chr(35)),5,46) | goto end }
if ($gettok($hget(clonetool,$2),2,46) == 1) { .timer 1 5 if (($me isop $2) || ($me ishop $2)) /clonelister_alias %329 2 $gettok($hget(clonetool,$2),1,46) $gettok($hget(clonetool,$2),3,46) $gettok($hget(clonetool,$2),4,46) $gettok($hget(clonetool,$2),5,46) }
:end | unset %329 | halt
}
#clonetool end