所以我有一个重复执行的脚本,不断检查值。但是,即使该值为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,但永远不会运行它。
答案 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
中使用double
或for
由于精度\表示形式而导致循环:0.1可能最终表示为0.1000000000000001(或类似的东西),并且在i中,循环中永远不会等于零。有关更多信息,请检查lua用于表示double
的格式(我认为这是IEEE 754,但我可能错了),您也可以查看https://floating-point-gui.de/