• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Uhrzeit vergleichen

hefi1

Geocacher
Ich hätte da mal eine Frage:
Ist es möglich (evtl. auch ohne Lua) Uhrzeiten zu vergleichen alternativ zu einem Timer?
Ich habe einen Wherigo mit einem Timer, bei dem man innerhalb einer bestimmten Zeit von einer Zone in eine andere kommen muß.
Beim ausprobieren mit dem Iphone habe ich festgestellt, dass wenn ich die Zone verlasse und die App schließe und kurz vor der Zone (200 m kann man ja ungefähr abschätzen) wieder öffne, habe ich für die Strecke gerade mal 10-15 sec. gebraucht!

Gibt es eine Möglichkeit das zu unterbinden? (Ich hatte da an die Uhrzeit gefragt und einen Vergleich, da egal wann ich das Gerät ein oder ausschalte die Uhrzeit ja stimmen muß, oder nicht?)
Vielen Dank für Eure Hilfe!
 

docfred

Geocacher
Also zunächst kann man natürlich auch die Uhrzeit eines Smartphones zurückstellen um eine geringere Zeitdifferenz zu erreichen. Das ist zwar etwas aufwändiger als Ausschalten, aber nicht viel.

So richtig viel LUA brauchst du nicht. Es reicht:

Code:
os.date("*t*)

in einen benutzerdefinierten Ausdruck zu scheiben und diesen einer Variablen zuzuweisen.
Zum Zeitpunkt zwei dann die Differenz zwischen Variablenwert und erneuter Abfrage berechnen.
docfred
 

bodenseepingu

Geomaster
...ein bisschen LUA müsste man da schon verwenden...

Es reicht aber eigentlich aus, als benutzerdefinierter Ausdruck os.time() zu benutzen
und das Ergebnis einer Variablen zuzuweisen. Die LUA-Spezifikation gibt allerdings
keine Aussage, wie das zu interpretieren ist. Normalerweise dürften die meisten oder alle Player einen Gleitkommazahl zurückliefern, die sowas wie Sekunden seit 1.1.1970 (oder einem anderen Startpunkt) darstellt. Hier ist man aber durch Verstellen der Uhrzeit angreifbar. Ich weiss jetzt nicht, ob wir für alle Player mal Testcode erstellt und durchgejagt haben - mit der Darstellung der formatierten Zeit hatten wir mal was und festgestellt, dass verschiedene Geräte unterschiedlich reagieren - also z.B. Androids immer UTC liefern, während ein Garmin local time liefert.

Ein Schutz gegen Speichern und Wiederladen wäre z.B. die Verwendung des onRestore()-Events - wenn der kommmt, wurde wieder geladen - man kann ja in diesem Fall das Laufen der Strecke nochmals verlangen - das halte ich für einfacher als mit der Zeit zu jonglieren.
 

jonny65

Geomaster
hefi1 schrieb:
.
Beim ausprobieren mit dem Iphone habe ich festgestellt, dass wenn ich die Zone verlasse und die App schließe und kurz vor der Zone (200 m kann man ja ungefähr abschätzen) wieder öffne, habe ich für die Strecke gerade mal 10-15 sec. gebraucht!

Wieso schließt du die App und öffnest sie dann wieder ? Wers bei dem Cache dann auch so machen will, solls halt machen. Vielleicht ein unteres Zeitlimit einbauen...z.b bei weniger als 30 Sekunden "Wolltest du bescheissen ?" Vielleicht kann man die Strecke auch mit dem Rad fahren und ist dann sowieso schneller. Ein Restore Event könnte man auch noch behandeln, indem man die Startzone (wieder) aktiv macht und die Zielzone inaktiv. Der Spieler muss wieder zum Start, wo dann der Timer neu gestartet wird.
Der Restore bringt nix, da die Zielzone nicht aktiv ist und der Timer dadurch nicht stoppt.

Aber ICH würd am Ende gar nix machen, abgesehen davon daß ich solchen Aktionen skeptisch gegenüber stehe. Wozu hetzen beim cachen ? Und was ist mit Gehbehinderten ? Familien mit Kinderwagen oder Kleinkindern ?
Und wie gesagt wer da irgendwie bescheissen will, solls halt machen, brauchen manche fürs Ego um dann in den Logs zu prollen :D
 
Oben