关于重启所有服务器的问题

因为关闭服务器的时候会进行数据保存等一系列工作,导致点了关闭所有服务器之后,有时候玩家并不会吊线,但是服务器的相关东西都会消失掉,这样体验感非常差。
我做了一个自动踢出所有玩家的功能,但是这个又不能保证服务器能够及时重启。
请问有什么办法能够处理呢?

5赞

可以使用下面的事件保存玩家数据
game.Players.PlayerRemoving:Connect(function(player)
end)
当我们手动关闭服务器后,roblox不会立马关闭服务器,会留出时间给我们存储数据,建议把玩家数据都以Table的形式保存到内存,然后在事件中将数据保存到数据库

1赞

可以使用 服务器关闭事件来处理。 最多有30秒的时间可以处理相关数据。
要注意的是 如果数据量较大 最好定期储存一下(不超过他的数据调用限制就行)
提供一个数据保存的方案。数据只保存变化过的数据。
1、在玩家离开游戏时保存该玩家数据。
2、定时保存游戏中的玩家数据(比如5分钟)。
3、服务器关闭时 保存游戏中的玩家数据。

服务器关闭事件:
https://developer.roblox.com/zh-cn/api-reference/function/DataModel/BindToClose

数据调用限制:
https://developer.roblox.com/zh-cn/articles/Datastore-Errors

1赞