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

Earwigo: Timer stoppen

hcy

Geoguru
Hallo,

ich versuche mich gerade mal an einer ersten Cartridge mit Earwigo. Jetzt hab ich das Problem, dass ich einen einmal gestarteten Timer wieder stoppen möchte. Das passiert allerdings nicht, zumindest nicht im Webwigo.
Lua code ist:
Code:
function ztimerAnruf:OnTick()
if (os.date("%H") == "15") then
 ztimerAnruf:Stop()
 Wherigo.MessageBox{Text="Hallo?", Buttons={"Hallo, hier ist Schmidt.", "Falsch verbunden."}, Callback=cartTest.MsgBoxCBFuncs.MsgBoxCB1}
 zoneHotel.Active = false
end
end
Der Aufruf des Timer erfolgt immer wieder, also passiert offenbar kein Stop, auch sieht man in der Console keine entsprechende Meldung.
Die Message wird aber angezeigt, also die Bedingung schlägt schon zu.

Ich dachte erst der Timer würde evtl. automatisch aktiviert weil der Spieler noch in der Zone ist, deshalb deaktiviere ich die vorsichtshalber aber auch das hat keinen Einfluss.

Kann da jemand weiterhelfen?
 

Charlenni

Geomaster
Das mit dem Timerstop in der OnTick Funktion ist ein Problem des Players und nicht von Earwigo.

Der einfachste Workaround ist, dass du statt eines Intervall-Timers einen Countdown-Timer verwendest. Dieser ruft beim Ablaufen das OnTick Ereignis auf. Wenn der Timer beendet werden soll, dann brauchst du nichts mehr zu tun. Wenn der Timer weiterlaufen soll, dann startest du ihn einfach nochmals. Das sollte das Problem schon lösen und eigentlich auch auf allen Playern laufen.
 

Charlenni

Geomaster
Äh, der Code würde dann so aussehen:
Code:
function ztimerAnruf:OnTick()
  if (os.date("%H") == "15") then
    Wherigo.MessageBox{Text="Hallo?", Buttons={"Hallo, hier ist Schmidt.", "Falsch verbunden."}, Callback=cartTest.MsgBoxCBFuncs.MsgBoxCB1}
    zoneHotel.Active = false
    return
  end
  ztimerAnruf:Start()
end
 
Oben