[TCL/Eggdrop] Parameter bei msg

Aradiv

Well-known member
ID: 217591
L
20 April 2006
1.683
176
Ich habe mich an einem eigentlich recht einfachen tcl script versucht und bin dann auf das Problem gestoßen das sich mein script bei msg anders verhält als bei Nachrichten im pub


Hier mal mein gesamtes Testscript
Code:
bind pub - !echo BotEchoPub
bind msg - !echo BotEchoMsg


proc BotEchoPub {nick uhost hand [COLOR=Red][s]chan[/s][/COLOR] args} {
    set str [join $args]
    putserv "PRIVMSG $chan :ECHO $str"
}
proc BotEchoMsg {nick uhost hand chan args} {
    set str [join $args]
    putserv "PRIVMSG $nick :ECHO $str"
}
Im Channel funktioniert das wunderbar aber bei msg bekomme ich nur ein "ECHO"

Aradiv

Edit hab den fehler gefunden und oben gleich mal makiert
 
Zuletzt bearbeitet:
Code:
bind pub - !echo BotEchoPub
bind msg - !echo BotEchoMsg


proc BotEchoPub {nick args} {
    puthelp "NOTICE $nick :$args"
}
proc BotEchoMsg {nick args} {
    puthelp "NOTICE $nick :$args"
}
 
Code:
bind pub - !echo BotEchoPub
bind msg - !echo BotEchoMsg


proc BotEchoPub {nick uhost hand chan args} {
    set str [join $args]
    putserv "PRIVMSG $chan :ECHO $str"
}
proc BotEchoMsg {nick uhost hand args} {
    set str [join $args]
    putserv "PRIVMSG $nick :ECHO $str"
}

So wärs richtig. kA ob du ausversehen das richtige $chan rot gemacht hast und durchgestrichen hast und im falschen "chan" einfach mit reingeschrieben hast.

Unabhängig davon, liefert der eggdrop eigentlich in der Konsole einen Fehler der die fehlerhafte Stelle nennt.

Übersichtshalber würd ich das ganze übrigens so formatieren:

Code:
proc BotEchoPub {nick uhost hand chan args} {
    set str [join $args]
    putserv "PRIVMSG $chan :ECHO $str"
}
bind pub - !echo BotEchoPub

proc BotEchoMsg {nick uhost hand args} {
    set str [join $args]
    putserv "PRIVMSG $nick :ECHO $str"
}
bind msg - !echo BotEchoMsg

Warum joinst du die $args eigentlich? Das ist ja eigentlich ein String.
 
ich fand (nicht ganz passend dazu) "muh" ganz lustig. Und man konnte es auch erweitern, leider nicht in TCL.
Aber wenn man sich mal mit TCL bslbeschäftigt hat,ist es nicht so schwer.
glaub Zircon oder so war auch in TCL/TK geschrieben.
Da kann man auch mal nachschlagen für ein paar Dinge (interessehalber)!

Nachtrag:

eggdrop ist eigentlich in C/C++ geschrieben.
Der Rest sind dann TCL Scripte
Das eigentliche IRCII Scripting fand ich besser. Man konnte sehr viel machen, ohne einen Bot haben zu müssen, eine feste Verbindung und nen Ping Pong war ja ausreichend !
 
Zuletzt bearbeitet: