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/)
-   -   Kodlama hakkında sorular [TCL] (https://www.ircforumlari.net/eggdrop-neostats-bnc/577246-kodlama-hakkinda-sorular-tcl.html)

saywhat 14 Haziran 2014 20:08

Cevap: Kodlama hakkında sorular [TCL]
 
bu kodu müsteri servis için kullandığınız koda olduğu gibi ekleyin.

Kod:

# kodu kullanıma açma/kapama işlerinde kullanılacak kullanıcı tanımlı flagtır.
setudef flag musteriserv

# komutu kullanma yetkileri n = bot sahibi .conf'ta set owner satırında ayarlı kişi*
# m = bot master
set musteri(flagx) "mn"

# kullanılacak komut:
set musteri(komut) "musteriserv"

# komut başına gelecek sembol/işaret/trigger
set musteri(semb) "!"

bind pub - $::musteri(semb)$::musteri(komut) must_serv:ac_kapa

proc must_serv:ac_kapa {nick uhost hand chan text} {
    if {![matchattr [nick2hand $nick] $::musteri(flagx) $chan]} {
      puthelp "notice $nick :\00312Bu komutu kullanma erişiminiz yok...\003\
      \00304$::musteri(flagx)\003 \00312kullanıcı flaglarına sahip olmalısınız...\003"
      return 0
      }
      set kmt [lindex [split $text] 0]

    switch -exact -- $kmt {
    on {
        if {[channel get $chan musteriserv]} {
            puthelp "notice $nick :$chan \00314kanalında Müsteri servis halihazırda aktif durumda... \
            Kapatmak için\003 \00304$::lastbind off\003"
          } else {
          channel set $chan +musteriserv
            puthelp "notice $nick :$chan \00314kanalında Müsteri servis aktif edildi... \
            Kapatmak için\003 \00304$::lastbind off\003"
            }
        }
    off {
        if {![channel get $chan musteriserv]} {
            puthelp "notice $nick :$chan \00314kanalında Müsteri servis halihazırda kapalı durumda... \
            Açmak için\003 \00304$::lastbind on\003"
          } else {
          channel set $chan -musteriserv
            puthelp "notice $nick :$chan \00314kanalında Müsteri servis pasif edildi... \
            Açmak için\003 \00304$::lastbind on\003"
            }
        }
    default {
            puthelp "notice $nick :\002Kullanımı\002 : \00304$::lastbind on/off\003"
        }
    }
    return 0
}

putlog "ok..."

daha sonra müsteri servis kodu içindeki tüm prosedürlerin altına :

"proc .... satırlarının hemen bir altına "

Kod:

if {![channel get $chan musteriserv]} { return 0 }
satırını herbirine ekleyin ki böylece off edildiğinde tüm müşteri servis script komutları devredışı olsun.on edildiğinde de hepsi yeniden kullanıma açılsın....

bu arada yukarıda verdiğim topik kodunda da bu geçerli olsun* isteniyorsa o kodda ki
Kod:

setudef flag topik
satırını silin ve topik prosedürü altındaki
Kod:

if {![channel get $chan topik]} { return }
satırını da
Kod:

if {![channel get $chan musteriserv]} { return 0 }
olarak değişin. o zaman onuda kapsar on/off komutları...

(eğer bu topik scriptini ayrı bir script olarak eklediyseniz yani müsteri servis kodu içinde değilde ayrı ise o zaman
Kod:

setudef flag topik
yerine
Kod:

setudef flag musteriserv
satırı eklenmeli yok diğer müsteri servis kodlarıyla bir arada ise yukarıda anlattığım şekilde yaparsınız...)

xwerswoodx 15 Haziran 2014 12:37

Cevap: Kodlama hakkında sorular [TCL]
 
Alıntı:

KraLSheLLNet Nickli Üyeden Alıntı (Mesaj 1041449843)
Eggdrop bota topic nasıl attırırım?

Kod:

putquick "TOPIC #kanal mesaj"
şeklinde attırabilirsin

Yani kodlarsak basitcesi;

Kod:

bind pub - !topic proc:topic

proc proc:topic {nick hand host chan text} {
set argn1 = [lindex $text 0]
putquick "PRIVMSG ChanServ SET $argn1 TOPICLOCK off"
putquick "TOPIC $argn1 Blablabla \00301Siyah \00301,04Arkası kırmızı \002Kalın\002 \037Altı Çizili\003\037"
}

Denemedim ama sorun olmaması gerek :) Sadece basitce bir kodlama

saywhat 15 Haziran 2014 13:47

Cevap: Kodlama hakkında sorular [TCL]
 
