PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eggdrop: Set Befehl funktioniert nicht ausserhalb der Klammer


foustone
06.06.2005, 17:11
Hi
Wie alle wissen funktionieren die Variablen, die durch set gesetzt wurden, nicht ausserhalb der Klammern, wo der set Befehl auch ausgeführt wurde.
Dafür gibt es die Lösung global leider funktioniert das auch nicht richtig.

Schaut euch es einfach mal an ;)


bind pub - ? frage
proc frage {nick uhost hand chan target} {
if {[string match {stats*} $target]} {
set cha [lindex [split $target] 1]
set fu "member"
if {$cha == $fu} {
set member [lindex [split $target] 2]
}
set fu1 "punkte"
if {$cha == $fu1} {
set punkte [lindex [split $target] 2]
}
set fu2 "stats"
if {$cha == $fu2} {
set durchschnitt [expr $punkte/$member]
puthelp "privmsg $chan :Wir haben $member Member und $punkte Punkte. Unser Durchschnitt liegt bei $durchschnitt"
unset durchschnitt
}
}
}

mfg Foustone


ChaosKrieger
06.06.2005, 17:15
moin, wenn global nicht klappt, liegt es an dir, oder an der eggi version

benutz global ::var (wichtig is :: davor)
aber musst deine var, dann natürlich anpassen

frag mich nicht wieso ::, aber hatte das selbe problem bei mir

By Chaos

foustone
06.06.2005, 18:46
moin, wenn global nicht klappt, liegt es an dir, oder an der eggi version

benutz global ::var (wichtig is :: davor)
aber musst deine var, dann natürlich anpassen

frag mich nicht wieso ::, aber hatte das selbe problem bei mir

By Chaos
hmm das funktioniert leider auch nciht ;(

mfg Foustone

ChaosKrieger
06.06.2005, 20:16
proc {....} {
global ::var
....
}

wenn du es richtig machst, dann funzt es

foustone
07.06.2005, 06:14
das problem ist, dass ich den global nicht unter einem proc schreiben kann... schau dir bitte nochmal genau an was das ist was ich vorhabe ;)

bind pub - ? frage
proc frage {nick uhost hand chan target} {
if {[string match {stats*} $target]} {
set cha [lindex [split $target] 1]
set fu "member"
if {$cha == $fu} {
set member [lindex [split $target] 2]
}
set fu1 "punkte"
if {$cha == $fu1} {
set punkte [lindex [split $target] 2]
}
set fu2 "stats"
if {$cha == $fu2} {
set durchschnitt [expr $punkte/$member]
puthelp "privmsg $chan :Wir haben $member Member und $punkte Punkte. Unser Durchschnitt liegt bei $durchschnitt"
unset durchschnitt
}
}
}

so geht es nciht

bind pub - ? frage
proc frage {nick uhost hand chan target} {
if {[string match {stats*} $target]} {
set cha [lindex [split $target] 1]
set fu "member"
if {$cha == $fu} {
set member [lindex [split $target] 2]
}
set fu1 "punkte"
if {$cha == $fu1} {
set punkte [lindex [split $target] 2]
}
set fu2 "stats"
if {$cha == $fu2} {
global ::punkte ::member
set durchschnitt [expr $punkte/$member]
puthelp "privmsg $chan :Wir haben $member Member und $punkte Punkte. Unser Durchschnitt liegt bei $durchschnitt"
unset durchschnitt
}
}
}

so aber auch nciht...

mfg Rene

ChaosKrieger
07.06.2005, 16:13
global immer auserhalb einer proc setzen ;)