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/)
-   IRCd Botlar (https://www.ircforumlari.net/ircd-botlar/)
-   -   Geveze Tcl (Konuşan bot) (https://www.ircforumlari.net/ircd-botlar/50615-geveze-tcl-konusan-bot.html)

BuCaLI 12 Şubat 2008 21:32

Geveze Tcl (Konuşan bot)
 
Kanal genelindeki dönen sohbete göre konuşan / cevap veren bir tcl. uzun zaman önceki bi uğraşımdı forumda istendiğini görünce paylaşmayı uygun buldum.
geveze.tcl ile bot dosyasını scripts klasörüne atıp uygun bir conf oluşturarak çalıştırın. bot dosyası içindeki metin belgeleri (txt) isteğe göre düzenlenebilir / geliştirilebilir. aynı şekilde geveze.tcl geliştirilmeye açıktır.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

rar şifresi : bucali

Cemalizim 13 Şubat 2008 04:30

Cevap: Geveze Tcl (Konuşan bot)
 
Hocam bunu SöyLe bişe yapamayızmı Mesela owner olsun sadece o nick /dur /basla yani Durdurmak botu Istıyorum ıstedigim zaman CaLısmasını Istıyorum Bazen Gereksiz olabilir botun sohbet etmesi.. lazım oldugu zaman kullanamak daha uygun olabilir tşkler

SaW 13 Şubat 2008 18:32

Yanıt: Geveze Tcl (Konuşan bot)
 
Kodları açık görebildiğimiz için kendi adıma teşekkür ederim BuCaLi : )
Böylece olumlu/olumsuz eleştrilerimizi daha sağlıklı sunabiliriz bundan da herkes kazançlı çıkar sanırım..

Programlamada bir kural vardır; tek satır bile fazla kod gereksizdir ve bütün koda kötü demeye yeterlidir.. Çünkü yazılan her yazıda bot dosyayı baştan sonra okuyor ve her satır için fazladan işlem yapmış oluyor.. O yüzden sonuca gidebilecek en kısa yoldan gitmek her zaman daha iyidir..

Kod:

proc konus { nick uhost host chan arg } {
global botnick
if {[string match -nocase "*selam*" "$arg"] || [string match -nocase "*slm*" "$arg"]} { yaz "selam.txt" $chan $nick }
if {[string match -nocase "*te?ekk*" "$arg"]} { yaz "tşk.txt" $chan $nick }
if {[string match -nocase "*tel*" "$arg"]} { yaz "telefon.txt" $chan $nick }
if {[string match -nocase "*iyi*" "$arg"] || [string match -nocase "ii*" "$arg"]} { yaz "iyi.txt" $chan $nick }
if {[string match -nocase "*nbr*" "$arg"] || [string match -nocase "*naber*" "$arg"] || [string match -nocase "*nas?ls?n*" "$arg"]} { yaz "nasılsın.txt" $chan $nick }
if {[string match -nocase "*nrd*" "$arg"] || [string match -nocase "*nerden*" "$arg"]} { yaz "nerden.txt" $chan $nick }
if {[string match -nocase "*canım*" "$arg"] || [string match -nocase "*aşkım*" "$arg"]} { yaz "aşkım.txt" $chan $nick }
if {[string match -nocase "*alo*" "$arg"]} { yaz "alo.txt" $chan $nick }
if {[string match -nocase "*or*damısın*" "$arg"]} { yaz "ordamısın.txt" $chan $nick }
if {[string match -nocase "*of*" "$arg"]} { yaz "off.txt" $chan $nick }
if {[string match -nocase "*bay*" "$arg"] || [string match -nocase "*bye*" "$arg"]} { yaz "bye.txt" $chan $nick }
if {[string match -nocase "*hyr*" "$arg"] || [string match -nocase "*hay?r*" "$arg"]} { yaz "hayır.txt" $chan $nick }
if {[string match -nocase "*neden*" "$arg"] || [string match -nocase "*ni?in*" "$arg"] || [string match -nocase "*niye*" "$arg"]} { yaz "neden.txt" $chan $nick }
if {[string match -nocase "*yaş*" "$arg"] || [string match -nocase "*asl*" "$arg"]} { yaz "asl.txt" $chan $nick }
if {[string match -nocase "*bot*" "$arg"]} { yaz "bot.txt" $chan $nick }
if {[string match -nocase "haha*" "$arg"] || [string match -nocase "hehe*" "$arg"] || [string match -nocase "*muha*" "$arg"] || [string match -nocase "*zuhah*" "$arg"] || [string match -nocase "*pohah*" "$arg"]} { yaz "komik.txt" $chan $nick }
if {[string match -nocase "ee*" "$arg"]} { yaz "eee.txt" $chan $nick }
if {[string match -nocase "ok" "$arg"] || [string match -nocase "oke" "$arg"] || [string match -nocase "*tamam*" "$arg"]} { yaz "tamam.txt" $chan $nick }
if {[string match -nocase "*merhaba*" "$arg"] || [string match -nocase "*mrb*" "$arg"]} { yaz "merhaba.txt" $chan $nick }
if {[string match -nocase "*olmaz*" "$arg"]} { yaz "olmaz.txt" $chan $nick }
if {[string match -nocase "*evlen*" "$arg"]} { yaz "evlenelim.txt" $chan $nick }
if {[string match -nocase "*gelim*" "$arg"]} { yaz "gelim.txt" $chan $nick }
if {[string match -nocase "*gidicem*" "$arg"] || [string match -nocase "*gidiyom*" "$arg"] || [string match -nocase "*gidiyorum*" "$arg"]} { yaz "gidicem.txt" $chan $nick }
if {[string match -nocase "*gelmicem*" "$arg"]} { yaz "gelmem.txt" $chan $nick }
if {[string match -nocase "*geldim*" "$arg"] || [string match -nocase "*or*dayım*" "$arg"]} { yaz "geldim.txt" $chan $nick }
if {[string match -nocase "*sıkıldım*" "$arg"]} { yaz "sıkıldım.txt" $chan $nick }
if {[string match -nocase "cevap*" "$arg"]} { yaz "cevap.txt" $chan $nick }
if {[string match -nocase "*bilmem*" "$arg"]} { yaz "bilmem.txt" $chan $nick }
if {[string match -nocase "*peki*" "$arg"]} { yaz "peki.txt" $chan $nick }
if {[string match -nocase "*olabilir*" "$arg"]} { yaz "olabilir.txt" $chan $nick }
}

Buradan başlayalım..
oradaki her kelimeyi daha öncesinde bir değişken içerisine setlemek ve o değişkendeki verileri proc içerisinde bir döngü içerisinde taratıp tek if ile olayı çözebilirdin.. örnek olarak:



Kod:

set kelimeler "selam kelam melam vs"
proc {nick uhost host chan arg} {
global kelimeler
foreach a $kelimeler {
if {[string match -nocase *$a*  $arg]} { yaz "$a.txt" $chan $nick }
}
}

Bu sadece genel mantığını göstermek için bir örnekti daha düzgün birşey çıkabilir ortaya tabiki..
Bir diğeri ise:

Kod:

utimer 1[list putserv "privmsg $chan $rmsg"]
Satırı.. Buradaki timer'ın mantığını anlamış değilim.. Eğer putserv'ı bir saniye daha geç iletmekse maksat, putserv yerine puthelp kullanıp timer kullanmaya gerek görmeyebilirdin, dediğim gibi fazladan işlem herzaman gereksizdir..

Onun haricinde emeğine sağlık ve çalışmalarında başarılar diliyorum.

BuCaLI 13 Şubat 2008 20:19

Cevap: Geveze Tcl (Konuşan bot)
 
Anlatmaya çalıştığın sana göre ilk başta mantıklı görünmüş olabilir fakat bazı durumlarda veya ( || ) ile ayrılmış yani benzer anlamlara gelen kelimeler var ve her birinde aynı sonuca varılmasını istemişim dediğin şekilde yaparsam ya örnek veriyorum selam diyenle slm diyeni ayırt edemem yada her bi eşanlamlı sözcük için ayrı metin belgeleri oluşturmam gerekir. yinede dediğim gibi çok eskiden kalan bi çalışma üzerinde düşünme fırsatım olmadan kendim kullanmak amacıyla yaptığım bişey. yinede tşk.

kup{a}pazl 29 Nisan 2008 01:25

Cevap: Geveze Tcl (Konuşan bot)
 
GüzeL ßişe Tşk Ederim ßaşarlarınızın Ve Başarılarımızın Devamını dilerim.. yaww ßunu Nasıl Sunucuya sokucaz :S

ßirde Sizden ŞöyLe ßişeyİsteyebilirmiyim komik Bot Var Mesela onun gibi Özle ßir KanaLda Eğlence Amaçlı Fıkra v.s gibi Şeyler Anlatarak Timer ile Eglendirsin gülmek Var Ölmek yok :)

yanki 29 Nisan 2008 11:00

Cevap: Geveze Tcl (Konuşan bot)
 
ilk postta nasil oldugunu açiklanmiş.

eXtReMe` 03 Temmuz 2008 21:06

Cevap: Geveze Tcl (Konuşan bot)
 
Link Kırık YeniLermiSiniz ?? :) Yada eLinde Olan ßiri upLoad Edeßilirmi..

LauReLL60 15 Kasım 2008 13:08

Cevap: Geveze Tcl (Konuşan bot)
 
nen şifresi ne bunun :D

ByZuLuM 15 Kasım 2008 14:22

Cevap: Geveze Tcl (Konuşan bot)
 
Alıntı:

BuCaLI Nickli Üyeden Alıntı (Mesaj 499062)
rar şifresi : bucali

Diyor :)

Cumbusvar 01 Aralık 2008 03:31

Cevap: Geveze Tcl (Konuşan bot)
 
Link ölü aga:D yenilermisin


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

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net