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/)
-   TCL Scriptler (https://www.ircforumlari.net/tcl-scriptler/)
-   -   Komut Listeleme Tcl (https://www.ircforumlari.net/tcl-scriptler/615920-komut-listeleme-tcl.html)

saywhat 22 Eylül 2014 01:09

Komut Listeleme Tcl
 
kod hangi kanal üstünde kullanılsın isteniyorsa , botunuza bağlanın (telnet / dcc ) : .chanset #kanal +komut

yaptığı iş : komutu uygulayan kişinin bot üzerindeki erişim seviyesine göre ,bot'taki yüklü scriptlerden hangi komutlarını kullanabilir ise ( binds komutuyla sorgulanır, bind pub'lar- kanal üstünde trigger ile kullanılan tetiklenen komutlar ve bu bindlerdeki flaglara göre listelenir,bunlardan hangileri,sorgulayan kişinin kullanabileceği komutlarsa o kişiye "özel" olarak) hepsini listeler...


böylece kişi hangi komutları kullanabileceğinin tam listesini öğrenmiş/görmüş olur....

Kod:

setudef flag komut

bind pub -|- ".komutlar" komut_list

proc komut_list {nick uhost hand chan text} {
      if {![channel get $chan komut]} { return 0 }
            set komut [list]
            set i 0
     
  foreach {bind tur flags kmt kac pros} [binds pub] {
          lassign $bind tur flags kmt kac pros
         
      if {[matchattr [nick2hand $nick] $flags $chan] && \
          [string compare -nocase $tur "pub"] && \
        ![string equal -nocase $kmt $::lastbind]} {
            lappend komut \00304$kmt\003
        }
    }
      largetext notice $nick "\002Kullanılabilir komut listesi\002: [join $komut ", "]"
      incr i
      return 0
}

# thanks to speechles (EFnet - #roms-isos), master && teacher ...
     
proc largetext {type target text {delims {" "•,.!?}}} {
        set lineLen [expr {412 - [string length ":$::botname $type [join $target] :\r\n"]}]
       
        if {[string length $text] <= $lineLen} {
            putserv "$type $target :$text"
            return 0
        }
        set _text [split $text $delims]
        set x 0
        set i 0
        while {$x < $lineLen} {
            if {$i >= [llength $_text]} {
                return 0
            }
            set wordlen [string length [lindex $_text $i]]
            if {$x + $wordlen > $lineLen} {
                break
            }
            incr x $wordlen
            incr x
            incr i
        }
    putserv "$type $target :[string range $text 0 [expr {$x - 1}]]"
    largetext $type $target [string trimleft [string range $text $x end]] $delims
 }

putlog "ok..."



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

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