|
| 27 Sep 2014 02:03 PM |
I was able to combine my tycoon leaderboard script and a KO/WO leaderboard together to make one leaderboard. However, I want players to get +500 Cash for every KO they get, and I'm not that sophisticated in scripting. Any help? I thank very much whomever can help me out here.
print("Cash Stuffs running!")
local gps = game:service'GamePassService' function onPlayerEntered(newPlayer) wait(.5) local stats = Instance.new("IntValue") stats.Name = "leaderstats" local stats2 = Instance.new("IntValue") stats2.Name = "Tycoon"
local cash = Instance.new("IntValue")
cash.Name = "Cash" cash.Value = 100
cash.Parent = stats stats2.Parent = newPlayer stats.Parent = newPlayer
if gps:PlayerHasPass(newPlayer, 178650443) then -- replace 000 with ur gamepass ID cash.Value = cash.Value + 5000 -- amount of money to add if player has pass end if gps:PlayerHasPass(newPlayer, 178650616) then -- replace 000 with ur gamepass ID cash.Value = cash.Value + 10000 -- amount of money to add if player has pass end if newPlayer:IsInGroup(108755) then cash.Value = cash.Value + 3000 end
local kills = Instance.new("IntValue") kills.Name = "KOs" kills.Value = 0
local deaths = Instance.new("IntValue") deaths.Name = "Wipeouts" deaths.Value = 0
kills.Parent = stats deaths.Parent = stats
-- 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 = "no one" if killer ~= nil then killername = killer.Name end print("DIED EVENT: ", victim.Name, " KILLED by ", killername)
if shared["deaths"] ~= nil then shared["deaths"](victim, killer) print("SENT DB DEATH EVENT") end end
function Send_DB_Event_Kill(killer, victim) print("KILL EVENT. ", killer.Name, " BLOXXED ", victim.Name) if shared["kills"] ~= nil then shared["kills"](killer, victim) print("SENT DB KILL EVENT") 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 else kills.Value = kills.Value - 1 end Send_DB_Event_Kill(killer, player) end end end
-----------------------------------------------------------------------------------
game.Players.ChildAdded:connect(onPlayerEntered) |
|
|
| Report Abuse |
|
| |
ohno1112
|
  |
| Joined: 23 Mar 2013 |
| Total Posts: 833 |
|
| |