Difference between revisions of "Playtime Counter (h2)"

From The Official Visionaire Studio: Adventure Game Engine Wiki
Line 11: Line 11:
  
 
== Tutorial ==
 
== Tutorial ==
1. Create a new script, inside of the script section of the editor & add the script inside of the code block below into it.
+
1. Create a new script inside of the script section of the editor & add the script inside of the code block below into it.
 
<syntaxhighlight>
 
<syntaxhighlight>
 
local d, h, m, s -- empty variables which will be used to store converted time values
 
local d, h, m, s -- empty variables which will be used to store converted time values
Line 29: Line 29:
 
  return tostring( d .. ":" .. h .. ":" .. m .. ":" .. s )
 
  return tostring( d .. ":" .. h .. ":" .. m .. ":" .. s )
 
end
 
end
 +
</syntaxhighlight>
  
-- * function which converts seconds to days * --
+
2. Next you are going to want to create a value somewhere. Name it '''playtime''' & set the default value to '''0'''.
function secondsToDays(v)
+
 
v = math.floor(v / 86400)
+
[[File:playtime_counter2_001.png|800px]]
-- + --
 
if v < 10 then v = tostring("0" .. v) end
 
-- + --
 
return tostring( v )
 
end
 
  
-- * function which converts seconds to hours * --
+
3. Now go to the actions tab of the scene that you are wanting to display the timer on. Create an '''at begin of scene''' action, an '''at end of scene''' action & 2 '''called by other actions'''. Name the called by other actions: '''update_playtime''' & '''update_playtime_text'''.
function secondsToHours(v, b)
 
if b then v = math.floor(v % 86400 / 3600) else v = math.floor(v / 3600) end
 
-- + --
 
if v < 10 then v = tostring("0" .. v) end
 
-- + --
 
return tostring( v )
 
end
 
  
-- * function which converts seconds to minutes * --
+
[[File:playtime_counter2_002.png|800px]]
function secondsToMinutes(v)
 
v = math.floor(v % 3600 / 60)
 
-- + --
 
if v < 10 then v = tostring("0" .. v) end
 
-- + --
 
return tostring( v )
 
end
 
  
-- * function which converts seconds to seconds (remainder) * --
+
4. Inside of the '''at begin of scene''' action: add these action parts...
function secondsToSeconds(v)
+
<pre>
v = math.floor(v % 3600 % 60)
+
execute a script > (see code block below)
-- + --
+
call action 'update_playtime_text'
if v < 10 then v = tostring("0" .. v) end
+
call action 'update_playtime'
-- + --
+
</pre>
return tostring( v )
+
<syntaxhighlight>
end
+
Values["playtime"].String = secondsToTime( Values["playtime"].ValueInt )
 
</syntaxhighlight>
 
</syntaxhighlight>
  
2. Next you are going to want to create a value somewhere. Name it '''playtime''' & set the default value to '''0'''.
+
[[File:playtime_counter2_003.png|800px]]
 
 
[[File:playtime_counter2_001.png|800px]]
 
  
  

Revision as of 23:55, 22 February 2015

Name By

Playtime Counter (action part, value & lua) AFRLme


This tutorial shows you how to create a playtime counter using a single value, some action parts & a few lines of Lua script.


Tutorial

1. Create a new script inside of the script section of the editor & add the script inside of the code block below into it.

local d, h, m, s -- empty variables which will be used to store converted time values
 
--* function which converts seconds to days, hours, minutes & seconds * --
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 )
end

2. Next you are going to want to create a value somewhere. Name it playtime & set the default value to 0.

Playtime counter2 001.png

3. Now go to the actions tab of the scene that you are wanting to display the timer on. Create an at begin of scene action, an at end of scene action & 2 called by other actions. Name the called by other actions: update_playtime & update_playtime_text.

Playtime counter2 002.png

4. Inside of the at begin of scene action: add these action parts...

execute a script > (see code block below)
call action 'update_playtime_text'
call action 'update_playtime' 
Values["playtime"].String = secondsToTime( Values["playtime"].ValueInt )

Playtime counter2 003.png


Resources

Name Description
playtime_counter-2.zip A working .ved file, complete with resources. Check out the readme.txt file for instructions.