| Name | Von |
|---|---|
| Spielzeitzähler (Aktionsteil, Wert & Lua) | AFRLme |
Dieses Tutorial zeigt dir, wie du mit einem einzigen Wert, ein paar Aktionsteilen und wenigen Zeilen Lua einen Spielzeitzähler baust.
| d = Tage, h = Stunden, m = Minuten, s = Sekunden. |
| Ein Tag hat 86400 Sekunden, eine Stunde 3600 und eine Minute 60. |
| Beachte: Aktionsteile zum Anzeigen von Objekttext funktionieren nur in Szenen, die keine Menüs sind. |
Anleitung
1. Lege im Skriptbereich des Editors ein neues Skript an und füge den Code aus dem Block unten ein.
local d, h, m, s -- empty variables which will be used to store converted time values
--* function which converts seconds to dd:hh:mm:ss time format * --
function secondsToTime(v)
d = math.floor(v / 86400)
h = math.floor(v % 86400 / 3600)
m = math.floor(v % 3600 / 60)
s = math.floor(v % 3600 % 60)
-- + --
if d < 10 then d = tostring("0" .. d) end
if h < 10 then h = tostring("0" .. h) end
if m < 10 then m = tostring("0" .. m) end
if s < 10 then s = tostring("0" .. s) end
-- + --
return tostring( d .. ":" .. h .. ":" .. m .. ":" .. s )
end2. Lege dann irgendwo einen Wert mit dem Namen playtime an und setze den Standardwert auf 0.
3. Öffne den Reiter „Aktionen“ der Szene, in der der Timer erscheinen soll. Lege eine Aktion zu Szenenbeginn, eine Aktion am Szenenende und 2 Aktionen von anderer Aktion aufgerufen an. Nenne die beiden aufgerufenen Aktionen update_playtime und update_playtime_text.
4. Füge in die Aktion zu Szenenbeginn diese Aktionsteile ein ...
execute a script > (see code block below) call action 'update_playtime_text' call action 'update_playtime'
Values["playtime"].String = secondsToTime( Values["playtime"].ValueInt )5. Füge in die Aktion am Szenenende diese Aktionsteile ein ...
quit action 'update_playtime_text' quit action 'update_playtime'
6. Füge in die Aktion update_playtime diese Aktionsteile ein ...
pause for 1000 milliseconds value 'playtime' + 1 execute a script > (see code block below) jump to action part #1
Values["playtime"].String = secondsToTime( Values["playtime"].ValueInt )7. Füge in die Aktion update_playtime_text diese Aktionsteile ein ...
display background narration text: '<vs=playtime><p150ms>' or display object text: '<vs=playtime>' pause for 140 milliseconds jump to action part #1
8. Rufe die Aktion update_playtime zu Beginn jeder Szene auf und beende sie am Ende jeder Szene. So läuft der Timer in jeder Szene und pausiert, bis die nächste Szene geladen ist.
Ressourcen
| Name | Beschreibung |
|---|---|
| playtime_counter-2.zip (Datei nicht mehr verfügbar) | Eine funktionierende .ved-Datei mit allen Ressourcen. Eine Anleitung findest du in der Datei readme.txt. |






