我有一个本地脚本,它表示当单击某个部分时,它会将玩家的姓名发送到服务器端以分发武器。当事件被触发时,它会转到服务器脚本端的这段代码
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)
我不知道如何为玩家提供带有服务器脚本的工具,谢谢。
我期待已识别的玩家会在背包中收到该工具。
但是当您调用 RemoteEvent 的 FireServer 函数时,OnServerEvent 事件将提供触发该事件的玩家作为第一个参数。该变量是一个 Player 对象,因此您可以直接从该对象访问背包。您无需索引玩家服务即可再次找到玩家。
ReplicatedStorage.RemoteEvent:OnServerEvent:Connect(function(player)
local toolClone = tool:Clone()
toolClone.Parent = player.Backpack
end)
-- 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)