Atokad hat geschrieben:
Hallo,
ich würde mich gerne mal an LUA für einen WIG ausprobieren und hab den ein oder anderen Thread hier durchgelesen.
Leider komme ich mit URWIGO nicht zum gewünschten Ergebnis.
Ich möchte beim Betreten einer Zone folgende Funktion ausführen:
Benutzer Funktion:
function GetTime()
objTime = 5
end
Dazu hab ich die Variable "Time" als Zahl mit Wert 0 definiert
Beim Betreten der Zone rufe ich über "Benutzerdefinierer Code" die Funktion "GetTime()"
Zone.Beim Betreten
Meldung
Time
Beim Anklicken
Benutzerdefinierter Code
GetTime
Meldung
Time
Leider bekomme ich immer nur den Wert 0 angezeigt.
Was muss ich anders machen um bei der letzten Meldung den Wert 5 angezeigt zu bekommen?
Danke
Atokad
Spontan würde ich sagen, dass du die Klammern hinter GetTime vergessen hast. Funktionsaufrufe erfolgen immer in der Form
Code:
FunktionsName([opt. Parameter])
bzw.
Code:
Variable = FunktionsName([opt. Parameter])
Heißt deine Variable denn auch wirklich objTime?
PS: Sinnvollerweise würde ich innerhalb der Funktion mit einer lokalen Variable arbeiten und diese mittels return zurückgeben. Das hat den Vorteil, dass du den Wert auch anderen Variablen außer objTime zuweisen kannst, ohne eine neue Funktion schreiben zu müssen. Sieht dann etwa so aus:
Code:
function GetTime()
local varTime = 5
return varTime
end
Der Aufruf erfolgt dann über:
Code:
objTime = GetTime()
Wenn du in der Funktion auch noch die Konstante 5 durch was gescheites ersetzt - Urwigo hat bspw. die Zeitfunktion _Urwigo.SecondInYear eingebaut - kannste in deiner Funktion die aktuelle Zeit ausgeben. Geht in etwa so
Code:
local varTime = _Urwigo.SecondInYear(os.date "*t")
Nur mal so am Rande
