|
| 10 Jun 2014 09:11 PM |
I want the "Gold" stats to save every time you rejoin (ONLY GOLD). How'd you do that?
My Cash, ko, wo, gold script if needed:
function onPlayerEntered(newPlayer)
local stats = Instance.new("IntValue") stats.Name = "leaderstats"
local bounty = 10 -- cash for kills value
local cash = Instance.new("IntValue") cash.Name = "Cash" --Change "Cash" to change the currency name. cash.Value = 15 --Change the 0 to how much you want people to start with
cash.Parent = stats stats.Parent = newPlayer
local kills = Instance.new("IntValue") kills.Name = "KOs" kills.Value = 0
local gold = Instance.new("IntValue") gold.Name = "Gold" gold.Value = 5
local deaths = Instance.new("IntValue") deaths.Name = "Wipeouts" deaths.Value = 0
kills.Parent = stats deaths.Parent = stats gold.Parent = stats
--------------------------------------------------------------------------------------------------------------- -- Do not edit past here or you will be risking breaking the script!!!! -- ---------------------------------------------------------------------------------------------------------------
-- VERY UGLY HACK -- Will this leak threads? -- Is the problem even what I think it is (player arrived before character)?
while true do if newPlayer.Character ~= nil then break end wait(5) end
local humanoid = newPlayer.Character.Humanoid
humanoid.Died:connect(function() onHumanoidDied(humanoid, newPlayer) end )
-- start to listen for new humanoid newPlayer.Changed:connect(function(property) onPlayerRespawn(property, newPlayer) end )
stats.Parent = newPlayer
end
function Send_DB_Event_Died(victim, killer) -- killer may be nil local killername = "unknown" if killer ~= nil then killername = killer.Name end print(victim.Name, " was killed by ", killername)
if shared["deaths"] ~= nil then shared["deaths"](victim, killer) print("Death event sent.") end end
function Send_DB_Event_Kill(killer, victim) print(killer.Name, " killed ", victim.Name) if shared["kills"] ~= nil then shared["kills"](killer, victim) print("Kill event sent.") end end
function onHumanoidDied(humanoid, player) local stats = player:findFirstChild("leaderstats") if stats ~= nil then local deaths = stats:findFirstChild("Wipeouts") deaths.Value = deaths.Value + 1
-- do short dance to try and find the killer
local killer = getKillerOfHumanoidIfStillInGame(humanoid)
Send_DB_Event_Died(player, killer) handleKillCount(humanoid, player) end end
function onPlayerRespawn(property, player) -- need to connect to new humanoid
if property == "Character" and player.Character ~= nil then local humanoid = player.Character.Humanoid local p = player local h = humanoid humanoid.Died:connect(function() onHumanoidDied(h, p) end ) end end
function getKillerOfHumanoidIfStillInGame(humanoid) -- returns the player object that killed this humanoid -- returns nil if the killer is no longer in the game
-- check for kill tag on humanoid - may be more than one - todo: deal with this local tag = humanoid:findFirstChild("creator")
-- find player with name on tag if tag ~= nil then
local killer = tag.Value if killer.Parent ~= nil then -- killer still in game return killer end end
return nil end
function handleKillCount(humanoid, player) local killer = getKillerOfHumanoidIfStillInGame(humanoid) if killer ~= nil then local stats = killer:findFirstChild("leaderstats") if stats ~= nil then local kills = stats:findFirstChild("KOs") if killer ~= player then kills.Value = kills.Value + 1 cash = cash.Value + 10 else kills.Value = kills.Value - 0
end Send_DB_Event_Kill(killer, player) end end end
game.Players.ChildAdded:connect(onPlayerEntered) |
|
|
| Report Abuse |
|
|
| |
|
| |
|
Tynexx
|
  |
| Joined: 11 Jul 2012 |
| Total Posts: 1559 |
|
|
| 10 Jun 2014 09:19 PM |
| Data persistence, search it up on wiki.roblox.com |
|
|
| Report Abuse |
|
|
|
| 10 Jun 2014 09:21 PM |
| If you get a data p. as a free model, all the scripts save everything in the leaderstats, not just one. |
|
|
| Report Abuse |
|
|
| |
|
Tynexx
|
  |
| Joined: 11 Jul 2012 |
| Total Posts: 1559 |
|
|
| 10 Jun 2014 09:29 PM |
game.Players.PlayerRemoving:connect(function(p) p:WaitForDataReady() local leaderstats = p:FindFirstChild("leaderstats") if not leaderstats then return end local gold = leaderstats:FindFirstChild("Gold") if not level then return end player:SaveNumber("Gold", gold.Value) end) game.Players.PlayerAdded:connect(function(p) p:WaitForDataReady() stats = p:FindFirstChild("leaderstats") if not stats then return end local gold = stats:FindFirstChild("Gold") if not gold then return end SavedGold = p:LoadNumber("Gold") if SavedGold == 0 then SavedGold = 1 end gold.Value = SavedGold end end end) |
|
|
| Report Abuse |
|
|