[TCL ] bind String mit leerzeichen
Hi
hier mein Code:
ich möchte, wenn der eine Bot, Wir haben, sagt das der andere darauf reagiert
und sagt: die Lizenz
kann mir einer da bitte behilflich sein, ich hab kein plan warum das nicht funzt
thx
MfG Thunder
hier mein Code:
|
|
Quellcode |
1 2 3 4 5 6 7 |
bind pub - "Wir haben" wirhaben
proc wirhaben { nick uhost hand chan args } {
if{$nick=="[L]izenz"} {
putserv "PRIVMSG $chan : die Lizenz"
}
}
|
ich möchte, wenn der eine Bot, Wir haben, sagt das der andere darauf reagiert
und sagt: die Lizenz
kann mir einer da bitte behilflich sein, ich hab kein plan warum das nicht funzt
thx
MfG Thunder
Das stichwort heißt escapen 

|
|
Quellcode |
1 2 3 4 5 6 7 |
bind pub - "Wir haben" wirhaben
proc wirhaben { nick uhost hand chan args } {
if{$nick=="\[L\]izenz"} {
putserv "PRIVMSG $chan : die Lizenz"
}
}
|
Über mich: www.heinervdm.de
Persönlich Mitteilungen an mich bitte als PN (nicht Email) hier im Forum. ICQ und Skype bitte nur in Notfällen.
Persönlich Mitteilungen an mich bitte als PN (nicht Email) hier im Forum. ICQ und Skype bitte nur in Notfällen.
danke...
das mit den Leerzeichen funzt immer noch nicht, habs jetzt einfach mit einen
Unterstrich gemacht, aber ich bekomme jetzt eine fehlermeldung bei
der User/nick-abfrage
die zeile sieht so aus:
ich kann mir da leider kein reim draus machen....
MfG Thunder
das mit den Leerzeichen funzt immer noch nicht, habs jetzt einfach mit einen
Unterstrich gemacht, aber ich bekomme jetzt eine fehlermeldung bei
der User/nick-abfrage
|
|
Quellcode |
1 |
Tcl error [dielizenz]: invalid command name "if{[z]um=="[z]um]"}"
|
die zeile sieht so aus:
|
|
Quellcode |
1 |
if{$nick=="\[z\]um]"}
|
ich kann mir da leider kein reim draus machen....
MfG Thunder
Vielleicht solltest du einfach mal versuchen ein Leerzeichen nach dem 'if' zu lassen.
Zu deinem eigentlich Problem:
'bind pub' reagiert nur auf das erste Listenelement. Möglicherweise würde er auf {Wir haben} reagieren, genau weiß ich das aber nicht. Wenn du aber allgemein zwei Wörter haben willst, solltest du 'bind pubm' nehmen.
Die Syntax ist:
bind pubm <flags> "<channel> <text>" <procname>
Die Proc-Argumente sind die selben wie auch bei 'bind pub'.
Bei 'pubm' hast du noch zusätzlich die Möglichkeit Platzhalter zu verwenden (also * usw.). Soll das Script in allen Channeln aktiv sein, so benutze für <channel> '%'. Es steht für 'Ein beliebiges Wort'.
Demnach müsste das ganze dann ungefähr so aussehen:
PS: Du solltest dir angewöhnen anstatt 'args' 'arg' zu benutzten, da 'args' für eine unbestimmte Anzahl von Argumenten steht.
Gruß
sajez
Zu deinem eigentlich Problem:
'bind pub' reagiert nur auf das erste Listenelement. Möglicherweise würde er auf {Wir haben} reagieren, genau weiß ich das aber nicht. Wenn du aber allgemein zwei Wörter haben willst, solltest du 'bind pubm' nehmen.
Die Syntax ist:
bind pubm <flags> "<channel> <text>" <procname>
Die Proc-Argumente sind die selben wie auch bei 'bind pub'.
Bei 'pubm' hast du noch zusätzlich die Möglichkeit Platzhalter zu verwenden (also * usw.). Soll das Script in allen Channeln aktiv sein, so benutze für <channel> '%'. Es steht für 'Ein beliebiges Wort'.
Demnach müsste das ganze dann ungefähr so aussehen:
|
|
Quellcode |
1 2 3 4 5 6 7 |
bind pubm - "% Wir haben" wirhaben
proc wirhaben {nick uhost hand chan arg} {
if {$nick == "\[L\]izenz"} {
putserv "PRIVMSG $chan : die Lizenz"
}
}
|
PS: Du solltest dir angewöhnen anstatt 'args' 'arg' zu benutzten, da 'args' für eine unbestimmte Anzahl von Argumenten steht.
Gruß
sajez
Warum wird alles was ich anpacke illegal?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sajez« (23. April 2005, 19:08)


