egghelp.org community Forum Index
[ egghelp.org home | forum home ]
egghelp.org community
Discussion of eggdrop bots, shell accounts and tcl scripts.
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

sbnc script Prop

 
Post new topic   Reply to topic    egghelp.org community Forum Index -> Script Requests
View previous topic :: View next topic  
Author Message
Fraud
Op


Joined: 19 May 2008
Posts: 101

PostPosted: Thu Aug 28, 2008 5:44 pm    Post subject: sbnc script Prop Reply with quote

I have here a lil sbnc Script that always makes error

This is the Script

Code:
#                AAA               lllllll
#               A:::A              l:::::l
#              A:::::A             l:::::l
#             A:::::::A            l:::::l
#            A:::::::::A            l::::l     eeeeeeeeeeee  xxxxxxx      xxxxxxx
#           A:::::A:::::A           l::::l   ee::::::::::::ee x:::::x    x:::::x
#          A:::::A A:::::A          l::::l  e::::::eeeee:::::eex:::::x  x:::::x
#         A:::::A   A:::::A         l::::l e::::::e     e:::::e x:::::xx:::::x
#        A:::::A     A:::::A        l::::l e:::::::eeeee::::::e  x::::::::::x
#       A:::::AAAAAAAAA:::::A       l::::l e:::::::::::::::::e    x::::::::x
#      A:::::::::::::::::::::A      l::::l e::::::eeeeeeeeeee     x::::::::x
#     A:::::AAAAAAAAAAAAA:::::A     l::::l e:::::::e             x::::::::::x
#    A:::::A             A:::::A   l::::::le::::::::e           x:::::xx:::::x
#   A:::::A               A:::::A  l::::::l e::::::::eeeeeeee  x:::::x  x:::::x
#  A:::::A                 A:::::A l::::::l  ee:::::::::::::e x:::::x    x:::::x
# AAAAAAA                   AAAAAAAllllllll    eeeeeeeeeeeeeexxxxxxx      xxxxxxx
#
#
# Mein erstes größeres TCL Script. Für die Einstellung von sBNC.
# Es überprüft jede halbe und volle Stunde ob alle User im Homechan sind.
#
# Danke an:
# Nighty - Für die Idee und das Simul-all script.
# Wanne - Für die mysqlconnect.tcl ;)
#
# Dieses Script benötigt die check.tcl von mir :)
#
# Commands:
#
# ?sbnc check
# - Überprüft ob jeder User im Homechan ist.
# ?sbnc simul Ident/all command
# - Simuls das angegebene Command an dem User.
# ?sbnc add Ident ?Nick? ?Realname?
# - Fügt einen neuen User hinzu. Nick = Der User, der die Zugangsdaten bekommt. Wenn kein Nick angegeben wird dein Nick genutzt.
# ?sbnc del Ident
# - Löscht einen Bouncer.
# ?sbnc suspend ident ?reason?
# - Suspendiert einen Bouncer mit dem Grund. Wenn kein Grund angegeben, der Standartgrund wird genutzt.
# ?sbnc unsuspend ident
# - Hebt die suspendierung eines Users wieder auf.
# ?sbnc resetpass ident ?nick?
# - Resetet das Passwort des Users.. Nick = Der User, der das neue Passwort bekommt. Wen kein Nick angegeben wird dein Nick genutzt.
# ?sbnc global Nachricht
# - Sendet eine Nachricht an alle User.
# ?sbnc status
# - Shows a status message.
# ?sbnc info ident
# - Zeigt Informationen zur angegebenen Ident.
# ?sbnc admin Ident
# - Gibt einem User Adminrechte
# ?sbnc unadmin Ident
# - Entfernt Adminrechte eines Users.
# ?sbnc list
# - Zeigt alle Bouncer.
# ?sbnc slist
# - Zeigt eine Liste alles suspendet Bouncer.
# ?sbnc welcome on/off
# - Aktiviert, dass der Bot in die Willkommens Message von Q schreibt, wieviele Bouncer noch verfügbar sind. ( Der Bot brauch +m bei Q! )
# ?sbnc version
# - Zeigt die aktuelle Version des Scripts.

# You didnt need to change this 2 settings.
set sbnc(author)      "WindowsLive"
set sbnc(version)      "2.8b MYSQL+Autoupdate"

# > Binds
bind PUB n|S $sbnc(global,trigger)sbnc sbnc:pub
bind time - "* * * * *" sbnc:timed
bind MSGM - {*} sbnc:qry
# < Binds

# > Flags
setudef flag welcome
setudef flag topic2
setudef str topic
setudef flag topicq
# < Flags

# Dont change anything, thanks!
# Dont change anything, thanks!
# Dont change anything, thanks!
# Dont change anything, thanks!


# > Procs
proc sbnc:pub { nick host hand chan arg } {
   global sbnc
   set function   [string tolower [lindex [split $arg] 0]]
   if {[string tolower $chan] != [string tolower $sbnc(global,home)]} { return }
   switch -- $function {
      check {
         putlog "$nick used sbnc check."
         putquick "SBNC simulall join $sbnc(global,home)"
         sbncmsg $chan 2 "Done. Alle [getbnc] User sind nun in diesem Channel."
      }

      simul {
         set user [lindex [split $arg] 1]
         set command [lrange [split $arg] 2 end]
         if {$user == "" || $command == ""} {
            sbncmsg $chan 2 "Falsche Eingabe. Benutz: $sbnc(global,trigger)sbnc simul ident command"
            return
         }
         if {$user == "all"} {
            putquick "SBNC simulall $command"
            sbncmsg $chan 2 "Done."
            putlog "!!! $nick hat SIMUL ALL benutzt. Command: $command !!!!!!"
            return
         }
         if {[bncexists $user] == "0"} { sbncmsg $chan 1 "$user gibt es nicht." ; return }
         putlog "!!!! $nick hat SIMUL $user benutzt. Command: $command !!!!!"
         putquick "SBNC simul $user :$command"
         sbncmsg $chan 2 "Done."
      }
      add {
         set ident [lindex [split $arg] 1]
         set inhere [lindex [split $arg] 2]
         set realname [lrange [split $arg] 3 end]
         set bncs [getbnc]
         if {$ident == ""} {
            sbncmsg $chan 2 "Falsche Eingabe. Benutz: $sbnc(global,trigger)sbnc add ident ?user? ?realname?"
            return
         }
         if {$realname == ""} {
            set realname $sbnc(global,realname)
         }
         if {$inhere == ""} {
            set inhere $nick
         }
         if {![onchan $inhere $sbnc(global,home)]} {
            sbncmsg $chan 2 "Fehler. $inhere ist nicht in diesem Channel."
            return
         }
         if {[bncexists $ident] == 1} {
            sbncmsg $chan 1 "Fehler. Da ist bereits ein Bouncer mit Ident $ident ."
            return
         }
         if {[getbnc] == $sbnc(global,max)} {
            sbncmsg $chan 2 "Fehler. Es sind bereits $sbnc(global,max) Bouncer hinzugefügt."
            return
         }
         if {[string length $ident] > 9} {
            sbncmsg $chan 1 "Fehler. Die Ident darf nur max. 9 Zeichen lang sein."
            return
         }
         set pass [randstring 8]

         putlog "$nick fügte bouncer $ident hinzu. Realuser: $inhere"
         putquick "SBNC adduser $ident $pass"
         putquick "SBNC simul $ident sbnc set realname $realname"
         putquick "SBNC simul $ident sbnc set server $sbnc(global,irc)"
         if {$sbnc(lock) == "1"} {
            foreach x $sbnc(locksetting) {
               putquick "SBNC lock $ident $x"
            }
         }
         if {$sbnc(global,ifaceon) == "1"} {
            putquick "PRIVMSG $inhere :Neuer Bouncer hinzugefügt! Powered by $sbnc(global,home)"
            putquick "PRIVMSG $inhere :Server: $sbnc(global,sbncip) Port: $sbnc(global,sbncport)"
            putquick "PRIVMSG $inhere :User: $ident Password: $pass"
            putquick "PRIVMSG $inhere :Webinterface: $sbnc(global,iface)"
         } else {
            putquick "PRIVMSG $inhere :Neuer Bouncer hinzugefügt! Powered by $sbnc(global,home)"
            putquick "PRIVMSG $inhere :Server: $sbnc(global,sbncip) Port: $sbnc(global,sbncport)"
            putquick "PRIVMSG $inhere :User: $ident Password: $pass"
         }
         add:bnc $ident $nick $inhere [unixtime] 0
         sbncmsg $chan 2 "Done. User $ident hinzugefügt | Bouncer [getbnc] / $sbnc(global,max)"
         utimer 20 [list putquick "SBNC simul $ident JOIN $sbnc(global,home)" ]
         topic:set
         if {[channel get $sbnc(global,home) welcome]} {
            putserv "PRIVMSG Q :chanflags $sbnc(global,home) +w"
            set free [expr {$sbnc(global,max) - [getbnc]}]
            putserv "PRIVMSG Q :welcome $sbnc(global,home) Es stehen noch $free Bouncer kostenlos zur Verfügung. Du willst einen kostenlosen Bouncer? Qry $sbnc(global,admin)"
         }
      }
      del {
         set ident [lindex [split $arg] 1]
         set bncs [getbnc]
         if {$ident == ""} {
            sbncmsg $chan 2 "Fehler. Benutze: $sbnc(global,trigger)sbnc del ident"
            return
         }
         if {$ident == $sbnc(botident)} {
            sbncmsg $chan 1 "Haha. Du kannst mich nicht löschen!"
            return
         }
         if {[issuspended $ident] == "1"} {
            unsuspend $ident
         }
         if {[sbnc:locked $ident]} {
            sbncmsg $chan 1 "Fehler. $ident ist gelockt und kann nicht gelöscht werden!"
            return
         }
         if {[del:bnc $ident] == "1"} {
            putlog "$nick löschte User $ident"
            putquick "SBNC deluser $ident"
            sbncmsg $chan 1 "Done. $ident wurde gelöscht."
            topic:set
            if {[channel get $sbnc(global,home) welcome]} {
               putserv "PRIVMSG Q :chanflags $sbnc(global,home) +w"
               set free [expr {$sbnc(global,max) - [channel get $sbnc(global,home) bncs]}]
               putserv "PRIVMSG Q :welcome $sbnc(global,home) Es stehen noch $free Bouncer kostenlos zur Verfügung. Du willst einen kostenlosen Bouncer? Qry $sbnc(global,admin)"
            }
         } else {
            sbncmsg $chan 1 "Kann $ident nicht finden!"
         }
      }
      suspend {
         set ident [lindex [split $arg] 1]
         set reason [lrange [split $arg] 2 end]
         set bncs [getbnc]
         if {$ident == ""} {
            sbncmsg $chan 2 "Fehler. Benutze: $sbnc(global,trigger)sbnc suspend ident ?reason?"
            return
         }
         if {$reason == ""} {
            set reason "$sbnc(global,sreason)"
         }
         if {$ident == "$sbnc(botident)"} {
            sbncmsg $chan 1 "Haha. Du kannst mich nicht suspendieren!"
            return
         }
         if {[issuspended $ident] == "1"} {
            sbncmsg $chan 1 "Fehler. $ident ist bereits suspendet."
            return
         }
         if {[suspend $ident [unixtime] $nick $reason] == "1"} {
            putlog "$nick suspendiert $ident mit Grund $reason"
            putquick "SBNC suspend $ident $reason"
            sbncmsg $chan 1 " Done."
            return
         } else {
            sbncmsg $chan 1 "Konnte $ident nicht finden!"
         }
      }
      unsuspend {
         set ident [lindex [split $arg] 1]
         set bncs [getbnc]
         set suspended [getsuspend]
         if {$ident == ""} {
            sbncmsg $chan 2 "Fehler. Benutz: $sbnc(global,trigger)sbnc unsuspend ident"
            return
         }
         if {$ident == "$sbnc(botident)"} {
            sbncmsg $chan 1 "Haha. Ich bin nicht suspendiert...!"
            return
         }
         if {[issuspended $ident] == "0"} {
            sbncmsg $chan 1 "$ident ist nicht suspendiert."
            return
         }
         if {[unsuspend $ident] == "1"} {
            putlog "$nick unsuspendiert User $ident"
            putquick "SBNC unsuspend $ident"
            sbncmsg $chan 1 " Done."
            return
         }

      }
      resetpass {
         set ident [lindex [split $arg] 1]
         set user [lindex [split $arg] 2]
         if {$ident == ""} {
            sbncmsg $chan 2 "Fehler. Benutz: $sbnc(global,trigger)sbnc resetpass ident ?user?"
            return
         }
         if {$user == ""} {
            set user "$nick"
         }
         if {![onchan $user $sbnc(global,home)]} {
            sbncmsg $chan 1 "Fehler. $user ist nicht in $sbnc(global,home)"
            return
         }
         if {[bncexists $ident] == "1"} {
            set temppass [randstring 8]
            putlog "$nick resetet Passwort von $ident . Neues Passwort: $temppass . Daten gesendet zu $user"
            putquick "SBNC resetpass $ident $temppass"
            putquick "PRIVMSG $user : Hallo! Dein Password vom Bouncer von $sbnc(global,home) wurde resetet!"
            putquick "PRIVMSG $user : IP: $sbnc(global,sbncip) Port: $sbnc(global,sbncport) "
            putquick "PRIVMSG $user : Ident: $ident | Dein neues Passwort ist $temppass"
            if {$sbnc(global,ifaceon) == "1"} {
               putquick "PRIVMSG $user : Webinterface: $sbnc(global,iface)"
            }
            sbncmsg $chan 2 " Done. Passwort von $ident geändert. Neues Passwort wurde zu $user gesendet."
            return
         } else {
            sbncmsg $chan 1 "Kann $ident nicht finden!"
         }
      }
      global {
         set message [lrange [split $arg] 1 end]
         if {$message == ""} {
            sbncmsg $chan 1 " Du hast deine Nachricht vergessen!"
            return
         }
         putlog "$nick verschickt globale message: $message"
         putquick "SBNC global $message"
         sbncmsg $chan 1 " Done. [getbnc] User haben diese Nachricht erhalten."
      }
      iface {
         if {$sbnc(global,ifaceon) == "1"} {
            sbncmsg $chan 1 "Webinterface: $sbnc(global,iface)"
         } else {
            sbncmsg $chan 1 "Zur Zeit ist das Webinterface nicht verfügbar."
         }
      }
      stats {
         putquick "PRIVMSG -sBNC :statusinfo"
         utimer 2 {
            sbncmsg $sbnc(global,home) 1 "Zur Zeit gibt es [getbnc] Bouncer. Möglich sind $sbnc(global,max) Bouncer. [expr {$sbnc(global,max) - [getbnc]}] freie Bouncer."
            if {[getsuspend] < "2" && [getsuspend] > "0"} {
               sbncmsg $sbnc(global,home) 1 "[getsuspend] Bouncer ist suspendiert."
            } else {
               sbncmsg $sbnc(global,home) 1 "[getsuspend] Bouncer sind suspendiert."
            }
            sbncmsg $sbnc(global,home) 1 "$sbnc(connected) User sind connectet. $sbnc(qnet) Bouncer sind zum Quakenet connected."
            if {$sbnc(admins) < "2"} {
               sbncmsg $sbnc(global,home) 1 "Es gibt $sbnc(admins) Admin."
            } else {
               sbncmsg $sbnc(global,home) 1 "Es gibt $sbnc(admins) Admins."
            }
         }
      }
      lock {
         set ident [lindex [split $arg] 1]
         if {$ident == ""} {
            sbncmsg $chan 1 "$sbnc(global,trigger)sbnc lock ?ident?"
            return
         }
         if {[bncexists $ident]} {
            if {![sbnc:locked $ident]} {
               sbnc:lock $ident
               sbncmsg $chan 1 "Done. Bouncer mit Ident $ident wurde erfolgreich gelocked."
               return
            } else {
               sbncmsg $chan 1 "Fehler. $ident ist bereits gelocked."
            }
         } else {
            sbncmsg $chan 2 "Es gibt keinen Bouncer mit Ident $ident"
         }
      }
      unlock {
         set ident [lindex [split $arg] 1]
         if {$ident == ""} {
            sbncmsg $chan 1 "$sbnc(global,trigger)sbnc unlock ?ident?"
            return
         }
         if {[bncexists $ident]} {
            if {[sbnc:locked $ident]} {
               sbnc:unlock $ident
               sbncmsg $chan 1 "Done. Bouncer mit Ident $ident wurde erfolgreich delocked."
               return
            } else {
               sbncmsg $chan 1 "Fehler. $ident ist nicht gelocked."
            }
         } else {
            sbncmsg $chan 2 "Es gibt keinen Bouncer mit Ident $ident"
         }
      }
      info {
         set bnc [lindex [split $arg] 1]
         if {$bnc == ""} {
            sbncmsg $chan 1 "Fehler. Benutz: $sbnc(global,trigger)sbnc info ident"
            return
         }
         set infobla [infos $bnc]
         if {$infobla != "0"} {
            if {[issuspended $bnc] == "0"} {
               set issuspended "nein"
               putquick "PRIVMSG -sBNC :infos $bnc"
            } else {
               set issuspended "ja"
               set susbla [susinfo $bnc]
               set sreason [lrange [split $susbla] 3 end]
               set suspender [lindex [split $susbla] 2]
               set sdate [lindex [split $susbla] 1]
            }
            set bnc2 [lindex [split $infobla] 0]
            set ersteller [lindex [split $infobla] 1]
            set real [lindex [split $infobla] 2]
            set suspended [lindex [split $infobla] 3]
            set admin [lindex [split $infobla] 4]
            set datum [lindex [split $infobla] 5]
            if {$admin == "1"} { set admin "ja" } else { set admin "nein" }
            if {[sbnc:locked $bnc]} {
               sbncmsg $chan 1 "Infos über: $bnc2 | Erstellt am [ctime $datum] von $ersteller | Realnick: $real | Admin: $admin | Suspendiert: $issuspended | $bnc ist gelockt."
            } else {
               sbncmsg $chan 1 "Infos über: $bnc2 | Erstellt am [ctime $datum] von $ersteller | Realnick: $real | Admin: $admin | Suspendiert: $issuspended"
            }
            if {$issuspended == "ja"} {
               sbncmsg $chan 1 "Suspendiert von $suspender am [ctime $sdate] | Grund: $sreason"
               return
            }
            utimer 2 { sbncmsg $sbnc(global,home) 1 "Connected zu $sbnc(ninfo) unter Nick $sbnc(nick) | Letzter Login: $sbnc(llogin) | Client ist $sbnc(isda)" }
         } else {
            sbncmsg $chan 1 "Kann $bnc nicht finden."
         }
      }
      admin {
         if {![matchattr $hand n]} { return }
         set ident [lindex [split $arg] 1]
         if {$ident == ""} {
            sbncmsg $chan 1 "Fehler. Benutz: $sbnc(global,trigger)sbnc admin Ident"
            return
         }
         if {[admin $ident] == "1"} {
            putquick "SBNC ADMIN $ident"
            sbncmsg $chan 1 "Done. $ident ist nun Admin."
            return
         } else {
            sbncmsg $chan 1 "Kann $ident nicht finden!"
         }
      }
      unadmin {
         if {![matchattr $hand n]} { return }
         set ident [lindex [split $arg] 1]
         if {$ident == ""} {
            sbncmsg $chan 1 "Fehler. Benutz: $sbnc(global,trigger)sbnc unadmin Ident"
            return
         }
         if {$ident == "$sbnc(botident)"} {
            sbncmsg $chan 1 "Haha. Du kannst meine Rechte nicht removen!"
            return
         }
         if {[unadmin $ident] == "1"} {
            putquick "SBNC UNADMIN $ident"
            sbncmsg $chan 1 "Done. $ident ist kein Admin mehr.."
            return
         } else {
            sbncmsg $chan 1 "Kann $ident nicht finden!"
         }
      }
      update {
         set ::sbnc(updatetimer) [utimer 5 [list sbncmsg $::sbnc(global,home) 1 "Keine neue Version des sBnc Scripts verfügbar."]]
         sbnc:autoupdate
         sbncmsg $::sbnc(global,home) 1 "Update gestartet - Bitte warten! :\)"
      }
      welcome {
         if {![matchattr $hand n]} { return }
         set funktion [lindex [split $arg] 1]
         switch -- $funktion {
            on {
               if {![channel get $sbnc(global,home) welcome]} {
                  if {![onchan Q $sbnc(global,home)]} {
                     sbncmsg $chan 1 "Fehler. Du kannst Welcome nicht aktivieren. Q benötigt."
                     return
                  }
                  putquick "PRIVMSG Q :chanflags $sbnc(global,home) +w"
                  channel set $sbnc(global,home) +welcome
                  sbncmsg $chan 1 "Welcome Message ist nun aktiviert. Ich brauche +m bei Q!"
               } else {
                  sbncmsg $chan 1 "Welcome Message ist bereits aktiviert."
                  return
               }
            }
            off {
               if {[channel get $sbnc(global,home) welcome]} {
                  putquick "PRIVMSG Q :chanflags $sbnc(global,home) -w"
                  channel set $sbnc(global,home) -welcome
                  sbncmsg $chan 1 "Welcome Message wurde deaktiviert.."
               } else {
                  sbncmsg $chan 1 "Welcome Message ist bereits deaktiviert.."
                  return
               }
            }
            set {
               if {![channel get $sbnc(global,home) welcome]} {
                  sbncmsg $chan 1 "Sbnc Q welcome ist nicht aktiviert."
                  return
               }
               putquick "PRIVMSG Q :chanflags $sbnc(global,home) +w"
               set free [expr {$sbnc(global,max) - [channel get $sbnc(global,home) bncs]}]
               putquick "PRIVMSG Q :welcome $sbnc(global,home) Es stehen noch $free Bouncer kostenlos zur Verfügung. Du willst einen kostenlosen Bouncer? Qry $sbnc(global,admin)"
               sbncmsg $chan 1 "Done."
            }
            default {
               if {[channel get $sbnc(global,home) welcome]} {
                  set status aktiviert
               } else {
                  set status deaktiviert
               }
               sbncmsg $chan 1 "Q welcome Message ist zur Zeit $status."
               sbncmsg $chan 1 "Benutze: $sbnc(global,trigger)sbnc welcome on/off | set."
            }
         }
      }
      topic {
         if {![matchattr $hand n]} { return }
         set funktion [lindex [split $arg] 1]
         switch -- $funktion {
            on {
               if {![channel get $sbnc(global,home) topic2]} {
                  channel set $sbnc(global,home) +topic2
                  channel set $sbnc(global,home) topic "topic $sbnc(global,home)"
                  sbncmsg $chan 1 "Topic aktiviert. Das Topic wurde gespeichert."
               } else {
                  sbncmsg $chan 1 "Topic ist bereits aktiviert."
                  return
               }
            }
            off {
               if {[channel get $sbnc(global,home) topic2]} {
                  channel set $sbnc(global,home) -topic2
                  sbncmsg $chan 1 "Topic deaktiviert."
               } else {
                  sbncmsg $chan 1 "Topic ist bereits deaktiviert."
                  return
               }
            }
            q {
               if {![channel get $sbnc(global,home) topic2]} {
                  sbncmsg $chan 1 "Du musst das Topic script erst aktivieren! ?sbnc topic on"
                  return
               }
               if {![onchan Q $sbnc(global,home)]} {
                  sbncmsg $chan 1 "Du brauchst Q für diese funktion."
                  return
               }
               if {[lindex [split $arg] 2] == "on"} {
                  if {[channel get $sbnc(global,home) topicq]} {
                     sbncmsg $chan 1 "Das Topic wird bereits über Q gesetzt."
                     return
                  } else {
                     channel set $sbnc(global,home) +topicq
                     sbncmsg $chan 1 "Das Topic wird nun über Q gesetzt."
                     return
                  }
               }
               if {[lindex [split $arg] 2] == "off"} {
                  if {![channel get $sbnc(global,home) topicq]} {
                     sbncmsg $chan 1 "Das Topic wird bereits nicht über Q gesetzt.."
                     return
                  } else {
                     channel set $sbnc(global,home) -topicq
                     sbncmsg $chan 1 "Das Topic wird nun nichtmehr über Q gesetzt."
                     return
                  }
               }
            }
            save {
               if {![channel get $sbnc(global,home) topic2]} {
                  sbncmsg $chan 1 "Das Topicscript ist nicht aktiviert."
                  return
               }
               set topic [topic $sbnc(global,home)]
               if {![string match *:status:* $topic]} {
                  sbncmsg $chan 1 "Im Topic muss :status: vorkommen!"
                  return
               }
               channel set $sbnc(global,home) topic "$topic"
               sbncmsg $nick 1 "[channel get $sbnc(global,home) topic] wurde als Topic gespeichert."
               topic:set
            }
            set {
               set topic [lrange [split $arg] 2 end]
               putlog "$topic"
               if {[llength $topic] > 250} {
                  sbncmsg $chan 1 "Das Topic darf nur max. 250 Buchstaben lang sein!"
                  return
               }
               if {[llength $topic] < 10} {
                  sbncmsg $chan 1 "Bitte gib mind. 10 Buchstaben ein."
                  return
               }
               if {![string match *:status:* $topic]} {
                  sbncmsg $chan 1 "Im Topic muss :status: vorkommen!"
                  return
               }
               channel set $sbnc(global,home) topic "$topic"
               topic:set
               sbncmsg $chan 1 "Done."
            }
            default {
               if {[channel get $sbnc(global,home) topic2]} {
                  set status aktiviert
               } else {
                  set status deaktiviert
               }
               sbncmsg $chan 1 "Topic ist zur Zeit $status."
               if {$status == "aktiviert"} {
                  sbncmsg $chan 1 "Gespeicherte Topic: [channel get $sbnc(global,home) topic]"
               }
               if {[channel get $sbnc(global,home) topicq]} {
                  sbncmsg $chan 1 "Das Topic wird über Q gesetzt."
               } else {
                  sbncmsg $chan 1 "Das Topic wird nicht über Q gesetzt."
               }
               sbncmsg $chan 1 "Benutze: $sbnc(global,trigger)sbnc topic on/off | set | save | q."
            }
         }
      }
      idlers {
         set d [lindex [split $arg] 1]
         if {$d == ""} { set d "3"}
         if {![isnumber $d]} { sbncmsg $chan 1 "Bitte gib eine valide Zahl ein!" ; return }
         putquick "PRIVMSG -sBNC :idlers $d"
         sbncmsg $chan 1 "Ich zeige nun die Bouncer an, die länger als $d Tage nicht genutzt worden sind."
         utimer 2 {
            sbncmsg $sbnc(global,home) 1 "Idle Bouncer sind: $sbnc(idlers)"
         }
      }
      list {
         foreach x [bnclist] {
            lappend ids $x
         }
         if {![info exists ids]} {
            sbncmsg $chan 1 "Kein Bouncer geadded."
            return
         }
         while {[llength $ids] > 0} {
            set p [lrange $ids 0 10]
            sbncmsg $nick 1 "\002Userlist:\002 [join $p ", "]"
            set ids [lreplace $ids 0 10]
         }

      }
      slist {
         foreach x [sbnclist] {
            lappend ids $x
         }
         if {![info exists ids]} {
            sbncmsg $nick 1 "Kein Bouncer suspended."
            return
         }
         while {[llength $ids] > 0} {
            set p [lrange $ids 0 10]
            sbncmsg $nick 1 "\002Suspended Userlist:\002 [join $p ", "]"
            set ids [lreplace $ids 0 10]
         }
      }
      kill {
         set ident [lindex [split $arg] 1]
         if {$ident == ""} { sbncmsg $chan 1 "Benutze: ?sbnc kill Ident"
            return
         }
         if {[bncexists $ident] == "1"} {
            putquick "SBNC KILL $ident"
            sbncmsg $chan 1 "Done. $ident wurde vom Bouncer disconnected."
            return
         } else {
            sbncmsg $chan 1 "Kann $ident nicht finden!"
         }
      }
      version {
         putquick "PRIVMSG $chan :\001ACTION benutzt sBNC-Admin-Control \(deutsch\) von $sbnc(author) - #BundesTrojaner - Version: $sbnc(version)"
      }
      adduser {
         if {![matchattr $hand n]} { return }
         set unick [lindex [split $arg] 1]
         if {$unick == ""} { putquick "NOTICE $nick :Nickname vergessen." ; return }
         if {[validuser $unick]} {
            sbncmsg $chan 1 "$unick ist bereits geadded."
            return
         }
         adduser $unick *![getchanhost $unick]
         chattr $unick -|S $chan
         sbncmsg $chan 1 "Done."
      }
      deluser {
         if {![matchattr $hand n]} { return }
         set unick [lindex [split $arg] 1]
         if {$unick == ""} { putquick "NOTICE $nick :Nickname vergessen." ; return }
         if {![validuser $unick]} {
            sbncmsg $chan 1 "$unick ist mir nicht bekannt."
            return
         }
         deluser $unick
         sbncmsg $chan 1 "Done."
      }
      ulist {
         if {![matchattr $hand n]} { return }
         sbncmsg $nick 1 "Userlist: [userlist -|S $chan]"
      }
      default {
         sbncmsg $chan 1 "$sbnc(global,trigger)sbnc check|simul|add|del|suspend|unsuspend|resetpass|global|iface|stats|lock|unlock|info|admin|unadmin|update|welcome|topic|idlers|list|slist|kill|version|adduser|deluser|ulist"
      }
   }
}

proc sbnc:qry {nickname hostname handle arguments} {
   global sbnc
   if {$nickname != "-sBNC"} { return }
   set user [lindex [split $arguments] 1]
   if {[isignore *!*@shroudbnc.info]} { killignore *!*@shroudbnc.info }
   if {[isignore *!*@shroudbnc.org]} { killignore *!*@shroudbnc.org }
   if {![validuser -sBNC]} { adduser -sBNC ; setuser -sBNC hosts "*!*@shroudbnc.info *!*@shroudbnc.org"  }
   if {![matchattr -sBNC f]} { chattr -sBNC f }
   if {[string match "*Status:*" "$arguments"]} { set sbnc(user) [lindex [split $arguments] 2] ; set sbnc(connected) [lindex [split $arguments] 5] ; set sbnc(qnet) [lindex [split $arguments] 8] ; set sbnc(admins) [lindex [split $arguments] 11]}
   if {[string match "*Infos:*" "$arguments"]} { set sbnc(ninfo) [lindex [split $arguments] 2] ; set sbnc(nick) [lindex [split $arguments] 3] ; set sbnc(isda) [lindex [split $arguments] 4] ; set sbnc(llogin) [lrange [split $arguments] 5 end]}
   if {[string match "*Idlers:*" "$arguments"]} { set sbnc(idlers) [lrange [split $arguments] 1 end] }
   if {[lindex [split $arguments] 3] == "on"} {
      if {$sbnc(admin,on) == "1"} {
         if {$sbnc(global,achan) == $sbnc(global,home)} {
            sbncmsg $sbnc(global,home) 1 "Du kannst den Internen Channel nicht als Homechannel benutzen!!!"
            return
         }
         putquick "PRIVMSG -sBNC :simul $user :privmsg $sbnc(global,achan) :\002 $user \002 hat sich eingeloggt!"
      }
   }
   if {[lindex [split $arguments] 3] == "off."} {
      if {$sbnc(admin,on) == "1"} {
         if {$sbnc(global,achan) == $sbnc(global,home)} {
            sbncmsg $sbnc(global,home) 1 "Du kannst den Internen Channel nicht als Homechannel benutzen!!!!"
            return
         }
         putquick "PRIVMSG -sBNC :simul $user :privmsg $sbnc(global,achan) :\002 $user \002 hat sich ausgeloggt!"
      }
   }
   if {[lindex [split $arguments] 1] == "removed:"} {
      if {$sbnc(admin,on) == "1"} {
         if {$sbnc(global,achan) == $sbnc(global,home)} {
            sbncmsg $sbnc(global,home) 1 "Du kannst den Internen Channel nicht als Homechannel benutzen!!!!"
            return
         }
         sbncmsg $sbnc(global,achan) 1 "\002 [lindex [split $arguments] 2] \002 wurde gelöscht und hat disconnected.!"
      }
   }
}

proc sbnc:timed { min hour day month year } {
   global sbnc
   if { $min == 30 } {
      putlog "Überprüfe nun, ob alle User in $sbnc(global,home) sind."
      putserv "PRIVMSG -SBNC :simulall JOIN $sbnc(global,home)"
   }
   if { $hour == "23" && $::sbnc(autoupdate) == "1"} {
      sbnc:autoupdate
   }
   if {[isignore *!*@shroudbnc.info]} { killignore *!*@shroudbnc.info }
   if { $min == 00 } {
      putlog "Überprüfe nun, ob alle User in $sbnc(global,home) sind."
      putserv "PRIVMSG -SBNC :simulall JOIN $sbnc(global,home)"
      if {![validchan $sbnc(global,home)]} {
         putlog "Fehler. $sbnc(global,home) ist kein valider Channel. Überprüf deine Settings!"
         die "Fehler. $sbnc(global,home) ist kein valider Channel. Ueberpruef deine Settings!"
         return
      }
      if {$sbnc(admin,on) == "1"} {
         if {[string match "*n*" "[getchanmode $sbnc(global,achan)]"]} {
            channel set $sbnc(global,achan) chanmode -n
            pushmode $sbnc(global,achan) -n
            sbncmsg $sbnc(global,achan) 1 "Brauche -n in diesem Channel! SbncScript by WindowsLive"
         }
      }
   }
}

