Hello everyone! im about to go crazy after trying to making a script local, its a distance changing script and it focuses on only 1 player regardless of the other, the others see what he sees and i dont want that. is there a way to make it local without filtering? Thanks!
Distance = 300
RenderTime = 1
Map = workspace.Map
-------------------------------------------------------------------------
function Descendants(m, children)
children = children or {}
for i, v in pairs(m:GetChildren()) do
if v.ClassName == "Part" or v.ClassName == "WedgePart" or v.ClassName == "MeshPart" or v.ClassName == "UnionOperation" then
if v:FindFirstChild("RealParent") == nil and v.Anchored == true then
local Obj = Instance.new("ObjectValue", v)
Obj.Name = "RealParent"
Obj.Value = v.Parent
table.insert(children, v)
end
end
Descendants(v, children)
end
return children
end
function Check(player, v)
if v.Size.X < 10 or v.Size.Y < 10 or v.Size.Z < 10 then
if (player.Character.Torso.Position - CFrame.new(-v.Size.X / 2, -v.Size.Y / 2, -v.Size.Z / 2).p).magnitude < Distance or
(player.Character.Torso.Position - (v.CFrame * CFrame.new(-v.Size.X / 2, -v.Size.Y / 2, v.Size.Z / 2).p)).magnitude < Distance or
(player.Character.Torso.Position - (v.CFrame * CFrame.new(-v.Size.X / 2, v.Size.Y / 2, v.Size.Z / 2).p)).magnitude < Distance or
(player.Character.Torso.Position - (v.CFrame * CFrame.new(v.Size.X / 2, v.Size.Y / 2, v.Size.Z / 2).p)).magnitude < Distance or
(player.Character.Torso.Position - (v.CFrame * CFrame.new(v.Size.X / 2, -v.Size.Y / 2, -v.Size.Z / 2).p)).magnitude < Distance or
(player.Character.Torso.Position - (v.CFrame * CFrame.new(v.Size.X / 2, v.Size.Y / 2, -v.Size.Z / 2).p)).magnitude < Distance or
(player.Character.Torso.Position - (v.CFrame * CFrame.new(v.Size.X / 2, -v.Size.Y / 2, v.Size.Z / 2).p)).magnitude < Distance or
(player.Character.Torso.Position - (v.CFrame * CFrame.new(-v.Size.X / 2, v.Size.Y / 2, -v.Size.Z / 2).p)).magnitude < Distance or
(player.Character.Torso.Position - v.Position).magnitude < Distance then
return true
end
elseif v.Size.X < 25 or v.Size.Y < 25 or v.Size.Z < 25 then
(MORE OF V SIZE HERE BUT CUTTING THE SCRIPT HERE TO MAKE THE QUESTION FIT)
(player.Character.Torso.Position - v.Position).magnitude < Distance then
return true
end
end
end
repeat Parts = Descendants(Map) wait() until #Parts > 0
Map1 = Instance.new("Model", game.ReplicatedStorage)
Map1.Name = "Map"
while wait(RenderTime) do
for i, v in pairs(Parts) do
for _, player in pairs(game.Players:GetChildren()) do
if Check(player, v) == true then
CFrame = v.CFrame
v.Parent = v.RealParent.Value
v.CFrame = CFrame
CFrame = nil
else
CFrame = v.CFrame
v.Parent = Map1
v.CFrame = CFrame
CFrame = nil
end
end
end
end

1 comment
use filtering. problem solved