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

Why does this GUI not update to an X symbol during a live game? [closed]

Asked by
tran18 -5
6 years ago

In this game, I'm trying to have a target system where you have to hunt down an NPC with a specific color hat. A GUI is used to tell a player what colored hat the NPC is wearing, and the GUI is supposed to display an X symbol during the delay where the new target is chosen.

The part of the script which finds the hat color that the NPC is wearing and updates the GUI works, but it doesn't display an X during the delay in which a new target is chosen and the old NPC respawns. (this is a 5 second delay if you need to know)

I didn't make the respawn script, so I'm not 100% sure how it works. I'm pretty sure it's not an issue with waiting for the player to spawn in. But I tried to make comments to make it a bit readable.

local script that changes the GUI

--local script found in starter GUI under imagelabel
_G.isCamperDead = false
local counter = 1

--array filled with symbols
campColorArray = {
                 "http://www.roblox.com/asset/?id=2254302918", --red hat
                 "http://www.roblox.com/asset/?id=2254302303", --blue hat
                 "http://www.roblox.com/asset/?id=2254331503", --yellow hat
                 "http://www.roblox.com/asset/?id=2254302721", --cyan hat
                 "http://www.roblox.com/asset/?id=2254302522", --camo hat
                 "http://www.roblox.com/asset/?id=2256726772"  --x
                 }
function camperAlive()
    if _G.isCamperDead == false then
        if game.Workspace.campingSite.camper1:FindFirstChild("targetCamperB") then --finding the target
            if game.Workspace.campingSite.camper1.targetCamperB:FindFirstChild(counter) then --determining the color of their hat
                wait(0.2)
                script.Parent.Image = campColorArray[counter]
                counter = 1 --resets when finished
            else
                wait(0.2)
                counter = counter + 1
                if counter == 6 then
                    counter = 1 --resets if not found
                end
            end
        end
    end
end


while wait() do 
    if _G.isCamperDead == false then
        camperAlive()
    else
        script.Parent.Image = "http://www.roblox.com/asset/?id=2256726772" --does not work for some reason
    end
end

respawn script

--script found in target NPC
target = script.Parent:clone()
local campsite = game.Workspace.campingSite.camper1
_G.isCamperDead = false

function Dead()
    _G.isCamperDead = true
    game.StarterGui.TargetGui.TargetHat.Image = "http://www.roblox.com/asset/?id=2256726772" --attempt to change the player's gui to an x
    wait(5) --delay between respawn

    local respawn=target:clone()
    respawn.Parent=script.Parent.Parent
    respawn:makeJoints()
    script.Parent:remove()

    game.Workspace.campingSite.camper1.targetCamperB.Name = "randomCamperC" --used to disable choosing of same npc twice in a row as target
    game.Workspace.campingSite.camper1.randomCamperC.Humanoid.MaxHealth = 0 --invincible when not a target
    game.Workspace.campingSite.camper1.randomCamperC.Humanoid.Health = 0
    _G.newTarget = true --find a new target

    game.Workspace.campingSite.camper1.randomCamperC.Parent = game.Workspace.campingSite.camper2 --puts in a new group so it doesn't alternate between only 2 targets
    game.Workspace.campingSite.camper2.randomCamperC.Respawning:Destroy() --self destruct
end

script.Parent.Humanoid.Died:connect(Dead)

Closed as Not Constructive by User#19524

This question has been closed because it is not constructive to others or the asker. Most commonly, questions that are requests with no attempt from the asker to solve their problem will fall into this category.

Why was this question closed?