Archiv verlassen und diese Seite im Standarddesign anzeigen : Topic script
Das soll mal ein Topic script werden ^^
ist aber noch ganz am anfang...
bind PUB mno|mno !set topic:set
proc topic:set { nick uhost handle chan text } {
global channel news msgg
set argm [lindex [split $text " "] 0]
set msgg [lindex [split $text " "] 1]
if {$text == $argm } {
set news "$msgg"
set channel "$chan"
topic:topic
}
}
proc topic:topic { } {
global news channel msgg
putquick "TOPIC $channel :Welcome 2 $channel, News: $news"
}
Doch das will nicht funzen,
ich möchte halt das wenn man !set news <die news> schreibt das der im Topic diese News einfügt,
schön und gut, doch ich kriege ihm irgendwie nicht gesagt das alles bis aus das erste wort (news) in $news gespeichtert werden soll.
Kann mir da jemand helfen?
*liebguck*
ChaosKrieger
11.12.2004, 11:46
hi..
sicher kann dir jemand helfen..
set topic [lrange [split $text] 1 end]
By CHaos
jep, das habe ich auch probiert, klappt aber trotzdem nicht ^^
ich habe jetzt mal das gemacht zum testen:
bind PUB mno|mno !set topic:set
proc topic:set { nick uhost handle chan text } {
global channel msgg
set argm [lindex [split $text " "] 0]
set msgg [lrange [split $text] 1 end]
if {$text == $argm } {
set channel "$chan"
topic:topic
}
}
proc topic:topic { } {
global channel msgg
putlog "$channel : $msgg "
putquick "TOPIC $channel :Welcome 2 $channel, News: $msgg"
}
und in der partyline steht dann nur der channelname, aber nicht die news...
Ich habe ka wodran das liegt :(
ChaosKrieger
12.12.2004, 15:01
mh... :/ naja.. bin mal erlich: eigedlich is das ganze script fürn ar.. *g*
zimmlich umständlich das ganze...
bind PUB mno|mno !set topic:set
proc topic:set { nick uhost handle chan text } {
set new [lindex [split $text] 0]
set news [lrange [split $text] 1 end]
if {$new == #chan } {
putquick "TOPIC $chan :Welcome 2 $chan, News: $news"
}
}
probier das mal aus, (hoffe habe das richtig verstanden was du vorhast)
By Chaos
Ja, deins geht, allerdings wird news nicht der einzige Parameter bleiben. da soll es dann noch Status und Partner zum Beispiel geben, Und deshalb hatte ich das mit dem proc laden gemacht, und nich alles in eins gepackt.
ChaosKrieger
14.12.2004, 06:45
Ja, deins geht, allerdings wird news nicht der einzige Parameter bleiben. da soll es dann noch Status und Partner zum Beispiel geben, Und deshalb hatte ich das mit dem proc laden gemacht, und nich alles in eins gepackt.
auch kein problem, kannst aber auch alles in eine proc machen.. besser wird es aber deshalb nicht ;)
is ganz dir überlassen.. dein problem lag am global..
global $::var ... ##laden
.... ##arbeiten
global $::var ... ##speichern
hoffe konnte dir mit meinem script oben trotzdem helfen ;)
By Chaos
Ja, du hast mir auf jeden Fall geholfen, ich werde mal gucken ob ich das so hinkriege wie ich das will ^^
auch wenn es bestimmt nicht perfekt ist ;)
Vielen Dank auf jeden Fall :)
ahhhhh.
ich bin halt noch am TCL lernen ^^
das müsste doch so gehen, aber nein *grml*
es ändert zwar das topic, aber nicht für jeden channel ein anderes,
setudef str news
setudef str partner
bind PUB mno|mno !set topic:set
proc topic:set { nick uhost handle chan text } {
global news partner
set new [lindex [split $text] 0]
set vallue [lrange [split $text] 1 end]
if {$new == "news" } {
set news $vallue
if {$partner == "" } {
set partner "N/A"
putserv "TOPIC $chan :Welcome 2 $chan, News: $news Partner: $partner"
} else {
putserv "TOPIC $chan :Welcome 2 $chan, News: $news Partner: $partner"
}
} else {
if {$new == "partner" } {
set partner $vallue
if {$news == "" } {
set news "N/A"
putserv "TOPIC $chan :Welcome 2 $chan, News: $news Partner: $partner"
} else {
putserv "TOPIC $chan :Welcome 2 $chan, News: $news Partner: $partner"
}
}
}
}
ChaosKrieger
14.12.2004, 19:31
du machst mich noch verrückt mit deinem script :mauer: *g*
wieso machst du deine if abfragen so umständlich?
if {$partner == "" } {
set partner "N/A"
putserv "TOPIC $chan :Welcome 2 $chan, News: $news Partner: $partner"
} else {
putserv "TOPIC $chan :Welcome 2 $chan, News: $news Partner: $partner"
}
wieso nicht einfach:
if {$partner == "" } {
set partner "N/A"
}
putserv "TOPIC $chan :Welcome 2 $chan, News: $news Partner: $partner"
entweder $partner ist "" oder ist nicht.. wenn nicht muss ja auch nichts geändert werden ;)
bring dein script erstmal soweit inordnung.. das ist mir im mom bissi durcheinander muss ich ganz erlich sagen ..
d.h:
script ändern.. bissi zurecht rücken.. und nochmal fragen wenn du den fehler immer noch nicht finden solltest
By Chaos
o.O
Ich möchte dich natürlich nicht auf die Palme bringen ;)
das es umständlich ist, stimmt, doch es hätte ja funktioniert ^^
Ich bin halt noch nicht so erfahren.
Leider :(
Und bücher zu dem Thema gibts ja auch nicht,
also, ich bin nun einen großen Schritt weiter,
allerdings zeigt der mir beim abrufen des Scripts folgenden Fehler an:
missing close bracket....
Ich habe aber geguckt, alle Klammern sind geschlossen.
Tja, wo liegt dann der Fehler,
Ich habe dadraufhin alles mögliche versucht, [] gesetzt, oder entfernt, oder oder oder,
Aber nein. der Fehler bleibt Identisch,
Nach 1 Stunde suchen bin ich nun sehr Verzweifelt :(
Ich poste das Script nun nocheinmal,
Es ist bestimmt wieder ganz umständlich ^^
also setz dich erstmal auf einen Stuhl, und atme gut durch vorm lesen ;)
Ich würde mich sehr freuen wenn du einen Blick draufwerfen könntest,
Ich finde es echt super, das du mir so toll hilfst,
:)
setudef str news
setudef str partner
bind PUB mno|mno !set topic:set
proc topic:set { nick uhost handle chan text } {
set new [lindex [split $text] 0]
set vallue [lrange [split $text] 1 end]
if { $new == "news" } {
channel set $chan news [$vallue]
if { [channel get $chan "partner"] == "" } {
channel set $chan partner [N/A]
}
putserv "TOPIC $chan :Welcome 2 $chan, News: [channel get $chan "news"] Partner: [channel get $chan "partner]"
} else {
if { $new == "partner" } {
channel set $chan partner [$vallue]
if { [channel get $chan "news"] == "" } {
channel set $chan news [N/A]
}
putserv "TOPIC $chan :Welcome 2 $chan, News: [channel get $chan "news"] Partner: [channel get $chan "partner]"
}
}
}
ChaosKrieger
19.12.2004, 15:38
und haste den fehler gefunden?
schau dir mal die zeile an:
putserv "TOPIC $chan :Welcome 2 $chan, News: [channel get $chan "news"] Partner: [channel get $chan "partner]
By Chaos
Sorry,
Hab das ganz vergessen ^^
Habe das nun mit arrays gemacht...
Nun läuft alles super :)
noch eine kleine verbesserung:
bind PUB mno|mno !set topic:set
da reicht o|o,
da ein m o hat. und n hat alle ;)
Und wenn du dann auch noch möchtest,dass man im topic Sonderzeichen([]{}\) benutzen kann, dann mach die Sache mit den Listen und den Strings noch richtig
set ersteswort [lindex [split $text] 0]
set rest [join [lrange [split $text] 1 end]]
Liste->String: join
String->Liste: split
beides macht standardmäßig mit " " also leerzeichen als wort-trennung
lindex gibt einen string zurück
lrange eine liste
und du willst immer strings in deinen variablen haben
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.