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/)
-   -   Tcl istek .......... (https://www.ircforumlari.net/eggdrop-neostats-bnc/52214-tcl-istek.html)

DorukChat 29 Şubat 2008 13:28

Tcl istek ..........
 
}
if $gettok(%::text,1,32) == !dj {
sw $sockname os raw swhois %::nick : is a DorukChat Dj
sw $sockname chghost %::nick Dj.DorukChat.Net
sw $sockname privmsg #dj : %::nick Dj Olarak sisteme girisiniz onaylandi.
}
if %::chan == #globalop {
if $gettok(%::text,1,32) == !op {
set %op. [ $+ [ %::nick ] ] $iif($gettok(%::text,2,32),$ifmatch,hepsi)
sw $sockname ISON ChanServ %::nick
sw $sockname Privmsg #globalop : %::nick Globallere girisiniz onaylandi, yeni host ve yeni swhois eklendi.
sw $sockname chghost %::nick GlobalOp.DorukChat.Net
sw $sockname os raw swhois %::nick : is a GlobalOp on DorukChat.
}

Ben bu codeyle nasıl tcl ve conf ayarlayıp botu sunucuma sokup ve globalop kanalındaki yetkililer !op deyince globalop hostu alsınlar dj kanalındaki djlerde !dj deyince dj hostu alsın nasıl yaparım......

SaW 29 Şubat 2008 18:47

Cevap: Tcl istek ..........
 
Öncelikle şu conf mantığını herkesin anlaması gerekiyor.. Her script için ayrı yazılmış bir conf yoktur ve yazılmasına gerek yoktur.. conf kelimesi configuration (ayar) kelimesinin kısaltılmasıdır. Yani botunuzun ayar dosyasıdır. Bir tane confunuz olsun ve bu conf üzerinden aynı bota source scripts/tclismi.tcl şeklinde istediğiniz kadar script ekleyebilirsiniz. Ayrıca elinizdeki confu ayrı bir bot için uyarlayabilir bu confla da başka bir botun çalışmasını sağlayabilirsiniz. Genel olarak bir confta ayarlanması gereken yeler:
- botun nicki, identi, hostu, fullname'i..
- sunucu ip adresi portu
- eğer o satırlar mevcutsa botun nick şifresi oper şifresi ve girişte uygulayacağı komutlar..
- Botun bulunacağı kanalların belirlendiği channel add ile başlayan kısımlar..
- eklenecek script(ler)in belirlendiği source bloku..

Gerisi teferruattır, istenildiğinde özelleştirmek içindir. O yüzden bi tane kafanıza göre ince ayarlarını yaptığınız confunuz olsun ve bu confta yukarıda belirttiğim değişiklikleri uygulamak suretiyle ayrı ayrı botlar için kullanın..

Bu açıklamadan sonra istediğin şeye gelince yine kafadaki bazı yanlış bilinenleri gidermek amacıyla bi açıklama daha yapmak istiyorum.

mIRC script convert to tcl gibi ya da bu mantıkta herhangi bir program yoktur.. Yani herhangi bir mIRC scripti tcl scripte çevirme diye bir şey yoktur. Bu yanlış bilgiyi kafamızdan atalım. Buradaki olay şudur: "Şöyle bir özellik var, ben bunun tcl scripting dili ile yazılmış olanı istiyorum"..
Aradaki fark şu: Kodlar tcl'ye çevrilmiyor tcl dili ile istenilen özellik baştan yazılıyor..

istenilen özellikleri kod diline dökmek için programcılığın temel unsuru olan algoritma kullanılır. Algoritma denen şeyi kafalarda daha iyi belirmesi için "yazılacakkodu kod diliyle değilde öncelikle türkçe düşünebilmektir" diyebiliriz.
Yani istenilen özellikler nedir?
Bunun için izlemem gereken yol ne olmalıdır?
Bunu en kısa yoldan nasıl çözebilirim?
Bu esna da ne tür hatalarla karşılaşabilirim?
gibi soruların cevaplarıdır..

Son olarak her zaman söylediğim gibi "sadece istemekle hiç bişey öğrenilmez" öncelikle çabalamanız lazım. Bu uğraşı sürecinde eğer karşılaştığın bir sorun olursa biz buradayız, elimizden gelen yardımları zevkle sunarız. Ama senin uğraşman şart..

istediğin özelliğe gelince şu yolu izleyebilirsin:
- Bot, sadece ona o komutu verebilecek kişilerin bulunduğu bir kanalda bulunmalı ya da bota o komutu verebilecek kişilerin nickleri veya hostları ya da onları özel kılacak herneyse tcl dosyasında belirtilmeli..

