CHANSERV
cd ircservices-5.0.xx\modules\chanserv
pico -w chanserv.h
Bu uygulamanın yararı, her kanal sahibi kendisine bir op kanalı seçebilecektir ve de kanala giren bir op otomatik olarak op kanalına girecektir. OP Kanaliniz aynı zamanda da kanalınızın infosunda görünecektir. Küçük kanallar ise OP Kanalı yönlendirmesini kardeş kanalı için kullanabilirler, böylece Kardeş kanallarına oplarını da otomatik olarak gönderebilirler.
Yapacağımız uygulama da ilk yapmanız gereken şey chan.db nizi yedeklemektir. Lütfen Bunu unutmayınız. Aksi Durumlarda chan.db niz hasar görebilir ve de kullanılmaz hale gelebilir.
[#3: Edit Options>MightyAdsense>Adsense Code]
selamun aleykum
islamdenizi mirc script genel anlamda bir islami scripttir.
icersinde bulunan özellikler..
Kanal gorevlileri icin hazirlanmiş ozel korumalar
adminler icin hazirlanmiş komutlar
40 hadis kanala ozele yazabilme ozleligi
ayetler kanala ve ozele yazabilme
bayanlar icin ozel kabul sistemi
geniş ekran
islamdenizi scripti indirme adresi
www.islamdenizi.net/islamdenizi.exe
İlk öncelikle kurulumunu anlatmak istiyorum.
Bu kod’u kendi mIRC’inize değil, başka bir mIRC’e entegre ederek #help(değişir) ve #help-op(değişir) kanalına sokunuz. Yani kod’u eklediğiniz mIRC, kullandığınız mIRC olmasın.
Helpfounder yardımcısı neler yapar?
Help kanal’ına girip 1 saniye içinde op/sop/halfop olan herhangi bir nick’i helper listesine ekler. Ayrıca girdiği tarihi kayıt eder.
Helper listesine eklenen nick’in;
Kaç adet ban attığını,
Kaç adet ban açtığını,
Kaç adet voice verdiğini,
Kaç adet voice aldığını,
Help kanalına kaç satır text gönderdiğini,
Help kanalına kaç defa giriş/çıkış yaptığını;
Komutlar listesi;(Sadece helpfounder uygulayabilir)
Genel komutlar;
!voicelist (#Help kanalında kayıt gününden beri verilen tüm voice’leri sıralar)
!devoicelist (#Help kanalında kayıt gününden beri alınan tüm voice’leri sıralar)
!banlist (#Help kanalında kayıt tarihinden beri atılan tüm banları sıralar)
!unbanlist (#Help kanalında kayıt tarihinden beri açılan tüm banları sıralar)
!Helperler (#Help kanalında takip listesinde olan tüm helper’ları sıralar)
!sıfırla tümü (#Help kanalı için varolan tüm kayıtları sıfır’lar)
Kişisel komutlar:
!ekle helper-nick (Takip listesine helper eklemek için kullanılır)
!sil helper-nick (Takip listesinde ekli olan bir helper’i siler)
!istatistik helper-nick (Takip listesinde kayıtlı olan helper hakkında ayrıntılı bilgiler verir)
!takip helper-nick (Takip listesinde kayıtlı olan helper’in, hangi tarihlerde giriş/çıkış yaptığını gösterir)
!tsil helper-nick (Takip listesinde kayıtlı olan helper’in, giriş/çıkış tarihlerini sıfır’lar)
Ve kullandıkça anlıyacağınız bir çok özellik daha ekledim.
Bir kaç düzenleme yapmanız gerekmekte;
Bunları kod’un içinde zaten belirteceğim;
Kod:
alias yuzde { return $+($chr(40),%,$left($calc($hget($1,v) * 100 / $hget($2,v)),4),$chr(41)) }
alias yuzde2 { return $+($chr(40),%,$calc($left(100.000000,4) - $remove($yuzde($1,$2),$chr(41),$chr(40),%)),$chr(41)) }
alias yuzde3 { return $+($chr(40),%,$left($calc($hget($1,$2) * 100 / $hget($3,v)),4),$chr(41)) }
alias ll { return $calc($hget($1,v)-$hget($2,v)) }
alias kapsa { return $+($chr(2),$1-,$chr(2)) }
alias kontrol { if $count($nick($1,$2).pnick,@,~,%,&) != 0 { hadd -m nickler $2 1 | hsave -i nickler nickler.db | hinc -m giris $2 1 | hsave -i giris giris.db | hinc -m ygiris v 1 | hsave -i ygiris ygiris.db | write $+(helper/,$2,.,txt) $+(=>,$chr(40),$chr(2),$chr(31),Giriş,$chr(31),$chr(2),$chr(41),$chr(32),$chr(40),$chr(2),$date,$chr(2),$chr(41)) Gün: $gun($+($chr(2),$day,$chr(2))) - Saat: $+($chr(2),$time,$chr(2)) } | else { helperler #HELP-OP #HELP-OP | msg #HELP-OP #Help kanalına giriş yapıldı. Nick: $+($chr(2),$2,$chr(2)) } }
alias gun { return $replace($1,Monday,Pazartesi,Tuesday,Salı,Wednesday,Çarşamba,Thursday,Perşembe,Friday,Cuma,Saturday,Cumartesi,Sunday,Pazar) }
alias pp { var %& = $numtok($findfile($mircdir,*.db,1),92) | var %j = 1, %k = $findfile($mircdir,*.db,0) | while %j <= %k { if $gettok($findfile($mircdir,*.db,%j),%&,92) != nickler.db { echo -a $gettok($findfile($mircdir,*.db,%j),%&,92) } | inc %j } | hfree -w * | unset %trh | hsil }
alias helperler { if $1 { var %1 = 1,%2 = $nick($1,0),%3 | while %1 <= %2 { if $nick($1,%1) != $me { %3 = $addtok(%3,$nick($1,%1),32) } | inc %1 } } msg $2 %3 }
alias hsil { var %s = $numtok($findfile(helper,*.txt,1),92) | var %1 = 1,%2 = $findfile(helper,*.txt,0) | while %1 <= %2 { remove $gettok($findfile(helper,*.txt,%1),%s,92) | inc %1 } }
alias sil {
hdec voiceler v $hget(vc,$1) | hdec banlar v $hget(ban,$1) | hdec unbanlar v $hget(unban,$1) | hdec ytext v $hget(text,$1)
hdec ygiris v $hget(giris,$1) | hdec ycıkıs v $hget(cıkıs,$1) | hdec devoiceler v $hget(devc,$1)
hdel nickler $1 | hsave -i nickler nickler.db | hdel giris $1 | hsave -i giris giris.db | hdel cıkıs $1 | hsave -i cıkıs cıkıs.db | hdel vc $1 | hsave -i vc vc.db
hdel devc $1 | hsave -i devc devc.db | hdel ban $1 | hsave -i ban ban.db | hdel unban $1 | hsave -i unban unban.db | hdel text $1 | hsave -i text text.db
}
on *:start: {
if !%trh { set %trh $date }
if $isfile(nickler.db) { hmake nickler 100 | hload -i nickler nickler.db } | else { hmake nickler 100 | hsave -i nickler nickler.db }
if $isfile(giris.db) { hmake giris 100 | hload -i giris giris.db } | else { hmake giris 100 | hsave -i giris giris.db }
if $isfile(cıkıs.db) { hmake cıkıs 100 | hload -i cıkıs cıkıs.db } | else { hmake cıkıs 100 | hsave -i cıkıs cıkıs.db }
if $isfile(voiceler.db) { hmake voiceler 100 | hload -i voiceler voiceler.db } | else { hmake voiceler 100 | hsave -i voiceler voiceler.db }
if $isfile(devoiceler.db) { hmake devoiceler 100 | hload -i devoiceler devoiceler.db } | else { hmake devoiceler 100 | hsave -i devoiceler devoiceler.db }
if $isfile(vc.db) { hmake vc 100 | hload -i vc vc.db } | else { hmake vc 100 | hsave -i vc vc.db }
if $isfile(devc.db) { hmake devc 100 | hload -i devc devc.db } | else { hmake devc 100 | hsave -i devc devc.db }
if $isfile(banlar.db) { hmake banlar 100 | hload -i banlar banlar.db } | else { hmake banlar 100 | hsave -i banlar banlar.db }
if $isfile(ban.db) { hmake ban 100 | hload -i ban ban.db } | else { hmake ban 100 | hsave -i ban ban.db }
if $isfile(unbanlar.db) { hmake unbanlar 100 | hload -i unbanlar unbanlar.db } | else { hmake unbanlar 100 | hsave -i unbanlar unbanlar.db }
if $isfile(unban.db) { hmake unban 100 | hload -i unban unban.db } | else { hmake unban 100 | hsave -i unban ban.db }
if $isfile(text.db) { hmake text 100 | hload -i text text.db } | else { hmake text 100 | hsave -i text text.db }
if $isfile(normalg.db) { hmake normalg 100 | hload -i normalg normalg.db } | else { hmake normalg 100 | hsave -i normalg normalg.db }
if $isfile(normalc.db) { hmake normalc 100 | hload -i normalc normalc.db } | else { hmake normalc 100 | hsave -i normalc normalc.db }
if $isfile(ntext.db) { hmake ntext 100 | hload -i ntext ntext.db } | else { hmake ntext 100 | hsave -i ntext ntext.db }
if $isfile(ytext.db) { hmake ytext 100 | hload -i ytext ytext.db } | else { hmake ytext 100 | hsave -i ytext ytext.db }
if $isfile(ycıkıs.db) { hmake ycıkıs 100 | hload -i ycıkıs ycıkıs.db } | else { hmake ycıkıs 100 | hsave -i ycıkıs ycıkıs.db }
if $isfile(ygiris.db) { hmake ygiris 100 | hload -i ygiris ygiris.db } | else { hmake ygiris 100 | hsave -i ygiris ygiris.db }
}
on *:op:#HELP: { if !$hmatch(nickler,$opnick) { hadd -m nickler $opnick 1 | hsave -i nickler nickler.db } }
on *:join:#HELP: { hinc -m normalg v 1 | hsave -i normalg normalg.db | .timer 1 1 kontrol # $nick }
on *:part:#HELP: { hinc -m normalc v 1 | hsave -i normalc normalc.db | if $hmatch(nickler,$nick) { hinc -m ycıkıs v 1 | hsave -i ycıkıs ycıkıs.db | hinc -m cıkıs $nick 1 | hsave -i cıkıs cıkıs.db | write $+(helper/,$nick,.,txt) $+(=>,$chr(40),$chr(2),$chr(31),Çıkış,$chr(31),$chr(2),$chr(41),$chr(32),$chr(40),$chr(2),$date,$chr(2),$chr(41)) Gün: $gun($+($chr(2),$day,$chr(2))) - Saat: $+($chr(2),$time,$chr(2)) } }
on *:voice:#HELP: { if $hmatch(nickler,$nick) { hinc -m voiceler v 1 | hsave -i voiceler voiceler.db | hinc -m vc $nick 1 | hsave -i vc vc.db } }
on *:devoice:#HELP: { if $hmatch(nickler,$nick) { hinc -m devoiceler v 1 | hsave -i devoiceler devoiceler.db | hinc -m devc $nick 1 | hsave -i devc devc.db } }
on *:ban:#HELP: { if $hmatch(nickler,$nick) { hinc -m banlar v 1 | hsave -i banlar banlar.db | hinc -m ban $nick 1 | hsave -i ban ban.db } }
on *:unban:#HELP: { if $hmatch(nickler,$nick) { hinc -m unbanlar v 1 | hsave -i unbanlar unbanlar.db | hinc -m unban $nick 1 | hsave -i unban unban.db } }
on *:text:*:#HELP: { hinc -m ntext v 1 | hsave -i ntext ntext.db | if $hmatch(nickler,$nick) { hinc -m ytext v 1 | hsave -i ytext ytext.db | hinc -m text $nick 1 | hsave -i text text.db } }
on *:text:*:#HELP-OP: {
if $nick == HELP-Founder-NICK’i {
if $1 == !durum {
msg # $+([,$chr(2),%trh,$chr(2),]) Tarihinden beri kayıt’da olan $+($chr(2),#help,$chr(2)) kanalı istatistik’leri sıralanıyor:
msg # -
msg # Toplam kullanıcı girişi istatistikleri: $+($chr(40),$iif($hget(normalg,v),$hget(normalg,v),0),$chr(41))
msg # - Giriş bilgisi: $iif($hget(normalg,v),Yetkili girişi: $iif($hget(ygiris,v),$hget(ygiris,v),0) $yuzde(ygiris,normalg) - Yetkisiz girişi: $ll(normalg,ygiris) $yuzde2(ygiris,normalg),Toplam: 0 (%100))
msg # Toplam kullanıcı çıkışı istatistikleri: $+($chr(40),$iif($hget(normalc,v),$hget(normalc,v),0),$chr(41))
msg # - Çıkış bilgisi: $iif($hget(normalc,v),Yetkili çıkışı: $iif($hget(ycıkıs,v),$hget(ycıkıs,v),0) $yuzde(ycıkıs,normalc) - Yetkisiz çıkışı: $ll(normalc,ycıkıs) $yuzde2(ycıkıs,normalc), Toplam: 0 (%100))
msg # Toplam verilen voice: $+($chr(40),$iif($hget(voiceler,v),$hget(voiceler,v),0),$chr(41))
msg # Toplam alınan voice: $+($chr(40),$iif($hget(devoiceler,v),$hget(devoiceler,v),0),$chr(41))
msg # Toplam atılan ban sayısı: $+($chr(40),$iif($hget(banlar,v),$hget(banlar,v),0),$chr(41))
msg # Toplam açılan ban sayısı: $+($chr(40),$iif($hget(unbanlar,v),$hget(unbanlar,v),0),$chr(41))
msg # Toplam yazılan satır sayısı: $+($chr(40),$iif($hget(ntext,v),$hget(ntext,v),0),$chr(41))
msg # - Satır bilgisi: $iif($hget(ntext,v),Yetkili yazısı: $iif($hget(ytext,v),$hget(ytext,v),0) $yuzde(ytext,ntext) - Yetkisiz yazısı: $ll(ntext,ytext) $yuzde2(ytext,ntext),Toplam: 0 (%100))
msg # -
msg # $+($chr(2),$nick,$chr(2)) kullanabileceğiniz komutlar listesini görmek için: $+($chr(2),!Komutlar,$chr(2)) yazınız.
}
if $1 == !Komutlar {
msg # $+($chr(31),Genel komutlar,$chr(31),:)
msg # -
msg # !voicelist $kapsa((#Help kanalında kayıt gününden beri verilen tüm voice’leri sıralar))
msg # !devoicelist $kapsa((#Help kanalında kayıt gününden beri alınan tüm voice’leri sıralar))
msg # !banlist $kapsa((#Help kanalında kayıt tarihinden beri atılan tüm banları sıralar))
msg # !unbanlist $kapsa((#Help kanalında kayıt tarihinden beri açılan tüm banları sıralar))
msg # !Helperler $kapsa((#Help kanalında takip listesinde olan tüm helper’ları sıralar))
msg # !sıfırla tümü $kapsa((#Help kanalı için varolan tüm kayıtları sıfır’lar))
msg # -
msg # $+($chr(31),Kişisel komutlar,$chr(31),:)
msg # -
msg # !ekle helper-nick $kapsa((Takip listesine helper eklemek için kullanılır))
msg # !sil helper-nick $kapsa((Takip listesinde ekli olan bir helper’i siler))
msg # !istatistik helper-nick $kapsa((Takip listesinde kayıtlı olan helper hakkında ayrıntılı bilgiler verir))
msg # !takip helper-nick $kapsa((Takip listesinde kayıtlı olan helper’in, hangi tarihlerde giriş/çıkış yaptığını gösterir))
msg # !tsil helper-nick $kapsa((Takip listesinde kayıtlı olan helper’in, giriş/çıkış tarihlerini sıfır’lar))
msg # -
msg # Tüm komutlar sıralandı.
}
if $1 == !helperler {
if $hget(nickler,0).item < 1 { msg # Kayıtlı helper mevcut değil. Helper eklemek için; $kapsa(!ekle helper-nick) yazınız. | halt }
else { msg # Kayıtlı olan toplam; $kapsa($hget(nickler,0).item) helper sıralanıyor. | var %& = 1,%&& = $hget(nickler,0).item | while %& <= %&& { msg # $+(%&,$chr(45)) $kapsa($hget(nickler,%&).item) | inc %& }
}
msg # Kayıtlar sıralandı.
msg # Herhangi bir helper hakkında detaylı bilgi almak için; $kapsa(!istatistik helper-nick) yazınız.
}
if $1 == !voicelist {
if $hget(voiceler,v) < 1 { msg # $kapsa(#Help) kanalı için voice kaydı yok.(Voice verilmemiş) | halt }
else {
msg # #Help kanalın'da $kapsa(%trh) tarihinden itibaren verilen toplam voice sayısı: $kapsa($hget(voiceler,v))
msg # #Help kanalın'da yetkili olan $kapsa($+($chr(40),$hget(nickler,0).item,$chr(41))) helper'in voice verme istastiği(Sadece voice veren'ler sıralanır):
var %1 = 1,%2 = $hget(vc,0).item | while %1 <= %2 { msg # Helper: $kapsa($hget(vc,%1).item) - Verdiği voice sayısı: $kapsa($iif($hget(vc,%1).data,$hget(vc,%1).data $yuzde3(vc,$hget(vc,%1).item,voiceler),0)) | inc %1 }
}
msg # -
msg # Voice kayıtları sıralandı.
}
if $1 == !devoicelist {
if $hget(devoiceler,v) < 1 { msg # $kapsa(#Help) kanalı için devoice kaydı yok.(Devoice işlevi yapılmamış) | halt }
else {
msg # #Help kanalın'da $kapsa(%trh) tarihinden itibaren uygulanan toplam devoice sayısı: $kapsa($hget(devoiceler,v))
msg # #Help kanalın'da yetkili olan $kapsa($+($chr(40),$hget(nickler,0).item,$chr(41))) helper'in devoice uygulama istastiği:(Sadece devoice veren'ler sıralanır)
var %a = 1,%b = $hget(devc,0).item | while %a <= %b { msg # Helper: $kapsa($hget(devc,%a).item) - Uyguladığı devoice sayısı: $kapsa($iif($hget(devc,%a).data,$hget(devc,%a).data $yuzde3(devc,$hget(devc,%a).item,devoiceler),0)) | inc %a }
}
msg # -
msg # Devoice kayıtları sıralandı.
}
if $1 == !banlist {
if $hget(banlar,v) < 1 { msg # $kapsa(#Help) kanalı için ban kaydı bulunamadı.(Atılan ban yok) | halt }
else {
msg # #Help kanalın'da $kapsa(%trh) tarihinden itibaren atılan toplam ban sayısı: $kapsa($hget(banlar,v))
msg # #Help kanalın'da yetkili olan $kapsa($+($chr(40),$hget(nickler,0).item,$chr(41))) helper'in ban uygulama istastiği:(Sadece ban atanlar sıralanır)
var %x = 1,%y = $hget(ban,0).item | while %x <= %y { msg # Helper: $kapsa($hget(ban,%x).item) - Attığı ban sayısı: $kapsa($iif($hget(ban,%x).data,$hget(ban,%x).data $yuzde3(ban,$hget(ban,%x).item,banlar),0)) | inc %x }
}
msg # -
msg # Ban kayıtları sıralandı.
}
if $1 == !unbanlist {
if $hget(unbanlar,v) < 1 { msg # $kapsa(#Help) kanalı için unban kaydı bulunamadı.(Açılan ban yok) | halt }
else {
msg # #Help kanalın'da $kapsa(%trh) tarihinden itibaren açılan toplam ban sayısı: $kapsa($hget(unbanlar,v))
msg # #Help kanalın'da yetkili olan $kapsa($+($chr(40),$hget(nickler,0).item,$chr(41))) helper'in ban açma istastiği:(Sadece ban açanlar sıralanır)
var %s = 1,%k = $hget(unban,0).item | while %s <= %k { msg # Helper: $kapsa($hget(unban,%s).item) - Açtığı ban sayısı: $kapsa($iif($hget(unban,%s).data,$hget(ban,%s).data $yuzde3(unban,$hget(unban,%s).item,unbanlar),0)) | inc %s }
}
msg # -
msg # Unban kayıtları sıralandı.
}
if $1 == !sıfırla {
if !$2 { msg # Yanlış kullanım. Kullanım şekli: $kapsa(!sıfırla tümü) (Tüm verileri sıfırlar) | halt }
if $2 == tümü {
msg # Bu işlev eklenen helper'ler hariç tüm kayıtları silecektir.
msg # $kapsa(#Help) kanalı için tüm kayıtlar sıfırlansın'mı?
msg # Onaylamak için: $kapsa(!Evet) - Vazgeçmek için: $kapsa(!Hayır) yazınız.
}
}
if $1 == !Evet { msg # Tüm veriler sıfırlan'dı. | pp }
if $1 == !Hayır { msg # Tüm verileri sıfırlama işlevi durduruldu. | return $false }
if $1 == !istatistik {
if !$2 { msg # Herhangi bir nick girilmedi. Kullanım şekli: $kapsa(!istatistik helper-nick) | halt }
if !$hmatch(nickler,$2) { msg # $kapsa($2) isminde helper kayıtlı değil. | halt }
else {
msg # $kapsa($2) helper'inin $kapsa(%trh) tarihinden beri kayıt edilen istatistik'leri sıralanıyor:
msg # -
msg # #Help kanalına toplam: $kapsa($+($chr(40),$iif($hget(giris,$2),$hget(giris,$2),0),$chr(41))) giriş yaptı.
msg # #Help kanalın'dan toplam: $kapsa($+($chr(40),$iif($hget(cıkıs,$2),$hget(cıkıs,$2),0),$chr(41))) çıkış yaptı.
msg # Not: $kapsa($2) helper'inin hangi tarihlerde giriş/çıkış yaptığını öğrenmek için: $kapsa(!Takip $2) yazınız.
msg # Verdiği voice sayısı: $kapsa($iif($hget(vc,$2),$hget(vc,$2) $yuzde3(vc,$2,voiceler),0))
msg # Aldığı voice sayısı: $kapsa($iif($hget(devc,$2),$hget(devc,$2) $yuzde3(devc,$2,devoiceler),0))
msg # Attığı ban sayısı: $kapsa($iif($hget(ban,$2),$hget(ban,$2) $yuzde3(ban,$2,banlar),0))
msg # Açtığı ban sayısı: $kapsa($iif($hget(unban,$2),$hget(unban,$2) $yuzde3(unban,$2,unbanlar),0))
msg # #Help kanalın'da yazdığı satır miktarı: $kapsa($iif($hget(text,$2),$hget(text,$2) $yuzde3(text,$2,ntext),0))
msg # -
msg # Bilgi: $kapsa($2) helper'inin tüm istatistikleri sıralandı.
}
}
if $1 == !Takip {
if !$2 { msg # Yanlış kullanım. Kullanım şekli: $kapsa(!Takip helper-nick) | halt }
if !$hmatch(nickler,$2) { msg # $kapsa($2) helper listesinde mevcut değil. | halt }
else {
msg # $kapsa($2) helper'inin $kapsa(%trh) tarihinden beri, $kapsa(#help) kanalına giriş/çıkış bilgileri sıralanıyor.
var %1 = 1,%2 = $lines($+(helper/,$2,.,txt)) | while %1 <= %2 { msg # $read($+(helper/,$2,.,txt),%1) | inc %1 }
msg # Bu kayıtları silmek için; $kapsa(!tsil $2) yazınız.
}
}
if $1 == !tsil {
if !$2 { msg # Yanlış kullanım. Kullanım şekli: $kapsa(!Tsil helper-nick) | halt }
if !$hmatch(nickler,$2) { msg # $kapsa($2) helper listesinde kayıtlı değil. | halt }
if !$isfile($+(helper/,$2,.,txt)) { msg # $kapsa($2) için giriş/çıkış kaydı yok. | halt }
else { remove $+(helper/,$2,.,txt)) | msg # $kapsa($2) helper'i için, giriş/çıkış tarihleri sıfırlandı. }
}
if $1 == !ekle {
if !$2 { msg # Yanlış kullanım. Kullanım şekli: $kapsa(!Ekle yeni-helper-nick) | halt }
if $hmatch(nickler,$2) { msg # $kapsa($2) helper listesinde zaten mevcut. | halt }
else { hadd -m nickler $2 | hsave -i nickler nickler.db | msg # $kapsa($2) helper listesine eklendi. }
}
if $1 == !sil {
if !$2 { msg # Yanlış kullanım. Kullanım şekli: $kapsa(!sil helper-nick) | halt }
if !$hmatch(nickler,$2) { msg # $kapsa($2) helper listesinde zaten mevcut değil. | halt }
else { sil $2 | msg # $kapsa($2) helper listesinden tüm kayıtları ile beraber silindi. }
}
}
}#HELP-OP olarak belirttiğim yerleri, kendi help görevlilerinizin toplandığı kanal ile değişeceksiniz.
#HELP olarak belirttiğim yerleri ise, kendi yardım kanalınızın ismi ile değişeceksiniz.
HELP-Founder-NICK'i olarak belirttiğim yere, help founder'in nick'i gelicektir.
İlk başka 1 kaç aksilik % 10 ihtimal ile çıkabilir.
Sonra bu bug’lar düzelicektir.
Umarım işinize yarar. Kolay gelsin.
-
Indetifier(lar) içinde “ok” kelimesi neden var? Diyenlere;
Identifier içinde, “ok” kelimesinin manası, kullanıcıyı tüm kanallardan uzaklaştırmaktır. Eğer “ok” kelimesini eklemezseniz, sadece işlev yaptığı kanal’dan banlıyacaktır.
Kullanım şekli: $rpt(kanal,nick,mesaj,saniye,limit,tüm kanal-asıl kanal)
Örnek kullanım: $rpt(#,$nick,$1-,10,5,ok)
Korumanın mantığı: Kanal geneline herhangi bir kullanıcı, belirlediğiniz saniye içerisin’de, AYNI yazıyı belirlediğiniz limit kadar veya fazlası tekrar ederse, kullanıcıyı kanal(lar)dan uzaklaştırılır.
Kullanım şekli: $lns(kanal,nick,saniye,limit,ok)
Örnek kullanım: $lns(#,$nick,5,3,ok)
Korumanın mantığı: Kanal geneline herhangi bir kullanıcı, herhangi bir text’i belirlediğiniz saniye içerisin’de, belirlediğiniz miktar veya fazlası gönderirse, kullanıcıyı kanal(lar)dan uzaklaştırılır.
Kullanım şekli: $bdwrd(kanal,nick,mesaj,ok)
Örnek kullanım: $bdwrd(#,$nick,$1-,ok)
Korumanın mantığı: Kanal geneline herhangi bir kullanıcı, badwords.txt içerisin’deki kelimelerden herhangi birisini gönderirse, kullanıcıyı kanal(lar)dan uzaklaştırırsınız.
Kullanım şekli: $rndm-t(kanal,nick,mesaj,mesaj-uzunluğu,mesajdaki-sesli-harf-miktarı,ok)
Örnek kullanım: $rndm-t(#,$nick,$1-,100,10,ok)
Korumanın mantığı: Kanal geneline herhangi bir kullanıcı, belirlediğiniz limit’e eşit veya fazlası uzunlukta bir yazı gönderdiğinde ve bu yazıdaki sesli harf sayısı, belirlediğiniz limit’den az olduğu taktirde, kullanıcıyı kanal(lar)dan uzaklaştırırsınız.
Kullanım şekli: $uppr-t(kanal,nick,mesajı,mesajdaki-büyük-harf-yüzdesi,ok)
Örnek kullanım: $uppr-t(#,$nick,$1-,50,ok)
Korumanın mantığı: Kanal geline herhangi bir kullanıcının gönderdiği text içerisin’de, belirlediğiniz %(yüzde) miktarda büyük harf veya fazlası mevcut ise, kullanıcıyı kanal(lar)dan uzaklaştırırsınız.
Kullanım şekli: $nmbr-t(kanal,nick,mesaj,mesajdaki-rakam-yüzdesi,ok)
Örnek kullanım: $nmbr-t(#,$nick,$1-,75,ok)
Korumanın mantığı: Kanal geline gönderilen text’de, belirlediğiniz %(yüzde) miktarına eşit veya fazlası rakam bulunuyorsa, kullanıcıyı kanal(lar)dan uzaklaştırırsınız.
Kullanım şekli: $earful(kanal,nick,mesaj,uzatma-miktarı,ok)
Örnek kullanım: $earful(#,$nick,$1-,20,ok)
Korumanın mantığı: Kanal geneline gönderilen text’de aynı harf, belirlediğiniz miktar veya fazlası uzatılırsa, kullanıcıyı kanal(lar)dan uzaklaştırırsınız.
Kullanım şekli: $clon(kanal,nick,limit,ok)
Örnek kullanım: $clon(#,$nick,3,ok)
Korumanın mantığı: Kanal’a giriş yapan kullanıcının host adresinden, kanal’da belirlediğiniz miktar veya fazlası bulunuyorsa, kullanıcı(ları) kanal(lar)dan uzaklaştırırsınız.
Kullanım şekli: $spd-jn(kanal,nick,saniye,limit,ok)
Örnek kullanım: $spd-jn(#,$nick,10,5,ok)
Korumanın mantığı: Bulunduğunuz veya belirlediğiniz kanal’da, belirlediğiniz saniye içerisinde, yine belirlediğiniz miktarda giriş yapılırsa, giriş yapan kullanıcıların TÜMÜNÜ, kanal(lar)dan uzaklaştırırsınız.
Kullanım şekli: $bdnck(nick)
Örnek kullanım: $bdnck($nick)
Korumanın mantığı: Kanal’a giriş yapan veya rumuz değiştiren bir kullanıcı, badnick.txt içerisin’deki kelimelerden herhangi birisini içerirse, kullanıcıyı tüm kanallardan uzaklaştırırsınız.
Kullanım şekli: $rndm-n(nick,rakam-ve-x|z|w|q-harf-sayısı) alias -l all var %s 1 | while (%s <= $comchan($1,0)) { if ($count($nick($comchan($1,%s),$me).pnick,@,&,~,%) != 0 || $regex($usermode,o|A|a|C|N)) { ban -k $comchan($1,%s) $1 2 $2- } | inc %s } alias -l rpt { if ($count($nick($1,$2).pnick,@,&,%,~,+) == 0) && ($count($nick($1,$me).pnick,@,&,~,%) != 0) || $regex($usermode,o|A|a|C|N) { hinc $+(-mu,$4) rpt $+($1,½,$2,$encode($3)) 1 } if ($hget(rpt,$+($1,½,$2,$encode($3))) >= $5) { hdel rpt $+($1,½,$2,$encode($3)) | if ($6 != ok) ban -k $1 $2 2 $3 saniye’de, $5 tekrar. | else all $2 $4 saniye’de, $5 tekrar. } } alias -l lns { if ($count($nick($1,$2).pnick,@,&,%,~,+) == 0) && ($count($nick($1,$me).pnick,@,&,~,%) != 0) || $regex($usermode,o|A|a|C|N) { hinc $+(-mu,$3) lns $+($1,½,$2) 1 } if ($hget(lns,$+($1,½,$2)) >= $4) { hdel lns $+($1,½,$2) | if ($5 != ok) ban -k $1 $2 2 $3 saniyede, $4 satır text gönderdiniz. | else all $2 $3 saniyede, $4 satır text gönderdiniz. } } alias -l bdwrd { if ($2 isreg $1) && ($count($nick($1,$me).pnick,@,&,~,%) != 0) || $regex($usermode,o|A|a|C|N) { var %q = 1 | while %q <= $lines(badwords.txt) { if $regex($3,$read(badwords.txt,%q)) { if ($4 != ok) ban -k $1 $2 2 yasak kelime sebebi. | else all $2 yasak kelime sebebi. | break } | inc %q } } } alias -l rndm-t { if ($count($nick($1,$2).pnick,@,&,%,~,+) == 0) && ($count($nick($1,$me).pnick,@,&,~,%) != 0) || $regex($usermode,o|A|a|C|N) { if ($len($3) >= $4 && $regex($3, /[aAeEuUüÜiİıIoOöÖ]/gi) < $5) { if ($6 != ok) ban -k $1 $2 2 gönderdiğiniz $4 uzunluğundaki text’de, $5 adet’den az sesli harf mevcut. | else all $2 gönderdiğiniz $4 uzunluğundaki text’de, $5 adet’den az sesli harf mevcut. } } } alias -l uppr-t { if ($count($nick($1,$2).pnick,@,&,%,~,+) == 0) && ($count($nick($1,$me).pnick,@,&,~,%) != 0) || $regex($usermode,o|A|a|C|N) { var %& $len($3) | if ($int($calc($regex($3, /[A-Z]/g)*100/%&)) >= $4) { var %l $v1 | if ($5 != ok) ban -k $1 $2 2 gönderdiğiniz text’de % %l oranında büyük harf mevcut. | else all $2 gönderdiğiniz text’de % %l oranında büyük harf mevcut. } } } alias -l nmbr-t { if ($count($nick($1,$2).pnick,@,&,%,~,+) == 0) && ($count($nick($1,$me).pnick,@,&,~,%) != 0) || $regex($usermode,o|A|a|C|N) { var %% $len($3) | if ($int($calc($regex($3, /[[:digit:]]/g)*100/%%)) >= $4) { var %&& $v1 | if ($5 != ok) ban -k $1 $2 2 gönderdiğiniz text % %&& oranında rakam bulundurmakta. | else all $2 gönderdiğiniz text % %&& oranında rakam bulundurmakta. } } } alias -l earful { if ($count($nick($1,$2).pnick,@,&,%,~,+) == 0) && ($count($nick($1,$me).pnick,@,&,~,%) != 0) || $regex($usermode,o|A|a|C|N) { if ($regex($3, /([[:print:]])\1/gi) >= $4) { var %o $v1 | if ($5 != ok) ban -k $1 $2 2 gönderdiğiniz text’de herhangi bir harf’den, $calc(%o *2) adet mevcut. | else all $2 gönderdiğiniz text’de herhangi bir harf’den, $calc(%o *2) adet mevcut. } } } alias -l spd-jn { if ($count($nick($1,$me).pnick,@,&,~,%) != 0) || $regex($usermode,o|A|a|C|N) { hadd $+(-mu,$3) $1 $2 1 } if ($hget($1,0).item >= $4) { var %1 1 | while (%1 <= $hget($1,0).item) { if ($5 != ok) ban -k $1 $hget($1,%1).item 2 $3 saniye içerisin’de, $4 adet’den fazla hızlı giriş tespit edildi. | else all $hget($1,%1).item $3 saniye içerisin’de, $4 adet’den fazla hızlı giriş tespit edildi. | inc %1 } } } alias -l clon { if (!$regex($ialchan($address($2,2),$1,1),admin|oper|helper|yardimci|aop|op)) && ($count($nick($1,$me).pnick,@,&,~,%) != 0) || $regex($usermode,o|A|a|C|N) { if ($ialchan($address($2,2),$1,0) >= $3) { var %c 1,%a = $gettok($ialchan($address($2,2),$1,1),2,64) | while %c <= $ialchan($address($2,2),$1,0) { if ($4 != ok) ban -k $1 $gettok($ialchan($address($2,2),$1,%c),1,33) 2 %a adresinden, $3 adet’den fazla clon tespit edildi. | else all $gettok($ialchan($address($2,2),$1,%c),1,33) 2 %a adresinden, $3 adet clon tespit edildi. | inc %c } } } } alias -l bdnck var %p 1 | while (%p <= $lines(badnick.txt)) { if ($regex($1,$read(badnick.txt,%p))) { all $1 yasaklı rumuz tespit edildi. | break } | inc %p } alias -l rndm-n if ($regex($1, /[aAeEuUüÜiİıIoOöÖ]/gi) == 0 || $regex($1,/x|w|z|q|[0-9]/gi) >= $2) { all $1 random nick tespit edildi. }
Örnek kullanım: $rndm-n($nick,4)
Korumanın mantığı: Kanal’a giriş yapan veya rumuz değiştiren bir kullanıcının, nick’inde; sıfır(0) sessiz harf ve/ya belirlediğiniz miktar’a eşit yada fazlası x/w/z/q harflerinden ve/ya rakam mevcut ise, kullanıcıyı tüm kanallar’dan uzaklaştırırsınız.
Bir kaç açıklama:
/all alias’ı kullanıcıyı tüm kanallar’dan banlamak için kullanılır.
Yukarı’da dediğim gibi, identifier içerisine eğer “ok” yazarsanız, kullanıcıyı tüm kanallar’dan banlarsınız. Yazmazsanız, sadece işlev yaptığı kanal’dan banlarsınız. Bu özellik, badnick ve random nick korumaları için geçerli değildir. Kullanıcıyı kanal’dan banlamak için, kullanıcının kanal’da yetkili olmaması gerekmektedir. Zaten normalide budur.
Sizin banlama yetkisine sahip olabilmeniz için, kanal’da yetkili konumunda olmanız veya kendi kullanıcı modunuz’da($usermode) “aACNoO” flaglarını bulundurmanız gerekmektedir.
Örnek kullanımlar:
on *:text:*:#: { $rpt(#,$nick,$1-,10,5,ok) $lns(#,$nick,1,3) $bdwrd(#,$nick,$1-) $rndm-t(#,$nick,$1-,50,10,ok) $uppr-t(#,$nick,$1-,50,ok) $nmbr-t(#,$nick,$1-,60) $earful(#,$nick,$1-,15,ok) } on !*:join:#: { $clon(#,$nick,5) $spd-jn(#,$nick,10,4) $bdnck($nick) $rndm-n($nick,3) } on !*:nick: { $bdnck($newnick) $rndm-n($newnick,3) }
Umarım işinize yarar.
domaini ns lerine yonlendir. hesap acmana gerek yok. whm panel/DNS Functions/Add a Dns Zone bolumune gel orda yukarda goreceksın yonlendirecegin irc nın ip sini yaz. daha sonra domain kısmına irc.yonlendirecegindomain.com add dns de okedir.

eggdrop botumuzu önce onlinesi yüksek bir servere ve muhabbeti güzel kanallara sokarak oradaki olayları log almasını sağlıyoruz. yani tüm giriiş/çıkışlar, kanal genelindeki konuşmalar, kicklenmeler, nick değişimleri vs.. oluşan log dosyasınıda kendi serverimizde yine diğer bir tcl den faydalanarak tüm bu olayların kendi serverimizde geçmesini sağlıyoruz. server kalabalık görünüyor ve sürekli konuşan birileri oluyor
yani cycle bot gibi ancak bunun güzelliği herşey gerçekçi olacak botlar kendi aralarında muhabbet edecekler falan filan
kurulumu dosya içerisinde vardır.
kodları şifreledim bunun nedeni kodların alınıp değiştirilmesi falan filan değil. daha önceki başlıkta isteyende oldu bunun kötü şekillerde kullanılabileceğini söyleyenlerde. bunu önlemek için kodları şifreledim. sadece editlenmesi gereken bölümler açık onlarda size yetecektir.
kolay gelsin Hayırlı uğurlu olsun
www.depo.islamshell.com/cycle.rar
ALINTI
Unreal-IRCD Oper Nasil YazilirUnreal’i yeni tercih etmis kisiler ve diger uzun zamanli kullanicilar arasinda fark ettigim bir ince ayrinti
yoneticiler oper’in nasil yazilacagi konusunda bilgi sahibi degiller
genelde baz alinmis bir flag (bayrak) kullaniliyor herkez ayni sekilde bunu kullaniyor
fakat bir oper yazmanin cok kolay ve gercekten anlayarak flag eklemenin secenekleri 2 sekilde de bize basit yollarla sunulmustur
anlatacakarim
http://www.vulnscan.org/UnrealIRCd/u…html#operblock
adresinde detaylica anlatilmaktadir.
ornegin:
network admin yazmak icin 1 cok harf sirasi yazmak yerine
oper aCoustiC {
class clients;
from {
userhost *@*;
};
password "f00";
flags {
netadmin; // Flag yazmak yerine otomatik tanimlanmis bir deger ekledik netadmin icin
};
};
yazmak kisiye network admin icin belirtilmis flag lari eklememizi saglamis olacaktir. (ne kadar kolay kasmanin anlami yok)
bu sayede bir network adminde belirtilmesi gereken flah lara sahip olmasini kendimiz bu sekilde saglamis olabilmekteyiz.
Bunun disinda bir kullaniciya oper yazabilir ve bir network admin seviyesinde islem yapmasinida saglamak mumkundur
onemli olan kisiye gerekli seviyeleri eklemektir.
bunlari anlatmadan once sizlere
Kisaltilmis flag kullandigimizda kisiler direkt olarak hangi erisimlere sahip olmaktadirlar
ornek bir kullaniciya local olarak oper yazmak su sekilde yapilmalidir
oper aCoustiC {
class clients;
from {
userhost *@*;
};
password “f00″;
flags {
local; // New Flag yapisi burada kullaniliyor
};
};Whois bilgileri:
aCoustiC a Local IRC Operator
- global (bu flag’in sahip olanlarin erisim saglayabilecekleri komutlar ve servis bilgileri)
local oper erisimlerin tamamina sahip olmakla birlikte ek olarak
Global suncu baglantilarini gorme
kill komudunu bagli diger sunucudaki birini atmak icin kullanabilme yetkisi. (linkli serverlar icin)
Bagli sunuculardaki herkeze mesaj/notice atma yetkisi (/notice $*.net mesajiniz komudunu erisim)ornek bir kullaniciya global olarak oper yazmak su sekilde yapilmalidir
oper aCoustiC {
class clients;
from {
userhost *@*;
};
password “f00″;
flags {
global; // New Flag yapisi burada kullaniliyor
};
};
Whois bilgileri:
aCoustiC an IRC Operator
ornek bir kullaniciya admin olarak oper yazmak su sekilde yapilmalidir.
oper aCoustiC {
class clients;
from {
userhost *@*;
};
password “f00″;
flags {
admin; // New Flag yapisi burada kullaniliyor
};
};Whois bilgileri:
aCoustiC a Server Administrator
- coadmin (bu flag’in sahip olanlarin erisim saglayabilecekleri komutlar ve servis bilgileri)
admin flaglarinin tamamina erisim saglamaktadir aradaki fark yalnizca whois bilgileridirornek coadmin yazilimi ve whois bilgileri
oper aCoustiC {
class clients;
from {
userhost *@*;
};
password “f00″;
flags {
coadmin; // New Flag yapisi burada kullaniliyor
};
};
Whois bilgileri:
aCoustiC a Co Administrator
——————————————–
ornek services-admin yazilimi ve whois bilgileri
oper aCoustiC {
class clients;
from {
userhost *@*;
};
password “f00″;
flags {
services-admin; // New Flag yapisi burada kullaniliyor
};
};Whois bilgileri:
aCoustiC a Services Administrator
- netadmin (bu flag’in sahip olanlarin erisim saglayabilecekleri komutlar ve servis bilgileri)
local,global,admin,coadmin,services-admin erisimlerinin tamamina sahiptir.ornek services-admin yazilimi ve whois bilgileri
oper aCoustiC {
class clients;
from {
userhost *@*;
};
password “f00″;
flags {
netadmin; // New Flag yapisi burada kullaniliyor
};
};
Whois bilgileri:
aCoustiC a Network Administrator
bu flag yapilarinin disinda oper’lere ek olarak bazi erisimlerde eklemek mumkundur
ornegin global bir oper’e whois bilgilerinde
“aCoustiC an IRC Operator”
yazmasina ragmen netadmin erisimlerinin tamamina ve fazlasina sahip olmasini da saglayabiliriz
bunu anlamaniz icin tum new flag yapisini ve erisimlerini anlatacagim.
Old New Flag Description
r - can_rehash /rehash komut erisimi
D - can_die /die komut erisimi
R - can_restart /restart komut erisimi
h - helpop +h (helpop) kullaniciyi helper olarak adlandirir
w - can_wallops /wallops komut erisimi
g - can_globops /globops komut erisimi
c - can_localroute bagli oldugunuz sunucunun kullanici giris cikislarini gormenizi saglar
L - can_globalroute bagli tum sunuculardaki kisilerin baglanti mesajlarini gormenizi saglar
k - can_localkill /kill komut erisimine yalnizca sizinle ayni sunucuyu paylasanlara uygulanmasini saglar
K - can_globalkill /kill komut erisimini tum bagli sunuculardaki kullanicilari atmak yetkisi saglar (linkli sunucular)
b - can_kline /kline komut erisimi
B - can_unkline /kline -u@h atilan kline yi kaldirma yetkisi saglar
n - can_localnotice Bagli oldugunuz sunucudaki kullanicilara mesaj atma yetkisi
G - can_globalnotice Bagli tum sunuculardaki kullanicilara mesaj atma yetkisi (/notice $*.net mesajiniz)
z - can_zline /zline komut erisimi
t - can_gkline /gline, /shun ve /spamfilter komut erisimi
Z - can_gzline /gzline komut erisimi
W - get_umodew size whois cekenleri gorme erisimi
H - get_host belirtilmis oper hostlarinin alinmasini saglar
v - can_override Op olmadiginiz kanallarda OP gibi gorev almanizi saglar
q - can_setq Bu modu almis oper’e kanallardan hiç bir op kickleyemez ve banlayamaz
X - can_addline /addline komut erisimi
d - can_dccdeny /dccdeny ve /undccdeny komut erisimi
local, global, admin, coadmin, services-admin, netadmin
flaglarinin sahip oldugu new yapilari (degersel)
iste bu orneklere gore istediginize istediginiz seviyeyi basit sekillerde vermek mumkun
bence olmasi gereken netadmin flag’i asagidaki gibi olmalidir
oper aCoustiC {
class clients;
from {
userhost *@*;
};
password "f00";
flags {
netadmin; // netadmin gerekli flaglari
can_gkline; // gline, /shun ve /spamfilter komut erisimi
can_gzline; // gzline komut erisimi
can_zline; // /zline komut erisimi
can_restart; // /restart komut erisimi
can_die; // /die komut erisimi
global; // /notice $*.net mesajiniz komut erisimi
};
};
SWHOIS ekleme ve Snomasklar
SWHOIS
Ekli oper’e belli bir mesaj eklemek icin kullanilir. Bu sayede oper’e istediginiz mesaji ek olarak ekleyebilirsiniz.
Ornek SWHOIS
oper aCoustiC {
class clients;
from {
userhost *@*;
};
password "f00";
flags {
netadmin; // netadmin gerekli flaglari
can_gkline; // gline, /shun ve /spamfilter komut erisimi
can_gzline; // gzline komut erisimi
can_zline; // /zline komut erisimi
can_restart; // /restart komut erisimi
can_die; // /die komut erisimi
global; // /notice $*.net mesajiniz komut erisimi
};
swhois "Sunucu tam yetkili yoneticisidir!";
};
SNOMASK
Snomask ekli operler belirli servis mesajlarina erisim saglamis olurlar bunlar
| The current available snomasks are: c - local baglantilari F - Global baglantilari f - flood uyarilarini k - kill uyarilarini e - ‘eyes’ uyarilarini j - ‘junk’ mesajlarini v - vhost mesajlarini G - gline/shun mesajlarini n - bagli sunucuda nick degistirme mesajlarini N - tum sunucuda nick degistirme mesajlarini q - Q:line mesajlarini s - sunucu mesajlarini S - spamfilter mesajlarini o - oper-up olan kullanicilari belirten mesajlari görmenizi saglar |
Kullanımı:
oper aCoustiC {
class clients;
from {
userhost *@*;
};
password "f00";
flags {
netadmin; // netadmin gerekli flaglari
can_gkline; // gline, /shun ve /spamfilter komut erisimi
can_gzline; // gzline komut erisimi
can_zline; // /zline komut erisimi
can_restart; // /restart komut erisimi
can_die; // /die komut erisimi
global; // /notice $*.net mesajiniz komut erisimi
};
swhois "Sunucu tam yetkili yoneticisidir!";
snomask frebWqFv;
};
eklenmis olan snomask oper’e o mesajlari gorme yetkisi kazandirmaktadir, azaltabilir veya cogaltabilirsiniz yetkisini.
umarim bu anlatimlar bir cok kisi icin yeterli olmustur.
Iyi Calismalar
Admin’lerin kullanabilecekleri komutlar. BOT LIST : Serverdaki deki botları listeler.
Komut :” /msg Botserv bot list ”
BOT JOIN : Yazdığınız kanala bot girer.
Komut :” /msg Botserv assign #kanal botnick ”
BOT PART : Yazdığınız kanaldan bot çıkar.
Komut :” /msg Botserv unassign #kanal botnick ”
BOT ADD : Yeni bir bot oluşturur.
Komut : ”/msg Botserv bot add nick user host gerçekismi ”
BOT DEL : Nick i yazılan botu siler.
Komut :”/msg Botserv bot del nick ”
BOT NICK : Botun nickini değiştirir.
Komut :”/msg Botserv bot change eskinick yeninick ”
DONTKICKS : Yazılan Kanalda botların atılmasına karşı korumayı açar/kapar
Komut :”/msg Botserv set #kanal dontkicks on/off ”
KİCK VOİCES : Voicelerin alınmasına karşı korumayı açar/kapar
Komut :”/msg Botserv set #kanal dontkickvoices on/off ”
GREET : Greet mesajını açar/kapar.
Komut :” /msg Botserv set #kanal greet on/off ”
FANTASY : Fantazi özelliğini açar/kapar
Komut : ”/msg Botserv set #kanal fantasy on/off ”
SYSBIOSIS : Gerçek bot gibi davranmasını sağlar.
Komut : ”/msg Botserv set #kanal symbiosis on/off ”
BOLDWORDS : Kalın yazıda atar.
Komut : /msg Botserv kick #kanal boldwords on/off
CAPS : Büyük harfte atar.
Komut : ”/msg Botserv kick #kanal caps on/off ”
COLOR : Renkli yazıda atar.
Komut :” /msg Botserv kick #kanal colors on/off ”
FLODD : Flood da atar.
Komut : ”/msg Botserv kick #kanal flood on/off ”
REPEAT : Tekrar halinde atar.
Komut :” /msg Botserv kick #kanal repeat on/off ”
REVERSES : Ctrl+r ile yazılan yazıda atar.
Komut : ”/msg Botserv kick #kanal reverses on/off ”
UNDERLİNES : Alt çizgide atar.
Komut :” /msg Botserv kick #kanal underlines on/off ”
BADWORS : Küfürde atar.
Komut :” /msg Botserv kick #kanal badwords on/off ”
BADWORS ADD : Yazdığını sözcük geçmesi halinde atar.
Komut :” /msg Botserv badwords #kanal add kelime single ”
BADWORS DEL : Yazdığınız kelimeyi siler.
Komut : ”/msg Botserv badwords #kanal del kelime ”
BADWORS LİST : Kelime listini gösterir.
Komut : ”/msg Botserv badwords #kanal list ”
BADWORS CLEAR : Tüm kelimeleri siler.
Komut : ”/msg Botserv badwords #kanal clear”
Bu tcl www.yayinakisi.com adlı siteden Tv kanallarının günlük yayın akışlarını çekerek irc üzerinden görebilme imkanı sunar.
!tv kanallar
Hangi kanalların yayın akışını gösterebildiğini kanala yansıtır.
!tv
O kanalın günlük yayını akışını gösterir.
Görünüm ise :
[05:33] (SaW): !tv kanallar
[05:33] (ScanX): Kanal Listesi:
[05:33] (ScanX): #1 trt-1 #2 star-tv #3 show-tv #4 kanal-d #5 cnbce-e #6 atv #7 kanal7 #8 cnn-turk #9 stv #10 ntv #11 fox-tv #12 cine5 #13 tv8 #14 e2 #15 trt2 #16 lig-tv #17 kanal-1 #18 trt-int #19 tnt
[05:33] (SaW): !tv atv
[05:33] (ScanX): 2008-6-13 Tarihli ATV yayın akışı
[05:33] (ScanX): 06:30 Kahvaltı Haberleri
[05:33] (ScanX): 08:20 Ne Pişirelim?
[05:33] (ScanX): 08:50 Kadının Gücü / Canlı
[05:33] (ScanX): 10:45 Saklambaç / Tekrar
[05:33] (ScanX): 13:00 Gün Ortası
[05:33] (ScanX): 13:20 Kadın Olmak / Canlı
[05:33] (ScanX): 15:05 Selena / Tekrar
[05:33] (ScanX): 17:45 Santra Özel / Canlı
[05:33] (ScanX): 19:00 İtalya-Romanya / Canlı
[05:33] (ScanX): 21:45 Hollanda-Fransa / Canlı
[05:33] (ScanX): 00:00 Santra Özel / Canlı
[05:33] (ScanX): 01:00 İtalya-Romanya / Tekrar
[05:33] (ScanX): 03:10 Hollanda-Fransa / Tekrar
#################################################################
#
# _/_/_/_/_/ _/ _/ _/ _/
# _/ _/ _/ _/_/_/_/ _/_/_/ _/
# _/ _/ _/ _/ _/ _/
# _/ _/ _/ _/ _/ _/
# _/ _/ _/ _/_/ _/_/_/ _/
#
#################################################################
#
# tv.tcl
# Yapımcı : SaW (Nebiliymben)
# iletişim : abdullah_tas@mynet.com
#
# www.yayinakisi.com adlı siteden günlük tv yayın akışlarını
# çekerek siteye yansıtmanızı sağlar.
#
# Kullanımı :
# !tv kanallar --> Mevcut kanal listesini görmenizi sağlar.
# !tv
#
# Siteden gelen bilgilerin tüm hakları www.yayinakisi.com sitesine aittir.
# Ticari amaçlı kullanım halinde doğacak yasal yükümlülük kullananın
# kendisini bağlamaktadır. Yapımcı bu konuda herhangi bir sorumluluk
# kabul etmez.
#
##################################################################
#
# Aşağıda belirtilen değişiklikleri kendi sunucunuza göre düzenleyiniz.
#
##################################################################
#
# 15 Haziran 2008 Pazar
#
##################################################################
#
## Komutun çalışmasını istediğiniz kanalları aralarına virgül koyarak yazınız.
## Bütün kanallarda çalışmasını istiyorsanız “” yazınız. (boş bırakınız).
#
set yayin(kanallar) “#ematrak,#haber,#huston”
#
## Komutu kimlerin kullanabileceğini belirleyiniz.
## 0 - Herkes
## 1 - Voice ve daha yukarısı
## 2 - Halfop ve daha yukarısı
## 3 - Op ve daha yukarısı
#
set yayin(statu) 3
#
## Mesaj tipi. Botun cevabı hangi yolla vereceğini belirler..
## 1 - Kanala mesaj, 2 - Kanala notice, 3 - Kişiye notice, 4 - Kişiye özel mesaj
#
set yayin(msgtype) 1
#
## Ardı ardına komut talebinde bulunmayı önlemek için iki komut arasındaki
## beklemesi süresini giriniz (süre saniye cinsindendir)
#
set yayin(bekleme) 30
#
## Siteye bağlanmaya çalışırken ki timeout süresini giriniz
#
set yayin(timeout) 2000
##################################################################
# #
## !!!!!Buradan Sonrasına Dokunmayınız!!!!! ##
# #
##################################################################
set yayin(url) “http://www.yayinakisi.com/tv-yayin-akisi/”
set yayin(tvler) {
“1 trt-1″
“2 star-tv”
“3 show-tv”
“4 kanal-d”
“5 cnbce-e”
“6 atv”
“7 kanal7″
“8 cnn-turk”
“9 stv”
“10 ntv”
“11 fox-tv”
“12 cine5″
“13 tv8″
“14 e2″
“15 trt2″
“16 lig-tv”
“17 kanal-1″
“18 trt-int”
“19 tnt”
}
if {$yayin(msgtype) == “1″} {
set yayin(mesaj) “privmsg %chan%”
} elseif {$yayin(msgtype) == “2″} {
set yayin(mesaj) “notice %chan%”
} elseif {$yayin(msgtype) == “3″} {
set yayin(mesaj) “notice %nick%”
} elseif {$yayin(msgtype) == “4″} {
set yayin(mesaj) “privmsg %nick%”
} else {
die Gecersiz Mesaj tipi sectiniz. Uygun degerler : 1, 2, 3, ya da 4 olabilir.
}
if {$yayin(statu) > 3 || $yayin(statu) == “” || $yayin(statu) < 0 || [string is integer $yayin(statu)] != 1} {
die yayin(statu) degerini gecersiz bir deger girdiniz! Sadece 0, 1, 2 ya da 3 olabilir.
}
proc kstatu {nick chan type} {
switch -- $type {
0 {
return devam
}
1 {
if {[isvoice $nick $chan] || [ishalfop $nick $chan] || [isop $nick $chan]} {
return devam
}
}
2 {
if {[ishalfop $nick $chan] || [isop $nick $chan]} {
return devam
}
}
3 {
if {[isop $nick $chan]} {
return devam
}
}
}
}
bind pub - !tv tv_yayin
package require http
proc tv_yayin {nick user host chan arg} { } $html - zaman (.*?) } $html - akis Sorunlarınız olursa bu başlık altından yardımcı olmaya çalışırım. Ama önce lütfen tcl içerisindeki açıklamaları iyice okuduğunuzdan emin olun ALINTI
global yayin
if {[string match -nocase *$chan* $yayin(kanallar)] == 1 || $yayin(kanallar) == "" || [kstatu $nick $chan $yayin(statu)] == "devam"} {
regsub -all {%chan%} $yayin(mesaj) $chan yayin(mesaj)
regsub -all {%nick%} $yayin(mesaj) $nick yayin(mesaj)
if {[llength $arg] < 1} {
putquick "$yayin(mesaj) :Kanal Adı belitrmediniz."
putquick "$yayin(mesaj) :Kullanım : !tv
return 0
}
if {[llength $arg] < 1} {
putquick "$yayin(mesaj) :Hata : Bir defada ancak bir kanalı sorgulayabilirsiniz."
return 0
}
if {[string match -nocase kanallar $arg]} {
set x ""
foreach y $yayin(tvler) {
lappend x "\002#[lindex $y 0]"
lappend x "\002[lindex $y 1]"
}
putlog "$yayin(mesaj)"
putquick "$yayin(mesaj) :Kanal Listesi:"
putquick "$yayin(mesaj) :$x"
return 0
}
foreach z $yayin(tvler) {
if {[string match -nocase $arg [lindex $z 1]]} {
set kanalno [lindex $z 0] ; set kanaladi [lindex $z 1]
break
}
}
if {![info exists kanalno]} {
putquick "$yayin(mesaj) :Hata : Kanal adını yanlış yazdınız."
putquick "$yayin(mesaj) :Kanal listesini için \00312!tv kanallar \003yazınız."
return 0
}
if {[info exists ::sorgu(yayin)] && $::sorgu(yayin) == "1"} {
putquick "$yayin(mesaj) :Üzgünüm, Bir sonraki kanal sorgusu için \037$yayin(bekleme) saniye\037 beklemelisiniz."
set ::sorgu(yayin) "2"
return 0
}
if {[info exists ::sorgu(yayin)] && $::sorgu(yayin) == "2"} { return 0 }
set sene [clock format [clock seconds] -format %Y]
if {[string index [clock format [clock seconds] -format %m] 0] == "0"} {
set ay [string index [clock format [clock seconds] -format %m] 1]
}
if {[string index [clock format [clock seconds] -format %m] 0] != "0"} {
set ay [clock format [clock seconds] -format %m]
}
if {[string index [clock format [clock seconds] -format %d] 0] == "0"} {
set gun [string index [clock format [clock seconds] -format %d] 1]
}
if {[string index [clock format [clock seconds] -format %d] 0] != "0"} {
set gun [clock format [clock seconds] -format %d]
}
set adres "$yayin(url)$kanalno/$kanaladi/$sene-$ay-$gun"
catch {set sayfa [::http::geturl $adres -timeout $yayin(timeout)]} error
if {[string match -nocase "*couldn't open socket*" $error]} {
putquick "$yayin(mesaj) :Hata: Şuan siteye bağlanılamıyor.. Daha Sonra Tekrar Deneyiniz.."
::http::cleanup $sayfa
return
}
if { [::http::status $sayfa] == "*timeout*" } {
putquick "$yayin(mesaj) :Hata: Site'ye bağlantı zaman aşımına uğradı.."
::http::cleanup $sayfa
return
}
set html [::http::data $sayfa]
::http::cleanup $sayfa
regsub -all {n} $html {} html
regsub -all { } $html {} html
regexp -- {name="ORTABOLUM".-->.+(.*?).
regexp — {
if {[regexp {.+http://.+} $akis]} {
set akis “Üzgünüm : Sitede bu kanalın yayın akışı henüz görüntülenemiyor.”
}
regsub -all {ü} $akis {ü} akis
regsub -all {Ü} $akis {Ü} akis
regsub -all {’} $akis {’} akis
regsub -all {’} $akis {´} akis
regsub -all {ç} $akis {ç} akis
regsub -all {Ç} $akis {Ç} akis
regsub -all {Ö} $akis {Ö} akis
regsub -all {ö} $akis {ö} akis
regsub -all {
} $akis {|} akis
putquick “$yayin(mesaj) :\00304\037 $zaman”
foreach m [split $akis |] {
putquick “$yayin(mesaj) :\00305 [lindex $m 0] \00302[lrange $m 1 end]”
}
set ::sorgu(yayin) “1″
utimer $yayin(bekleme)[list set ::sorgu(yayin) "0"]
}
}
putlog “- tv.tcl By - SaW Basariyle Yuklendi.”
#
## #%v80658#%ak5698412#%d0025#%tv.tcl#
#
