如何解决 Roblox 服务器延迟问题

我正在制作一个 Roblox 点击游戏,除了当有多个人玩时会出现很多服务器延迟而有时点击不会被注册外,一切都正常。

当按钮被点击时,它会触发一个事件:

local leaderstats = game.Players.LocalPlayer:WaitForChild("leaderstats")
local button = script.Parent

button.MouseButton1Click:Connect(function()

    game.Workspace.GetClickScript.GetClick:FireServer()

end)

服务端脚本检测到事件被触发并执行以下操作:

local debounce = false
script.GetClick.OnServerEvent:Connect(function(plr)
    if not debounce then
        debounce = true
        local leaderstats = plr:WaitForChild("leaderstats")
        leaderstats.Clicks.Value += 1
        wait(0.2)
        debounce = false
    end
end)

当有多个玩家点击按钮时,它会变得非常慢 (因为它是一个服务端脚本)。有没有办法让它跑得更快或者将其变成一个本地脚本?

点赞
用户14301077
用户14301077

首先,你的代码看起来还不错。问题在于你对 debounce 的使用,debounce 实际上从来没有用过这种方式。每当一个玩家触发事件时,防抖会使得其他玩家在 0.2 秒内无法更改他们的现金。

我会完全移除 debounce,虽然这不应该会导致你遇到的问题规模。不用 debounce 尝试一下,然后告诉我它是否起作用?

如果没有起作用,你很可能在游戏中感染了病毒,或者在客户端上存在网络问题。

2021-01-25 18:15:30