Roblox:BindToClose 有效,PlayerRemoving 无效
Posted
技术标签:
【中文标题】Roblox:BindToClose 有效,PlayerRemoving 无效【英文标题】:Roblox: BindToClose works, PlayerRemoving does not 【发布时间】:2021-02-27 08:47:16 【问题描述】:我正在尝试将 CFrame X、Y 和 Z 数据存储到 DataStore 中,以便玩家可以从他们离开的地方开始。我正在通过尝试保存硬编码值进行测试。
使用 PlayerAdded 加载数据工作正常。
由于某种原因,当玩家离开游戏或工作室时,PlayerRemoving 中的 SetAsync() 没有完成。奇怪的是,当我添加 BindToClose 时,保存功能在 Studio 中正常运行,但在游戏中不运行。
如果有人能告诉我原因,我将不胜感激。
local function save(plr)
local data =
CFrameX = -1232;
CFrameY = 1232;
CFrameZ = -1235;
local success, errormessage = pcall(function()
MandoSimStore:SetAsync(plr.UserId.."-Location_StorageData", data)
end)
if success then
print("Successfully saved data!")
else
warn("ERROR: "..errormessage)
end
end
local gameShutDown = false
game.Players.PlayerRemoving:Connect(function(plr)
wait(0.1)
if not gameShutDown then
save(plr)
end
end)
game:BindToClose(function()
gameShutDown = true
for _, plr in ipairs(game.Players:GetPlayers()) do
save(plr)
end
end)
【问题讨论】:
您可能遇到了时间问题。可能是游戏在您的数据正确保存之前关闭。要进行调试,请尝试将wait(10)
添加到 game:BindToClose
函数。
刚试了下,游戏还是不能保存在游戏里,但是能保存在Studio里。
【参考方案1】:
不妨试试
wait(1)
它对我有用
【讨论】:
以上是关于Roblox:BindToClose 有效,PlayerRemoving 无效的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的roblox gui在studio的测试区显示而在游戏中却没有