-- Created by 1x1x1x1x1x1x1x0x0x2 local animations = { requip = { CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, math.rad(-10)) * CFrame.new(1.5, -.5, 0); CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(180), 0, math.rad(-15)) * CFrame.new(1.5, -.5, 0); CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(210), 0, math.rad(-40)) * CFrame.new(1.5, -.5, 0); CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(180), 0, math.rad(-10)) * CFrame.new(1.5, -.5, 0); CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, 0) * CFrame.new(1.5, -.5, 0); }; lequip = { CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, math.rad(60)) * CFrame.new(-1, -.75, 0); }; runequip = { CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, math.rad(-10)) * CFrame.new(1.5, -.5, 0); CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(180), 0, math.rad(-15)) * CFrame.new(1.5, -.5, 0); CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(210), 0, math.rad(-40)) * CFrame.new(1.5, -.5, 0); CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(180), 0, math.rad(-10)) * CFrame.new(1.5, -.5, 0); CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, 0) * CFrame.new(1.5, -.5, 0); CFrame.new(1.5, 0, 0); }; rshoot = { CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(170), 0, 0) * CFrame.new(1.5, -.5, 0); CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, 0) * CFrame.new(1.5, -.5, 0); }; lshoot = { CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(170), 0, math.rad(60)) * CFrame.new(-1, -.75, 0); CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, math.rad(60)) * CFrame.new(-1, -.75, 0); CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, math.rad(80)) * CFrame.new(-.5, -.35, 0); CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, math.rad(60)) * CFrame.new(-1, -.75, 0); }; } local player = game:GetService("Players").LocalPlayer local pmouse = player:GetMouse() local char = player.Character local bin = Instance.new("HopperBin", player.Backpack) local barrelsize = .3 local handleweld = nil local temp = true local etemp = true bin.Name = "L96A1 Magnum" function weld(part0, part1, c0, c1, parent) local w = Instance.new("Weld", parent) w.Part0 = part0 w.Part1 = part1 w.C0 = c0 w.C1 = c1 w.Name = "NewWeld" return w end function interpolateCFrame(cf1, cf2) local t1 = {cf1:components()} local t2 = {cf2:components()} local newcf = {} for i, v in pairs(t1) do local dif = t2[i] - v if i < 4 then local newValue = nil if math.abs(dif) < .1 then newValue = t2[i] else newValue = v + ((dif/math.abs(dif)) * .1) end newcf[i] = newValue else local newValue = nil if math.abs(dif) < .1 then newValue = t2[i] else newValue = v + ((dif/math.abs(dif)) * .1) end newcf[i] = newValue end end return CFrame.new(unpack(newcf)) end function prop(name, sx, sy, sz, px, py, pz, anc, canc, col, par, mesh, meshtype, scalex, scaley, scalez, meshid, textureid) local part = Instance.new("Part", par) part.Name = name part.TopSurface = 0 part.BottomSurface = 0 part.formFactor = 3 part.Size = Vector3.new(sx, sy, sz) part.Position = Vector3.new(px, py, pz) part.Anchored = anc part.CanCollide = canc part.BrickColor = BrickColor.new(col) if mesh then local m = Instance.new("SpecialMesh", part) m.MeshType = meshtype m.MeshId = meshid m.Scale = Vector3.new(scalex, scaley, scalez) m.TextureId = textureid end return part end function fade(part, speed) for i = part.Transparency, 1, speed do part.Transparency = i wait() end part:Destroy() end function clearWelds(par) for i, v in pairs(par:GetChildren()) do if v.Name == "NewWeld" and v:IsA("Weld") then v:Destroy() end end end function sound(pitch, id, par) local s = Instance.new("Sound", par) s.Pitch = pitch s.SoundId = id return s end function traceRay(pos, pos2, col, trans) local distance = (pos - pos2).magnitude local trace = Instance.new("Part", char) trace.Anchored = true trace.CanCollide = false trace.TopSurface = 0 trace.BottomSurface = 0 trace.formFactor = 3 trace.Size = Vector3.new(.2, .2, distance) trace.BrickColor = BrickColor.new(col) trace.Transparency = trans trace.CFrame = CFrame.new(pos2, pos) * CFrame.new(0, 0, -distance/2) return trace end clearWelds(char.Torso) local back1 = prop("Part1", .1, .7, .5, 0, 0, 0, false, false, "Black", char, false) local back1weld = weld(char.Torso, back1, CFrame.new(1, -2, .6) * CFrame.Angles(math.rad(90), math.rad(20), math.rad(90)), CFrame.new(), char.Torso) local back2 = prop("Part2", .1, .2, .1, 0, 0, 0, false, false, "Grime", char, false) local back2weld = weld(back1, back2, CFrame.new(0, -.25, -.35), CFrame.new(), char.Torso) local back3 = prop("Part3", .1, .5, 1, 0, 0, 0, false, false, "Grime", char, false) local back3weld = weld(back1, back3, CFrame.new(0, .1, -.75), CFrame.new(), char.Torso) local back4 = prop("Part4", .1, .1, 1, 0, 0, 0, false, false, "Grime", char, false) local back4weld = weld(back3, back4, CFrame.new(0, .3, 0), CFrame.new(), char.Torso) local back5 = prop("Part5", .1, .1, .7, 0, 0, 0, false, false, "Grime", char, false) local back5weld = weld(back1, back5, CFrame.new(0, .4, -1.6), CFrame.new(), char.Torso) local trigger1 = prop("Part6", .1, .1, .6, 0, 0, 0, false, false, "Grime", char, false) local trigger1weld = weld(back4, trigger1, CFrame.new(0, -.6, -.4) * CFrame.Angles(-math.rad(30), 0, 0), CFrame.new(), char.Torso) local trigger2 = prop("Part7", .1, .1, .5, 0, 0, 0, false, false, "Grime", char, false) local trigger2weld = weld(back4, trigger2, CFrame.new(0, -.675, -.8) * CFrame.Angles(math.rad(15), 0, 0), CFrame.new(), char.Torso) local trigger3 = prop("Part8", .1, .1, .7, 0, 0, 0, false, false, "Grime", char, false) local trigger3weld = weld(back4, trigger3, CFrame.new(0, -.4, -.95) * CFrame.Angles(math.rad(90), 0, 0), CFrame.new(), char.Torso) local middle1 = prop("Part9", .1, .1, 1, 0, 0, 0, false, false, "Black", char, true, "Brick", .1, .0, .1, "", "") -- dis local middle1weld = weld(back5, middle1, CFrame.new(0, .05, -.8), CFrame.new(), char.Torso) local trigframe = prop("Part10", .1, .3, .3, 0, 0, 0, false, false, "Grime", char, true, "FileMesh", .3, .3, .3, "http://www.roblox.com/asset/?id=3270017", "") local trigframeweld = weld(back5, trigframe, CFrame.new(0, -.2, -.3) * CFrame.Angles(0, math.rad(90), 0), CFrame.new(), char.Torso) local middle2 = prop("Part11", .1, .3, 2, 0, 0, 0, false, false, "Grime", char, false) local middle2weld = weld(middle1, middle2, CFrame.new(0, -.1, -.4), CFrame.new(), char.Torso) local barrel = prop("Part12", .1, .1, 4, 0, 0, 0, false, false, "Black", char, true, "Brick", .5, .5, 1, "", "") local barrelweld = weld(middle1, barrel, CFrame.new(0, -.05, -2), CFrame.new(), char.Torso) local barrel2 = prop("Part13", barrelsize, 2, barrelsize, 0, 0, 0, false, false, "Black", char, false) Instance.new("CylinderMesh", barrel2) local barrel2weld = weld(barrel, barrel2, CFrame.new(0, 0, -2.5) * CFrame.Angles(math.rad(90), 0, 0), CFrame.new(), char.Torso) local scope1 = prop("Part14", .1, .2, .1, 0, 0, 0, false, false, "Black", char, true, "Brick", .5, .5, .5, "", "") local scope1weld = weld(middle1, scope1, CFrame.new(0, .1, .25), CFrame.new(), char.Torso) local scope2 = prop("Part14", .1, .2, .1, 0, 0, 0, false, false, "Black", char, true, "Brick", .5, .5, .5, "", "") local scope2weld = weld(middle1, scope2, CFrame.new(0, .1, -.25), CFrame.new(), char.Torso) local scope3 = prop("Part15", .1, 1.5, .1, 0, 0, 0, false, false, "Black", char, false) Instance.new("CylinderMesh", scope3) local scope3weld = weld(middle1, scope3, CFrame.new(0, .2, 0) * CFrame.Angles(math.rad(90), 0, 0), CFrame.new(), char.Torso) local scope4 = prop("Part16", .2, .3, .2, 0, 0, 0, false, false, "Black", char, true, "FileMesh", .2, .3, .2, "http://www.roblox.com/asset/?id=1033714", "") local scope4weld = weld(middle1, scope4, CFrame.new(0, .2, .7) * CFrame.Angles(math.rad(270), 0, 0), CFrame.new(), char.Torso) local scope5 = prop("Part17", .3, .35, .3, 0, 0, 0, false, false, "Black", char, true, "FileMesh", .3, .35, .3, "http://www.roblox.com/asset/?id=1033714", "") local scope5weld = weld(middle1, scope5, CFrame.new(0, .2, -.7) * CFrame.Angles(math.rad(-270), 0, 0), CFrame.new(), char.Torso) local rarmweld = weld(char.Torso, nil, CFrame.new(1.5, 0, 0), CFrame.new(), char.Torso) local larmweld = weld(char.Torso, nil, CFrame.new(-1.5, 0, 0), CFrame.new(), char.Torso) local gyro = Instance.new("BodyGyro", char.Torso) gyro.P = 10000 gyro.maxTorque = Vector3.new(math.huge, math.huge, math.huge) pmouse.Move:connect(function() gyro.cframe = CFrame.new(char.Torso.Position, Vector3.new(pmouse.Hit.p.X, char.Torso.Position.Y, pmouse.Hit.p.Z)) end) function onEquip(mouse) repeat wait() until etemp and temp etemp = false rarmweld.Part1 = char["Right Arm"] local frame = 1 coroutine.wrap(function() while rarmweld and animations.requip[frame] do rarmweld.C0 = interpolateCFrame(rarmweld.C0, animations.requip[frame]) if rarmweld.C0 == animations.requip[frame] then frame = frame + 1 else wait() end end end)() repeat wait() until frame == 3 back1weld.Part0 = nil handleweld = weld(char["Right Arm"], back1, CFrame.new(-.5, 1, -.3) * CFrame.Angles(math.rad(270), 0, 0), CFrame.new(), char.Torso) repeat wait() until frame == 5 larmweld.Part1 = char["Left Arm"] local frame2 = 1 coroutine.wrap(function() while larmweld and animations.lequip[frame2] do larmweld.C0 = interpolateCFrame(larmweld.C0, animations.lequip[frame2]) if larmweld.C0 == animations.lequip[frame2] then frame2 = frame2 + 1 else wait() end end etemp = true end)() repeat wait() until frame == 6 mouse.Button1Down:connect(function() if not temp then return end temp = false local frame3 = 1 coroutine.wrap(function() while rarmweld and animations.rshoot[frame3] do rarmweld.C0 = interpolateCFrame(rarmweld.C0, animations.rshoot[frame3]) if rarmweld.C0 == animations.rshoot[frame3] then frame3 = frame3 + 1 else wait() end end end)() local frame4 = 1 coroutine.wrap(function() while larmweld and animations.lshoot[frame4] do larmweld.C0 = interpolateCFrame(larmweld.C0, animations.lshoot[frame4]) if larmweld.C0 == animations.lshoot[frame4] then frame4 = frame4 + 1 else wait() end end wait(.1) temp = true end)() local ray = Ray.new(barrel2.Position, (mouse.Hit.p - barrel2.Position).unit * 500) sound(2, "http://www.roblox.com/Asset/?id=16211041", barrel2):play() local hit, pos = workspace:FindPartOnRay(ray, char) if hit and hit.Parent:FindFirstChild("Humanoid") then local dmg = math.random(0, 674689749) if hit.Name ~= "Head" then hit.Parent.Humanoid:TakeDamage(dmg) hit.Parent.Humanoid.Sit = true else hit.Parent:BreakJoints() sound(1, "http://www.roblox.com/asset/?id=1876552", workspace):play() end if game:GetService("Players"):GetPlayerFromCharacter(hit.Parent) == nil then return end local bl = Instance.new("Part", workspace) bl.Name = "Blood" bl.BrickColor = BrickColor.new("Really red") bl.FormFactor = 3 bl.TopSurface = 0 bl.BottomSurface = 0 bl.Size = Vector3.new(1, .1, 1) bl.Position = hit.Parent.Head.Position + Vector3.new(0, 3, 0) local bbg = Instance.new("BillboardGui", bl) bbg.Adornee = bl bbg.Size = UDim2.new(1, 0, 1, 0) bbg.StudsOffset = Vector3.new(0, 1, 0) local txt = Instance.new("TextLabel", bbg) txt.Position = UDim2.new(0.5, 0, 0.5, 0) txt.FontSize = "Size14" txt.TextColor3 = Color3.new(1, 1, 1) txt.Text = hit.Name ~= "Head" and dmg or "HEADSHOT" coroutine.wrap(fade)(bl, 0.005) end if hit and hit.Parent:IsA("Hat") then hit:BreakJoints() end Spawn(function() local tr = traceRay(barrel2.Position, pos, "White", .5) fade(tr, .01) end) repeat wait() until frame4 == 3 sound(1, "http://roblox.com/asset/?id=10209881", middle2):play() end) end function onUnequip() repeat wait() until etemp and temp etemp = false local frame = 1 coroutine.wrap(function() while rarmweld and animations.runequip[frame] do rarmweld.C0 = interpolateCFrame(rarmweld.C0, animations.runequip[frame]) if rarmweld.C0 == animations.runequip[frame] then frame = frame + 1 else wait() end end etemp = true end)() coroutine.wrap(function() while larmweld do larmweld.C0 = interpolateCFrame(larmweld.C0, CFrame.new(-1.5, 0, 0)) if larmweld.C0 == CFrame.new(-1.5, 0, 0) then break else wait() end end end)() repeat wait() until frame == 4 handleweld:Remove() back1weld:Remove() back1weld = weld(char.Torso, back1, CFrame.new(1, -2, .6) * CFrame.Angles(math.rad(90), math.rad(20), math.rad(90)), CFrame.new(), char.Torso) repeat wait() until frame == 7 rarmweld.Part1 = nil larmweld.Part1 = nil end bin.Selected:connect(onEquip) bin.Deselected:connect(onUnequip)