如何使用远程事件为人们提供工具?

问题描述 投票:0回答:2

我有一个本地脚本,它表示当单击某个部分时,它会将玩家的姓名发送到服务器端以分发武器。当事件被触发时,它会转到服务器脚本端的这段代码

ReplicatedStorage.RemoteEvent:OnServerEvent:Connect(function(playerWhoWantsTool)
     local toolClone = tool:Clone()
     print(playerWhoWantsTool)-- It prints out my username in the output so I know it works
     local buyersBackPack = game.Players.playerWhowantsTool.Backpack
     toolClone.Parent = buyersBackPack
     -- Returns an error about cant find playerwhowantsTool in game.Players
end)

我不知道如何为玩家提供带有服务器脚本的工具,谢谢。

我期待已识别的玩家会在背包中收到该工具。

lua client-server game-engine roblox
2个回答
0
投票

但是当您调用 RemoteEventFireServer 函数时,OnServerEvent 事件将提供触发该事件的玩家作为第一个参数。该变量是一个 Player 对象,因此您可以直接从该对象访问背包。您无需索引玩家服务即可再次找到玩家。

ReplicatedStorage.RemoteEvent:OnServerEvent:Connect(function(player)
     local toolClone = tool:Clone()
     toolClone.Parent = player.Backpack
end)

0
投票
-- Local script
local button = script.Parent

button.Activated:Connect(function()
    game.ReplicatedStorage.RemoteEvent:FireServer(tool) -- fire the event
end)

-- Server script
amount = 250
game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(plr, tool)
    -- check somehow if the player has enough money or smth
    if plr.leaderstats.Coins.Value <= amount then -- amount to buy tool
         plr.leaderstats.Coins.Value -= amount -- takes away amount
              script.Tool:Clone().Parent = plr.Backpack -- get the tool from the script and give to plr
        end
    end)
© www.soinside.com 2019 - 2024. All rights reserved.