Roblox Studio错误:Workspace.Driver.OnSeated!:13:尝试使用``Name''索引nil

时间:2020-05-01 14:49:17

标签: lua roblox

我在Roblox Studio中的一个脚本出错。显示问题所在的行是第13行。该脚本基本上用于在有人坐在座位上时焊接并启动TankGUI(另一个很好的脚本)。

seat = script.Parent

function onChildAdded(part)
    if (part.className == "Weld") then
        while true do
local           welde = seat:FindFirstChild("SeatWeld")

            if (welde ~= nil) then
local           sitted = welde.Part1.Parent
            end

            if (sitted.Name ~= script.Parent.Owner.Value) then
                if (script.Parent.Owner.Value == "NoOne") then
                    script.Parent.Owner.Value = sitted.Name
                    print ("sitted steal")
                else
                    print ("stolen!!")
local                   shipstealer = game.Workspace:FindFirstChild(sitted.Name)
                    if (shipstealer ~= nil) then
                        shipstealer.Humanoid.Jump=true
                    end
                end
            end


            wait(0.2)

            if (welde == nil) then
                print("BreakLoop")
                script.Parent.Owner.Value = "NoOne"
            break end
        end
    end
end

--while true do
--  wait(0.5)
--  script.Parent.Parent.Name=script.Parent.Owner.Value .. "'s Ship"
--end
seat.ChildAdded:connect(onChildAdded)

请原谅我合作不力或语言障碍。我这里还是新手。

1 个答案:

答案 0 :(得分:0)

            if (welde ~= nil) then
local           sitted = welde.Part1.Parent
            end

            if (sitted.Name ~= script.Parent.Owner.Value) then

由于您将sitted声明为local,因此它超出了end的范围,因此当您尝试在该if中使用它时,它就消失了,因此您实际上在那里使用了nil全局变量。而是这样做:

            local sitted
            if (welde ~= nil) then
                sitted = welde.Part1.Parent
            end

            if (sitted.Name ~= script.Parent.Owner.Value) then

那样,它将一直保持作用,直到您真正完成操作为止。