【问题标题】:ROBLOX - If statement won't run inside of while loop?ROBLOX - 如果语句不会在 while 循环内运行?
【发布时间】:2019-03-17 15:01:10
【问题描述】:

我遇到了一些非常奇怪的事情。我最初试图制作一个音乐脚本(更像是系统,tbh)并且它有同样的问题。现在我把它归结为一个简单的测试:

while true do
    if script.Parent.musicstate.Value == true then
        print("Play")
    elseif script.Parent.musicstate.Value == false then
        print("Stop")
    end
    wait()
end

当我运行它时,它要么只打印“停止”,要么只打印“播放”。它将打印的字符串将取决于游戏开始时的 bool 值, 因为它不会根据当前值改变打印的内容。我们将不胜感激所有帮助,谢谢!

结构,SongScript 正在运行:

【问题讨论】:

  • 1.你不需要 elseif,因为 Value 是 bool。
  • 2.你在哪里更新script.Parent.musicstate.Value?是否在 Action 回调中更新?
  • 我在测试时直接从侧边栏更新值(什么是动作回调??)
  • 打印“停止”或“播放”多次还是只打印一次?

标签: lua roblox


【解决方案1】:

永远不要让这样的无限循环使您的整个系统崩溃!有很多更有效的方法。您遇到问题是因为脚本会自动中断,因此它不会使您的整个系统崩溃。

    script.Parent.musicstate.Changed:Connect(function()
    if script.Parent.musicstate.Value == true then
    print("Play")
elseif script.Parent.musicstate.Value == false then
    print("Stop")
    end
    end)

【讨论】:

  • 是的,脚本不再做任何事情,没有被禁用,结构也没有改变:/ @Ahmad
  • 我知道你的问题。你正在编辑来自你的客户的值。单独测试已启用过滤。因此,从测试选项卡从当前客户端更改为当前服务器。它会起作用。我希望这会有所帮助。 @霜冻
  • 他有一个wait()语句,它不应该让游戏崩溃。
猜你喜欢
  • 2020-05-07
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 2014-04-11
  • 2016-10-07
  • 2023-02-24
  • 2022-09-29
  • 1970-01-01
相关资源
最近更新 更多