I was working on a paintball game until i found out that the gun kills people on the same team which is not what i want
ball = script.Parent damage = 100 function onTouched(hit) local humanoid = hit.Parent:findFirstChild("Humanoid") local playername = humanoid.Parent.Name local playerteam = game.Players['playername'].Team.Team if hit:getMass() < 1.2 * 200 then end -- make a splat for i=1,3 do local s = Instance.new("Part") s.Shape = 1 -- block s.formFactor = 2 -- plate s.Size = Vector3.new(1,.4,1) s.BrickColor = ball.BrickColor local v = Vector3.new(math.random(-1,1), math.random(0,1), math.random(-1,1)) s.Velocity = 15 * v s.CFrame = CFrame.new(ball.Position + v, v) ball.BrickCleanup:clone().Parent = s s.BrickCleanup.Disabled = false s.Parent = game.Workspace --game.Debris:AddItem(s, 5) end if humanoid ~= nil and playerteam == 'Red' then tagHumanoid(humanoid) humanoid:TakeDamage(damage) wait(2) untagHumanoid(humanoid) end connection:Disconnect() ball.Parent = nil end function tagHumanoid(humanoid) -- todo: make tag expire local tag = ball:findFirstChild("creator") if tag ~= nil then local new_tag = tag:clone() new_tag.Parent = humanoid end end function untagHumanoid(humanoid) if humanoid ~= nil then local tag = humanoid:findFirstChild("creator") if tag ~= nil then tag.Parent = nil end end end connection = ball.Touched:connect(onTouched) wait(8) ball.Parent = nil
You might wanna use the Teams
service. Here's how:
local Teams = game:GetService("Teams") local red = Teams.Red function onTouched(hit) local humanoid = hit.Parent:findFirstChild("Humanoid") local playername = humanoid.Parent.Name local playerteam = game.Players['playername'].Team
if humanoid ~= nil and playerteam == red then tagHumanoid(humanoid) humanoid:TakeDamage(damage) wait(2) untagHumanoid(humanoid) end
Hope this helps!
[playername]*
not
['playername']
local playerteam = game.Players[playername].Team.Team