lua (Roblox) - 需要帮助将工具克隆到玩家背包中

lua (Roblox) - Help needed with cloning a tool into the players backpack

所以我正在用一家商店制作游戏,我遇到的问题是我在 ReplicatedStorage 中有一个工具,所以我可以在玩家购买该工具时将其克隆到玩家背包中。问题是无论我把工具放在哪里,它都会消失。我已经尝试过 ServerStorage、ReplicatedStorage、Workspace 和脚本内部,但每次我测试游戏时,它都会从我放置它的任何地方删除它。我将把我的脚本放在下面,但我不知道它是否已损坏,我无法对其进行测试,因为该工具已从我放置它的任何地方删除。这是我在 StarterGUI 的 TextButton 中的 LocalScript 中的代码。

local player = game.Players.LocalPlayer

script.Parent.MouseButton1Click:Connect(function()
    local tool = script.Tool:Clone()
    tool.Parent = player.Backpack
    print("player recieved tool")
end)

并且由工作区中某个部分的脚本中的 Touched 事件触发。

script.Parent.Touched:Connect(function(hit)
    if hit.Parent:FindFirstChild("Humanoid") then
        print(hit.Parent)
        local player = game.Players:GetPlayerFromCharacter(hit.Parent)
        game.ReplicatedStorage.Shop:Fire(player)
    end
end)

所以,这些可能有用,但我只需要实际工具消失方面的帮助。任何帮助表示赞赏! (如果你想要图片或视频我可以录下来发一个link)

看来问题可能出在服务器不知道您收到了物品,因为这一切都是在本地完成的。尝试使用 RemoteEvent 之类的东西。

本地:

local player = game.Players.LocalPlayer
local RemoteEvent = game.ReplicatedStorage.RemoteEvent

script.Parent.MouseButton1Click:Connect(function()
    RemoteEvent:FireServer()
end)

您需要将 RemoteEvent 添加到 ReplicatedStorage。 服务器端:

local RemoteEvent = game.ReplicatedStorage.RemoteEvent
local ToolPrefab = --add the directory of the weapon here
RemoteEvent.OnServerEvent:Connect(function(plr)
    local ToolClone = ToolPrefab:Clone()
    ToolClone.Parent = plr.Back
end)