local part = script.Parent
local Shot = script.Parent.Parent.ShotPart
local firerate = 0
local dmg = 100
local speed = 170
local range = 1000
local db = true
local rep = game.ReplicatedStorage:WaitForChild("TeamEvent")
--[[local targets = {
game.Workspace.Model:GetDescendants():GetDescendants()
}]]
local lookvector = part.CFrame.LookVector
while db == true do
local target = nil
for i,v in pairs(game.Workspace:getChildren()) do
local player = game:GetService("Players")
local maths = math.random(1,4)
local hum = v:FindFirstChild("Humanoid")
local ignore = v:FindFirstChild("Pirate")
local ignore1 = v:FindFirstChild("Navy")
if script.Parent.Neutral == true and script.Parent.Cap.Value == BrickColor.new("Medium stone grey") then
local targets = v:FindFirstChild("Torso")
if hum and targets and hum.Health > 0 then
if (targets.Position - Shot.Position).Magnitude < range then
local ray = Ray.new(Shot.Position,(targets.Position - Shot.Position).Unit * range)
local hit, Pos = game.Workspace:FindPartOnRayWithIgnoreList(ray, {Shot, part})
if hit == targets then
target = targets
db = false
else
print("some thing is in the way")
end
end
end
elseif script.Parent.Neutral == false and script.Parent.Cap.Value == BrickColor.new("Lapis") then
local targets = v:FindFirstChild("Pirate")
if hum and targets and hum.Health > 0 then
if (targets.Position - Shot.Position).Magnitude < range then
local ray = Ray.new(Shot.Position,(targets.Position - Shot.Position).Unit * range)
local hit, Pos = game.Workspace:FindPartOnRayWithIgnoreList(ray, {Shot, part})
if hit == targets then
target = targets
db = false
else
print("Pirate")
end
end
end
elseif script.Parent.Neutral == false and script.Parent.Cap.Value == BrickColor.new("Really black") then
local targets = v:FindFirstChild("Navy")
if hum and targets and hum.Health > 0 then
if (targets.Position - Shot.Position).Magnitude < range then
local ray = Ray.new(Shot.Position,(targets.Position - Shot.Position).Unit * range)
local hit, Pos = game.Workspace:FindPartOnRayWithIgnoreList(ray, {Shot, part})
if hit == targets then
target = targets
db = false
else
print("navy")
end
end
end
end
end
if target then
local targets = target
part.CFrame = CFrame.new(part.Position, targets.Position)
local ball = game.ServerStorage:WaitForChild("Ball")
local cloneball = ball:Clone()
cloneball.Position = Shot.Position
cloneball.Parent = game.Workspace
cloneball.Velocity = part.CFrame.LookVector*speed
cloneball.Touched:Connect(function(ObjectHit)
local hum = ObjectHit:FindFirstChild("Humanoid")
local explosion = Instance.new("Explosion")
explosion.BlastRadius = 10
explosion.ExplosionType = Enum.ExplosionType.Craters -- damages terrain
explosion.Position = ObjectHit.Position
explosion.Parent = game.Workspace
cloneball:Destroy()
if hum then
hum.Health = dmg
end
end)
wait(0.5)
db = true
end
--[[local hit, position = game.Workspace:FindPartOnRayWithIgnoreList(ray, {part})
if hit then
end]]
wait(0.5)
end
how do i make it not to shoot team mates instead shoot enemy's rn it wont work and i dont know what to do and if there is a more better way of doing this
elseif script.Parent.Neutral == false and script.Parent.Cap.Value == BrickColor.new("Lapis") then
local targets = v:FindFirstChild("Pirate")
if hum and targets and hum.Health > 0 then
if (targets.Position - Shot.Position).Magnitude < range then
local ray = Ray.new(Shot.Position,(targets.Position - Shot.Position).Unit * range)
local hit, Pos = game.Workspace:FindPartOnRayWithIgnoreList(ray, {Shot, part})
if hit == targets then
target = targets
db = false
else
print("Pirate")
end
end
end
