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/)
-   Eggdrop, NeoStats, BNC (https://www.ircforumlari.net/eggdrop-neostats-bnc/)
-   -   Karsilama botu hk soru (https://www.ircforumlari.net/eggdrop-neostats-bnc/41669-karsilama-botu-hk-soru.html)

sh4d3 19 Kasım 2007 16:58

Karsilama botu hk soru
 
Evt arkadaşlar sunucuya girişte <Hosgeldiniz> şeklinde mesaj atan bi bot var biliyordur birçok kişi..

Benim istediğim

Eğer girenin nicki nickserv'de kayitli değilse bu mesajların altına not düşsün nickiniz kayıtlı değil /ns register şifre mail şeklinde kaydedin diye.

Eğer giren kişi oper/admin listelerine ekliyse onada not düşsün sunucu üzerinde lütfen kullanıcılara anlayışlı davranınız, vs vs veya ben bunlara farklı bi mesaj ayarlicam diyelim tcl'den editlicem xx günü akşamında toplantı vardır diye.

Yani benim istediğim özet olarak bu karşılama botunda kayıtsız nicklere ek bi mesaj admin oper listende ekli nicklerede farklı bi ek mesaj atmak istiyorum.

Nasıl yaparım böyle bişeyi?

SaW 20 Kasım 2007 16:28

Yanıt: Karsilama botu hk soru
 
Madem nasıl yapabileceğini merak ediyorsun, ben de sana genel mantığını ve nasıl yapacağını söyleyeyim, sen uğraş ortaya bişeyler çıkar takıldığın yerde yardımcı oluruz..

Sunucuya girşte olsun istiyorsun, Bunun için sunucuya girenleri görebilmesi için botun oper olması gerekir ve snotice ile bunu gerebilir bunu.. O halde kullanacağın bind bind notice olmalıdır..

Bu bindle client connecting mesajından nicki seçtirip o nicke botun whois çekmesini sağlamalısın.. Eğer bu nick o belirttiğin oper admin listesindeyse whois çekmesin, belirteceğin mesajı söylesin gibi..

Whoisden gelen raw cevabını da bind raw ile alabilirsin.. ama bu bindi bir önceki bind notice ile açtığın procun içinde açmanı tavsiye ederim..

bind raw ile belirttiğin procta gelen cevapta bir kaç ayrı if seçeneği kullanırsın.. Eğer nick şifreliyse şunu de şifresizse bunu de gibi..

Böyle yapabilirsin mesela.. ;)

sh4d3 20 Kasım 2007 19:33

Cevap: Karsilama botu hk soru
 
Anlamadım hiç bişey

o dediklerini nasıl yapacam TCL'yi açtım diyelim ekleyeceğim kodlar neler.

Sen sadece mantık yazmişsin herkes senin gibi değil :)

Ben anlamadım şahsen nasıl yapacağımı.

Kodları verebilirmisin?

sh4d3 20 Kasım 2007 22:11

Cevap: Karsilama botu hk soru
 
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] coder olan sensin biz değiliz.:)

Daha ayrintili bi açiklamani bekliyoruz..

Teşekkürler........

SaW 21 Kasım 2007 14:39

Yanıt: Karsilama botu hk soru
 
Arkadaşlar, dikkat ederseniz soru "Nasıl yapabilirim?" şeklindeydi.. Cevap da ona göre oldu haliyle.. Bu kodu yazmak sorun değil 20-30 satır kodla çözülür bu iş, ancak eğer siz yazmaya çalışmazsanız hiç bişey öğrenemezsiniz ki ben niyetinizin bişeyler öğrenmek olduğunu düşünüyorum.. Böyle olunca da şahsen ben daha bir istekle yardım etmek istiyorum, ancak iş bişeyler öğrenmekten çıkıp hazıra konma isteğine dönüşünce uğraşmak bile içinden gelmiyor insanın.. Umarım anlatabilmişimdir..

SaW 21 Kasım 2007 16:11

Yanıt: Karsilama botu hk soru
 
Buyrun size taslak.. ( Aslı gibidir ;) )

Kod:

#sunucu adminlerini belirleyelim..
 
set m(admins) {
"nick1"
"nick2"
"nick3"
}
 
#söylenecek mesajları belirleyelim..
set m(nosifre) "nickiniz kayıtsız kaydetmek için komut..."
set m(sifreli) "sunucuya hoşgeldiniz ...."
set m(adminmsg) "sunucu kurallarına uyalım v.s"
 
#mesajları notice şeklinde mi privmsg şeklinde mi göndersin?
set m(msg) "NOTICE"
 
#snotice bilgileri gelince go:notice1 procuna git
bind raw * notice go:notice1
 
 
proc go:notice1 {from keyword arg} {
global m
#eğer gelen notice  bilgisinde Client connecting yazısı varsa..
if { [string match "*Client connecting*" $arg] } {
#bu yazı içerisinden 9. kelimeyi nick olarak seç..
set nick [lindex $arg 9]
#nick admin lisstemizde mi?
foreach j $m(admins) {
if {[string match -nocase $j $nick]} {
putserv "$m(msg) $nick $m(adminmsg)"
}
return 0
}
#eğer nick admin değilse şifreli mi şifresiz mi anlamak için ns info çektiriyoruz..
  putquick "privmsg nickserv ns info $nick"
}
}
 
#İlk kısım sona erdi..  İkinci kısımın genel hatlarını yapıp tamamlamayı size bırakacam..
#ns info çektirdiğimiz için bize sonuç yine notice ile gelecektir..
 
bind raw * notice go:notice2
 
proc go:notice2 {from keyword arg} {
global m
#Gelen cevapta eğer nick kayıtsızsa (servis cevabı farklıysa metni değiştirin)
if { [string match "*Kayitli bir nick degil*" $arg] } {
#nicki seçtiriyoruz. ctrl kodlarını silerek..
  set nick [lindex [stripcodes bcru $arg] 0]
putserv "$m(msg) $nick $m(nosifre)"
}
#Gelen cevapta eğer nick kayıtlıysa..
if { [string match "* isim*" $arg] } {
#Nicki seçtiriyoruz.. ctrl kodlarını silerek yine..
set nick [lindex [stripcodes bcru $arg] 0]
putserv "$m(msg) $nick $m(sifreli)"
}
}

Genel hatlarıyla böyle bir şey :) Taslak dememin nedeni daha da geliştirilip daha güzel birşey yapılabilir olması.. Ben sadece bir örnek olsun diye yazdım bunu..


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

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