Boat Spawn(Roblox Studio)

Boat Spawn (Roblox Studio)

我正在尝试(我很新)制作一款你必须用船互相攻击的游戏。每个岛上都有一个按钮,当您按下它时,应该会出现一艘船。 (到目前为止这有效) 但是,一旦您想生成一艘新船,它就会移除每个人的船。我认为使用 player.id 是有意义的,但这仍然行不通。有人知道解决方案吗?

下面你会发现隐藏在一部分中的代码。

谢谢!

代码:

local cd = script.Parent.ClickDetector
local boat = script.Parent.Parent.Firstboat
local button = script.Parent
local debounce = false



game.Players.PlayerAdded:Connect(function(player)
    print(player.UserId)
    local plruserid = player.UserId
    print(player.Name)


    boat.Parent = game.ServerStorage

cd.MouseHoverEnter:Connect(function()

    button.Transparency = 0.5
end)

cd.MouseHoverLeave:Connect(function()
    button.Transparency = 0
end)

    cd.MouseClick:Connect(function()
        local SetNameToBoat = plruserid
        print (SetNameToBoat)
        local oldboat = workspace:FindFirstChild(SetNameToBoat)


    if not debounce then
            if oldboat then
                oldboat : destroy()
        end
        debounce = true
        local NewBoat = boat:clone()
        NewBoat.Name = (SetNameToBoat)
        NewBoat.Parent = game.Workspace
        wait(5)
        debounce = false
        end
        
end)
end)

我简化了代码并找到了解决方案:

local cd = workspace.Button:WaitForChild('ClickDetector')
local boat = game:GetService('ServerStorage'):WaitForChild('Boat')
local button = workspace:WaitForChild('Button')
local debounce = false

cd.MouseHoverEnter:Connect(function()

    button.Transparency = 0.5
end)

cd.MouseHoverLeave:Connect(function()
    button.Transparency = 0
end)

cd.MouseClick:Connect(function(player)
    local plruserid = player.UserId
    local SetNameToBoat = plruserid
    print(SetNameToBoat)
    local oldboat = workspace:FindFirstChild(SetNameToBoat)

    if not debounce then
        if oldboat then
            oldboat:destroy()
        end
        debounce = true
        local NewBoat = boat:clone()
        NewBoat.Name = SetNameToBoat
        NewBoat.Parent = game.Workspace
        wait(5)
        debounce = false
    end

end)