IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   TCL Scriptler (https://www.ircforumlari.net/tcl-scriptler/)
-   -   !ban-!unban-!kick-!op-!deop vs... Kodları (https://www.ircforumlari.net/tcl-scriptler/40198-ban-unban-kick-op-deop-vs-kodlari.html)

CanCeL 31 Ekim 2007 00:11

!ban-!unban-!kick-!op-!deop vs... Kodları
 
İşe yarar diye düşündüm bu kodu yazdım.
Bu komutları sadece oda Operatorleri kullanabilir.
Kod:

###########################
# Hazırlayan by: CanCeL
###########################
bind pub - !ban banned
#PROC
proc banned {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putquick "samode $chan +b $text"
putquick "privmsg $chan : $text Basariyla Banlandi $nick"
}
bind pub - !unban ubanned
#PROC
proc ubanned {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putquick "samode $chan -b $text"
putquick "privmsg $chan : $text Basariyla Banı Kaldırıldı $nick"
}
bind pub - !kick kicked
#PROC
proc kicked {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putquick "kick $chan $text Aykırı Davranış!"
putquick "privmsg $chan : $text Odadan uzaklastırıldı $nick"
}
bind pub - !kb kban
#PROC
proc kban {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putquick "samode $chan +b $text"
putquick "kick $chan $text Aykırı Davranış!"
putquick "privmsg $chan : $text Odadan banlanıp uzaklastırıldı $nick"
}
bind pub - !voice vops
#PROC
proc vops {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putquick "samode $chan +v $text"
putquick "privmsg $chan : $text Voice konumuna cıkarıldı. $nick"
}
bind pub - !devoice dvop
#PROC
proc dvop {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putquick "samode $chan -v $text"
putquick "privmsg $chan : $text Voice konumundan indirildi. $nick"
}
bind pub - !op top
#PROC
proc top {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putquick "samode $chan +o $text"
putquick "privmsg $chan : $text Operator Konumuna Cıkarıldı $nick"
}
bind pub - !deop deop
#PROC
proc deop {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putquick "samode $chan -o $text"
putquick "privmsg $chan : $text Operator Konumundan Indirildi. $nick"
}
bind pub - !temizle clear
#PROC
proc clear {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :."
putquick "PRIVMSG $chan :Oda Ekranı Temizlendi $nick !"
}

Komutlar:
!ban <nick>
!unban <nick>
!kick <nick>
!kb <nick>
!op <nick>
!deop <nick>
!voice <nick>
!devoice <nick>
!temizle


Botun daha hızlı işlem yapması için;

SHH'ye login olun ve;
cd egg*1*
cd src
cd mod
cd server.mod
pico server.c
Açılan dosyada
#define msgrate 2
satırını bulup
#define msgrate 0
Şeklinde değiştirip ctrl +x + y basarak (kaydeder) çıkıyorsunuz. Daha sonra:
cd
cd egg*1*
yazıp açılan dizinde sırasıyla
./configure
make config
make
make install

DipNot: Test ettim gayet güzel çalışıyor, CR'de kullanılan komutları ekledim (!ban-!unban) Unrealda kullanacak olanlar "samode $chan" yazan yerlere "os mode $chan" yapması yeterli olacak. Ayrıca botun !kb/kick gibi komutları kullanması icin odada op konumunda bulunması lazım ve operini açması lazım... ;)

Saygılar...

illegal_NicCK 31 Ekim 2007 17:48

Cevap: !ban-!unban-!kick-!op-!deop vs... Kodları
 
Herbişeyine sağlık kanka. Güzel çalışma tebrikler.

SaW 31 Ekim 2007 21:35

Yanıt: !ban-!unban-!kick-!op-!deop vs... Kodları
 
Son dönemlerde TCL scriptingde de hazır tcllerin değil de bu şekilde iyi/kötü emek verilerek hazırlanmış TCL'lerin de artması beni sevindiriyor.. TCL scriptinge olan bu ilgi gerçekten bir "TCL sever" olarak beni mutlu ediyor..
Bunu yazan ve paylaşan arkadaşa tekrar teşeşkkürler, bu işler böyle başlar ve gelişir..
Şimdi bu kodu bizi eleştirelim (olumlu yönde, bişeyler öğrenmek adına..)
Parça parça kodu ele almak istiyorum..

Kod:

bind pub - !ban banned
#PROC
proc banned {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putquick "samode $chan +b $text"
putquick "privmsg $chan : $text Basariyla Banlandi $nick"
}

proc banned {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0} ;komutu yazana op değilse çalışma. Buraya kadar güzel.
Şimdi gelelim $text değerine.. !ban kelimesinden sonra gelen bütün kelimeleri kapsar.. Yani diyelimki !ban ahmet mehmet hasan yazdık.. ahmet nickine ahmet!*@* şeklinde ban koyacaktır.. O halde geliştirmek için neler yapabiliriz..
Diyelimki ip ye ban atmasını istiyoruz, o halde yapmamız gereken şu: Nickin kanaldaki hostunu getchanhost komutunu kullanarak almaya çalışacaz..
biz $text değerinin bir den fazla kelime olma ihtimaline karşın, birinci kelimesini banlanacak nick olarak alalım.. bunun için ise lindex komutunu kullanacaz.. Şimdi örneklerle gösterelim..
[lindex $text 0] dediğimiz zaman $text değerinin ilk değerini alır..
şimdi sıra getchanhost ile bu ilk değerin (nickin) kanaldaki hostunu alalım..
[getchanhost [lindex $text 0] $chan]
Böylece hostunu ([Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] masikinin ASDKAKLS.KJASDJKA.ASDJAJD.IP kısmını almış bulunuyoruz..)
Şimdi gelelim bunu banlamaya..
putquick "samode $chan +b $text"
Burayı putquick "mode $chan +b *!*@[getchanhost [lindex $text 0] $chan]"
Şekline çevirebiliriz..
Şimdi öğrenmek adına örneği genişletelim istiyorum..
Banlayınca kicklemekte lazım gelir :) Bu yüzden hani o $text değerindeki ilk ahmet değerinden sonrakileride kick nedeni olarak alalım.. yani bunu yazan kişi şöyle yazdı sayıyoruz : !ban ahmet sana yasak burası
"sana yasak burası" kick sebebi sayıyoruz. Peki bunu nasıl alacaz?
Bu kez bir başka komutla tanışıyoruz: lrange
lrange komutu bir aralık için kullanılır (lindex değerler kümesinde bir tek değer içindi..)
[lrange $text 1 end] bunu yazarsak (0 ilk değer içindi biz 1 kullandık) ikinci değerden başla en son değere kadar (en son değer dahil) al, demiş oluruz..
O halde öreniğimizde geçen !ban ahmet sana yasak burası koyu punta ile belirtiğim kısmı aldık..
Şimdi banladığımız kişiyi kickleyelim..

putquick "KICK $chan [lindex $text 0] [lrange $text 1 end]"

Şeklinde kanaldan kickledik..
O halde kodumuzun son görünümüne bakıp bir kaç ileri adıma daha gidecez..

proc banned {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putquick "mode $chan +b *!*@[getchanhost [lindex $text 0] $chan]"
putquick "KICK $chan [lindex $text 0] [lrange $text 1 end]"
}

Bu haliyle de kod hala yetersiz.. Geliştirmeye devam ediyoruz..
$text değerindeki ilk kelimeyi nick olarak algıla ve kanaldan hostunu al dedik.. Peki bu nick (ya da mask) kanalda değilse?
İşte bunun için if kullanmamız gerekecek.. Burada hem if nasıl kullanılır onu görecez ve hem bir iki yeni komutla daha tanışacaz..
Ne dedik? kanalda değilse.. Bunu da onchan komutuyla anlıyoruz..
Genel kullanımı [onchan $nick $chan] şeklindedir.. Burada bizim nick dediğimiz değer [lindex $text 0] idi.. öyleyse komutumuz [onchan [lindex $text $chan] olmalıdır.. Şimdi bunu if içine sokalım..
if {[onchan lindex $text $chan]} { komut...
Kullanım budur..
o halde kodun en son hali nedir?

proc banned {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
if {[onchan [lindex $text 0] $chan]} {
putquick "mode $chan +b *!*@[getchanhost [lindex $text 0] $chan]"
putquick "KICK $chan [lindex $text 0] [lrange $text 1 end]"
}
}

Peki kanalda değilse? yani [onchan [lindex $text 0] $chan] değerinin olumsuz haliyse.. başına ! koyduğumuz hal yani..
ikinci bir if içine sokabiliriz veya bir kişi ya kanaldadır ya da değildir olacağı için bunların dışında manasına gelen else kullanabilir.. biz else kullanalım..

proc banned {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
if {[onchan lindex $text $chan]} {
putquick "mode $chan +b *!*@[getchanhost [lindex $text 0] $chan]"
putquick "KICK $chan [lindex $text 0] [lrange $text 1 end]"
} else {
putquick "mode $chan +b [lindex $text 0]"
}
}

Şeklinde oluyor..

Tabi bütün bunları geliştirmek çok daha mümkün.. Bu sadece bir başlangıç olsun.. Alttaki diğer kodları da bu şekilde göstermek isterdim ama tek post altında çok uzun bir döküman olacağından okunmak için cazip olmayabilir..
Onları da bu postun ardından gelecek sorulara göre diğer postlarda ben ve diğer arkadaşımlarımla açıklamaya çalışırız..

Umarım faydalı olmuştur..

bLackdiamond 28 Ocak 2008 14:20

Cevap: !ban-!unban-!kick-!op-!deop vs... Kodları
 
arkadaşlar bu tclye !+m !kill nick !zline gibi komutları nasıl ekleyebiliriz? Yardımcı olabilirmisiniz ?

pardon zline kill felan olmaz :D oplar kullanacağı için af edersiniz ama
+m ve -m komutları için bir fikriniz var mı

CanCeL 28 Ocak 2008 14:33

Cevap: !ban-!unban-!kick-!op-!deop vs... Kodları
 
Alıntı:

bLackdiamond Nickli Üyeden Alıntı (Mesaj 335094)
arkadaşlar bu tclye !+m !kill nick !zline gibi komutları nasıl ekleyebiliriz? Yardımcı olabilirmisiniz ?

!+m komutunu şu şekilde yaparsın(Biraz inceleseydin kendinde hazırlayabilirdin) :)

PHP- Kodu:

bind pub - !+m chanmod
#Komut algılama
proc chanmod {nick uhand host chan text} {
if {![
isop $nick $chan]} {return 0}
putquick "mode $chan +m"
putquick "privmsg $nick : $chan +m Moduna Alindi $nick"




!zline komutunuda vereyim, diğerlerinize sen kendin üretirsin...
PHP- Kodu:

bind pub - !zline uzaklas
#Komut algılama
proc uzaklas {nick uhand host chan text} {
if {![
isop $nick $chan]} {return 0}
putquick "zline $text"



Komut: !zline <nick> <Sebep>

bLackdiamond 28 Ocak 2008 14:36

Cevap: !ban-!unban-!kick-!op-!deop vs... Kodları
 
Abiciğim Süpersin Çok tşk ederim :)

CanCeL 28 Ocak 2008 14:39

Cevap: !ban-!unban-!kick-!op-!deop vs... Kodları
 
Alıntı:

bLackdiamond Nickli Üyeden Alıntı (Mesaj 335094)
pardon zline kill felan olmaz :D oplar kullanacağı için

O zaman !zline gibi komutlarıda kendi belirlediğin odadaki kişiler kullanabilir.
PHP- Kodu:

#Oper Odası
set yonetim "#Opers"
 
bind pub - !zline uzaklas
#Komut algılama
proc uzaklas {nick uhand host chan text} {
global 
yonetim
if {[isop $nick $chan] || [onchan $nick $yonetim]==0} {
putquick "zline $text"


!zline <nick> <sebep> komutunu sadece #Opers odasında uygulanmasına izin vermiş olursun böyle...
(Fakat komutu uygulayacağın odada op olmanda gerekiyor;))

bLackdiamond 28 Ocak 2008 18:01

Cevap: !ban-!unban-!kick-!op-!deop vs... Kodları
 
bunu sadece adminlerin kullanmasını istiyorum onu nasıl yapabilirim ?

vblades 02 Aralık 2010 06:30

Cevap: !ban-!unban-!kick-!op-!deop vs... Kodları
 
Arkadaslar Bizim Okey Sistemimizde Kanaldan Yazılar irc ye LMSG olarak dusuyor ben bu tcl yı cok ıstedım buldum denedım !op olarak calısıyor yanlız mirci sadece adminler kullanıyor diger gorevlilere mirc kullanmasi okey sistemlerinde hem tehlike hem kapalı o yuzden bunu LMSG !op olarak nasıl kullana bilirim..Acil lazim gercekden ılgılenen olursa cok sevınırım

vblades 03 Aralık 2010 07:07

Cevap: !ban-!unban-!kick-!op-!deop vs... Kodları
 
Yokmu Arkadaslar Bir Bakan ..rica Etsem Bununla Bilen Bir Kişi Yardımcı Olsun


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 15:43.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk