Werbung

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Motto Erweiterung für Radiomoderator

Dieses Thema im Forum "Eggdrop Scripting" wurde erstellt von Tappi112, 3. März 2013.

  1. Tappi112

    Tappi112 Member

    Wir nutzen ein recht gutes Script für das Radio.
    Nun bin ich angesprochen worden, das man auch ein Motto mit angeben könnte.

    Jetzt möchte ich ungern das Radioscript bearbeiten, sondern einfach ein schlichtes neues Script schreiben.

    Also folgendes, wenn ein Moderator auf Sendung geht setzt er sich als DJ/Moderator ... das Topic wird im Chat geändert und er kann Wünsche empfangen....

    So weit so gut, nun soll er aber noch die Möglichkeit haben, sein Motto z.B. Rock angeben zu können.

    !setmotto Rock

    Wenn dann ein Hörer im Chat !motto eingibt soll dann ein Ausgabetext kommen z.B. der Moderator hat für seine Sendung das Motto Rock gewählt ....

    Nur wie mach ich das nun?

    Ich könnte zwar mit der Variable %genre arbeiten im Radioscript, nur weiß ich jetzt schon, das kaum einer dann daran denken wird, dies in seinem Sendeprogramm entsperchend anzugeben. Außerdem, wie schon gesagt möchte ich da ungern etwas umändern... weil es gerade sehr gut funktioniert.

    Darum sollte das ganze mit einem Befehl angegeben werden (setmotto)

    Vielen Dank schon mal im vorraus
  2. coding-board

    coding-board Member

    Werbung
  3. Toushirou

    Toushirou New Member

  4. Tappi112

    Tappi112 Member

    Geholfen hat mir nur, das ich diese Befehle irgendwie in das Script einbringen muss, aber wie, das weiß ich leider nicht. Habe auch nicht wirklich etwas weiter helfendes ergooglen können :(
    Der Link führt auch nur zur Seite Eggheads, aber ohne Inhalt (Errormeldung)

    Ich habe mir aber einige Scripte angeschaut und das was ich weiß was eventuell vorhanden sein muss, schon mal zusammen gefasst .... aber ob es richtig ist weiß ich nicht



    # Channel für Befehle (mehrere mit leerzeilen trennen)
    set text:channels "#retter-team"

    # Befehle setzen
    bind pub -|- !motto text:motto


    puts "text"
    gets stdin text

    set text [gets stdin]





    proc achan {cchan} {

    set activechans "#retter-radio #retter-team"

    if {[string length $activechans] > 0} {
    if {[string first [string tolower $cchan] $activechans] < 0} {
    return no_achan
    }
    }
    }


    bind pub - !Motto motto

    proc motto {nick uhost hand chan arg} {
    if {([achan $chan] != "no_achan")} {
    if {[onchan $arg $chan]} {
    putserv "PRIVMSG $chan :\001ACTION Hallo $arg der sendende Moderator $dj hat $text als sein Motto gesetzt\001"
    }
    if {($arg == "") || ([llength $arg] < 1)} {
    putserv "PRIVMSG $chan :\001ACTION Hallo $nick der sendende Moderator $dj hat $text als sein Motto gesetzt\001"
    }
    return 0
    }
    }


    Ich bin wirklich für jede Hilfe dankbar
  5. Toushirou

    Toushirou New Member

    http://www.eggheads.org/support/egghtml/1.6.15/tcl-commands.html

    Wäre auch richtig :D.

    Code (Text):
    Quelltext kopieren
    1.  
    2. set radioIntern "#retter-team"
    3. setudef str motto
    4.  
    5. bind pub -|- "!motto" pub:motto
    6.  
    7. proc pub:motto {nick uhost handle chan txt} {
    8.     if { $chan == $::radioIntern } {
    9.         channel set $chan motto $txt
    10.         return
    11.     }
    12.     set motto [channel get $::radioIntern motto]
    13.    
    14.     puthelp "PRIVMSG $chan :Das Motto der Sendung lautet $motto"
    15. }
    16.  
    17.  
    18.  
    So in der Richtung würde ich es machen.
    Keine Ahnung ob es funktioniert :D habe es gerade nur schnell gefrickelt.
  6. Tappi112

    Tappi112 Member

    Habe es mal getestet es funktioniert :) Super
    Jetzt muss ich es nur irgendwie hinbekommen, das wenn kein Moderator sendet, eine andere Meldung kommt ... hmmm
    Naja irgendwie werd ich da eine Lösung für finden, wichtig ist das es schon mal geht :)
    Danke für deine Hilfe Toushirou :)
  7. Toushirou

    Toushirou New Member

    Ich weiß ja nicht wie eures Script aufgebaut ist.
    Wenn der Moderator, sobald er fertig ist, irgendwie die Playlist setzt, kann man da ja noch ein bind drauf setzen oder direkt im Radioscript abändern.

    NP.
  8. Tappi112

    Tappi112 Member

    Angeschaut hatte ich es mir schon, aber um ehrlich zu sein trau ich mich da nicht ran, vor allem wüßte ich auch nicht wo an welcher Stelle ich es reinsetzen müsste. Je mehr ich mich mit TCL befasse, je besser verstehe ich es auch, aber direkt im Radioscript jetzt etwas abändern bzw. einfügen, das ist mir doch etwas zu tief .....

    Aber ich könnte das Script ja mal per Mail schicken?

    Was ich aber schon gemacht habe, ist die Textmeldung abgeändert. So bald sich jemand zu Dj gesetzt hat bekommt er eine Meldung. Das gleiche auch wenn er sich wieder entfernt also !unsetdj eingibt.
  9. Toushirou

    Toushirou New Member

    Code (Text):
    Quelltext kopieren
    1. setudef str motto
    2. set radioIntern "#retter-team"
    3.  
    4. bind pub -|- "!motto" pub:motto
    5.  
    6. proc pub:motto {nick uhost handle chan} {
    7.     if { $chan == $::radioIntern } {
    8.         if { $txt != "" } {
    9.             channel set $chan motto $txt
    10.         } else {
    11.             puthelp "NOTICE $nick :$::lastbind <txt>"
    12.         }
    13.         return
    14.     }
    15.  
    16.     set motto [channel get $::radioIntern motto]
    17.     if {$motto != ""} {
    18.         puthelp "PRIVMSG $chan :Das Motto der Sendung lautet $motto"
    19.     }
    20. }
    Wenn Du nun in deinem Radioscript in der Proc von "unsetdj"
    Code (Text):
    Quelltext kopieren
    1. channel set $::radioIntern motto ""
    einfügst :p sollte nix mehr kommen.
  10. Tappi112

    Tappi112 Member

    Danke dir .....

    Habs mal geändert aber nun kommt garkein Motto mehr .... ob der Dj gesetzt ist oder nicht hmm

    Habe testweise mal nur die motto.tcl geändert ohne

    channel set $::radioIntern motto "" den Code noch in die sc.tcl zu setzen, bleibt aber gleich ....

    Habs erstmal wieder Rückgängig gemacht
  11. Toushirou

    Toushirou New Member

    Code (Text):
    Quelltext kopieren
    1. setudef str motto
    2. set radioIntern "#retter-team"
    3.  
    4. bind pub -|- "!motto" pub:motto
    5.  
    6. proc pub:motto {nick uhost handle chan} {
    7.     if { $chan == $::radioIntern } {
    8.         if { $txt != "" } {
    9.             channel set $chan motto $txt
    10.         } else {
    11.             puthelp "NOTICE $nick :$::lastbind <txt>"
    12.         }
    13.         return
    14.     }
    15.  
    16.     set motto [channel get $::radioIntern motto]
    17.     if {$motto != "0"} {
    18.         puthelp "PRIVMSG $chan :Das Motto der Sendung lautet $motto"
    19.     }
    20. }
    Code (Text):
    Quelltext kopieren
    1. channel set $::radioIntern motto "0"
    sollte nun eigentlich gehen
  12. Tappi112

    Tappi112 Member

    Habs getestet ist genauso wie gestern, hat nichts nichts geändert.

    Ich setze mal die sc.tcl hier rein wenn es geht

    Code (Text):
    Quelltext kopieren
    1.  
    2. package require http
    3. namespace eval sc {
    4.     variable vars
    5.     variable sets
    6.     variable triggers
    7.     variable texts
    8.     variable offadv 0
    9.     source scripts/sc.cfg
    10.     proc init {} {
    11.         set start [clock clicks]
    12.         set sc::offadv 0
    13.         bind time - "* * * * *" sc::check
    14.         bind nick - * sc::nick
    15.         foreach x [array names sc::triggers] {
    16.             if {$sc::sets(pub) == 1} {
    17.                 bind pub [expr {($x == "kick") || ($x == "setdj") || ($x == "unsetdj") ? "$sc::vars(flag)" : "-"}] $sc::vars(trigger)$sc::triggers($x) "sc::pub $x"
    18.             }
    19.             if {$sc::sets(msg) == 1} {
    20.                 bind msg [expr {($x == "kick") || ($x == "setdj") || ($x == "unsetdj") ? "$sc::vars(flag)" : "-"}] $sc::vars(trigger)$sc::triggers($x) "sc::msg $x"
    21.             }
    22.         }
    23.         if {$sc::sets(adv) == 1} {
    24.             timer $sc::sets(advtime) "sc::post privmsg none all {$sc::texts(adv)}"
    25.         }
    26.         putlog "sc.tcl v2.1 by LoReZ successfully initialized in [expr {([clock clicks]-$start)/1000.0}]ms"        
    27.     }
    28.     proc pub {text nick uhost hand chan arg} {
    29.         if {([lsearch -exact [string tolower $sc::vars(chans)] [string tolower $chan]] != -1) || ($sc::vars(chans) == "")} {
    30.             sc::cmd $text $nick $chan $arg
    31.         }
    32.     }
    33.     proc msg {text nick uhost hand arg} {
    34.         sc::cmd $text $nick none $arg
    35.     }
    36.     proc nick {nick uhost hand chan newnick} {
    37.         set tmp [open $sc::vars(file) r]
    38.         gets $tmp streamdata
    39.         gets $tmp songdata
    40.         gets $tmp djdata
    41.         close $tmp
    42.         if {$nick == [lindex $djdata 0]} {
    43.             set tmp [open $sc::vars(file) w+]
    44.             puts $tmp $streamdata
    45.             puts $tmp $songdata
    46.             puts $tmp "$newnick [expr {([lindex $djdata 1] == $nick) ? $newnick : [lindex $djdata 1]}] [lrange $djdata 2 end]"
    47.             close $tmp
    48.             if {([lindex $djdata 1] == $nick) && ($sc::sets(djtopchg) == 1)} {
    49.                 #sc::post topic none all "$sc::texts(djtopic)"
    50.             }
    51.         }            
    52.     }
    53.     proc cmd {text nick chan arg} {
    54.         set args [split $arg]
    55.         if {[file exists $sc::vars(file)] != 1} {
    56.             sc::check * * * * *
    57.         }
    58.         set tmp [open $sc::vars(file) r]
    59.         gets $tmp streamdata
    60.         gets $tmp songdata
    61.         gets $tmp djdata
    62.         close $tmp
    63.         switch -exact $text {
    64.             help {
    65.                 set sc::offadv 1
    66.                 putquick "privmsg $nick :Available Commands:"
    67.                 foreach x [array names sc::triggers] {
    68.                     if {$x != "help"} {
    69.                         if {(([matchattr [nick2hand $nick $chan] +$sc::vars(flag) $chan] != 1) && ($x != "kick") && ($x != "setdj") && ($x != "unsetdj")) || ([matchattr [nick2hand $nick $chan] +$sc::vars(flag) $chan] == 1)} {
    70.                             set sc::offadv 1
    71.                             putquick "privmsg $nick :$sc::vars(trigger)[expr {($x == "setdj") ? "$sc::triggers($x) <djname> <showname>" : [expr {(($x == "wish") || ($x == "greet")) ? "$sc::triggers($x) <$x>" : "$sc::triggers($x)"}]}]"  
    72.                         }
    73.                     }
    74.                 }
    75.                 set sc::offadv 1
    76.                 putquick "privmsg $nick :End of Commands"
    77.             }
    78.             kick {
    79.                 if {$chan ne $sc::vars(intern) || (![isop $nick $chan] && ![ishalfop $nick $chan])} {return}
    80.                 putquick "privmsg $nick :Source successfully kicked"
    81.                 if {[lindex $streamdata 15] == 1} {
    82.                     set sock [socket $sc::vars(ip) $sc::vars(port)]
    83.                     puts $sock "GET /admin.cgi?mode=kicksrc HTTP/1.1"
    84.                     puts $sock "User-Agent:Mozilla"
    85.                     puts $sock "Host: $sc::vars(ip)"
    86.                     puts $sock "Authorization: Basic $sc::vars(adpass)"
    87.                     puts $sock ""
    88.                     flush $sock
    89.                 }
    90.             }
    91.             setdj {
    92.                 if {$chan ne $sc::vars(intern) || (![isop $nick $chan] && ![ishalfop $nick $chan])} {return}
    93.                 putquick "PRIVMSG $nick :Du bist jetzt der DJ vom Retter-Radio, um ein Motto zu setzen gib im internen ein z.B. !motto Rock"
    94.                 if {[lindex $streamdata 15] == 1} {
    95.                     set tmp [open $sc::vars(file) w+]
    96.                     puts $tmp $streamdata
    97.                     puts $tmp $songdata
    98.                     puts $tmp
    99. [list $nick [expr {([lindex $args 0] == "") ? $nick : [lindex $args 0]}] [lrange $args 1 end]]
    100.                     close $tmp
    101.                     if {$sc::sets(anndj) == 1} {
    102.                         sc::post privmsg none all "$sc::texts(djchg)"
    103.                     }
    104.                     if {$sc::sets(djtopchg) == 1} {
    105.                         sc::post topic none all "$sc::texts(djtopic)"
    106.                     }
    107.                 }
    108.             }
    109.             unsetdj {
    110.                 if {$chan ne $sc::vars(intern) || (![isop $nick $chan] && ![ishalfop $nick $chan])} {return}
    111.                 putquick "PRIVMSG $chan :Du bist nicht mehr der DJ vom Retter-Radio bitte setze noch !motto Plattenkiste"
    112.                 if {[lindex $streamdata 15] == 1} {
    113.                     set tmp [open $sc::vars(file) w+]
    114.                              
    115.                     puts $tmp $streamdata
    116.                     puts $tmp $songdata
    117.                     puts $tmp "none none none"
    118.                     close $tmp
    119.                     if {$sc::sets(anndj) == 1} {
    120.                         sc::post privmsg none all "$sc::texts(djchg)"
    121.                     }
    122.                     if {$sc::sets(djtopchg) == 1} {
    123.                         sc::post topic none all "$sc::texts(ontopic)"
    124.                     }
    125.                 }
    126.             }
    127.             default {
    128.                 if {($text != "wish") && ($text != "greet")} {
    129.                     sc::post privmsg $nick $chan "$sc::texts($text)"
    130.                 } else {
    131.                     if {[lindex $streamdata 15] == 1} {
    132.                         if {($arg == "{}")} {
    133.                         putquick "privmsg $nick :Nothing specified"
    134.                         } else {
    135.                             if {([lindex $djdata 1] == "none") || (${::wishgreet:on} == 0)} {
    136.                                 putquick "PRIVMSG $chan :Momentan werden keine Wünsche akzeptiert."
    137.                             } else {
    138.                                 array set translatemap "wish Wunsch greet Gruß"
    139.                                 putquick "privmsg [expr {($sc::sets(wishgreet) == 1) ? $sc::vars(intern) : [lindex $djdata 0]}] :$translatemap($text) von $nick: $arg"
    140.                                 # putquick "privmsg $nick :[string totitle $text] sent to [expr {($sc::sets(wishgreet) == 1) ? $sc::vars(intern) : [lindex $djdata 0]}]"                                    
    141.                                 puthelp "NOTICE $nick :Dein $translatemap($text) wurde an den Moderator weitergeleitet. Bitte habe Verständnis dafür das es dauern kann bis das gespielt wird!"
    142.                             }
    143.                         }
    144.                     } else {
    145.                         sc::post privmsg $nick none "$sc::texts(offcmd)"
    146.                     }
    147.                 }
    148.             }
    149.         }
    150.         putlog "sc.tcl v2.1 $nick used $sc::vars(trigger)$sc::triggers($text)"
    151.     }          
    152.     proc check {min hour day month year} {
    153.         set start [clock clicks]
    154.         if {[file exists $sc::vars(file)] == 1} {
    155.             set tmp [open $sc::vars(file) r]
    156.             gets $tmp olddata
    157.             gets $tmp songdata
    158.             gets $tmp djdata
    159.             close $tmp
    160.         } else {
    161.             set olddata "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
    162.             set djdata "none none none"
    163.         }
    164.         http::config -useragent "Mozilla 5.0"
    165.         set con [http::geturl http://$sc::vars(ip):$sc::vars(port)/admin.cgi?pass=$sc::vars(pass)&mode=viewxml&page=0 -timeout 10000]
    166.         set urldata [http::data $con]
    167.         http::cleanup $con
    168.         foreach {y z} {21 ! 22 \" 23 # 24 \$ 25 % 26 + 27 ' 28 \( 29 \) 2A * 2B + 2C , 2E . 2F / 3A : 3B \; 3C < 3D = 3E > 3F ? 40 @ 5B \[ 5C \\ 5D \] 5F _ 60 ` C0 À C1 Á C2 Â C3 Ã C4 Ä C5 Å C6 Æ C7 Ç C8 È C9 É CA Ê CB Ë CC Ì CD Í CE Î CF Ï D1 Ñ D2 Ò D3 Ó D4 Ô D5 Õ D6 Ö D9 Ù DA Ú DB Û DC Ü DD Ý DF ß E0 à E1 á E2 â E3 ã E4 ä E5 å E6 æ E7 ç E8 è E9 é EA ê EB ë EC ì ED í EE î EF ï F0 ð F1 ñ F2 ò F3 ó F4 ô F5 õ F6 ö F9 ù FA ú FB û FC ü FD ý FE þ FF ÿ} {
    169.             regsub -all "&#x$y;" $urldata "$z" urldata
    170.         }
    171.         regsub -all ".*<SHOUTCASTSERVER>" $urldata "" data1
    172.         regsub -all "<WEBDATA>.*" $data1 "" data1
    173.         regsub -all ".*<SONGHISTORY>" $urldata "\{" data2
    174.         regsub -all "</SONGHISTORY>.*" $data2 " \}" data2
    175.         set x 0
    176.         foreach y {CURRENTLISTENERS PEAKLISTENERS MAXLISTENERS REPORTEDLISTENERS AVERAGETIME SERVERGENRE SERVERURL SERVERTITLE SONGTITLE SONGURL IRC ICQ AIM WEBHITS STREAMHITS STREAMSTATUS BITRATE CONTENT VERSION SONG PLAYEDAT TITLE} {
    177.             if {$x < 19} {
    178.                 regsub -all ".*<$y>" $data1 "" data10
    179.                 regsub -all "</$y>.*" $data10 "" data10
    180.                 lappend streamdata [expr {(($data10 == "0") || ($data10 == "")) && ([string match -nocase *listeners "$y"] != 1) && ([string match -nocase *hits "$y"] != 1) && ([string match -nocase *time "$y"] != 1) ? "N/A" : $data10}]
    181.             }
    182.             if {$x > 18} {
    183.                 regsub -all "<$y>" $data2 "\{" data2
    184.                 regsub -all "</$y>" $data2 "\} " data2
    185.             }
    186.             incr x
    187.         }
    188.         set tmp [open $sc::vars(file) w+]
    189.         puts $tmp $streamdata
    190.         puts $tmp $data2
    191.         puts $tmp $djdata
    192.         close $tmp
    193.         if {[lindex $olddata 15] != [lindex $streamdata 15]} {
    194.             if { ($sc::sets(ann) == 1)} {
    195.                 set sc::offadv [expr {([lindex $streamdata 15] == 1) ? 0 : 1}]
    196.                 sc::post privmsg none all "[expr {([lindex $streamdata 15] == 1) ? $sc::texts(on) : $sc::texts(off)}]"
    197.             }
    198.             if {$sc::sets(topchg) == 1} {
    199.                 set sc::offadv [expr {([lindex $streamdata 15] == 1) ? 0 : 1}]
    200.                 sc::post topic none all "[expr {([lindex $streamdata 15] == 1) ? $sc::texts(ontopic) : $sc::texts(offtopic)}]"
    201.             }
    202.         }
    203.         foreach {x y z} {8 anntrack songchg 0 annlist listchg 1 annpeak peakchg 16 annbitrate bitratechg} {
    204.             if {([lindex $olddata $x] != [lindex $streamdata $x]) && ($sc::sets($y) == 1)} {
    205.                 sc::post privmsg all all "$sc::texts($z)"
    206.             }
    207.         }
    208.         putlog "sc.tcl v2.1 received information from $sc::vars(ip):$sc::vars(port) in [expr {([clock clicks]-$start)/1000.0}]ms"
    209.     }              
    210.     proc post {mode nick chan text} {
    211.         set tmp [open $sc::vars(file) r]
    212.         gets $tmp streamdata
    213.         gets $tmp songdata
    214.         gets $tmp djdata
    215.         close $tmp
    216.         if {([lindex $streamdata 15] == 1) || ($sc::offadv == 1)} {
    217.             foreach x [lindex $songdata 0] {
    218.                 append lastsongs "[lindex $x 1] :: "
    219.             }
    220.             lappend streamdata $sc::vars(ip) $sc::vars(port) $sc::vars(desc) ":: $lastsongs" [expr {(([lindex $djdata 0] == "none") || ([lindex $djdata 0] == "{}") || ([lindex $djdata 0] == "")) ? "No DJ" : [lindex $djdata 0]}] [expr {(([lindex $djdata 1] == "none") || ([lindex $djdata 1] == "{}") || ([lindex $djdata 1] == "")) ? "No DJ" : [lindex $djdata 1]}] [expr {(([lindex $djdata 2] == "none") || ([lindex $djdata 2] == "{}") || ([lindex $djdata 2] == "")) ? "No Show" : [lrange $djdata 2 end]}] [expr {([lindex $streamdata 15] == 1) ? "online" : "offline"}]
    221.             set x 0
    222.             foreach y {listeners peak max unique avgtime genre url title song songurl irc icq aim webhits streamhits streamstatus bitrate content version ip port desc lastsongs djnick dj showname status} {
    223.                 regsub -all "%$y" $text "[lindex $streamdata $x]" text
    224.                 incr x
    225.             }
    226.             if {$mode == "topic"} {
    227.                 foreach chans [channels] {
    228.                     if {$sc::vars(chans) == ""} {
    229.                         if {$sc::sets(qtopic) == 1} {
    230.                             putquick "privmsg TheQBot@CServe.quakenet.org :SETTOPIC $chans $text"
    231.                         } else {
    232.                             putquick "$mode $chans :$text"
    233.                         }
    234.                     } else {
    235.                         if {([lsearch -exact [string tolower $sc::vars(chans)] [string tolower $chans]] != -1)} {
    236.                             if {$sc::sets(qtopic) == 1} {
    237.                                 putquick "privmsg TheQBot@CServe.quakenet.org :SETTOPIC $chans $text"
    238.                             } else {
    239.                                 putquick "$mode $chans :$text"
    240.                             }
    241.                         }                
    242.                     }
    243.                 }
    244.             } else {
    245.                 if {($sc::sets(reply) != 1) || ($chan == "none")} {
    246.                     putquick "$mode $nick :$text"
    247.                 }
    248.                 if {$chan ne "none"} {
    249.                         putquick "$mode $chan :$text"
    250.                 } elseif {(($sc::sets(reply) == 1) && ($chan != "none")) || ($chan == "all")} {
    251.                     foreach chans [channels] {
    252.                         if {$sc::vars(chans) == ""} {
    253.                             putquick "$mode $chans :$text"
    254.                         } else {
    255.                             if {([lsearch -exact [string tolower $sc::vars(chans)] [string tolower $chans]] != -1)} {
    256.                                 putquick "$mode $chans :$text"
    257.                             }
    258.                         }
    259.                     }
    260.                 }
    261.             }
    262.         } else {
    263.             putquick "$mode [expr {((($sc::sets(reply) != 1) || ($chan == "none")) && ($chan != "all")) ? $nick : $chan}] :$sc::texts(offcmd)"
    264.         }
    265.         set sc::offadv 0
    266.     }
    267.  
    268.     proc streaminfo {id} {
    269.         set tmp [open $sc::vars(file) r]
    270.         gets $tmp streamdata
    271.         gets $tmp songdata
    272.         gets $tmp djdata
    273.         close $tmp
    274.         lindex $streamdata [lsearch -exact -nocase {listeners peak max unique avgtime genre url title song songurl irc icq aim webhits streamhits streamstatus bitrate content version ip port desc lastsongs djnick dj showname status} $id]
    275.     }
    276.  
    277.     sc::init
    278. }
    279.  
    280.  

    Vielleicht kann man ja das mit dem Motto auch komplett in das sc.tcl einbauen? Momentan ist es ja als seperate TCL Datei auf dem Server bzw. im Eggdrop drin.
  13. Toushirou

    Toushirou New Member

    könnte man, aber geht ja auch seperat :p.
    unten ist der relevante teil.


    Code (Text):
    Quelltext kopieren
    1.  
    2.             unsetdj {
    3.                 if {$chan ne $sc::vars(intern) || (![isop $nick $chan] && ![ishalfop $nick $chan])} {return}
    4.                 putquick "PRIVMSG $chan :Du bist nicht mehr der DJ vom Retter-Radio bitte setze noch !motto Plattenkiste"
    5.                 channel set $::radioIntern motto "Plattenkiste"
    6.                 if {[lindex $streamdata 15] == 1} {
    7.                     set tmp [open $sc::vars(file) w+]
    8.                              
    9.                     puts $tmp $streamdata
    10.                     puts $tmp $songdata
    11.                     puts $tmp "none none none"
    12.                     close $tmp
    13.                     if {$sc::sets(anndj) == 1} {
    14.                         sc::post privmsg none all "$sc::texts(djchg)"
    15.                     }
    16.                     if {$sc::sets(djtopchg) == 1} {
    17.                         sc::post topic none all "$sc::texts(ontopic)"
    18.                     }
    19.                 }
    20.             }
    21.  
  14. Tappi112

    Tappi112 Member

    Moin moin Toushirou

    also entweder mache ich etwas falsch, oder aber es geht nicht ....

    Habe es genauso abkopiert und eingefügt gehabt.

    Mit diesem hier funktioniert es:

    Code (Text):
    Quelltext kopieren
    1.  
    2. set radioIntern "#retter-team"
    3. setudef str motto
    4.  
    5. bind pub -|- "!motto" pub:motto
    6.  
    7. proc pub:motto {nick uhost handle chan txt} {
    8.     if { $chan == $::radioIntern } {
    9.         channel set $chan motto $txt
    10.         return
    11.     }
    12.     set motto [channel get $::radioIntern motto]
    13.    
    14.     puthelp "PRIVMSG $chan :Das Motto der Sendung lautet $motto"
    15. }
    16.  
    Nur das halt auch wenn kein Moderator sendet, eine Meldung kommt wenn man !motto eingibt.

    Nehme ich die anderen Codes, dann geht garnichts .... egal ob !setdj gesetzt oder nicht ....

    Ich mein wenn kein dj gesetzt ist, wenn dann beim Befehl !motto nichts kommt, das ist nicht schlimm, es muss da ja keine Meldung kommen.
    Eine Meldung sollte halt nur kommen, wenn jemand auf Sendung ist und ein Motto gesetzt hat.

    ............... setmotto .. unsetmotto kann man das nicht auch so machen?
    Sprich das !motto nur funktioniert, wenn jemand ein Motto gesetzt hat wie mit dem setdj ?

    Fragen über fragen .... auf jeden Fall finde ich es toll, das du dir die Zeit nimmst und dir das angeschaut hast und mir sowas auf die schnelle geschrieben hast

    Ich hau mich jetzt erstmal ins Bett und wünsche dir (euch) schon mal ein schönes Wochenende.
    Werde heute Abend denke ich wieder reinschauen. Und vielleicht fällt mir ja noch eine andere Idee ein oder so ... wie gesagt das Problem ist, das ich mich damit kaum auskenne. Ideen haben ist ja alles schön und gut, nur muss es ja auch umgesetzt werden.

    Edit: Ich glaub ich weiß wieso es nicht ging, ich habe da gerade etwas gesehen *g* aber jetzt habe ich keine Lust mehr das noch mal zu testen, ich geh jetzt erst ins Bett und teste es heut Abend bzw. heute Nachmittag noch mal .... dann achte ich aber auch darauf das ich die "0" entsprechend ändere ;)
  15. Tappi112

    Tappi112 Member

    Sorry für Doppelpost, also es hat mir doch keine Ruhe gelassen und habe es doch noch mal getestet.

    Also ich habe deinen Code mit dem channel set $::radioIntern motto "Plattenkiste" genommen, da dort Plattenkiste steht, habe dies entsprechend in dem motto.tcl auch so angegeben, wie oben schon gesagt steht da ja "0"

    Aber auch daran lag es nicht, es geht einfach nicht ....

    Der erste Code geht, nur bei der Eingabe !motto immer eine Meldung ....

    Nehme ich die bearbeiteten Codes, dann passiert garnichts .... oder ich bin echt zu doof :mauer:
  16. lano

    lano Well-Known Member c-b Experte

    Hmmm... :D

    Ma ne Frage, ich kapier es nicht so ganz.. warum baust du das nicht in dein Hauptscript ein, nur weil du dich nicht traust ?
    Im Grunde ist doch schon in der sc.cfg erklärt wie man einen Befehl hinzu fügt
    Da kannste dann ja mit deinem Motto spielen.

    In der Funktion "unsetdj"
    Kannste doch einfach ne variable auf null setzten, in der funktion Motto kannste prüfen wie die Variable gesetzt ist und dann je nach dem das DJ Motto ausgeben oder ein Standard, im Grunde genau so wie in unsetdj.

    zb
    Ich würde dann in setmotto die Variable auf ein ziehn und in unsetdj auf 0

    Hab ich was vergessen ?
  17. Tappi112

    Tappi112 Member

    Jetzt bin ich komplett verwirrt :confused:

    Für jemanden der sich damit auskennt ist es ja simpel und einfach, aber für jemanden der sich damit nicht auskennt es aber versuchen möchte, klingt das nach einer Monatsaufgabe.
    Also heißt es kommende Nacht testen und testen und testen

    Danke dir aber erstmal für deine Antwort

    Nun in der sc.cfg die ich habe, steht nichts erklärt wie man einen Befehl hinzufügt, aber ist ja auch egal. Tatsache ist nur, das die Sache für mich zu tief geht, ich kann zwar das eine oder andere bearbeiten, aber die Sache mit dem Motto ist mir einfach zu hoch ....

    Aber ich versuche einfach mal was, teste es dann und wenn es nicht geht, setz ich alles hier rein und hoffe das mir dann jemand weiter hilft *g*

    Manchmal sieht man den Wald vor lauter Bäumen nicht.

    Also ich habe jetzt in den sc.cfg folgendes mit eingetragen:

    Einmal für die Ausgabe an die Hörer ect.

    # Motto Trigger
    # set sc::triggers(motto) "motto"
    # Text when someone uses the Motto Trigger
    # set sc::texts(motto) "Das Motto der Sendung lautet: $motto"


    Und dann die Trigger um das Motto zu setzen bzw. ein und aus zu schalten ....

    # Motto AN Trigger
    # set sc::triggers(man) "man"

    # Motto AUS Trigger
    # set sc::triggers(maus) "maus"

    (maus) weil es einfacher ist alös mottoaus zu schreiben lach .... ist ja beliebig.

    Ok so, nun schau ich mal wegen dem sc.tcl .... werde es dann auch hier reinsetzen bevor ich es teste, bevor der Eggdrop den Abflug macht .... weil ich glaub es geht gleich schon jemand auf Sedung.

    ##########################

    Ich komm damit nicht klar. ..... :(

    Code (Text):
    Quelltext kopieren
    1.  
    2. man(setmotto) {
    3.                 if {$chan ne $sc::vars(intern) || (![isop $nick $chan] && ![ishalfop $nick $chan])} {return}
    4.                 putquick "PRIVMSG $nick :Du hast das Motto erfolgreich geändert in $motto"
    5.                 if {[lindex $streamdata 15] == 1} {
    6.                     set tmp [open $sc::vars(file) w+]
    7.                     puts $tmp $streamdata
    8.                     puts $tmp $songdata
    9.                     puts $tmp
    10. [list $nick [expr {([lindex $args 0] == "") ? $nick : [lindex $args 0]}] [lrange $args 1 end]]
    11.                     close $tmp
    12.                     if {$set sc::sets(stdMotto) 1} {
    13.                         sc::post privmsg none all "$sc::texts(djchg)"
    14.                     }
    15.                 }
    16.             }
    17.  
    18.  
    19. maus(unsetmotto) {
    20.                 if {$chan ne $sc::vars(intern) || (![isop $nick $chan] && ![ishalfop $nick $chan])} {return}
    21.                 putquick "PRIVMSG $chan :Das Motto wurde erfolgreich zurück gesetzt"
    22.                 if {[lindex $streamdata 15] == 1} {
    23.                     set tmp [open $sc::vars(file) w+]        
    24.                     puts $tmp $streamdata
    25.                     puts $tmp $songdata
    26.                     puts $tmp "none none none"
    27.                     close $tmp
    28.                     if {$set sc::sets(stdMotto) 0} {
    29.                         sc::post privmsg none all "$sc::texts(djchg)"
    30.                     }
    31.                 }
    32.             }
    33.  
    Zuletzt bearbeitet: 8. März 2013
  18. Toushirou

    Toushirou New Member

    ich habe dir mal die stelle mit "°°" gekenzeichnet die ich geändert habe
    Code (Text):
    Quelltext kopieren
    1.  
    2. package require http
    3. namespace eval sc {
    4.     variable vars
    5.     variable sets
    6.     variable triggers
    7.     variable texts
    8.     variable offadv 0
    9.     source scripts/sc.cfg
    10.     proc init {} {
    11.         set start [clock clicks]
    12.         set sc::offadv 0
    13.         bind time - "* * * * *" sc::check
    14.         bind nick - * sc::nick
    15.         foreach x [array names sc::triggers] {
    16.             if {$sc::sets(pub) == 1} {
    17.                 bind pub [expr {($x == "kick") || ($x == "setdj") || ($x == "unsetdj") ? "$sc::vars(flag)" : "-"}] $sc::vars(trigger)$sc::triggers($x) "sc::pub $x"
    18.             }
    19.             if {$sc::sets(msg) == 1} {
    20.                 bind msg [expr {($x == "kick") || ($x == "setdj") || ($x == "unsetdj") ? "$sc::vars(flag)" : "-"}] $sc::vars(trigger)$sc::triggers($x) "sc::msg $x"
    21.             }
    22.         }
    23.         if {$sc::sets(adv) == 1} {
    24.             timer $sc::sets(advtime) "sc::post privmsg none all {$sc::texts(adv)}"
    25.         }
    26.         putlog "sc.tcl v2.1 by LoReZ successfully initialized in [expr {([clock clicks]-$start)/1000.0}]ms"        
    27.     }
    28.     proc pub {text nick uhost hand chan arg} {
    29.         if {([lsearch -exact [string tolower $sc::vars(chans)] [string tolower $chan]] != -1) || ($sc::vars(chans) == "")} {
    30.             sc::cmd $text $nick $chan $arg
    31.         }
    32.     }
    33.     proc msg {text nick uhost hand arg} {
    34.         sc::cmd $text $nick none $arg
    35.     }
    36.     proc nick {nick uhost hand chan newnick} {
    37.         set tmp [open $sc::vars(file) r]
    38.         gets $tmp streamdata
    39.         gets $tmp songdata
    40.         gets $tmp djdata
    41.         close $tmp
    42.         if {$nick == [lindex $djdata 0]} {
    43.             set tmp [open $sc::vars(file) w+]
    44.             puts $tmp $streamdata
    45.             puts $tmp $songdata
    46.             puts $tmp "$newnick [expr {([lindex $djdata 1] == $nick) ? $newnick : [lindex $djdata 1]}] [lrange $djdata 2 end]"
    47.             close $tmp
    48.             if {([lindex $djdata 1] == $nick) && ($sc::sets(djtopchg) == 1)} {
    49.                 #sc::post topic none all "$sc::texts(djtopic)"
    50.             }
    51.         }            
    52.     }
    53.     proc cmd {text nick chan arg} {
    54.         set args [split $arg]
    55.         if {[file exists $sc::vars(file)] != 1} {
    56.             sc::check * * * * *
    57.         }
    58.         set tmp [open $sc::vars(file) r]
    59.         gets $tmp streamdata
    60.         gets $tmp songdata
    61.         gets $tmp djdata
    62.         close $tmp
    63.         switch -exact $text {
    64.             help {
    65.                 set sc::offadv 1
    66.                 putquick "privmsg $nick :Available Commands:"
    67.                 foreach x [array names sc::triggers] {
    68.                     if {$x != "help"} {
    69.                         if {(([matchattr [nick2hand $nick $chan] +$sc::vars(flag) $chan] != 1) && ($x != "kick") && ($x != "setdj") && ($x != "unsetdj")) || ([matchattr [nick2hand $nick $chan] +$sc::vars(flag) $chan] == 1)} {
    70.                             set sc::offadv 1
    71.                             putquick "privmsg $nick :$sc::vars(trigger)[expr {($x == "setdj") ? "$sc::triggers($x) <djname> <showname>" : [expr {(($x == "wish") || ($x == "greet")) ? "$sc::triggers($x) <$x>" : "$sc::triggers($x)"}]}]"  
    72.                         }
    73.                     }
    74.                 }
    75.                 set sc::offadv 1
    76.                 putquick "privmsg $nick :End of Commands"
    77.             }
    78.             kick {
    79.                 if {$chan ne $sc::vars(intern) || (![isop $nick $chan] && ![ishalfop $nick $chan])} {return}
    80.                 putquick "privmsg $nick :Source successfully kicked"
    81.                 if {[lindex $streamdata 15] == 1} {
    82.                     set sock [socket $sc::vars(ip) $sc::vars(port)]
    83.                     puts $sock "GET /admin.cgi?mode=kicksrc HTTP/1.1"
    84.                     puts $sock "User-Agent:Mozilla"
    85.                     puts $sock "Host: $sc::vars(ip)"
    86.                     puts $sock "Authorization: Basic $sc::vars(adpass)"
    87.                     puts $sock ""
    88.                     flush $sock
    89.                 }
    90.             }
    91.             setdj {
    92.                 if {$chan ne $sc::vars(intern) || (![isop $nick $chan] && ![ishalfop $nick $chan])} {return}
    93.                 putquick "PRIVMSG $nick :Du bist jetzt der DJ vom Retter-Radio, um ein Motto zu setzen gib im internen ein z.B. !motto Rock"
    94.                 if {[lindex $streamdata 15] == 1} {
    95.                     set tmp [open $sc::vars(file) w+]
    96.                     puts $tmp $streamdata
    97.                     puts $tmp $songdata
    98.                     puts $tmp
    99.  
    100. [list $nick [expr {([lindex $args 0] == "") ? $nick : [lindex $args 0]}] [lrange $args 1 end]]
    101.                     close $tmp
    102.                     if {$sc::sets(anndj) == 1} {
    103.                         sc::post privmsg none all "$sc::texts(djchg)"
    104.                     }
    105.                     if {$sc::sets(djtopchg) == 1} {
    106.                         sc::post topic none all "$sc::texts(djtopic)"
    107.                     }
    108.                 }
    109.             }
    110.             unsetdj {
    111.                 if {$chan ne $sc::vars(intern) || (![isop $nick $chan] && ![ishalfop $nick $chan])} {return}
    112.                 putquick "PRIVMSG $chan :Du bist nicht mehr der DJ vom Retter-Radio bitte setze noch !motto Plattenkiste"
    113.                 °°channel set $::radioIntern "Plattenkiste"
    114.                 if {[lindex $streamdata 15] == 1} {
    115.                     set tmp [open $sc::vars(file) w+]
    116.                              
    117.                     puts $tmp $streamdata
    118.                     puts $tmp $songdata
    119.                     puts $tmp "none none none"
    120.                     close $tmp
    121.                     if {$sc::sets(anndj) == 1} {
    122.                         sc::post privmsg none all "$sc::texts(djchg)"
    123.                     }
    124.                     if {$sc::sets(djtopchg) == 1} {
    125.                         sc::post topic none all "$sc::texts(ontopic)"
    126.                     }
    127.                 }
    128.             }
    129.             default {
    130.                 if {($text != "wish") && ($text != "greet")} {
    131.                     sc::post privmsg $nick $chan "$sc::texts($text)"
    132.                 } else {
    133.                     if {[lindex $streamdata 15] == 1} {
    134.                         if {($arg == "{}")} {
    135.                         putquick "privmsg $nick :Nothing specified"
    136.                         } else {
    137.                             if {([lindex $djdata 1] == "none") || (${::wishgreet:on} == 0)} {
    138.                                 putquick "PRIVMSG $chan :Momentan werden keine Wünsche akzeptiert."
    139.                             } else {
    140.                                 array set translatemap "wish Wunsch greet Gruß"
    141.                                 putquick "privmsg [expr {($sc::sets(wishgreet) == 1) ? $sc::vars(intern) : [lindex $djdata 0]}] :$translatemap($text) von $nick: $arg"
    142.                                 # putquick "privmsg $nick :[string totitle $text] sent to [expr {($sc::sets(wishgreet) == 1) ? $sc::vars(intern) : [lindex $djdata 0]}]"                                    
    143.                                 puthelp "NOTICE $nick :Dein $translatemap($text) wurde an den Moderator weitergeleitet. Bitte habe Verständnis dafür das es dauern kann bis das gespielt wird!"
    144.                             }
    145.                         }
    146.                     } else {
    147.                         sc::post privmsg $nick none "$sc::texts(offcmd)"
    148.                     }
    149.                 }
    150.             }
    151.         }
    152.         putlog "sc.tcl v2.1 $nick used $sc::vars(trigger)$sc::triggers($text)"
    153.     }          
    154.     proc check {min hour day month year} {
    155.         set start [clock clicks]
    156.         if {[file exists $sc::vars(file)] == 1} {
    157.             set tmp [open $sc::vars(file) r]
    158.             gets $tmp olddata
    159.             gets $tmp songdata
    160.             gets $tmp djdata
    161.             close $tmp
    162.         } else {
    163.             set olddata "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
    164.             set djdata "none none none"
    165.         }
    166.         http::config -useragent "Mozilla 5.0"
    167.         set con [http::geturl http://$sc::vars(ip):$sc::vars(port)/admin.cgi?pass=$sc::vars(pass)&mode=viewxml&page=0 -timeout 10000]
    168.         set urldata [http::data $con]
    169.         http::cleanup $con
    170.         foreach {y z} {21 ! 22 \" 23 # 24 \$ 25 % 26 + 27 ' 28 \( 29 \) 2A * 2B + 2C , 2E . 2F / 3A : 3B \; 3C < 3D = 3E > 3F ? 40 @ 5B \[ 5C \\ 5D \] 5F _ 60 ` C0 À C1 Á C2 Â C3 Ã C4 Ä C5 Å C6 Æ C7 Ç C8 È C9 É CA Ê CB Ë CC Ì CD Í CE Î CF Ï D1 Ñ D2 Ò D3 Ó D4 Ô D5 Õ D6 Ö D9 Ù DA Ú DB Û DC Ü DD Ý DF ß E0 à E1 á E2 â E3 ã E4 ä E5 å E6 æ E7 ç E8 è E9 é EA ê EB ë EC ì ED í EE î EF ï F0 ð F1 ñ F2 ò F3 ó F4 ô F5 õ F6 ö F9 ù FA ú FB û FC ü FD ý FE þ FF ÿ} {
    171.             regsub -all "&#x$y;" $urldata "$z" urldata
    172.         }
    173.         regsub -all ".*<SHOUTCASTSERVER>" $urldata "" data1
    174.         regsub -all "<WEBDATA>.*" $data1 "" data1
    175.         regsub -all ".*<SONGHISTORY>" $urldata "\{" data2
    176.         regsub -all "</SONGHISTORY>.*" $data2 " \}" data2
    177.         set x 0
    178.         foreach y {CURRENTLISTENERS PEAKLISTENERS MAXLISTENERS REPORTEDLISTENERS AVERAGETIME SERVERGENRE SERVERURL SERVERTITLE SONGTITLE SONGURL IRC ICQ AIM WEBHITS STREAMHITS STREAMSTATUS BITRATE CONTENT VERSION SONG PLAYEDAT TITLE} {
    179.             if {$x < 19} {
    180.                 regsub -all ".*<$y>" $data1 "" data10
    181.                 regsub -all "</$y>.*" $data10 "" data10
    182.                 lappend streamdata [expr {(($data10 == "0") || ($data10 == "")) && ([string match -nocase *listeners "$y"] != 1) && ([string match -nocase *hits "$y"] != 1) && ([string match -nocase *time "$y"] != 1) ? "N/A" : $data10}]
    183.             }
    184.             if {$x > 18} {
    185.                 regsub -all "<$y>" $data2 "\{" data2
    186.                 regsub -all "</$y>" $data2 "\} " data2
    187.             }
    188.             incr x
    189.         }
    190.         set tmp [open $sc::vars(file) w+]
    191.         puts $tmp $streamdata
    192.         puts $tmp $data2
    193.         puts $tmp $djdata
    194.         close $tmp
    195.         if {[lindex $olddata 15] != [lindex $streamdata 15]} {
    196.             if { ($sc::sets(ann) == 1)} {
    197.                 set sc::offadv [expr {([lindex $streamdata 15] == 1) ? 0 : 1}]
    198.                 sc::post privmsg none all "[expr {([lindex $streamdata 15] == 1) ? $sc::texts(on) : $sc::texts(off)}]"
    199.             }
    200.             if {$sc::sets(topchg) == 1} {
    201.                 set sc::offadv [expr {([lindex $streamdata 15] == 1) ? 0 : 1}]
    202.                 sc::post topic none all "[expr {([lindex $streamdata 15] == 1) ? $sc::texts(ontopic) : $sc::texts(offtopic)}]"
    203.             }
    204.         }
    205.         foreach {x y z} {8 anntrack songchg 0 annlist listchg 1 annpeak peakchg 16 annbitrate bitratechg} {
    206.             if {([lindex $olddata $x] != [lindex $streamdata $x]) && ($sc::sets($y) == 1)} {
    207.                 sc::post privmsg all all "$sc::texts($z)"
    208.             }
    209.         }
    210.         putlog "sc.tcl v2.1 received information from $sc::vars(ip):$sc::vars(port) in [expr {([clock clicks]-$start)/1000.0}]ms"
    211.     }              
    212.     proc post {mode nick chan text} {
    213.         set tmp [open $sc::vars(file) r]
    214.         gets $tmp streamdata
    215.         gets $tmp songdata
    216.         gets $tmp djdata
    217.         close $tmp
    218.         if {([lindex $streamdata 15] == 1) || ($sc::offadv == 1)} {
    219.             foreach x [lindex $songdata 0] {
    220.                 append lastsongs "[lindex $x 1] :: "
    221.             }
    222.             lappend streamdata $sc::vars(ip) $sc::vars(port) $sc::vars(desc) ":: $lastsongs" [expr {(([lindex $djdata 0] == "none") || ([lindex $djdata 0] == "{}") || ([lindex $djdata 0] == "")) ? "No DJ" : [lindex $djdata 0]}] [expr {(([lindex $djdata 1] == "none") || ([lindex $djdata 1] == "{}") || ([lindex $djdata 1] == "")) ? "No DJ" : [lindex $djdata 1]}] [expr {(([lindex $djdata 2] == "none") || ([lindex $djdata 2] == "{}") || ([lindex $djdata 2] == "")) ? "No Show" : [lrange $djdata 2 end]}] [expr {([lindex $streamdata 15] == 1) ? "online" : "offline"}]
    223.             set x 0
    224.             foreach y {listeners peak max unique avgtime genre url title song songurl irc icq aim webhits streamhits streamstatus bitrate content version ip port desc lastsongs djnick dj showname status} {
    225.                 regsub -all "%$y" $text "[lindex $streamdata $x]" text
    226.                 incr x
    227.             }
    228.             if {$mode == "topic"} {
    229.                 foreach chans [channels] {
    230.                     if {$sc::vars(chans) == ""} {
    231.                         if {$sc::sets(qtopic) == 1} {
    232.                             putquick "privmsg TheQBot@CServe.quakenet.org :SETTOPIC $chans $text"
    233.                         } else {
    234.                             putquick "$mode $chans :$text"
    235.                         }
    236.                     } else {
    237.                         if {([lsearch -exact [string tolower $sc::vars(chans)] [string tolower $chans]] != -1)} {
    238.                             if {$sc::sets(qtopic) == 1} {
    239.                                 putquick "privmsg TheQBot@CServe.quakenet.org :SETTOPIC $chans $text"
    240.                             } else {
    241.                                 putquick "$mode $chans :$text"
    242.                             }
    243.                         }                
    244.                     }
    245.                 }
    246.             } else {
    247.                 if {($sc::sets(reply) != 1) || ($chan == "none")} {
    248.                     putquick "$mode $nick :$text"
    249.                 }
    250.                 if {$chan ne "none"} {
    251.                         putquick "$mode $chan :$text"
    252.                 } elseif {(($sc::sets(reply) == 1) && ($chan != "none")) || ($chan == "all")} {
    253.                     foreach chans [channels] {
    254.                         if {$sc::vars(chans) == ""} {
    255.                             putquick "$mode $chans :$text"
    256.                         } else {
    257.                             if {([lsearch -exact [string tolower $sc::vars(chans)] [string tolower $chans]] != -1)} {
    258.                                 putquick "$mode $chans :$text"
    259.                             }
    260.                         }
    261.                     }
    262.                 }
    263.             }
    264.         } else {
    265.             putquick "$mode [expr {((($sc::sets(reply) != 1) || ($chan == "none")) && ($chan != "all")) ? $nick : $chan}] :$sc::texts(offcmd)"
    266.         }
    267.         set sc::offadv 0
    268.     }
    269.  
    270.     proc streaminfo {id} {
    271.         set tmp [open $sc::vars(file) r]
    272.         gets $tmp streamdata
    273.         gets $tmp songdata
    274.         gets $tmp djdata
    275.         close $tmp
    276.         lindex $streamdata [lsearch -exact -nocase {listeners peak max unique avgtime genre url title song songurl irc icq aim webhits streamhits streamstatus bitrate content version ip port desc lastsongs djnick dj showname status} $id]
    277.     }
    278.  
    279.     sc::init
    280. }
    Code (Text):
    Quelltext kopieren
    1. setudef str motto
    2. set radioIntern "#retter-team"
    3.  
    4. bind pub -|- "!motto" pub:motto
    5.  
    6. proc pub:motto {nick uhost handle chan} {
    7.     if { $chan == $::radioIntern } {
    8.         if { $txt != "" } {
    9.             channel set $chan motto $txt
    10.         } else {
    11.             puthelp "NOTICE $nick :$::lastbind <txt>"
    12.         }
    13.         return
    14.     }
    15.  
    16.    
    17.     puthelp "PRIVMSG $chan :Das Motto der Sendung lautet [channel get $::radioIntern motto]"
    18.  
    19. }

    Ich würde das mit dem motto als seperate tcl legen und einfach vor der sc.tcl laden dann gibt es auch keine probleme.

    so wie ich das in der sc.config verstanden habe geht es bei den binds darüber einfach nur darum einfachen text anzuzeigen.
  19. Tappi112

    Tappi112 Member

    Hallo,
    danke dir :)
    ich habe es gerade getestet aber muss leider sagen, das es nicht geht, habe aber mal die Fehlermeldungen aus der Partyline kopiert

    Also wenn kein dj gesetzt ist (setdj)

    erscheint wenn man im chat !motto eingibt folgende Fehlermeldung in der Partyline

    Code (Text):
    Quelltext kopieren
    1. Tcl error [pub:motto]: wrong # args: should be "pub:motto nick uhost handle chan"
    Damit könnt ich aber leben, weil wenn kein dj gesetzt ist, muss ja nicht unbedingt eine Meldung erscheinen.

    nach dem ich dann den dj gesetzt hatte, kam aber die selbe Fehlermeldung

    Code (Text):
    Quelltext kopieren
    1. |11/03/13| • 15:00:20 <RetterBote> [15:00:20] Tcl error [pub:motto]: wrong # args: should be "pub:motto nick uhost handle chan"
    Und nach bzw. bei der eingabe !unsetdj kam dann folgende:

    Code (Text):
    Quelltext kopieren
    1. |11/03/13| • 15:00:29 <RetterBote> [15:00:29] Tcl error [sc:pub unsetdj]: illegal channel option: Plattenkiste
    Vielleicht kannst du mit den Meldungen ja was anfangen? Ich leider nicht, außer das in der sc.tcl er den hinzugefügten Eintrag nicht mag .... aber wieso?


    Edit:
    Ok also, im ersten Script stand proc pub:motto {nick uhost handle chan txt} drin diesmal war es ohne txt, also dachte ich mir, schreib das txt einfach mal dazu und teste es noch mal ;-)

    Und siehe da ..... es geht, aber .... wenn man unsetdj eingibt dann kommt:

    Code (Text):
    Quelltext kopieren
    1. Tcl error [sc::pub unsetdj]: illegal channel option: Plattenkiste
    Außerdem erscheint im Chat das gesetzte Motto ....

    Code (Text):
    Quelltext kopieren
    1.  
    2. |11/03/13| • 15:16:39 <*Tappi|Hg> !motto
    3. |11/03/13| • 15:16:41 <%RetterBote> Das Motto der Sendung lautet Plattenkiste
    4. |11/03/13| • 15:16:46 <*Tappi|Hg> :)
    5. |11/03/13| • 15:16:54 * RetterBote changes topic to '.. Willkommen im Chat von retter-radio.de :: T-Shirts Infos: www.retter-radio.de/radioforum/thread.php?threadid=2242 :: Stream: http://retter-radio.de:8000/listen.pls :: Sendeplan: http://www.retter-radio.de/sendeplan.php :: Aktuell auf Sendung: Tappi|Hg ..'
    6. |11/03/13| • 15:17:05 <*Tappi|Hg> !motto
    7. |11/03/13| • 15:17:05 <%RetterBote> Das Motto der Sendung lautet Test
    8. |11/03/13| • 15:17:14 <*Tappi|Hg> !motto
    9. |11/03/13| • 15:17:15 <%RetterBote> Das Motto der Sendung lautet Test
    10. |11/03/13| • 15:17:18 <*Tappi|Hg> :(
    11.  
    Ha und mir ist aufgefallen, das beim unsetdj das Topic nicht mehr geändert wird .... beim unsetdj wird im Topic Aktuell auf Sendung: die Plattenkiste gesetzt

    Habe es wieder rückgängig gemacht, nun wird das Topic auch wieder geändert.
    Zuletzt bearbeitet: 11. März 2013
  20. Toushirou

    Toushirou New Member

    Natürlich muss da txt rein :D flüchtigkeit lässt grüßen.

    "channel set $::radioIntern "Plattenkiste" muss durch "channel set $::radioIntern m "Plattenkiste" ersetzt werden (ohne anführungszeichen)
  21. Tappi112

    Tappi112 Member

    Tausend Dank an Toushirou :)

    Es funktioniert nun wunderbar :) Danke danke danke :)
Die Seite wird geladen...
Ähnliche Themen - Motto Erweiterung für Forum Datum
WordPress-Erweiterung gesucht PHP - Hypertext Preprocessor 10. September 2012
[Lösung] Dateierweiterung in Kleinbuchstaben umwandeln Visual Basic, Visual Basic for Applications (VBA) 13. August 2010
Hilfe bei Programmerweiterung in c# .NET Technology / C# 26. Januar 2010
RAM-Erweiterung bei Laptops Konfiguration und Wartung 12. Oktober 2008
Hello World programm folgende erweiterung möglich?... Assembler (ASM) 11. Oktober 2008