Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

My saving script... broke?

Asked by
Primpy 25
9 years ago

I am working on a Pokemon game using Pokemon Evolutions made by dragon115454 as the base game. Everything went well so far, but after a certain update (I don't know which) people started complaining about their levels not being saved. Although, I didn't edit anything in the save script, so it might be the "stats" script that is the problem.

Saving script:

game.Players.PlayerRemoving:connect(function(p)
if p:findFirstChild("stats") then
p:SaveInstance("SavedStatPNum"..tostring(game.PlaceId),p.stats)
end
end)
game.Players.PlayerAdded:connect(function(p)
for k = 1, 60, 0.03 do
wait()
if p:findFirstChild("stats") and p.DataReady then break end
end
local Loaded = nil
if p:findFirstChild("stats") and pcall(function() Loaded =  p:LoadInstance("SavedStatPNum"..tostring(game.PlaceId)) end) then
for j, v in pairs(Loaded:GetChildren()) do
pcall(function() p.stats[v.Name].Value = v.Value end)
end
end
end)

Stats script:

function onXPChanged(player, XP, level)
    if XP.Value>=level.Value * 10 then
        XP.Value = XP.Value - level.Value * 10
        level.Value = level.Value + 1
    end
end

function onLevelUp(player, XP, level)
    local m = Instance.new("Hint")
    m.Parent = game.Workspace
    m.Text = player.Name .. " has gained a level."
    wait(3)
    m.Parent = nil
end


function onPlayerEntered(newPlayer)
    local stats = Instance.new("IntValue")
    stats.Name = "stats"

    local xp = Instance.new("IntValue")
    xp.Name = "XP"
    xp.Value = 0

    local level = Instance.new("IntValue")
    level.Name = "Level"
    level.Value = 1

    local c = Instance.new("IntValue")
    c.Name = "Cash"
    c.Value = 0

    local f = Instance.new("IntValue")
    f.Name = "FS"
    f.Value = 15

    local t = Instance.new("IntValue")
    t.Name = "Type"
    t.Value = 0

    local t2 = Instance.new("IntValue")
    t2.Name = "Type2"
    t2.Value = 0

    local p = Instance.new("IntValue")
    p.Name = "Potion"
    p.Value = 3

    local ob = Instance.new("IntValue")
    ob.Name = "OranBerry"
    ob.Value = 5

    local ThunderStone = Instance.new("IntValue")
    ThunderStone.Name = "ThunderStone"
    ThunderStone.Value = 0

    local FireStone = Instance.new("IntValue")
    FireStone.Name = "FireStone"
    FireStone.Value = 0

    local WaterStone = Instance.new("IntValue")
    WaterStone.Name = "WaterStone"
    WaterStone.Value = 0

    local LeafStone = Instance.new("IntValue")
    LeafStone.Name = "LeafStone"
    LeafStone.Value = 0

    local e1 = Instance.new("IntValue")
    e1.Name = "Event1"
    e1.Value = 0

    local pidgey = Instance.new("IntValue")
    pidgey.Name = "Pidgey"
    pidgey.Value = 0

    local caterpie = Instance.new("IntValue")
    caterpie.Name = "Caterpie"
    caterpie.Value = 0

    local sbulbasaur = Instance.new("IntValue")
    sbulbasaur.Name = "SBulbasaur"
    sbulbasaur.Value = 0

    local mew = Instance.new("IntValue")
    mew.Name = "Mew"
    mew.Value = 0

    local r = Instance.new("IntValue")
    r.Name = "Rock"
    r.Value = 0

    local rc = Instance.new("IntValue")
    rc.Name = "RareCandy"
    rc.Value = 0

   xp.Parent = stats
   level.Parent = stats
   c.Parent = stats
   f.Parent = stats
   t.Parent = stats
   t2.Parent = stats
   p.Parent = stats
   ThunderStone.Parent = stats
   e1.Parent = stats
   pidgey.Parent = stats
   caterpie.Parent = stats
   ob.Parent = stats
   FireStone.Parent = stats
   WaterStone.Parent = stats
   LeafStone.Parent = stats
   sbulbasaur.Parent = stats
   mew.Parent = stats
   r.Parent = stats
   rc.Parent = stats


    stats.Parent = newPlayer

    xp.Changed:connect(function() onXPChanged(newPlayer, xp, level) end)
    level.Changed:connect(function() onLevelUp(newPlayer, xp, level) end)

    newPlayer.Changed:connect(function (property)
        if (property == "Character") then
            onPlayerRespawned(newPlayer)
        end
    end)
end

game.Players.ChildAdded:connect(onPlayerEntered)

I added a manually save/load script and that works well, so I have no flippin' idea why the old one suddenly doesn't work anymore.

My place: http://www.roblox.com/games/50269531/Pokemon-Advanced-Alpha

I can provide more informations if needed. Thank you for reading! :)

Answer this question