proc topic:set { } {
   global sbnc
   if {![channel get $sbnc(global,home) topic2]} { return }
   set topic [channel get $sbnc(global,home) topic]
   set bncs [getbnc]
   set max $sbnc(global,max)
   set sbncstatus " $bncs/$max "
   regsub -all {:status:} $topic "$sbncstatus" topic
   if {[channel get $sbnc(global,home) topicq]} {
      putquick "PRIVMSG Q :settopic $sbnc(global,home) $topic"
      return
   }
   if {![isop $::botnick $sbnc(global,home)]} {
      sbncmsg $::sbnc(global,home) 1 "Ich habe kein OP und kann das Topic nicht setzen."
      return
   }
   putserv "TOPIC $sbnc(global,home) :$topic"
}

proc sbncmsg { chan queue msg } {
   if {$queue == "1"} {
      set queue "putquick"
   } elseif {$queue == "2"} {
      set queue "putserv"
   } else {
      set queue "puthelp"
   }
   if {![string match "#*" $chan]} {
      set action "notice"
   } else {
      set action "privmsg"
      set mode "[string match *c* [getchanmode $chan]]"
   }
   if {[info exists mode] && $mode == "1"} {
      $queue "$action $chan :\(sBNC\) $msg"
   } else {
      $queue "$action $chan :\002\(\002sBNC\002\)\002 $msg"
   }
}