- Komut özelden mi verilecek yoksa kanaldan mı? (bu sorunun cevabına göre bir event'le başlarsın.)

- Belirlenen komuttan (!op ve ya !dj) sonraki kelimeyi komutun uygulanacağı nick olarak belirtmek gerekiyor bota..

- Eğer ikinci kelime yoksa veya kelime sayısı 2'den fazlaysa ona göre uyarlamalar ya da uyarı mesajları göndertmesini sağlamalısın..

- Bundan sonrası işin fantezi kısmı.. yani bota uygulayacağı komutları vermek (chghost nick yenihost v.b)

işte bu, senin istediğin özelliğin kısa bir algoritması.. Uğraşmaya başla biz buradayız ;)

Umarım herkes bunları dikkatlice okur ve herkesin kafasındaki bazı soru işaretleri ve varsa yanlış bilgiler giderilmiş olur..

DorukChat 29 Şubat 2008 19:10

Cevap: Tcl istek ..........
 
ben eggdrop bot olarak isstemistim conf ayarlarım ama tcl tam olarak ayarlaak istıyırum bu verdim codeler ek birseyler eklenir diye yyardım istedim

SaW 29 Şubat 2008 19:19

Cevap: Tcl istek ..........
 
Sen yazdıklarımı hiç okumamışsın galiba? Ben başka bir bottan mı bahsetmişim? Yazılanı tekrar tekrar defalarca baştan sona okumanı tavsiye ediyorum.

DorukChat 29 Şubat 2008 19:30

Cevap: Tcl istek ..........
 
bind msgm - root doruk
proc doruk { nick uhost handle text } {
putserv "PRIVMSG operserv :su şifre" }

bind pub - !op op
proc op {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putserv "PRIVMSG operserv :chghost $nick Globalop.Domain.Com"
putserv "PRIVMSG operserv :chgident $nick Globalop"
putserv "PRIVMSG operserv :chgname $nick is a Globalop on DorukChat"
putserv "NOTICE $nick Dj Olarak sisteme girisiniz onaylandi, yeni host ve yeni swhois eklendi."
putserv "NOTICE $nick Lutfen kanalindaki kullancilarla iyi gecinin ve saygili olun."
}
bind pub - !dj dj
proc dj {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putserv "PRIVMSG operserv :chghost $nick Dj.Domain.Com"
putserv "PRIVMSG operserv :chgident $nick Dj"
putserv "PRIVMSG operserv :chgname $nick is a DorukChat DJ"
putserv "NOTICE $nick Globallere girisiniz onaylandi, yeni host ve yeni swhois eklendi."
}

Su sekil bir tcl ayarladım sizce dogrumu..

DorukChat 29 Şubat 2008 19:33

Cevap: Tcl istek ..........
 
yaa arkadasım kusura bakma kafam allak bullak yazını okudum ama nasıl okumuşum iste acıklaman için tesekurler..

SaW 29 Şubat 2008 19:41

Cevap: Tcl istek ..........
 
Alıntı:

DorukChat Nickli Üyeden Alıntı (Mesaj 361145)
bind msgm - root doruk
proc doruk { nick uhost handle text } {
putserv "PRIVMSG operserv :su şifre" }

bind pub - !op op
proc op {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putserv "PRIVMSG operserv :chghost $nick Globalop.Domain.Com"
putserv "PRIVMSG operserv :chgident $nick Globalop"
putserv "PRIVMSG operserv :chgname $nick is a Globalop on DorukChat"
putserv "NOTICE $nick Dj Olarak sisteme girisiniz onaylandi, yeni host ve yeni swhois eklendi."
putserv "NOTICE $nick Lutfen kanalindaki kullancilarla iyi gecinin ve saygili olun."
}
bind pub - !dj dj
proc dj {nick uhand host chan text} {
if {![isop $nick $chan]} {return 0}
putserv "PRIVMSG operserv :chghost $nick Dj.Domain.Com"
putserv "PRIVMSG operserv :chgident $nick Dj"
putserv "PRIVMSG operserv :chgname $nick is a DorukChat DJ"
putserv "NOTICE $nick Globallere girisiniz onaylandi, yeni host ve yeni swhois eklendi."
}

Su sekil bir tcl ayarladım sizce dogrumu..

Eğer istediğin şey botun bulunduğu kanaldaki bir opun !op ya da !dj yazınca botun o komutu yazan kişinin hostunu v.s değiştirmesini amaçlıyorsan genel mantık doğru ama düzeltmen gereken yerler var

putserv "PRIVMSG operserv :chghost $nick ...

gibi yerleri

putserv "chghost $nick ...

Şeklinde değişmelisin.. bu diğer komutlar için de geçeleri.. (Tabi servislerinin operserv'ında eklenmiş chghost chgident v.s komutlarının olmadığını farzediyorum).

DorukChat 29 Şubat 2008 19:45

Cevap: Tcl istek ..........
 
birde mesela servisler ircservices degilde anope bunu anopeye gore nasıl ayarlarız hani su pass varya oyuzden sorrdum

Siber55 03 Nisan 2008 16:46

Cevap: Tcl istek ..........
 
Aslında Nebiliymben Açıklamasını yapmış.

"PRIVMSG Operserv :chghost........"

Yerine

"CHGHOST $nick ........."

Yaparsan olur.


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

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