船产卵(Roblox Studio)

Posted

技术标签:

【中文标题】船产卵(Roblox Studio)【英文标题】:Boat Spawn (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 这并不能解决问题 【参考方案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)

【讨论】:

不客气!您能否将我的答案标记为正确,以便人们知道问题已解决?

以上是关于船产卵(Roblox Studio)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Roblox Studio 中移动网格

Roblox Studio 未加载

循环中的 Roblox Studio Lua if 语句

Roblox Studio 跳过循环

Roblox Studio 价值问题

Roblox Studio 打印错误值