proc sbnc:autoupdate { } {
   set size [file size "$::sbnc(dir)/sbnc.tcl"]
   catch { exec wget http://update.alexanderb.info/sbnc.tcl } unwichtig
   if {[file exists sbnc.tcl] && [file size "sbnc.tcl"] != $size && [file size "sbnc.tcl"] != "0"} {
      exec cp "sbnc.tcl" "$::sbnc(dir)/sbnc.tcl"
      exec rm sbnc.tcl
      rehash
      if {[info exists ::sbnc(updatetimer)]} {
         killutimer $::sbnc(updatetimer)
      }
      sbncmsg $::sbnc(global,home) 2 "Neue Version des sBNC Scripts heruntergeladen und erfolgreich aktualisiert."
      return 1
   }
   exec rm sbnc.tcl
   return 0
}

putlog "Sbncscript von $::sbnc(author) V$::sbnc(version) geladen"


This is the Error

Code:
Tcl error [sbnc:timed]: can't read "::sbnc(dir)": no such element in array




Thanks a lot
Back to top
View user's profile Send private message
Nor7on
Op


Joined: 03 Mar 2007
Posts: 185
Location: Spain - Barcelona

PostPosted: Thu Aug 28, 2008 6:03 pm    Post subject: Reply with quote

add in top
after:
Code:
# > Procs


add:

Code:
set sbnc(dir) "home/user/sbnc/scripts"

in "USER" change for ur user account.

after:
Code:
proc sbnc:autoupdate { } {


add:

Code:
global sbnc


and try it again.
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger
Fraud
Op


Joined: 19 May 2008
Posts: 101

PostPosted: Thu Aug 28, 2008 7:33 pm    Post subject: Reply with quote

Works Perfekt.

Thanks
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    egghelp.org community Forum Index -> Script Requests All times are GMT - 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Forum hosting provided by Reverse.net

Powered by phpBB © 2001, 2005 phpBB Group
subGreen style by ktauber