我写了一些不同的脚本,但似乎做得不好。 基本上,我有一个商店,玩家可以从中购买工具和物品,但是每次我测试并购买工具时,工具死亡后就消失了。我不希望人们不得不一遍又一遍地购买。
以下是他们购买该工具的脚本以及该工具的去向。
script.Parent.MouseButton1Click:connect(function()
local RS = game:GetService('ReplicatedStorage')
local item = RS:WaitForChild('GravityCoil')
local price = 0
local player = game.Players.LocalPlayer
local stats = player:WaitForChild('leaderstats')
if stats.Cash.Value >= price then
stats.Cash.Value = stats.Cash.Value - price
local cloned = item:Clone()
local cloned2 = item:Clone()
cloned2.Parent = player.Backpack
end
end)
答案 0 :(得分:1)
不要使用复制的存储。发生的事情是您无法添加它,并且当它们重新生成时,它会存储到每个客户端。在引入新的存储系统之前,我曾经使用过“ Lighting”。无论如何,如果您不想每次玩家加入游戏时都保存它,请在您选择的存储系统中创建模型。将其命名为角色的名字,并在每次通过购买系统添加或删除物品时,将背包保存到该模型中。然后,当玩家生成时,将模型中的内容复制到背包中。我会改用ServerStorage。 然后,对于玩家模型中的每个对象,在重生时将其复制到玩家的背包中。
script.Parent.MouseButton1Click:connect(function()
local RS = game:GetService('ServerStorage')
local item = RS:WaitForChild('GravityCoil')
local price = 0
local player = game.Players.LocalPlayer
local stats = player:WaitForChild('leaderstats')
if stats.Cash.Value >= price then
stats.Cash.Value = stats.Cash.Value - price
local cloned = item:Clone()
local cloned2 = item:Clone()
local plrMod = Instance.new("Model")
plrMod.name = player.name
plrMod.parent = RS
cloned.parent = plrMod
cloned2.Parent = player.Backpack
end
end)
然后onRespawn事件的一部分代码看起来像
for child in plrMod
child:Clone().parent = player
注意,这是不正确的语法,自从我完成lua编程已经有好几年了