2025-06-04 05:02:57 +08:00

63 lines
2.2 KiB
Plaintext

ServerTime = class('ServerTime')
ServerTime.CacheUnscaledTime = 0
function ServerTime.ClampClientTime()
ServerTime.clamp = ServerTime.CurClientTime()
end
--伺服器時間
function ServerTime.InitTime(serverTime)
local dateFormat = "【%Y年%m月】【%d日%H點%M分%S秒】";
if(ServerTime.ServerTime == nil)then
helplog("初始化伺服器時間:", os.date(dateFormat, serverTime/1000));
helplog("目前裝置時間:" .. DateTimeHelper.SysNow():ToString());
else
helplog("目前伺服器時間:".. os.date(dateFormat, serverTime/1000))
helplog("客戶端模擬伺服器時間:".. os.date(dateFormat, ServerTime.ServerTime/1000))
helplog("目前裝置時間:" .. DateTimeHelper.SysNow():ToString());
helplog("誤差:"..tostring(serverTime - ServerTime.ServerTime).."毫秒")
end
ServerTime.serverTimeStamp = serverTime
ServerTime.clientTimeStamp = ServerTime.CurClientTime()
ServerTime.deltaStamp = ServerTime.serverTimeStamp - ServerTime.clientTimeStamp
if(ServerTime.clamp) then
ServerTime.deltaStamp = ServerTime.deltaStamp + (ServerTime.CurClientTime()-ServerTime.clamp)
end
if(ServerTime.timeTick == nil) then
ServerTime.timeTick = TimeTickManager.Me():CreateTick(0,33,ServerTime.Update,ServerTime,1,true)
end
ServerTime.Update()
end
function ServerTime.StampClientSend()
ServerTime.clientStamp = ServerTime.CurServerTime()
end
function ServerTime.CurServerTime()
return ServerTime.ServerTime
end
function ServerTime.CurClientTime()
-- return SystemTime.GetCurrentTimeStamp()
return Time.realtimeSinceStartup *1000
end
function ServerTime.ServerDeltaSecondTime(serverTime,curServerTime)
return ServerTime.ServerDeltaMillTime(serverTime,curServerTime) / 1000
end
function ServerTime.ServerDeltaMillTime(serverTime,curServerTime)
-- print("伺服器時間戳:"..serverTime)
curServerTime = curServerTime or ServerTime.CurServerTime()
-- print("客戶端時間戳:"..curServerTime)
return serverTime - curServerTime
end
function ServerTime.Update(owner,deltaTime)
ServerTime.ServerTime = ServerTime.CurClientTime() + ServerTime.deltaStamp
ServerTime.CacheUnscaledTime = Time.unscaledTime
-- print("伺服器時間:"..ServerTime.ServerTime)
end