I'm trying to make a gun game, but my gun can kill my teammates. How can I edit this to avoid that? (Sorry if it looks really messy and really unoptimized, I'm really new to Roblox scripting.) Code:
local function createBullet(target)
local bullet = tool.Bullet:Clone()
table.insert(ignoreTable, bullet)
bullet.Parent = workspace
bullet.CFrame = CFrame.new(muzzle.CFrame.p, target)
bullet.Trail.Enabled = true
wait() -- so trail has time to load
bullet.Transparency = 0
local missionAccomplished = false
for i = 1, numSegments do
if not missionAccomplished then
local equation = bullet.CFrame * CFrame.new(0, 0, -segmentLength) * CFrame.Angles(dropAngle, 0, 0)
local ray = Ray.new(bullet.Position, (equation.p - bullet.Position).unit * segmentLength)
local part, pos, normal, material = workspace:FindPartOnRayWithIgnoreList(ray, ignoreTable)
if part and part.Parent:FindFirstChild("Humanoid") then
missionAccomplished = true
bullet.HitSound:Play()
hitEvent:FireClient(game.Players:GetPlayerFromCharacter(tool.Parent))
local hum = part.Parent.Humanoid
if part.Name == "Head" and configs.headshotInstakill == true then
local neck = part.Parent:FindFirstChild("Neck", true)
neck:Destroy()
elseif part.Name == "Head" then
hum:TakeDamage(headDamage)
elseif part.Name == "Torso" or part.Name == "UpperTorso" or part.Name == "LowerTorso" then -- Names to account for R6 and R15
hum:TakeDamage(torsoDamage)
else
hum:TakeDamage(otherDamage)
end
bullet.CFrame = CFrame.new(pos, equation.p)
local weld = Instance.new("Weld", bullet)
weld.C0 = bullet.CFrame:inverse() * part.CFrame
weld.Part0 = bullet
weld.Part1 = part
bullet.Anchored = false
--bullet.Trail.Enabled = false
bullet.Transparency = 1
if configs.blood == true then
bullet.EffectAttachment.BloodEmitter:Emit(20)
end
wait(1)
for ii, v in pairs(ignoreTable) do
if v == bullet then
table.remove(ignoreTable, ii)
end
end
bullet:Destroy()
elseif part then
missionAccomplished = true
bullet.CFrame = CFrame.new(pos, equation.p)
--bullet.Trail.Enabled = false
bullet.Transparency = 1
bullet.ThudSound:Play()
if hitParticles and part.Transparency and part.Transparency < 1 then
if part.ClassName ~= "Terrain" then
bullet.EffectAttachment.DebrisEmitter.Color = ColorSequence.new(part.Color)
elseif material == Enum.Material.Grass
or material == Enum.Material.LeafyGrass
or material == Enum.Material.Ground
or material == Enum.Material.Mud
or material == Enum.Material.Cobblestone then
bullet.EffectAttachment.DebrisEmitter.Color = ColorSequence.new(Color3.new(61/255, 51/255, 44/255))
elseif material == Enum.Material.Asphalt
or material == Enum.Material.Concrete
or material == Enum.Material.Pavement
or material == Enum.Material.Slate then
bullet.EffectAttachment.DebrisEmitter.Color = ColorSequence.new(Color3.new(100/255, 99/255, 93/255))
elseif material == Enum.Material.Limestone
or material == Enum.Material.Sand
or material == Enum.Material.WoodPlanks then
bullet.EffectAttachment.DebrisEmitter.Color = ColorSequence.new(Color3.new(172/255, 153/255, 116/255))
elseif material == Enum.Material.Brick or material == Enum.Material.Sandstone then
bullet.EffectAttachment.DebrisEmitter.Color = ColorSequence.new(Color3.new(165/255, 114/255, 95/255))
elseif material == Enum.Material.Rock then
bullet.EffectAttachment.DebrisEmitter.Color = ColorSequence.new(Color3.new(93/255, 96/255, 103/255))
elseif material == Enum.Material.Basalt or material == Enum.Material.CrackedLava then
bullet.EffectAttachment.DebrisEmitter.Color = ColorSequence.new(Color3.new(22/255, 11/255, 10/255))
elseif material == Enum.Material.Salt or material == Enum.Material.Snow then
bullet.EffectAttachment.DebrisEmitter.Color = ColorSequence.new(Color3.new(190/255, 180/255, 190/255))
elseif material == Enum.Material.Glacier or material == Enum.Material.Ice then
bullet.EffectAttachment.DebrisEmitter.Color = ColorSequence.new(Color3.new(162/255, 194/255, 217/255))
end
bullet.EffectAttachment.DebrisEmitter:Emit(10)
end
wait(1)
for ii, v in pairs(ignoreTable) do
if v == bullet then
table.remove(ignoreTable, ii)
end
end
bullet:Destroy()
else
bullet.CFrame = equation
end
wait(waitBetweenSegments)
end
end
return
end

3 comments
Really? Nobody is helping??
4 hours and not even a response. What the heck???
33 views and nobody is posting a response. Please, say something at least.