Advertisement
Guest User

FE GUN

a guest
Oct 6th, 2022
1,250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.50 KB | None | 0 0
  1. _G.e = _G.e and _G.e + 1 or 0
  2. wait()
  3. local frame = 0
  4. local good = _G.e
  5. local plr = game.Players.LocalPlayer
  6. local char = plr.Character
  7. local hum = char.Humanoid
  8. local torso = char.Torso
  9. local head = char.Head
  10. local hrp = char.HumanoidRootPart
  11. local rs,ls,rh,lh,n,r = torso["Right Shoulder"],torso["Left Shoulder"],torso["Right Hip"],torso["Left Hip"],torso.Neck,hrp.RootJoint
  12. local rso,lso,rho,lho,no,ro = rs.C0,ls.C0,rh.C0,lh.C0,n.C0,r.C0
  13. local rad = math.rad
  14. local deg = math.deg
  15. local min = math.min
  16. local max = math.max
  17. local sin = math.sin
  18. local cos = math.cos
  19. local mouse = plr:GetMouse()
  20. local zoom = 10
  21. local reanimating = _G.Get
  22. local uis = game:GetService("UserInputService")
  23. local gun = Instance.new("Part")
  24. gun.Size = Vector3.new(3.362, 1.273, 0.296)
  25. gun.CanCollide = false
  26. gun.Massless = true
  27. local mesh = Instance.new("SpecialMesh")
  28. mesh.MeshType = Enum.MeshType.FileMesh
  29. mesh.MeshId = "rbxassetid://7667204705"
  30. mesh.TextureId = "http://www.roblox.com/asset/?id=7667119641"
  31. mesh.Parent = gun
  32. gun.Parent = char
  33. local gg = Instance.new("Motor6D")
  34. gg.C1 = CFrame.new(0,0,0)*CFrame.Angles(rad(0),rad(0),rad(0))
  35. gg.Part0 = char.HumanoidRootPart
  36. gg.Part1 = gun
  37. gg.Parent = char.HumanoidRootPart
  38. local bullet = Instance.new("Part")
  39. bullet.Size = Vector3.new(1,1,1)
  40. bullet.CanCollide = false
  41. bullet.Massless = true
  42. bullet.Anchored = true
  43. bullet.Parent = workspace
  44. local mousepart = Instance.new("Part")
  45. mousepart.Size = Vector3.new(1,1,1)
  46. mousepart.CanCollide = false
  47. mousepart.Massless = true
  48. mousepart.Anchored = true
  49. mousepart.Transparency = 1
  50. mousepart.Parent = workspace
  51. local mouseray = RaycastParams.new()
  52. mouseray.FilterType = Enum.RaycastFilterType.Blacklist
  53. mouseray.FilterDescendantsInstances = {bullet,gun,mousepart}
  54. mouseray.IgnoreWater = true
  55. local rstepped = game:GetService("RunService").RenderStepped
  56. if char:FindFirstChild("Animate") then
  57.     char.Animate:Destroy()
  58.     for _,v in pairs(char.Humanoid:GetPlayingAnimationTracks()) do
  59.         v:Stop()
  60.     end
  61. end
  62. local lerpdb = {}
  63. function lerp(joint,target,speed,usespawn)
  64.     local e
  65.     local function doit(joint,target,speed)
  66.         if not lerpdb[joint] then
  67.             lerpdb[joint] = true
  68.             local old = joint.C0
  69.             local tar = max(speed*60,1)
  70.             for i = 0,tar do
  71.                 if _G.e == good then
  72.                     joint.C0 = old:lerp(target,i/tar)
  73.                     rstepped:Wait()
  74.                 else
  75.                     break
  76.                 end
  77.             end
  78.             lerpdb[joint] = nil
  79.         end
  80.     end
  81.     if usespawn then
  82.         local HAX = Instance.new("BindableEvent")
  83.         e = HAX.Event:Connect(function()
  84.             doit(joint,target,speed)
  85.             HAX:Destroy()
  86.         end)
  87.         HAX:Fire()
  88.     else
  89.         doit(joint,target,speed)
  90.     end
  91. end
  92. local pose = "idle"
  93. local mainloop
  94. function endscript()
  95.     mainloop:Disconnect()
  96.     gg:Destroy()
  97.     gun:Destroy()
  98.     bullet:Destroy()
  99.     rs.C0 = rso
  100.     ls.C0 = lso
  101.     rh.C0 = rho
  102.     lh.C0 = lho
  103.     n.C0 = no
  104.     r.C0 = ro
  105. end
  106. local aiming = false
  107. local shooting = false
  108. uis.InputBegan:Connect(function(k,a)
  109.     if k.KeyCode == Enum.KeyCode.E then
  110.         aiming = not aiming
  111.         if not aiming then
  112.             shooting = false
  113.         end
  114.     elseif k.UserInputType == Enum.UserInputType.MouseButton1 and aiming then
  115.         shooting = true
  116.     end
  117. end)
  118. uis.InputEnded:Connect(function(k,a)
  119.     if k.UserInputType == Enum.UserInputType.MouseButton1 and aiming then
  120.         shooting = false
  121.     end
  122. end)
  123. local angle
  124. local look
  125. local lookz,lookx,looky
  126. local realhrp = reanimating and _G:GetCharPart("HumanoidRootPart")
  127. if reanimating then
  128.     table.insert(mouseray.FilterDescendantsInstances,char.Parent)
  129. else
  130.     table.insert(mouseray.FilterDescendantsInstances,char)
  131. end
  132. gun.Transparency = reanimating and 1 or 0
  133. bullet.Transparency = reanimating and 1 or 0
  134. local gunatt = reanimating and _G:Get("Meshes/CRL4Accessory")
  135. local bulletatt = reanimating and _G:Get("TwitterBird")
  136. local hrpatt = reanimating and _G:Get("HumanoidRootPart")
  137. mainloop = rstepped:Connect(function()
  138.     if _G.e ~= good or not char or not char.Parent then
  139.         endscript()
  140.         return
  141.     end
  142.     --local ray = mouse.UnitRay
  143.     --ray.Direction *= 1000
  144.     local oldhrp
  145.     if reanimating then
  146.         oldhrp = realhrp.Position
  147.         realhrp.Position = Vector3.new(0,0,0)
  148.     end
  149.     local rayhit = workspace:Raycast(mouse.UnitRay.Origin,mouse.UnitRay.Direction*99999,mouseray)
  150.     rayhit = (rayhit and rayhit.Position) or mouse.hit.p
  151.     if reanimating then
  152.         realhrp.Position = oldhrp
  153.     end
  154.     frame += 1
  155.     zoom = (workspace.CurrentCamera.CFrame.p-head.Position).magnitude
  156.     local move = hum.MoveDirection ~= Vector3.new(0,0,0)
  157.     if pose ~= "aiming" then
  158.         if move then
  159.             pose = "walking"
  160.         else
  161.             pose = "idle"
  162.         end
  163.     end
  164.     local basespeed = .2
  165.     local breath = sin(rad(frame*7))/60
  166.     local recoil = sin(rad(frame*55))/5+.06
  167.     local recoilverticalmult = math.random(10,100)/100
  168.     local recoilhorizontalmult = math.random(10,40)/100
  169.     local hrpp = gun.Position
  170.     local hitp = rayhit
  171.     pcall(function()
  172.         angle = deg(math.atan2(hrpp.X-hitp.X,hrpp.Z-hitp.Z))
  173.         look = CFrame.new(hrpp,hitp)
  174.         lookz,lookx,looky = look:ToOrientation()
  175.     end)
  176.     local bulletspeed = 6
  177.     mousepart.Position = Vector3.new(hitp.X,workspace.FallenPartsDestroyHeight+10,hitp.Z)
  178.     if aiming and angle then
  179.         if shooting then
  180.            
  181.             lerp(gg,rso*CFrame.Angles(0,rad(180),-lookz)*CFrame.new(-2.3+recoil,.25+(recoil*recoilverticalmult),1+(recoil*recoilhorizontalmult)),0,true)
  182.            
  183.             lerp(rs,rso*CFrame.new(.1-recoil,recoil*recoilverticalmult,-.5+(recoil*recoilhorizontalmult))*CFrame.Angles(rad(0),rad(25),rad(90+deg(lookz))),0,true)
  184.             lerp(ls,lso*CFrame.new(-.7+recoil,recoil*recoilverticalmult,-.6+(recoil*recoilhorizontalmult))*CFrame.Angles(rad(5),rad(-17),rad(-90-deg(lookz))),0,true)
  185.            
  186.             if frame % (bulletspeed*2) >= bulletspeed then
  187.                 bullet.CFrame = gun.CFrame
  188.             else
  189.                 if frame % (bulletspeed*2) == 1 then
  190.                     bullet.CFrame = CFrame.new(hitp)
  191.                 else
  192.                     bullet.CFrame = bullet.CFrame
  193.                 end
  194.             end
  195.            
  196.             if reanimating then
  197.                 --hrpatt.Position = hitp
  198.             end
  199.         else
  200.             lerp(gg,rso*CFrame.Angles(0,rad(180),-lookz)*CFrame.new(-2.3,.25,1),0,true)
  201.            
  202.             lerp(rs,rso*CFrame.new(.1,0,-.5)*CFrame.Angles(rad(0),rad(25),rad(90+deg(lookz))),0,true)
  203.             lerp(ls,lso*CFrame.new(-.7,0,-.6)*CFrame.Angles(rad(5),rad(-17),rad(-90-deg(lookz))),0,true)
  204.            
  205.             if reanimating then
  206.                 --hrpatt.Position = hrp.Position + Vector3.new(0,10,0)
  207.             end
  208.            
  209.             bullet.CFrame = hrp.CFrame
  210.         end
  211.        
  212.         lerp(n,no*CFrame.new(0,0,0)*CFrame.Angles(-lookz/2,0,0),0,true)
  213.        
  214.         hrp.CFrame *= hrp.CFrame.Rotation:inverse()*CFrame.Angles(rad(0),rad(angle),rad(0))
  215.        
  216.         if shooting then
  217.             mousepart.Position = hitp
  218.         end
  219.     else
  220.         bullet.CFrame = hrp.CFrame
  221.         lerp(gg,rso*CFrame.new(0,breath-1,0)*CFrame.Angles(rad(0),rad(0),rad(0)),basespeed,true)
  222.         if pose == "walking" then
  223.             lerp(rs,rso*CFrame.new(0,0,0)*CFrame.Angles(rad(0),rad(0),rad(sin(rad((frame)*12))*30)),0,true)
  224.             lerp(ls,lso*CFrame.new(0,0,0)*CFrame.Angles(rad(0),rad(0),rad(sin(rad((frame)*12))*30)),0,true)
  225.         else
  226.             lerp(rs,rso*CFrame.new(0,breath,0)*CFrame.Angles(rad(0),rad(0),rad(0)),basespeed,true)
  227.             lerp(ls,lso*CFrame.new(0,breath,0)*CFrame.Angles(rad(0),rad(0),rad(0)),basespeed,true)
  228.         end
  229.        
  230.         lerp(n,no*CFrame.new(0,0,0)*CFrame.Angles(rad(0),rad(0),rad(0)),basespeed,true)
  231.     end
  232.     if pose == "idle" then
  233.         lerp(rh,rho*CFrame.new(0,breath,0)*CFrame.Angles(rad(0),rad(0),rad(0)),basespeed,true)
  234.         lerp(lh,lho*CFrame.new(0,breath,0)*CFrame.Angles(rad(0),rad(0),rad(0)),basespeed,true)
  235.        
  236.         lerp(r,ro*CFrame.new(0,0,breath)*CFrame.Angles(rad(0),rad(0),rad(0)),basespeed,true)
  237.        
  238.         lerp(n,no*CFrame.new(0,0,0)*CFrame.Angles(rad(0),rad(0),rad(0)),basespeed,true)
  239.     elseif pose == "walking" then
  240.         lerp(rh,rho*CFrame.new(0,0,0)*CFrame.Angles(rad(0),rad(0),rad(sin(rad(frame*12+180))*30)),0,true)
  241.         lerp(lh,lho*CFrame.new(0,0,0)*CFrame.Angles(rad(0),rad(0),rad(sin(rad(frame*12+180))*30)),0,true)
  242.        
  243.         lerp(r,ro*CFrame.new(0,0,breath)*CFrame.Angles(rad(0),rad(0),rad(0)),basespeed,true)
  244.        
  245.         lerp(n,no*CFrame.new(0,0,0)*CFrame.Angles(rad(0),rad(0),rad(0)),basespeed,true)
  246.     end
  247. end)
  248. hum.WalkSpeed = 20
  249. if reanimating then
  250.     gunatt.Position = Vector3.new(0,0,-.6)
  251.     gunatt.Orientation = Vector3.new(0,0,-40)
  252.     gunatt.Parent = gun
  253.     pcall(function()
  254.         _G:Block("TwitterBird")
  255.     end)
  256.     bulletatt.Position = Vector3.new(-.75,-1.1,0)
  257.     bulletatt.Orientation = Vector3.new(0,0,0)
  258.     bulletatt.Parent = bullet
  259.     hrpatt.Position = Vector3.new()
  260.     hrpatt.Orientation = Vector3.new()
  261.     hrpatt.Parent = mousepart
  262.     _G:GetCharPart("TwitterBird").Handle.CanQuery = false
  263.     realhrp.CanQuery = false
  264.     mousepart.CanQuery = false
  265.     bullet.CanQuery = false
  266.     gun.CanQuery = false
  267.     table.insert(mouseray.FilterDescendantsInstances,realhrp)
  268. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement