brianspy

Untitled

Sep 30th, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.32 KB | None | 0 0
  1. -- Created by 129K
  2. local animations = {
  3. requip = {
  4. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, math.rad(-10)) * CFrame.new(1.5, -.5, 0);
  5. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(180), 0, math.rad(-15)) * CFrame.new(1.5, -.5, 0);
  6. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(210), 0, math.rad(-40)) * CFrame.new(1.5, -.5, 0);
  7. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(180), 0, math.rad(-10)) * CFrame.new(1.5, -.5, 0);
  8. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, 0) * CFrame.new(1.5, -.5, 0);
  9. };
  10. lequip = {
  11. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, math.rad(60)) * CFrame.new(-1, -.75, 0);
  12. };
  13. runequip = {
  14. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, math.rad(-10)) * CFrame.new(1.5, -.5, 0);
  15. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(180), 0, math.rad(-15)) * CFrame.new(1.5, -.5, 0);
  16. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(210), 0, math.rad(-40)) * CFrame.new(1.5, -.5, 0);
  17. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(180), 0, math.rad(-10)) * CFrame.new(1.5, -.5, 0);
  18. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, 0) * CFrame.new(1.5, -.5, 0);
  19. CFrame.new(1.5, 0, 0);
  20. };
  21. rshoot = {
  22. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(170), 0, 0) * CFrame.new(1.5, -.5, 0);
  23. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, 0) * CFrame.new(1.5, -.5, 0);
  24. };
  25. lshoot = {
  26. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(170), 0, math.rad(60)) * CFrame.new(-1, -.75, 0);
  27. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, math.rad(60)) * CFrame.new(-1, -.75, 0);
  28. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, math.rad(80)) * CFrame.new(-.5, -.35, 0);
  29. CFrame.new(0, .5, 0) * CFrame.Angles(math.rad(90), 0, math.rad(60)) * CFrame.new(-1, -.75, 0);
  30. };
  31. }
  32. local player = game:GetService("Players").LocalPlayer
  33. local pmouse = player:GetMouse()
  34. local char = player.Character
  35. local bin = Instance.new("HopperBin", player.Backpack)
  36. local barrelsize = .3
  37. local handleweld = nil
  38. local temp = true
  39. local etemp = true
  40. bin.Name = "L96A1 Magnum"
  41. function weld(part0, part1, c0, c1, parent)
  42. local w = Instance.new("Weld", parent)
  43. w.Part0 = part0
  44. w.Part1 = part1
  45. w.C0 = c0
  46. w.C1 = c1
  47. w.Name = "NewWeld"
  48. return w
  49. end
  50. function interpolateCFrame(cf1, cf2)
  51. local t1 = {cf1:components()}
  52. local t2 = {cf2:components()}
  53. local newcf = {}
  54. for i, v in pairs(t1) do
  55. local dif = t2[i] - v
  56. if i < 4 then
  57. local newValue = nil
  58. if math.abs(dif) < .1 then
  59. newValue = t2[i]
  60. else
  61. newValue = v + ((dif/math.abs(dif)) * .1)
  62. end
  63. newcf[i] = newValue
  64. else
  65. local newValue = nil
  66. if math.abs(dif) < .1 then
  67. newValue = t2[i]
  68. else
  69. newValue = v + ((dif/math.abs(dif)) * .1)
  70. end
  71. newcf[i] = newValue
  72. end
  73. end
  74. return CFrame.new(unpack(newcf))
  75. end
  76. function prop(name, sx, sy, sz, px, py, pz, anc, canc, col, par, mesh, meshtype, scalex, scaley, scalez, meshid, textureid)
  77. local part = Instance.new("Part", par)
  78. part.Name = name
  79. part.TopSurface = 0
  80. part.BottomSurface = 0
  81. part.formFactor = 3
  82. part.Size = Vector3.new(sx, sy, sz)
  83. part.Position = Vector3.new(px, py, pz)
  84. part.Anchored = anc
  85. part.CanCollide = canc
  86. part.BrickColor = BrickColor.new(col)
  87. if mesh then
  88. local m = Instance.new("SpecialMesh", part)
  89. m.MeshType = meshtype
  90. m.MeshId = meshid
  91. m.Scale = Vector3.new(scalex, scaley, scalez)
  92. m.TextureId = textureid
  93. end
  94. return part
  95. end
  96. function fade(part, speed)
  97. for i = part.Transparency, 1, speed do
  98. part.Transparency = i
  99. wait()
  100. end
  101. part:Destroy()
  102. end
  103. function clearWelds(par)
  104. for i, v in pairs(par:GetChildren()) do
  105. if v.Name == "NewWeld" and v:IsA("Weld") then
  106. v:Destroy()
  107. end
  108. end
  109. end
  110. function sound(pitch, id, par)
  111. local s = Instance.new("Sound", par)
  112. s.Pitch = pitch
  113. s.SoundId = id
  114. return s
  115. end
  116. function traceRay(pos, pos2, col, trans)
  117. local distance = (pos - pos2).magnitude
  118. local trace = Instance.new("Part", char)
  119. trace.Anchored = true
  120. trace.CanCollide = false
  121. trace.TopSurface = 0
  122. trace.BottomSurface = 0
  123. trace.formFactor = 3
  124. trace.Size = Vector3.new(.2, .2, distance)
  125. trace.BrickColor = BrickColor.new(col)
  126. trace.Transparency = trans
  127. trace.CFrame = CFrame.new(pos2, pos) * CFrame.new(0, 0, -distance/2)
  128. return trace
  129. end
  130. clearWelds(char.Torso)
  131. local back1 = prop("Part1", .1, .7, .5, 0, 0, 0, false, false, "Black", char, false)
  132. 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)
  133. local back2 = prop("Part2", .1, .2, .1, 0, 0, 0, false, false, "Grime", char, false)
  134. local back2weld = weld(back1, back2, CFrame.new(0, -.25, -.35), CFrame.new(), char.Torso)
  135. local back3 = prop("Part3", .1, .5, 1, 0, 0, 0, false, false, "Grime", char, false)
  136. local back3weld = weld(back1, back3, CFrame.new(0, .1, -.75), CFrame.new(), char.Torso)
  137. local back4 = prop("Part4", .1, .1, 1, 0, 0, 0, false, false, "Grime", char, false)
  138. local back4weld = weld(back3, back4, CFrame.new(0, .3, 0), CFrame.new(), char.Torso)
  139. local back5 = prop("Part5", .1, .1, .7, 0, 0, 0, false, false, "Grime", char, false)
  140. local back5weld = weld(back1, back5, CFrame.new(0, .4, -1.6), CFrame.new(), char.Torso)
  141. local trigger1 = prop("Part6", .1, .1, .6, 0, 0, 0, false, false, "Grime", char, false)
  142. local trigger1weld = weld(back4, trigger1, CFrame.new(0, -.6, -.4) * CFrame.Angles(-math.rad(30), 0, 0), CFrame.new(), char.Torso)
  143. local trigger2 = prop("Part7", .1, .1, .5, 0, 0, 0, false, false, "Grime", char, false)
  144. local trigger2weld = weld(back4, trigger2, CFrame.new(0, -.675, -.8) * CFrame.Angles(math.rad(15), 0, 0), CFrame.new(), char.Torso)
  145. local trigger3 = prop("Part8", .1, .1, .7, 0, 0, 0, false, false, "Grime", char, false)
  146. local trigger3weld = weld(back4, trigger3, CFrame.new(0, -.4, -.95) * CFrame.Angles(math.rad(90), 0, 0), CFrame.new(), char.Torso)
  147. local middle1 = prop("Part9", .1, .1, 1, 0, 0, 0, false, false, "Black", char, true, "Brick", .1, .0, .1, "", "") -- dis
  148. local middle1weld = weld(back5, middle1, CFrame.new(0, .05, -.8), CFrame.new(), char.Torso)
  149. 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", "")
  150. local trigframeweld = weld(back5, trigframe, CFrame.new(0, -.2, -.3) * CFrame.Angles(0, math.rad(90), 0), CFrame.new(), char.Torso)
  151. local middle2 = prop("Part11", .1, .3, 2, 0, 0, 0, false, false, "Grime", char, false)
  152. local middle2weld = weld(middle1, middle2, CFrame.new(0, -.1, -.4), CFrame.new(), char.Torso)
  153. local barrel = prop("Part12", .1, .1, 4, 0, 0, 0, false, false, "Black", char, true, "Brick", .5, .5, 1, "", "")
  154. local barrelweld = weld(middle1, barrel, CFrame.new(0, -.05, -2), CFrame.new(), char.Torso)
  155. local barrel2 = prop("Part13", barrelsize, 2, barrelsize, 0, 0, 0, false, false, "Black", char, false) Instance.new("CylinderMesh", barrel2)
  156. local barrel2weld = weld(barrel, barrel2, CFrame.new(0, 0, -2.5) * CFrame.Angles(math.rad(90), 0, 0), CFrame.new(), char.Torso)
  157. local scope1 = prop("Part14", .1, .2, .1, 0, 0, 0, false, false, "Black", char, true, "Brick", .5, .5, .5, "", "")
  158. local scope1weld = weld(middle1, scope1, CFrame.new(0, .1, .25), CFrame.new(), char.Torso)
  159. local scope2 = prop("Part14", .1, .2, .1, 0, 0, 0, false, false, "Black", char, true, "Brick", .5, .5, .5, "", "")
  160. local scope2weld = weld(middle1, scope2, CFrame.new(0, .1, -.25), CFrame.new(), char.Torso)
  161. local scope3 = prop("Part15", .1, 1.5, .1, 0, 0, 0, false, false, "Black", char, false) Instance.new("CylinderMesh", scope3)
  162. local scope3weld = weld(middle1, scope3, CFrame.new(0, .2, 0) * CFrame.Angles(math.rad(90), 0, 0), CFrame.new(), char.Torso)
  163. 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", "")
  164. local scope4weld = weld(middle1, scope4, CFrame.new(0, .2, .7) * CFrame.Angles(math.rad(270), 0, 0), CFrame.new(), char.Torso)
  165. 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", "")
  166. local scope5weld = weld(middle1, scope5, CFrame.new(0, .2, -.7) * CFrame.Angles(math.rad(-270), 0, 0), CFrame.new(), char.Torso)
  167. local rarmweld = weld(char.Torso, nil, CFrame.new(1.5, 0, 0), CFrame.new(), char.Torso)
  168. local larmweld = weld(char.Torso, nil, CFrame.new(-1.5, 0, 0), CFrame.new(), char.Torso)
  169. local gyro = Instance.new("BodyGyro", char.Torso)
  170. gyro.P = 10000
  171. gyro.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
  172. pmouse.Move:connect(function()
  173. gyro.cframe = CFrame.new(char.Torso.Position, Vector3.new(pmouse.Hit.p.X, char.Torso.Position.Y, pmouse.Hit.p.Z))
  174. end)
  175. function onEquip(mouse)
  176. repeat wait() until etemp and temp
  177. etemp = false
  178. rarmweld.Part1 = char["Right Arm"]
  179. local frame = 1
  180. coroutine.wrap(function()
  181. while rarmweld and animations.requip[frame] do
  182. rarmweld.C0 = interpolateCFrame(rarmweld.C0, animations.requip[frame])
  183. if rarmweld.C0 == animations.requip[frame] then
  184. frame = frame + 1
  185. else
  186. wait()
  187. end
  188. end
  189. end)()
  190. repeat wait() until frame == 3
  191. back1weld.Part0 = nil
  192. handleweld = weld(char["Right Arm"], back1, CFrame.new(-.5, 1, -.3) * CFrame.Angles(math.rad(270), 0, 0), CFrame.new(), char.Torso)
  193. repeat wait() until frame == 5
  194. larmweld.Part1 = char["Left Arm"]
  195. local frame2 = 1
  196. coroutine.wrap(function()
  197. while larmweld and animations.lequip[frame2] do
  198. larmweld.C0 = interpolateCFrame(larmweld.C0, animations.lequip[frame2])
  199. if larmweld.C0 == animations.lequip[frame2] then
  200. frame2 = frame2 + 1
  201. else
  202. wait()
  203. end
  204. end
  205. etemp = true
  206. end)()
  207. repeat wait() until frame == 6
  208. mouse.Button1Down:connect(function()
  209. if not temp then return end
  210. temp = false
  211. local frame3 = 1
  212. coroutine.wrap(function()
  213. while rarmweld and animations.rshoot[frame3] do
  214. rarmweld.C0 = interpolateCFrame(rarmweld.C0, animations.rshoot[frame3])
  215. if rarmweld.C0 == animations.rshoot[frame3] then
  216. frame3 = frame3 + 1
  217. else
  218. wait()
  219. end
  220. end
  221. end)()
  222. local frame4 = 1
  223. coroutine.wrap(function()
  224. while larmweld and animations.lshoot[frame4] do
  225. larmweld.C0 = interpolateCFrame(larmweld.C0, animations.lshoot[frame4])
  226. if larmweld.C0 == animations.lshoot[frame4] then
  227. frame4 = frame4 + 1
  228. else
  229. wait()
  230. end
  231. end
  232. wait(.1)
  233. temp = true
  234. end)()
  235. local ray = Ray.new(barrel2.Position, (mouse.Hit.p - barrel2.Position).unit * 500)
  236. sound(2, "http://www.roblox.com/Asset/?id=16211041", barrel2):play()
  237. local hit, pos = workspace:FindPartOnRay(ray, char)
  238. if hit and hit.Parent:FindFirstChild("Humanoid") then
  239. local dmg = math.random(70, 100)
  240. if hit.Name ~= "Head" then
  241. hit.Parent.Humanoid:TakeDamage(dmg)
  242. hit.Parent.Humanoid.Sit = true
  243. else
  244. hit.Parent:BreakJoints()
  245. sound(1, "http://www.roblox.com/asset/?id=1876552", workspace):play()
  246. end
  247. if game:GetService("Players"):GetPlayerFromCharacter(hit.Parent) == nil then return end
  248. local bl = Instance.new("Part", workspace)
  249. bl.Name = "Blood"
  250. bl.BrickColor = BrickColor.new("Really red")
  251. bl.FormFactor = 3
  252. bl.TopSurface = 0
  253. bl.BottomSurface = 0
  254. bl.Size = Vector3.new(1, .1, 1)
  255. bl.Position = hit.Parent.Head.Position + Vector3.new(0, 3, 0)
  256. local bbg = Instance.new("BillboardGui", bl)
  257. bbg.Adornee = bl
  258. bbg.Size = UDim2.new(1, 0, 1, 0)
  259. bbg.StudsOffset = Vector3.new(0, 1, 0)
  260. local txt = Instance.new("TextLabel", bbg)
  261. txt.Position = UDim2.new(0.5, 0, 0.5, 0)
  262. txt.FontSize = "Size14"
  263. txt.TextColor3 = Color3.new(1, 1, 1)
  264. txt.Text = hit.Name ~= "Head" and dmg or "HEADSHOT"
  265. coroutine.wrap(fade)(bl, 0.005)
  266. end
  267. if hit and hit.Parent:IsA("Hat") then
  268. hit:BreakJoints()
  269. end
  270. Spawn(function()
  271. local tr = traceRay(barrel2.Position, pos, "White", .5)
  272. fade(tr, .01)
  273. end)
  274. repeat wait() until frame4 == 3
  275. sound(1, "http://roblox.com/asset/?id=10209881", middle2):play()
  276. end)
  277. end
  278. function onUnequip()
  279. repeat wait() until etemp and temp
  280. etemp = false
  281. local frame = 1
  282. coroutine.wrap(function()
  283. while rarmweld and animations.runequip[frame] do
  284. rarmweld.C0 = interpolateCFrame(rarmweld.C0, animations.runequip[frame])
  285. if rarmweld.C0 == animations.runequip[frame] then
  286. frame = frame + 1
  287. else
  288. wait()
  289. end
  290. end
  291. etemp = true
  292. end)()
  293. coroutine.wrap(function()
  294. while larmweld do
  295. larmweld.C0 = interpolateCFrame(larmweld.C0, CFrame.new(-1.5, 0, 0))
  296. if larmweld.C0 == CFrame.new(-1.5, 0, 0) then
  297. break
  298. else
  299. wait()
  300. end
  301. end
  302. end)()
  303. repeat wait() until frame == 4
  304. handleweld:Remove()
  305. back1weld:Remove()
  306. 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)
  307. repeat wait() until frame == 7
  308. rarmweld.Part1 = nil
  309. larmweld.Part1 = nil
  310. end
  311. bin.Selected:connect(onEquip)
  312. bin.Deselected:connect(onUnequip)
Add Comment
Please, Sign In to add comment