Yea I know the title was hard to explain but here's the truth. The way I use aiming in my script is really bad and I was hoping for some suggestions on how to have a aim part on the gun itself so I don't have to do as much work and it can be much more accurate.
The framework looks like this.
local PriCF = p.weaponpos
local PriADS = CFrame.new()
local SecCF = s.weaponpos
local SecADS = CFrame.new()
run.RenderStepped:connect(function()
guns.Primary:SetPrimaryPartCFrame(cam.CFrame*PriADS)
guns.Secondary:SetPrimaryPartCFrame(cam.CFrame*SecADS)
if aiming then
PriADS = PriADS:lerp(p.aimpos, p.zoomspeed)
SecADS = SecADS:lerp(s.aimpos, .3)
uis.MouseIconEnabled = false
if p.weapontype == "bolt-action" then
if cam:FindFirstChild(guns.Primary.Name) then
wait(.2)
guns.Primary[guns.Primary.Name].Scope.Transparency = 1
player.PlayerGui.HUD.Scope.Frame.Visible = true
cam.FieldOfView = p.zoom
PrimaryPose:Play(.2)
end
end
else
PriADS = PriADS:lerp(PriCF,.2)
SecADS = SecADS:lerp(SecCF, .3)
uis.MouseIconEnabled = true
if p.weapontype == "bolt-action" then
guns.Primary[guns.Primary.Name].Scope.Transparency = 0
player.PlayerGui.HUD.Scope.Frame.Visible = false
cam.FieldOfView = p.ads
PrimaryPose:Stop(.3)
end
end
end)
The weapon module looks like this Well only a part.
local s = {
weaponname = script.Parent;
weaponpos = CFrame.new(0,-1.5,1.2); -- Position of The Gun In The Cameraz
aimpos = CFrame.new(-1.15,-.9,2);
The problem is I have to change the aimpos so many times just to try to get it straight but even so it's still not accurate. So any suggestions on how I can make it good enough or if I can use a AimPart to make it much easier. Any help would be appreciated.
