|
| 24 Dec 2013 07:42 AM |
This won't work... function enter(player) wait() player:WaitForDataReady() repeat wait() until player:FindFirstChild("leaderstats") if player.DataReady then if player:findFirstChild("leaderstats") then local score = player.leaderstats:FindFirstChild("Points") for i = 1,#score do local ScoreLoaded = player:LoadNumber(0.5*score[i].Name) wait() if ScoreLoaded ~= 0 then score[i].Value = ScoreLoaded end end end end end
function leave(player) if player:findFirstChild("leaderstats") then local score = player.leaderstats:FindFirstChild("Points") for i = 1,#score do player:SaveNumber(score[i].Name,score[i].Value) end end end
game.Players.PlayerAdded:connect(enter) game.Players.PlayerRemoving:connect(leave) |
|
|
| Report Abuse |
|
|
| |
|
|
| 24 Dec 2013 08:34 AM |
| Won't save or it won't load? |
|
|
| Report Abuse |
|
|
|
| 24 Dec 2013 08:34 AM |
| Also you're supposed to wait for data ready when leaving. |
|
|
| Report Abuse |
|
|
| |
|
|
| 24 Dec 2013 08:37 AM |
function leave(player) if player:findFirstChild("leaderstats") then player:WaitForDataReady() --That's what I mean, both entering and leaving you're supposed to wait for data ready. local score = player.leaderstats:FindFirstChild("Points") for i = 1,#score do player:SaveNumber(score[i].Name,score[i].Value) end end end |
|
|
| Report Abuse |
|
|
| |
|
darthpyro
|
  |
| Joined: 18 Aug 2009 |
| Total Posts: 3569 |
|
|
| 24 Dec 2013 08:41 AM |
| I wouldn't save when they leave, PlayerRemoving is unreliable and it may not be able to fire the entire script before they're gone. |
|
|
| Report Abuse |
|
|
|
| 24 Dec 2013 08:41 AM |
function enter(player) wait() player:WaitForDataReady(0.5) repeat wait(0.1) until player:FindFirstChild("leaderstats") if player.DataReady then if player:findFirstChild("leaderstats") then local score = player.leaderstats:FindFirstChild("Points") for i = 1,#score do local ScoreLoaded = player:LoadNumber(0.5*score[i].Name) wait(0.1) if ScoreLoaded ~= 0 then score[i].Value = ScoreLoaded end end end end end
function leave(player) if player:findFirstChild("leaderstats") then local score = player.leaderstats:FindFirstChild("Points") for i = 1,#score do player:SaveNumber(score[i].Name,score[i].Value) end end end
game.Players.PlayerAdded:connect(enter) game.Players.PlayerRemoving:connect(leave)
I used this and it doesn't work... |
|
|
| Report Abuse |
|
|
|
| 24 Dec 2013 08:46 AM |
function enter(player) wait() player:WaitForDataReady() repeat wait(0.1) until player:FindFirstChild("leaderstats") if player.DataReady then if player:findFirstChild("leaderstats") then local score = player.leaderstats:FindFirstChild("Points") for i = 1,#score do local ScoreLoaded = player:LoadNumber(0.5*score[i].Name) wait(0.1) if ScoreLoaded ~= 0 then score[i].Value = ScoreLoaded end end end end end
function leave(player) if player:findFirstChild("leaderstats") then player:WaitForDataReady() local score = player.leaderstats:FindFirstChild("Points") for i = 1,#score do player:SaveNumber(score[i].Name,score[i].Value) end end end
game.Players.PlayerAdded:connect(enter) game.Players.ChildRemoved:connect(leave)
I recommend you have a button for saving because childremoved and playerremoving are not reliable. |
|
|
| Report Abuse |
|
|