将一个工具从 Starterpack 移动到玩家的背包后,在 ServerScriptService 中的 M1 系统没有生效

我被一个问题困扰了 4 天,但是还没有解决它。我正在为我的金属棒制作一个战斗系统。在工具中,有些本地脚本处理连击计数,并在最后触发服务器。在服务器脚本服务中,一些服务器脚本将连接,接收并播放相应的动画、效果和声音以显示每个连击。这是我的战斗系统。

最开始,我将我的工具存储在 Starter Pack 中,测试了一下,一切都非常正常。但是当我开发游戏时,我制作了一个 Clicker 脚本,如果您单击它,它将把工具发送到玩家的背包中。这是我的 Clicker 脚本

local ClickDetector = script.Parent.ClickDetector
local canGiveGun = true

ClickDetector.MouseClick:Connect(function(player)
    local backpack = player:WaitForChild("Backpack")
    local MetalBatCombat = game.ServerStorage:FindFirstChild("MetalBatCombat")
    local batClone = MetalBatCombat:Clone()

    for i,v in pairs(backpack:GetChildren()) do
        if v.Name == "MetalBatCombat" then
            canGiveGun = false
        end
    end

    if canGiveGun and player.Team.Name == "Metal Bat" then
            batClone.Parent = backpack


    end

    canGiveGun = true

end)

是的,Clicker 没有出现任何问题。但是,当我装备我的工具时,我点击了它,但是我的 M1 系统没有做任何事情,尽管我的 M2,阻塞系统很好用。

我不知道为什么。我制作了一个开关,当玩家装备工具时,它将打开 M1 和 M2 服务器脚本以及我的连击计数本地脚本,但是没有起帮助作用。这是那个开关(服务器脚本)

local MetalBat = script.Parent
local MBFolder = game.ServerScriptService:WaitForChild("MBCombatFolder")

function onEquippedLocal()
    MetalBat:WaitForChild("newCombat").Disabled = false
    MBFolder:WaitForChild("M1").Disabled = false
    MBFolder:WaitForChild("M2").Disabled = false

end

function onUnequippedLocal()
    MetalBat:WaitForChild("newCombat").Disabled = true
    MBFolder:WaitForChild("M1").Disabled = true
    MBFolder:WaitForChild("M2").Disabled = true

end

MetalBat.Equipped:connect(onEquippedLocal)
MetalBat.Unequipped:connect(onUnequippedLocal)

我搜索了很多,但那些人没有理解。任何帮助肯定都会受到欢迎。在我解决这个问题之前,我无法继续我的游戏 :(

点赞