local magn = 5
for i = 1, 30 do
for i, guy in pairs(players) do
if guy:FindFirstChild("Humanoid") and guy:FindFirstChild("Humanoid") ~= char:FindFirstChild("Humanoid") then
if not alreadyhit[guy.Parent] then
if (guy.HumanoidRootPart.Position - part.Position).Magnitude < magn and guy ~= char then
if guy then
if guy:GetAttribute("IFrames") == false or guy:GetAttribute("InMenu") == false or guy:GetAttribute("FarmZone") == false or guy:GetAttribute("OnPose") == false then
typeofdamages[wich2](player, guy, table.unpack(any))
alreadyhit[guy.Parent] = true
end
end
end
end
end
end
end
Does players store Character models or Player objects? Because the way your script is set up it seems like players stores characters, but then what exactly is guy.Parent supposed to be?
local alreadyhit = {}
local char = player.Character
local tors = char["Torso"]
local partoz = player.Character.HumanoidRootPart
local players = workspace:GetChildren()
local part = Instance.new("Part",workspace.Effects)
part.Size = sizee
part.Color = Color3.new(1, 0, 0)
part.Name = player.Name.. "Hitbox"
part.Transparency = 1
local weld = Instance.new("Motor6D")
weld.Parent = partt
weld.Part0 = partt
weld.Part1 = part
weld.Name = "joinhitbox"
weld.C0 = cframee
part.Anchored = false
part.CanCollide = false
part.CanTouch = false
part.Parent = workspace.Effects
part.Massless = true
if player:WaitForChild("Data").hitboxsaw.Value == true then
silly_Hitbox("Transparency", part, 0)
else
part.Transparency = 1
end
task.delay(0.5,function()
game.Debris:AddItem(part, .0)
game.Debris:AddItem(weld, .0)
end)
local magn = 5
local targets = {}
for i = 1, 30 do
for i, guy in pairs(players) do
if guy:FindFirstChild("Humanoid") and guy:FindFirstChild("Humanoid") ~= char:FindFirstChild("Humanoid") then
if not alreadyhit[guy.Parent] then
if (guy.HumanoidRootPart.Position - part.Position).Magnitude < magn and guy ~= char then
if guy then
if guy:GetAttribute("IFrames") == false or guy:GetAttribute("InMenu") == false or guy:GetAttribute("FarmZone") == false or guy:GetAttribute("OnPose") == false then
typeofdamages[wich2](player, guy, table.unpack(any))
alreadyhit[guy.Parent] = true
end
end
end
end
end
end
end
Because in the alreadyhit table you’d want to store every uniique person from my understanding, but if you’re just storing the workspace every time you can see how that’s not helpful.
I would recommend doing something like this so that your code is easier to understand, let me know if you have any questions.
local Players = game:GetService("Players")
local player = Players.LocalPlayer -- Replace this with something else if it's server script
local Character = player.Character
for i, guy in pairs(Players) do
local guyCharacter = guy.Character
if guyCharacter:FindFirstChild("Humanoid") and guyCharacter ~= Character then
--Rest of code
end
end
for i = 1, 30 do
for i, guy in pairs(players) do
if guy:FindFirstChild("Humanoid") and guy:FindFirstChild("Humanoid") ~= char:FindFirstChild("Humanoid") then
if not alreadyhit[guy] then
if (guy.HumanoidRootPart.Position - part.Position).Magnitude < magn and guy ~= char then
if guy then
if guy:GetAttribute("IFrames") == false or guy:GetAttribute("InMenu") == false or guy:GetAttribute("FarmZone") == false or guy:GetAttribute("OnPose") == false then
typeofdamages[wich2](player, guy, table.unpack(any))
alreadyhit[guy] = true
end
end
end
end
end
end
end
literaly changing guy.Parent to guy.
still thanks
(i still dont know how did that work)