在ROBLOX脚本(Lua)上需要帮助

时间:2016-12-31 20:03:19

标签: lua roblox

我正在ROBLOX为我的UFO制作一个脚本,每当UFO从头顶飞过它就会播放音频。我制作了一个如下脚本

while true do
    if script.Parent.Parent.Velocity.Magnitude>10 then
    if local h = hit.Parent:FindFirstChild("Humanoid")
        then script.parent:play()
        wait(5)
    else
        wait()
   end
   wait()
end

任何更正都将是真正的帮助!

谢谢!

1 个答案:

答案 0 :(得分:0)

除了一切之外,在根本上存在很多语法错误以及实现错误,在你给我们的所有代码块中都没有做你想做的事。< / p>

但是,这里有解决方案的基本概念:

local newThread = coroutine.create(function()
    while true do
        for i, v in game.Players:GetPlayers()
            local playerListener = workspace[v.Name]["Head"]
            local ufoListener = workspace.Ufo:FindFirstChild('Listener')
            local magnitude = (playerListener.Position - ufoListener.Position).magnitude
            if (magnitude > 10) then
                script.Parent:play()
            else
                wait(0.5)
            end
        end
    end
end)

coroutine.resume(newThread)

基本上,这里是破败:我们正在使用协同程序,所以这个循环并没有永久地产生这个线程。有一些更复杂的途径使用可绑定事件,也许是一些服务器 - 客户端握手,当从LocalPlayer触发时,它调用服务器中的事件 - 但我离题了。这应该是完美的满足您的需求而不会让您太过分混乱。