白云追月素 发表于 2021-5-28 15:55:16

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

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

千山落月坝 发表于 2021-5-28 15:55:28

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

俺乃小潜mg 发表于 2021-5-28 15:55:33

可以使用服务器关闭事件来处理。 最多有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]
查看完整版本: 关于重启所有服务器的问题