Tcl'de arg / args / argv / argc /argn ... vs "arg*" ifadelerinin "özel" kullanım alanları,kendilerine has özellikleri bulunmakta... SafeTcl - PureTcl - Tcl/tk 'da bir takım "özel" paketler üzerinde kullanım alanları vardır ki eggdrop-Tcl ile Tcl/tk farklıdır. -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
eggdrop bir Tcl extension (Tcl uzantısı/türevi)'dir. kaynak kodları C ile yazılırken her bir kullanacağı Tcl komutları ve kodları tanımlanmıştır ki bu tanımlanırken SafeTcl'deki uygulamalardan ayrı kendine has bir Tcl komut ve prosedürlerini doğurmuştur.
örnek Tcl (PureTcl)'de bind'lerin anlamı/kullanımı eggdrop-Tcl'den apayrıdır.-> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
#Tcl geliştiricilerinin bulunduğu ortama sıkça,hemen hergün Tcl == eggdrop mantığıyla gelip eggdrop Tcl script sorunuyla eggdrop kullanıcıları yardım isterler. Tcl geliştiricilerinin eggdrop hakkında ve eggdrop'taki Tcl kullanımı hakkında en ufak bir "fikri" dahi yoktur. Bu nedenlede kullanıcıyı direk eggdrop/Tcl yardımı verilen kanallara yönlendirirler.
(hatta bundan artık iyice sıkıldıklarından direk kanal topiklerine ('Tcl and Tk | for anything eggdrop related, including scripting for eggdrop, please go to #eggdrop | NB: ijchain is a bot bridging a jabber chat') ve wiki sayfalarına eklemişlerdir.. -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] )

yukarıda verdiğiniz script örneğinde bazı "sorunlar/hatalar" kendiniz değerlendirip bunları görebilmeniz için :

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

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

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

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

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

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

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

KTeknoloji 15 Haziran 2014 17:27

Cevap: Kodlama hakkında sorular [TCL]
 
@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

daha sonra müsteri servis kodu içindeki tüm prosedürlerin altına :

"proc .... satırlarının hemen bir altına "

Kod:
if {![channel get $chan musteriserv]} { return 0 }
satırını herbirine ekleyin ki böylece off edildiğinde tüm müşteri servis script komutları devredışı olsun.on edildiğinde de hepsi yeniden kullanıma açılsın....

bu arada yukarıda verdiğim topik kodunda da bu geçerli olsun* isteniyorsa o kodda ki
Kod:
setudef flag topik

Dediginiz Kodlar TCL de Bulamadım

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

Bunu Ben !on !offline Şeklinde Calıstırmak istiyorum Elemanlar Herzaman Topic Yazmaz
Yinede Teşekkürler

Birde Kodlarınızı Ekledikten Sonra


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

saywhat 15 Haziran 2014 18:12

Cevap: Kodlama hakkında sorular [TCL]
 
!musteriserv on / musteriserv off yukarıda verdiğim kodun kullanım şekli !musteriserv dendiğindede yardım atar...
kodu nereye nasıl eklediğinizi bilemediğimden resimde görünen hata ile ilgili birşey söyleyemem.

siz on off komutlarını sadece topik için mi istiyorsunuz ? tüm müsteri servis komutları/scripti için istemiyormuydunuz ?

bir arka sayfada verdiğim topik kodunun en tepesinde setudef flag topik satırı...

bakın kodu şimdi botuma yükleyip denemesini kanal üstünde yaptım..
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...][Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
aynı andada bota bağlı kalıp izledim hiçbir hata mesajı yok.
(yukarıda tarif ettiğim şekilde bir koda eklenmediyse ancak hata atar.aksi halde kodda sıkıntı yok.)

KTeknoloji 15 Haziran 2014 20:16

Cevap: Kodlama hakkında sorular [TCL]
 
Bunu Aslında Topice Yansıtmak istiyorum şu şekil


20:16] <KraLSheLL> !on = Destek Departmanimiz Suanda Online Çalışma Saatlerimiz : Sabah 09:00 Akşam 02:00
[20:16] <KraLSheLL> !offline = Destek Departmanimiz Suanda Ofline Çalışma Saatlerimiz : Sabah 09:00 Akşam 02:00
[20:16] <KraLSheLL> !yapimci = MusteriServ.Tcl Yapimcisini Gösterir

saywhat 15 Haziran 2014 20:55

Cevap: Kodlama hakkında sorular [TCL]
 
açıklamaları kod içinde...

Kod:

# !on için atılacak topik
set ontpk "Destek Departmanimiz Suanda Online Çalışma Saatlerimiz : Sabah 09:00 Akşam 02:00"

# ! off için atılacak topik
set offtpk "Destek Departmanimiz Suanda Ofline Çalışma Saatlerimiz : Sabah 09:00 Akşam 02:00"

# !yapımcı komutunda kanala postalanacak.
set yapimci "MusteriServ.Tcl Yapimcisini Gösterir"

# kodun çalışacağı kanal adı ( büyük-küçük harf uyumlu yazılmalı )
set kanal "#musteriserv-kanal"

# topik atma işi için muhatap olunacak service.
set tpkserv "ChanServ"

bind pubm mn "$kanal *" tpk_topik        ;# mn bot sahibi ve bot masteri komut erişimi demektir.

proc tpk_topik {nick uhost hand chan text} {
 # if {![isop $nick $chan]} { return 0;}  ;# kanal opları kullanabilsin deniyorsa satır başındaki # kaldırın.
    set komut [lindex [split $text] 0]
   
    switch -exact -- $komut {
  "!on" { putserv "privmsg $::tpkserv :topic $chan $::ontpk";}
  "!off" { putserv "privmsg $::tpkserv :topic $chan $::offtpk";}
  "!yapımcı" { puthelp "privmsg $chan :$::yapimci";}
    default { putlog "bla bla ... bla ....";}
    }
    return 0
}

putlog "ok..."



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

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