*So I'm working on this game, right? And I need to make a turret rotate with this particular style of code, in otherwords I'm trying to stay within our game's standard.
Here is the problem though:*
-- X for i = 1,2 do local turret = sp:FindFirstChild("Turret"..i) local hinge = turret.TurretConstraint local x, y, z = CFrame.new(hinge.Attachment0.WorldPosition * Vector3.new(1, 0, 1), mouse.Hit.p * Vector3.new(1, 0, 1)):toEulerAnglesXYZ() local ang = math.abs(math.floor(math.deg(x))) >= 180 and 180 - math.deg(y) or math.deg(y) hinge.TargetAngle = (ang > 180 and -360 + ang or ang) - sp.Torso.Orientation.Y end end wait() end
*This works perfectly fine for the X-Z Rotation of the turret; I saw somewhere that this is called a 1D turret as it doesn't move up and down.
However, when I go to flip the axis to get up and down/tilt for the turret's BARREL, it works only to some extent.*
-- Y for i = 1,2 do local barrel = sp:FindFirstChild("Barrel"..i) local hinge = barrel.BarrelConstraint local x, y, z = CFrame.new(hinge.Attachment0.WorldPosition * Vector3.new(0, 1, 1), mouse.Hit.p * Vector3.new(0, 1, 1)):toEulerAnglesXYZ() local ang = math.abs(math.floor(math.deg(y))) >= 180 and 180 - math.deg(y) or math.deg(x) hinge.TargetAngle = (ang > 180 and -360 + ang or ang) - sp.Torso.Orientation.X
Heres a link showing what the problem looks like: https://i.gyazo.com/1231ce2d2319c0407d53e0e63b7037dd.gif
When I look down a specific axis ( in this case the ZED axis ) my turret flips.
I personally wish I could see the problem but I can't, because I know this has to do with circles in programming and because I can't see the end result until I press play it slows me down and I'm left confused.