(仍然与 roblox 相关)倒计时停留在 15 并且玩家 2 在倒计时结束后加入时不会出现帧

Posted

技术标签:

【中文标题】(仍然与 roblox 相关)倒计时停留在 15 并且玩家 2 在倒计时结束后加入时不会出现帧【英文标题】:(Still roblox related)Countdown stays at 15 and frame does not appear for player 2 when they join after the countdown ends 【发布时间】:2020-12-18 18:09:35 【问题描述】:

(是的,我知道这已经很老了,但我对脚本很陌生...)

所以我又遇到了这个问题,如果玩家 2 在倒计时结束后加入游戏,倒计时数字保持 15 并且 MapVotingFrame 不会出现在玩家 2 上,但只会发生在玩家 1 上(就像我的第一个问题,但相反)这是第三次写剧本:

脚本:

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local remoteEvent = ReplicatedStorage:WaitForChild("IntermissonEvent")

local secondsRemaining = 15

for t = secondsRemaining, 0, -1 do
    remoteEvent:FireAllClients(t)
    wait(1)
end

本地脚本:

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local remoteEvent = ReplicatedStorage:WaitForChild("IntermissonEvent")

local function onTimerUpdate(seconds)
       script.Parent.Text = tostring(seconds)

if seconds == 0 then
    script.Parent.Parent.MapVotingFrame.Visible = true
end
end

remoteEvent.OnClientEvent:Connect(onTimerUpdate)

【问题讨论】:

【参考方案1】:

尽量在你的问题中更清楚,我想我理解了这个问题,但你仍然应该包含更多的上下文

你的主要问题在于

local secondsRemaining = 15

for t = secondsRemaining, 0, -1 do
   remoteEvent:FireAllClients(t)
   wait(1)
end

它保持在 15,因为您根本没有更改 secondsRemaining 的值。 在服务器脚本中将其更改为;

for t = secondsRemaining, 0, -1 do
   secondsRemaining = secondsRemaining - 1
   remoteEvent:FireAllClients(t)
   wait(1)
end

【讨论】:

secondsRemaining 仅用于在 for 循环中初始化 t 变量。 tvariable 适当地递减到 0。

以上是关于(仍然与 roblox 相关)倒计时停留在 15 并且玩家 2 在倒计时结束后加入时不会出现帧的主要内容,如果未能解决你的问题,请参考以下文章

你如何在 Roblox 中传送角色而不留下残留物?

无法将项目添加到 Roblox 表

用js怎么判断鼠标在div上的停留时间?

找不到我以私人模式发布的 Roblox 游戏

-Roblox- 在播放器和部件之间切换时出现某种相机故障

设置屏幕停留时间