Script de temporizador de Lua produciendo un valor completamente numérico en lugar del tiempo adecuado.
Mi script de temporizador escribe esto en el archivo cuando guarda el valor.
Ejemplo de tiempo en el archivo: 1638185640
Ejemplo de tiempo mostrado en el juego:
name = “Timer”
description = “Just a normal Timer.”
positionX = 0
positionY = 0
sizeX = 24
sizeY = 10
scale = 1
START_STOP_KEY = 0x55 –o ‘U’
RESET_KEY = 0x4A –o ‘J’
–[[
Módulo de script del temporizador por SebyGHG. Script original por Onix64 (Cronómetro)
Si deseas cambiar la clave, puedes tomar el código de clave desde aquí:
https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
]]
state = 1
stopTime = 0
startTime = 0
f = io.input(“timesave.txt”)
result = f:read()
f:close()
stopTime = result
state = 2
function keyboard(key, isDown)
if (isDown == true) then
if (key == RESET_KEY) then
state = 0
elseif (key == START_STOP_KEY) then
if (state == 0) then
state = 1
startTime = os.time()
elseif (state == 1) then
state = 2
io.output(“timesave.txt”)
timesave= (io.open(“timesave.txt”,”w”))
io.write(stopTime)
io.close(timesave)
stopTime = os.time() -stopTime
elseif (state == 2) then
state = 1
startTime =startTime + os.time() – stopTime
end
end
end
end
TimerText = “00:00”
TextColor = {r = 30, g = 255, b = 30, a = 255}
function doubleDigit(number)
if (number < 10) then
return “0” .. math.floor(number)
else
return math.floor(number)
end
end
function timeText(time)
local result = “”
local days = 0
while (time > 86399) do
days = days + 1
time = time – 86400
end
local hours = 0
while (time > 3599) do
hours = hours + 1
time = time – 3600
end
local minutes = 0
while (time > 59) do
minutes = minutes + 1
time = time – 60
end
if (days == 0) then
if (hours == 0) then
return doubleDigit(minutes) .. “:” .. doubleDigit(time)
else
return math.floor(hours) .. ” : ” .. doubleDigit(minutes) .. “:” .. doubleDigit(time)
end
else
return math.floor(days) ..
” : ” .. doubleDigit(hours) .. ” : ” .. doubleDigit(minutes) .. “:” .. doubleDigit(time)
end
end
function update()
if (state == 0) then
TextColor = {r = 255, g = 0, b = 0, a = 255}
TimerText = “00:00”
elseif (state == 1) then
TimerText = timeText(os.time() – startTime)
TextColor = {r = 0, g = 255, b = 255, a = 255}
elseif (state == 2) then
TimerText = timeText(stopTime – startTime)
TextColor = {r = 255, g = 255, b = 0, a = 255}
end
end
function render()
local font = gui.font()
local tw = font.width(TimerText)
gfx.color(0, 0, 0, 0)
gfx.rect(0, 0, tw + 4, 10)
gfx.color(TextColor.r, TextColor.g, TextColor.b, TextColor.a)
gfx.text(2, 1, TimerText)
end
davy.ai
El script del temporizador guarda el valor del temporizador en un archivo llamado “timesave.txt”. El valor de tiempo se guarda como el número de segundos desde el 1 de enero de 1970 (también conocido como tiempo Unix o época) utilizando la función Lua “os.time()”.
Cuando el temporizador se detiene, el script escribe el valor de la variable “stopTime” (que contiene el tiempo Unix en el que se detuvo el temporizador) en el archivo “timesave.txt” utilizando la función “io.write()”.
Por lo tanto, el valor almacenado en el archivo “timesave.txt” estará en tiempo Unix, que puede no ser fácilmente legible para usuarios no técnicos. Sin embargo, el script puede mostrar el temporizador en un formato amigable para el usuario, como se muestra en la imagen del juego proporcionada, convirtiendo el tiempo Unix en horas, minutos y segundos utilizando las funciones Lua en la función “timeText()”.