Tekil Mesaj gösterimi
Alt 01 Mart 2018, 15:29   #2
Çevrimdışı
Heartbroken
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Eggdrop normal ve msg komut kullanimi




Kanala Yazılan Herşey İçin:
bind pubm Bindi Beş Argümanlı
Prosedürü Tetikler.

Bunlar:
nick: Yazan Kişi,

uhost: Yazanın ~ident@host

hand; Varsa Yazan Kişinin Bot Kullanıcı Adı/Rumuzu

chan; Mesajın Yazıldığı #Kanal

text Yada arg; Son Argümana Verilen İsim Tanımlı Değildir.
İstenen Ad Verilebilir
(args,argv, argc .. Haricinde! Bunların Özel Anlamı Vardır!)
Son Argüman #Kanalda Yazılan Yazı/Mesajdır.

Özelde Yazılanlar Herşey İçin:
bind msgm

Dört Argüman'lı Prosedürü Tetikler:

nick: Yazan Kişi.

uhost: Yazanın ~ident@host

hand; Varsa Yazan Kişinin Bot Kullanıcı Adı/Rumuzu

text Yada arg; Yazılan Text/Mesaj

Bind Yapısı ;
bind <Türü> <Flag> <Komut> <Prosedür Adı>

bind pubm - * Bot_Komut
# Kanalda Yazılan Herşey İçin Event (bind pubm)
# - Yada -|- Yada * Herkesi Kapsar!
# * Her Yazılanda!
# Tetiklenen Prosedür

# Bu Kanallarda Çalışsın!
set KomutKanal [list #KanalA #KanalB]

# proc <Prosedür Adı> <Argümanları>
proc Bot_Komut {nick uhost hand chan arg} {
# $chan Küçük Harfe Çevrilerek,
# Yine Küçük Harfe Çevrilmiş KomutKanal Listesinde Yoksa
# Hiçbirşey Yapma/İşleme
if {[string tolower $chan] ni [string tolower $::KomutKanal]} { return }

# Kanala Yazılan İlk Kelimeyi Küçülterek Seç;
set ilk [lindex [split [string tolower $arg]] 0]

# ilk'in Bot Adı Olup Olmadığını Kontrol Et:
if {![isbotnick $ilk]} { return }
# Değilse, İşlem Yapma

# Komut Kelimesini Küçülterek Seç;
# (Bot Nickinden Sonra Gelecek İkinci Kelime Olmalı!)
set komut [lindex [split [string tolower $arg]] 1]

# Komut'un Hedefi Olacak Kişi!
# Komuttan Sonra Gelen Kelime Küçülterek Seç!
set hedef [lindex [split [string tolower $arg]] 2]

# Komut Kullanma Yetkisi Sadece
# Şu Kullanıcı Flaglarına Sahip Kişilerde Olsun
# Diğerlerine Nanik Yap!
if {![matchattr [nick2hand $nick] mn|oa $chan]} {
puthelp "notice $nick :Nanik!"
return 0
}

# Global Kullanııcı Yetkileri|Kanalda Atanmış Kullanıcı Yetkileri
# m = Bot Master , n = Bot Sahibi/Owner
# o = Kanal Op , a = Kanal'da Girişte Oto Op Verilecek Kimse
##########################################

# Buraya Kadar Gerekli Kontroller Yapıldı!
# Buradan Sonrası İşlemler!

# switch Bir Liste Komutu,
# Bunun Gibi Birden Çok İşlem
# Tek Prosedür Üzerinde Yapılacaksa,
# elseif elseif Yerine Kullanılabilecek
# Bir Tcl Komutu.
# Görünüş Açısından Da Daha Güzel!
switch -exact -- $komut {
# switch Komutunun Pek Çok -Opsiyonundan Biri;
# -exact Tam Olarak Diye Çevirebiliriz Sanırım Exactly Kesinlikle Gibisinden,
# Bunun Dışında -glob -regexp -nocase ..vs Seçenekleri Vardır!
#
# Komut "Şuysa" { Bunlar Yapılacak } Şeklinde Bundan Sonrası!
"op" { if {![isop $hedef $chan] && [onchan $hedef $chan]} {
# Hedef Kişinin Op'u Zaten Yoksa Ve
# Hedef Kişi Kanaldaysa;
pushmode $chan +o $hedef
# pushmode Mode Değişimleri İçin Kullanılır
# Ardından flushmode Komutu Kullanılırsa
# Daha Hızlı Mode Değişimi Gerçekleşir!
flushmode $chan
} else {
# Eğer Hedef'in Zaten Op'u Varsa
# Yada Hedef Diye Girilen Kişi Kanalda Değilse;
puthelp "notice $nick :Peh!"
return
}
}
# Sonraki!...
"voice" { if {![isvoice $hedef $chan] && [onchan $hedef $chan]} {
# Hedef Kişinin Voice'u Zaten Yoksa Ve
# Hedef Kişi Kanaldaysa;
pushmode $chan +v $hedef
# pushmode Mode Değişimleri İçin Kullanılır
# Ardından flushmode Komutu Kullanılırsa
# Daha Hızlı Mode Değişimi Gerçekleşir!
flushmode $chan
} else {
# Eğer Hedef'in Zaten Voice'u Varsa
# Yada Hedef Diye Girilen Kişi Kanalda Değilse;
puthelp "notice $nick :Peh!"
return
}
}
# Switch Komutunun Sonu default İle Bitmeli!
# Öntanımlı Olarak Verilen İşlemler Dışında Kalan Durum
# Gerçekleştiğinde, Ne Yapılacağı Buradan Bilenecek:
default { return 0 }
} ;#switch Listesinin Sonu!
# Pubm Bind'i return 0 İle Bitirmezseniz,
# Bot Log Almayı Bırakır,
# Kanaldaki Mesajların Hiçbiri Log'a İşlemez
# O nedenle Her Zaman Pubm Bindini;
return 0
};# Bitirin

Kanala Giriş Eventi İçin Join Bindi
bind join - * Bot_Join

proc Bot_Join {nick uhost hand chan} {
# Join Eventinde Doğal Olarak Text Yoktur
# Dört Argümanı Vardır!

# Giren Kişi Bot Değilse Bizi İlgilendirmez!
if {![[isbotnick $nick]} { return }

# +h +a +q Gibi Modlar Eggdrop Kaynağında
# Tanımlı Kullanıcı Modlarından Değildir!
# Yerli Sunucuların Aksine,
# Efnet,Quakenet,Ircnet,Undernet,Freenode,Dalnet Gibi
# Köklü Dev Sunucular Bu Kullanıcı Modları/Yetkilerini Kullanmazlar!
# O Nedenlede Eggdrop Geliştirenler Bu Modları Eklemeye
# Ayak Sürümüşlerdir Hep!
# Değişeceğinide Sanmıyorum Yakın Gelecekte....

# Bu Modu Chan Servis İle Değil Kendi Kendine,
# Oper Yetki Kullanarak Yapacaksa ;
putserv "privmsg operserv :mode $chan +a $::botnick"
return 1
} ;# Bu Kadar!

__________________
Beş Tas Has Hoş Hoşaf.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet bizimmekan