Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

why isnt this player script working? NOT ANSWERED

I assume that every time a player kills another player, their team gets points (correct me if im wrong). So I have a text label as the parent of this script. Every time a team scores, it should post that score inside the text label. It is not working and I want to know why.

Script:

wait()

function FR()
if game.Players.LocalPlayer.TeamColor == ("Bright red") then
	script.Parent.Text = game.Teams.Atlas.Score
end

FR()
game.Teams.Atlas.Changed:connect(FR)

1 comment

0

I told you, my script is not complete. Mainly since you're not allowed to post full scripts. I had in there under the "FR" section how to see if someone killed someone.

2 answers

✓ Accepted answer

You forgot to add BrickColor.new before your brickcolor

wait()

function FR()
if game.Players.LocalPlayer.TeamColor == BrickColor.new ("Bright red") then
    script.Parent.Text = game.Teams.Atlas.Score
end

FR()
game.Teams.Atlas.Changed:connect(FR)

  1. Why is there wait? You don't need one in this case.
  2. Why are you calling a function and then letting an event call the function?
  3. TeamColor is a BrickColor
  4. The Score script... Look up leaderboard in the wiki...

Wait

The wait is for when you are doing a PlayerAdded type event in a local script. You can't do player added in a local script. You can reach the player through LocalPlayer, but the script runs before the player joins. So that's why the wait is there.


FR

Why are you calling the function and then calling it again with an event? Why are you using a Changed event? You can see if a player died using the Died event.

workspace.Player.Humanoid.Died:connect()
	print("A person died!")
end)

we can see who killed a player by using tags.

workspace.Player.Humanoid.Died:connect()
	if workspace.Player.Humanoid:FindFirstChild("Tag") then
		print("Player was Killed by "..workspace.Player.Humanoid.Tag.Value.Name.."!")
	else
		print("A person died!")
	end
end)

To insert a tag, make an object value. The value of the object value will be the player who is trying to kill the other player.

--This script will be in a sword or something.
function tag(humanoid)
	if not humanoid:FindFirstChild("tag") then
		local tag = Instance.new("ObjectValue", humanoid)
		tag.Name = "tag"
		tag.Value = game:GetService("Players"):GetPlayerFromCharacter(script.Parent.Parent.Parent)
		wait(2)
		tag:Destroy()
	end
end

script.Parent.Touched:connect(function(char)
	if char:FindFirstChild("Humanoid") then
		tag(char.Humanoid)
	end
end)

TeamColor is a BrickColor

A TeamColor is a BrickColor! So instead of TeamColor == ("Bright red") try

if game:GetService("Players").LocalPlayer.TeamColor == BrickColor.new("Bright red") then
end

Leaderboard

Look here.



Here is a better version of your script. This isn't the whole thing, I'm just making the script work.

--Local Script
function FR()
	if game.Players.LocalPlayer.TeamColor == BrickColor.new("Bright red") then
	    game.Teams.Atlas.Score = game.Teams.Atlas.Score+1
	    script.Parent.Text = game.Teams.Atlas.Score
	end --close the if statement with an end.
end

game.Players.LocalPlayer.Character.Humanoid.Died:connect(FR)



Hope this helps!

1 comment

0

It does help but it just shows 1 on the gui. It doesnt go up when you kill a player

This discussion is preserved as it was. New answers, comments, and votes are closed.