首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Roblox中获得当前时间(在所有服务器上一致)?

如何在Roblox中获得当前时间(在所有服务器上一致)?
EN

Stack Overflow用户
提问于 2014-06-10 02:13:54
回答 2查看 21.4K关注 0票数 5

在我的Roblox位置,我想得到一个表示当前时间的值,这个值在我的游戏中所有运行的服务器和位置都是一致的。

我已经知道了时间函数,但是该函数的文档似乎表明它仅在单个位置(或者可能只是一个place实例?)之间是一致的:

代码语言:javascript
运行
复制
Returns returns the current place time in seconds.

还有滴答

返回UNIX时间中的时间,这是自1970年1月1日Unix时代以来的秒数。

但这还有另一个问题:

因为有些服务器运行在不同的时区(例如在美国和欧洲的服务器),tick()将在这些服务器上返回不同的时间。这个时间将在几个小时内不同,就像时区的差异一样。由于这一事实,它无法说明两个服务器之间的相对时间(例如,测量自播放器上次访问以来所用的时间)。

如何在游戏中的所有服务器和位置获得一致的时间值?(实际生活中的实际时间在这方面会很好。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-14 19:56:12

最近对tick进行了更新,增加了一些回答我问题的补充信息:

警告: tick()返回本地时间,服务器之间的时区可能会有所不同。在每个服务器上获得相同时间的一个可靠选项是调用os.time()。

在搜索os.time()之后,我发现它实际上是LUA语言标准库的一部分。有关osos.time的更多信息可以在这里找到:

  • OsLibraryTutorial
  • Lua5.1参考资料: os.time
票数 2
EN

Stack Overflow用户

发布于 2014-06-10 04:57:08

因为ROBLOX服务器可以使用不同的时区,所以您只需要使用一个知道它使用什么时区的服务器。

要从外部服务器获取数据,需要使用HttpService

如果您有自己的服务器,您可以使用该服务器获取当前时间,如果没有,则可以查找能够给您当前时间的服务器。

下面是一个关于如何获得当前时间的示例:

代码语言:javascript
运行
复制
local TimeServer = "http://www.timeapi.org/utc/now?%25Q"
local CurrentTime = Game:GetService("HttpService"):GetAsync(TimeServer, true)
local ServerTime = tick()

这将使"CurrentTime“变量包含自Unix以来的当前微秒。

您不希望每次需要时间时都使用HttpService,所以您希望使用以下内容:

代码语言:javascript
运行
复制
function getTime()
    return CurrentTime - (ServerTime * 1000) + tick()
end

但是,为了提高效率,将其放在名为"Time“的ModuleScript中Game.ServerScriptService中:

代码语言:javascript
运行
复制
local TimeServer = "http://www.timeapi.org/utc/now?%25Q"
local CurrentTime = tonumber(Game:GetService("HttpService"):GetAsync(TimeServer, true))
local ServerTime = tick()

return function() return (CurrentTime / 1000) - ServerTime + tick() end

然后,您可以在以下任何脚本中使用它:

代码语言:javascript
运行
复制
local getTime = require(Game.ServerScriptService.Time)

print(getTime())
wait(1)
print(getTime())

需要注意的是,如果您从一个勾()调用LocalScript函数,您将得到播放机的时间,而不是服务器的时间。这可能不是您通常想要的,但它可以用于查找播放机所在的时区,或者查看播放机的当前时间。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24131836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档