如何编写Roblox脚本来在玩家死亡时保存背包和入门装备?

时间:2018-08-02 21:14:10

标签: lua save roblox

我写了一些不同的脚本,但似乎做得不好。 基本上,我有一个商店,玩家可以从中购买工具和物品,但是每次我测试并购买工具时,工具死亡后就消失了。我不希望人们不得不一遍又一遍地购买。

以下是他们购买该工具的脚本以及该工具的去向。

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)

1 个答案:

答案 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编程已经有好几年了