Roblox Studio忽略了我的“ If Statement”行

时间:2019-07-11 20:34:23

标签: lua roblox

所以我有一个重复执行的脚本,不断检查值。但是,即使该值为true,该函数也根本不会运行。

我尝试添加“ wait()”来解决问题,但这根本不起作用。

useless = 0
wait(1)
repeat
    print("watno")
    wait()
    if script.Parent.Parent.Parent.windowsopen.Value == true then
        wait()
        for i = 5.5,0,0.1 do
            print("wat")
            wait()
            useless = useless + i
            script.Parent.Size = Vector3.new(script.Parent.Size.X, script.Parent.Y - 0.1, script.Parent.Size.Z )

        end
    elseif script.Parent.Parent.Parent.windowsopen.Value == false then

        wait()
    end
until false

“ windowsopen”值始终为true,但永远不会运行它。

1 个答案:

答案 0 :(得分:0)

您最可能由for循环引起的问题,应将其更改为

      for i = 55, 0, -1 do
            print("wait")
            wait()
            useless = useless + 0.1*i
            script.Parent.Size = Vector3.new(script.Parent.Size.X, script.Parent.Y - 0.1, script.Parent.Size.Z )
        end

因为(a)如果要在循环中减少i的第三个参数为负数,(b)您实际上不应该在float中使用doublefor由于精度\表示形式而导致循环:0.1可能最终表示为0.1000000000000001(或类似的东西),并且在i中,循环中永远不会等于零。有关更多信息,请检查lua用于表示double的格式(我认为这是IEEE 754,但我可能错了),您也可以查看https://floating-point-gui.de/