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

Reward a player for killing a zombie?[UNSOLVED]

Asked by
Bman8765 270 Moderation Voter
10 years ago

I have a script that rewards a player for killing a zombie but I'm having some issues with it, maybe one of you guys can help me fix the problem? Whenever the user kills a zombie this error outputs: Workspace.map1.Zombie.Reward:10: bad argument #2 to '?' (string expected, got userdata)

rewardmessage is a gui found in lighting everything else should be understandable oh also this script in found inside a zombie (npc, whatever you want to call it) (The script also is not fully completed, the main functional parts are coded but don't seem to be working) Script:

rewardednowdie = false
rewardmessage = game.Lighting.KillerReward

repeat
    wait()
    if script.Parent.Zombie.Health == 0 then
        local killer = script.Parent.Zombie.creator
        print(killer.Value)
        local rewardclone = rewardmessage:clone()
        rewardclone.Parent = game.Players[killer.Value].PlayerGui.MainScreen
        if game.Players[killer.Value].PlayerGui.MainScreen.PlayerValues.HasCoinBooster.Value == true then
            rewardclone.CoinReward.Text = "+2 coins"
            if game.Players[killer.Value].PlayerGui.MainScreen.PlayerValues.HasXPBooster.Value == true then
                rewardclone.XPReward.Text = "+10 XP"
            else rewardclone.XPReward.Text = "+5 XP"
            end
        else
            rewardclone.CoinReward.Text = "+1 coin"
            if game.Players[killer.Value].PlayerGui.MainScreen.PlayerValues.HasXPBooster.Value == true then
                rewardclone.XPReward.Text = "+10 XP"
            else 
                rewardclone.XPReward.Text = "+5 XP"
            end
        end
        rewardednowdie = true
    end
until rewardednowdie == true

1 answer

Log in to vote
0
Answered by 10 years ago

Well, instead of using a loop, you should use the died() event of humanoids; this will reduce lag.

script.Parent.Zombie.Died:connect(function()
--stuff goes here
end)

And a tagged humanoid will return the player instance, not just the name.

0
Thanks for pointing this out but this still does not solve my problem.. Bman8765 270 — 10y
Ad

Answer this question