CR2.1 sistemli bir serverde kanala saldırı yapıldıgı anda serverin bu saldırılara karşı etkili tek kanal kipi +R (yani registersiz nicklerin girişini durdurmak) , fakat saldırmakta inat eden kişiler nicklerini kayıt ederek kanala girebilmekte ve amacını gerçekleştirmektedir... Bu durumdaki zayıflıktan yola çıkarak, userlerin kanala girebilmeleri için nick kayıt tarihlerini kotrol ederek 1,2,3,4... gün önceden kayıt altına alınmış olması gerektigi şartını koyabiliriz....
komutunu kullanabilirsiniz.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
;#####################################################
;# +Ro $me
;# Code by SpecifiC
;# start /SpecifiC ;)
;#####################################################
dialog regtime {
title "RegTime"
size -1 -1 115 42
option dbu
list 1, 3 16 50 21, size
box "", 2, 0 -1 115 42
edit "", 3, 3 6 50 10
edit "", 4, 90 15 17 10
check "Korumayı aktif et", 5, 58 5 53 10
text "Gün", 6, 75 16 13 8
button "KaytEt", 7, 78 28 30 10, OK
button "+", 8, 57 16 10 9
button "-", 9, 57 27 10 9
}
on *:dialog:regtime:*:*: {
if $devent == sclick {
;###### DİKKAT BURADA (SA)MODE Kullanılıyor
;###### samode $did(3) +Ro $me
;###### op için üstteki kpd yerine
;###### cs op $did(3) $me
;###### yapılabilir :)
if $did == 8 { if !$istok(%chans,$did(3),44) { set %chans $addtok(%chans,$did(3),44) | did -a $dname 1 $did(3) | sajoin $did(3) | samode $did(3) +Ro $me | did -r $dname 3 } }
if $did == 9 { if $istok(%chans,$did(1).seltext,44) { set %chans $remtok(%chans,$did(1).seltext,44) | samode $did(1).seltext -Ro $me | did -d $dname 1 $did(1).sel } }
if $did == 5 { if ($did(5).state == 1) { did -e $dname 4,6 | set %Spec on } | else { did -b $dname 4,6 | set %Spec off } }
if $did == 7 { set %gun $did(4) }
}
if $devent == init {
if %Spec == on { did -c $dname 5 | did -e $dname 4,6 } | else { did -b $dname 4,6 }
did -a $dname 4 %gun
var %n $numtok(%chans,44)
while %n {
did -a $dname 1 $gettok(%chans,%n,44)
dec %n
}
}
}
alias specific { if !$dialog(regtime) { dialog -m regtime regtime } }
alias infocek { if $hget(joinnick,1).item != $null { .set %aktifnick $hget(joinnick,1).item | .ns info $hget(joinnick,1).item | .hdel joinnick $hget(joinnick,1).item } }
alias infocek2 { if $hget(joinnick,1).item == $null { .hadd -m joinnick $1 $2 | .set %aktifnick $1 | .ns info $1 } | else { .hadd -m joinnick $1 $2 } }
;Nick notice control
on *:notice:*:?: { if $nick == NickServ && %Spec == on { if *Time registered :* iswm $1- { tarihbak $4 } | if *End of nick info* iswm $1- { .hdel joinnick %aktifnick | infocek } } }
;START HASH TABLE AND DAY(S)
on *:start: { if $hget(joinnick) == $null { hmake joinnick 1000 } | if %gun == $null { set %gun 1 } }
;EVENT join/part
on !*:join:$(%chans): { if %Spec == on { infocek2 $nick $chan } }
on !*:part:$(%chans): { if $hget(joinnick,$nick) { .hdel joinnick $nick } }
;############################################
;DATE Control
;############################################
alias tarihbak {
var %t = $+($gettok($1,2,47),/,$gettok($1,1,47),/,$gettok($1,3,47))
if $ctime(%t) >= $calc($ctime - $calc(86400 * %gun)) {
if $me isop $hget(joinnick,%aktifnick) {
mode $hget(joinnick,%aktifnick) +bb %aktifnick $address(%aktifnick,2)
kick $hget(joinnick,%aktifnick) %aktifnick Bu kanala girebilmek için rumuzunuzun %gun gün önceden kayıtlı olması gerekmektedir.
}
}
}
;##### End code.