I need to do a wind limit, to where location maximum he can drag (not suck, dragging, suck comming soon), and only the positive X maximum is working, it's not dragging to his center the negative X position and Z position.
The maximum wind to drag is the maxd, accordding the fujita escale.
local force = script.Parent.Parent.Configuration:FindFirstChild("Fujita escale")
if force.Value == 0 then
local wind = 4
else
local wind = force.Value * 100
end
script.Parent.Mesh.Scale = Vector3.new((wind * 10) + 700,script.Parent.Mesh.Scale.Y, "-"..(wind * 10) + 700)
local maxd = wind / 2
local maxs = wind / 3
contagemdesons = wind / 10
local atual = 1
repeat
local clone = script.Tornadowinds:clone()
clone.Parent = script.Parent
local atual = atual + 1
wait()
until contagemdesons - 1 < atual
script.Tornadowinds:remove()
script.Parent.Sounds.Disabled = false
script.Parent.Spin.Disabled = false
local childlist = {}
local force = script.Parent.Parent.Configuration:FindFirstChild("Fujita escale")
if force.Value == 0 then
local wind = 25
else
local wind = force.Value * 100
end
local maxd = wind / 2
local maxs = wind /3
function addlist(child)
if child.ClassName == "CornerWedgePart" or child.ClassName == "Flag" or child.ClassName == "FlagStand" or child.ClassName == "Part" or child.ClassName == "Seat" or child.ClassName == "SkateboardPlatform" or child.ClassName == "SpawnLocation" or child.ClassName == "TrussPart" or child.ClassName == "VehicleSeat" or child.ClassName == "WedgePart" then
childlist[#childlist + 1] = child
end
end
function getAllChildren(place,table_)
for i,v in pairs(place:GetChildren()) do
table_[#table_ + 1] = v
getAllChildren(v, table_)
end
end
local children = {}
getAllChildren(game.Workspace, children)
for i = 1, #children do
addlist(children[i])
end
game.Workspace.ChildAdded:connect(addlist)
while true do
for i = 1,#childlist do
if (((childlist[i].Position.X < (script.Parent.Position.X + maxd) + 1) and (childlist[i].Position.X > (script.Parent.Position.X - maxd) - 1)) and ((childlist[i].Position.Z < (script.Parent.Position.Z + maxd) + 1) and (childlist[i].Position.Z > ((script.Parent.Position.Z - maxd)) - 1))) and (script.Parent.Position.Y - (script.Parent.Size.Y / 2) < childlist[i].Position.Y and script.Parent.Position.Y + (script.Parent.Size.Y / 2) > childlist[i].Position.Y) then --Here is the limit detector, Z and X negative is not working
if childlist[i]:FindFirstChild("dragged") == nil then
local peso = Instance.new("NumberValue")
peso.Parent = childlist[i]
peso.Name = "peso"
local peso = peso.Value
if childlist[i].Material == Enum.Material.Brick then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 43
end
if childlist[i].Material == Enum.Material.Concrete then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 50
end
if childlist[i].Material == Enum.Material.CorrodedMetal then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 18
end
if childlist[i].Material == Enum.Material.DiamondPlate then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 15
end
if childlist[i].Material == Enum.Material.Fabric then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 18
end
if childlist[i].Material == Enum.Material.Foil then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 24
end
if childlist[i].Material == Enum.Material.Granite then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 3
end
if childlist[i].Material == Enum.Material.Grass then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 7
end
if childlist[i].Material == Enum.Material.Ice then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 24
end
if childlist[i].Material == Enum.Material.Marble then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 9
end
if childlist[i].Material == Enum.Material.Pebble then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 5
end
if childlist[i].Material == Enum.Material.Plastic then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 2
end
if childlist[i].Material == Enum.Material.Sand then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 5
end
if childlist[i].Material == Enum.Material.Slate then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 24
end
if childlist[i].Material == Enum.Material.SmoothPlastic then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z)
end
if childlist[i].Material == Enum.Material.Wood then
peso = (childlist[i].Size.X + childlist[i].Size.Y + childlist[i].Size.Z) * 3
end
if wind - (((((script.Parent.Position.X + script.Parent.Position.Z) / 2)) - maxd)) > peso or human ~= nil then
local human = childlist[i].Parent:FindFirstChild("Head")
local dragger = Instance.new("BodyPosition")
dragger.Name = "dragged"
dragger.position = Vector3.new(script.Parent.Position)
dragger.maxForce = Vector3.new(wind * 100, 0, wind * 100)
dragger.Parent = childlist[i]
--if peso < wind - ((childlist[i].Position.X - childlist[i].Position.Z) - (script.Parent.Position.X + script.Parent.Position.Z)) then -- i put in it for disable for some time
local seat = childlist[i].Parent:GetChildren()
local tem = childlist[i].Parent:FindFirstChild("VehicleSeat")
if human == nil and tem == nil then
childlist[i]:BreakJoints()
end
--end
end
end
end
end
wait() -- i can only put wait() here, putting one end up will do the tornado suck 1 per time, and will be bad... :P
end

1 comment
Don't need anymore, i discovered the error, the maxd was not big on sufficient