【问题标题】:Boat Spawn (Roblox Studio)船产卵(Roblox Studio)
【发布时间】:2021-06-30 02:09:19
【问题描述】:

我正在尝试(我是新人)制作一款你必须用船互相攻击的游戏。每个岛上都有一个按钮,当你按下它时,应该会出现一艘船。 (到目前为止有效) 但是,一旦您想生成一艘新船,它就会删除每个人的船。我认为使用 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)

【问题讨论】:

  • plruserid 是事件方法中的一个变量,它使得一个变量没有为整个脚本初始化。将local plruserid = null 放在脚本顶部,在那里你持有local boat,然后将当前局部变量(local plruserid = player.UserId)替换为plruserid = player.UserId
  • 感谢您的回复!当我在脚本顶部添加 (local plruserid = null) 时,它会在文本下方显示一条红线? (没有错误或只是一条红线)或者这无关紧要吗?看来他不知道null..
  • @micegan 这并不能解决问题

标签: roblox


【解决方案1】:

我简化了代码,找到了解决办法:

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)

【讨论】:

  • 不客气!您能否将我的答案标记为正确,以便人们知道问题已解决?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多