reposted because no one answered first one rip me
I made a camera, For my training game. Now, Hear me out, I am not good at making scripts tidy. What the problem is though: This function always prints true now matter what:
function IsPlrIgnored(HRPN)
for i,v in pairs(PLRS) do
if HRPN == v then
print(v)
return false
end
end
return true
end
I implemented this for a bug. Its a weird bug, When two players stand next to eachother, One in the group and not in the group, The camera will target the player in the group. This is not what i want. This happens randomly. Idk what to do. Can someone fix this VERY broken script?
local RS = game:GetService("ReplicatedStorage")
local RS2 = game:GetService("RunService")
local DB = false
local Barrel = script.Parent
local Decal = Barrel.Parent.Parent.Screen.Screen.Decal
local CON = script.Parent.Parent.Configuration
local fireRate = CON.Rate.Value
local aggroDist = CON.DetectionDistance.Value
local IgnoreList = {Barrel}
PLRS = {}
--------------------------------
wait(3)
function checkIfInGroupAndGroupRank(PLR)
if PLR then
if PLR:IsInGroup(CON.Group.Value) and CON.Group.Value ~= 0 then
if PLR:GetRankInGroup(CON.Group.Value) > CON.GroupRank.Value and CON.GroupRank.Value ~= 0 then
print("True")
return true
end
end
end
print("False")
return false
end
function checkIfInGroupAndGroupRankAll()
for i,v in pairs(game.Players:GetChildren()) do
local iigagr = checkIfInGroupAndGroupRank(v)
if iigagr == false then
table.insert(PLRS, v)
end
end
end
function IsPlrIgnored(HRPN)
for i,v in pairs(PLRS) do
if HRPN == v then
print(v)
return false
end
end
return true
end
checkIfInGroupAndGroupRankAll()
--------------------------------
while wait(fireRate) do
wait()
script.Parent.Mesh.TextureId = "http://www.roblox.com/asset/?id=2093097"
Decal.Transparency = 0
local target = nil
for i, v in pairs(game.Workspace:GetChildren()) do
local human = v:FindFirstChild("Humanoid")
HRP = v:FindFirstChild("HumanoidRootPart")
if human and HRP and human.Health > 0 then
if (HRP.Position - Barrel.Position).magnitude < aggroDist then
local ray = Ray.new(Barrel.Position, (HRP.Position - Barrel.Position).Unit * aggroDist)
local hit, Position = game.Workspace:FindPartOnRayWithIgnoreList(ray , IgnoreList)
if hit.Parent == human.Parent or hit.Parent.Parent == human.Parent then
target = HRP
else
-- print("Blocked "..hit.Name)
end
if hit.Transparency == 1 then
table.insert(IgnoreList, hit)
end
end
end
end
if target then
print(target.Parent.Name)
local IsPlrIgnored1 = IsPlrIgnored(target.Parent.Name)
print(IsPlrIgnored1)
if IsPlrIgnored1 == true then
local HRP = target
Decal.Transparency = 1
script.Parent.Mesh.TextureId = "http://www.roblox.com/asset/?id=4989331700"
Barrel.CFrame = CFrame.new(Barrel.Position, HRP.Position)
end
end
end
REMEMBER: No errors in output and, MAKE A GOOD ANSWER! Tell me why, How to prevent this kind of stuff happening, AND FIRST LOOKING AT THE QUESTION!!!

4 comments
i dont know
Try changing line 39 to "if HPRN == v.Name then." You can't compare a string to a userdata.
Ill try
INSTANT UPVOTE WHY IS THIS NOT A ANSWER