bryanesfeo

Untitled

Jul 13th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.54 KB | None | 0 0
  1. --https://github.com/Mokiros/roblox-FE-compatibility
  2. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  3. local Player,game,owner = owner,game
  4. local RealPlayer = Player
  5. do
  6. print("FE Compatibility code V2 by Mokiros")
  7. local RealPlayer = RealPlayer
  8. script.Parent = RealPlayer.Character
  9.  
  10. --Fake event to make stuff like Mouse.KeyDown work
  11. local Disconnect_Function = function(this)
  12. this[1].Functions[this[2]] = nil
  13. end
  14. local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
  15. local FakeEvent_Metatable = {__index={
  16. Connect = function(this,f)
  17. local i = tostring(math.random(0,10000))
  18. while this.Functions[i] do
  19. i = tostring(math.random(0,10000))
  20. end
  21. this.Functions[i] = f
  22. return setmetatable({this,i},Disconnect_Metatable)
  23. end
  24. }}
  25. FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
  26. local function fakeEvent()
  27. return setmetatable({Functions={}},FakeEvent_Metatable)
  28. end
  29.  
  30. --Creating fake input objects with fake variables
  31. local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
  32. FakeMouse.keyUp = FakeMouse.KeyUp
  33. FakeMouse.keyDown = FakeMouse.KeyDown
  34. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  35. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  36. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  37. end}
  38. --Merged 2 functions into one by checking amount of arguments
  39. CAS.UnbindAction = CAS.BindAction
  40.  
  41. --This function will trigger the events that have been :Connect()'ed
  42. local function TriggerEvent(self,ev,...)
  43. for _,f in pairs(self[ev].Functions) do
  44. f(...)
  45. end
  46. end
  47. FakeMouse.TriggerEvent = TriggerEvent
  48. UIS.TriggerEvent = TriggerEvent
  49.  
  50. --Client communication
  51. local Event = Instance.new("RemoteEvent")
  52. Event.Name = "UserInput_Event"
  53. Event.OnServerEvent:Connect(function(plr,io)
  54. if plr~=RealPlayer then return end
  55. FakeMouse.Target = io.Target
  56. FakeMouse.Hit = io.Hit
  57. if not io.isMouse then
  58. local b = io.UserInputState == Enum.UserInputState.Begin
  59. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  60. return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
  61. end
  62. if io.UserInputType == Enum.UserInputType.MouseButton2 then
  63. return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
  64. end
  65. for _,t in pairs(CAS.Actions) do
  66. for _,k in pairs(t.Keys) do
  67. if k==io.KeyCode then
  68. t.Function(t.Name,io.UserInputState,io)
  69. end
  70. end
  71. end
  72. FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  73. UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
  74. end
  75. end)
  76. Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
  77. local Mouse = owner:GetMouse()
  78. local UIS = game:GetService("UserInputService")
  79. local input = function(io,RobloxHandled)
  80. if RobloxHandled then return end
  81. --Since InputObject is a client-side instance, we create and pass table instead
  82. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  83. end
  84. UIS.InputBegan:Connect(input)
  85. UIS.InputEnded:Connect(input)
  86. local h,t
  87. --Give the server mouse data every second frame, but only if the values changed
  88. --If player is not moving their mouse, client won't fire events
  89. local HB = game:GetService("RunService").Heartbeat
  90. while true do
  91. if h~=Mouse.Hit or t~=Mouse.Target then
  92. h,t=Mouse.Hit,Mouse.Target
  93. Event:FireServer({isMouse=true,Target=t,Hit=h})
  94. end
  95. --Wait 2 frames
  96. for i=1,2 do
  97. HB:Wait()
  98. end
  99. end]==],script)
  100.  
  101. ----Sandboxed game object that allows the usage of client-side methods and services
  102. --Real game object
  103. local RealGame = game
  104.  
  105. --Metatable for fake service
  106. local FakeService_Metatable = {
  107. __index = function(self,k)
  108. local s = rawget(self,"_RealService")
  109. if s then
  110. return typeof(s[k])=="function"
  111. and function(_,...)return s[k](s,...)end or s[k]
  112. end
  113. end,
  114. __newindex = function(self,k,v)
  115. local s = rawget(self,"_RealService")
  116. if s then s[k]=v end
  117. end
  118. }
  119. local function FakeService(t,RealService)
  120. t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
  121. return setmetatable(t,FakeService_Metatable)
  122. end
  123.  
  124. --Fake game object
  125. local FakeGame = {
  126. GetService = function(self,s)
  127. return rawget(self,s) or RealGame:GetService(s)
  128. end,
  129. Players = FakeService({
  130. LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
  131. },"Players"),
  132. UserInputService = FakeService(UIS,"UserInputService"),
  133. ContextActionService = FakeService(CAS,"ContextActionService"),
  134. RunService = FakeService({
  135. _btrs = {},
  136. RenderStepped = RealGame:GetService("RunService").Heartbeat,
  137. BindToRenderStep = function(self,name,_,fun)
  138. self._btrs[name] = self.Heartbeat:Connect(fun)
  139. end,
  140. UnbindFromRenderStep = function(self,name)
  141. self._btrs[name]:Disconnect()
  142. end,
  143. },"RunService")
  144. }
  145. rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
  146. FakeGame.service = FakeGame.GetService
  147. FakeService(FakeGame,game)
  148. --Changing owner to fake player object to support owner:GetMouse()
  149. game,owner = FakeGame,FakeGame.Players.LocalPlayer
  150. end
  151.  
  152. Player = game.Players.LocalPlayer
  153. Character = Player.Character
  154. script.Parent = Character
  155.  
  156. --[[ * Fire Handle * ]]--
  157.  
  158. pcall(function() Character.Gun:Remove() end)
  159.  
  160. Gun = Instance.new("Model")
  161. Gun.Name = "Gun"
  162. Gun.Parent = Character
  163.  
  164. --[[ * Arm Weld * ]]--
  165.  
  166. ArmWeld = Instance.new("Weld")
  167. ArmWeld.Parent = Character["Torso"]
  168. ArmWeld.Part0 = ArmWeld.Parent
  169. ArmWeld.Part1 = Character["Right Arm"]
  170. ArmWeld.C0 = CFrame.new(1.5,0.5,-0.5) * CFrame.fromEulerAnglesXYZ(math.pi/2,0,0)
  171.  
  172. --[[ * Arm Weld * ]]--
  173.  
  174. ArmWeldR = Instance.new("Weld")
  175. ArmWeldR.Parent = Character["Torso"]
  176. ArmWeldR.Part0 = ArmWeldR.Parent
  177. ArmWeldR.Part1 = Character["Left Arm"]
  178. ArmWeldR.C0 = CFrame.new(-1.5,0,0) * CFrame.fromEulerAnglesXYZ(0,0,0)
  179.  
  180. --[[ * Neck Weld * ]]--
  181.  
  182. Neck = Instance.new("Weld")
  183. Neck.Parent = Character["Torso"]
  184. Neck.Part0 = Neck.Parent
  185. Neck.Part1 = Character["Head"]
  186. Neck.C0 = CFrame.new(0,1.5,0) * CFrame.fromEulerAnglesXYZ(0,0,0)
  187.  
  188. --[[ * Handle * ]]--
  189.  
  190. Handle = Instance.new("Part")
  191. Handle.formFactor = "Custom"
  192. Handle.Locked = true
  193. Handle.CanCollide = false
  194. Handle.BrickColor = BrickColor.new("Medium stone grey")
  195. Handle.Anchored = false
  196. Handle.Size = Vector3.new(0.25,0.7,0.25)
  197. Handle.TopSurface = 0
  198. Handle.BottomSurface = 0
  199. Handle.Parent = Gun
  200. MeshA = Instance.new("BlockMesh",Handle)
  201. WeldA = Instance.new("Weld")
  202. WeldA.Parent = Handle
  203. WeldA.Part0 = Character["Right Arm"]
  204. WeldA.Part1 = Handle
  205. WeldA.C0 = CFrame.new(0,-1.1,-0.2) * CFrame.Angles(-math.pi/2-0.1,0,0)
  206.  
  207. --[[ * Cartrage * ]]--
  208.  
  209. Cartrage = Instance.new("Part")
  210. Cartrage.formFactor = "Custom"
  211. Cartrage.Locked = true
  212. Cartrage.CanCollide = false
  213. Cartrage.BrickColor = BrickColor.new("Really black")
  214. Cartrage.Anchored = false
  215. Cartrage.Size = Vector3.new(0.2,0.5,0.2)
  216. Cartrage.TopSurface = 0
  217. Cartrage.BottomSurface = 0
  218. Cartrage.Parent = Gun
  219. MeshB = Instance.new("BlockMesh",Cartrage)
  220. WeldB = Instance.new("Weld")
  221. WeldB.Parent = Cartrage
  222. WeldB.Part0 = Handle
  223. WeldB.Part1 = Cartrage
  224. WeldB.C0 = CFrame.new(0,0,0) * CFrame.Angles(0,0,0)
  225.  
  226. --[[ * Trigger * ]]--
  227.  
  228. Trigger = Instance.new("Part")
  229. Trigger.formFactor = "Custom"
  230. Trigger.Locked = true
  231. Trigger.CanCollide = false
  232. Trigger.BrickColor = BrickColor.new("Really black")
  233. Trigger.Anchored = false
  234. Trigger.Size = Vector3.new(0.2,0.4,0.4)
  235. Trigger.TopSurface = 0
  236. Trigger.BottomSurface = 0
  237. Trigger.Parent = Gun
  238. MeshB = Instance.new("BlockMesh",Trigger)
  239. WeldB = Instance.new("Weld")
  240. WeldB.Parent = Trigger
  241. WeldB.Part0 = Handle
  242. WeldB.Part1 = Trigger
  243. WeldB.C0 = CFrame.new(0,0.21,-0.09) * CFrame.Angles(0,0,0)
  244.  
  245. --[[ * BWall * ]]--
  246.  
  247. BWall = Instance.new("Part")
  248. BWall.formFactor = "Custom"
  249. BWall.Locked = true
  250. BWall.CanCollide = false
  251. BWall.BrickColor = BrickColor.new("Medium stone grey")
  252. BWall.Anchored = false
  253. BWall.Size = Vector3.new(0.25,0.6,0.25)
  254. BWall.TopSurface = 0
  255. BWall.BottomSurface = 0
  256. BWall.Parent = Gun
  257. MeshB = Instance.new("BlockMesh",BWall)
  258. WeldB = Instance.new("Weld")
  259. WeldB.Parent = BWall
  260. WeldB.Part0 = Handle
  261. WeldB.Part1 = BWall
  262. WeldB.C0 = CFrame.new(0,0.3,-0.3) * CFrame.Angles(math.pi/2+0.1,0,0)
  263.  
  264. --[[ * CWall * ]]--
  265.  
  266. CWall = Instance.new("Part")
  267. CWall.formFactor = "Custom"
  268. CWall.Locked = true
  269. CWall.CanCollide = false
  270. CWall.BrickColor = BrickColor.new("Really black")
  271. CWall.Anchored = false
  272. CWall.Size = Vector3.new(0.3,0.6,0.2)
  273. CWall.TopSurface = 0
  274. CWall.BottomSurface = 0
  275. CWall.Parent = Gun
  276. MeshB = Instance.new("BlockMesh",CWall)
  277. WeldB = Instance.new("Weld")
  278. WeldB.Parent = CWall
  279. WeldB.Part0 = Handle
  280. WeldB.Part1 = CWall
  281. WeldB.C0 = CFrame.new(0,0.4,-0.3) * CFrame.Angles(math.pi/2+0.1,0,0)
  282.  
  283. --[[ * ButA * ]]--
  284.  
  285. ButA = Instance.new("Part")
  286. ButA.formFactor = "Custom"
  287. ButA.Locked = true
  288. ButA.CanCollide = false
  289. ButA.BrickColor = BrickColor.new("Really black")
  290. ButA.Anchored = false
  291. ButA.Size = Vector3.new(0.3,0.6,0.3)
  292. ButA.TopSurface = 0
  293. ButA.BottomSurface = 0
  294. ButA.Parent = Gun
  295. MeshB = Instance.new("CylinderMesh",ButA)
  296. WeldB = Instance.new("Weld")
  297. WeldB.Parent = ButA
  298. WeldB.Part0 = Handle
  299. WeldB.Part1 = ButA
  300. WeldB.C0 = CFrame.new(0.1,0.4,-0.3) * CFrame.Angles(math.pi/2+0.1,0,0)
  301.  
  302. --[[ * ButB * ]]--
  303.  
  304. ButB = Instance.new("Part")
  305. ButB.formFactor = "Custom"
  306. ButB.Locked = true
  307. ButB.CanCollide = false
  308. ButB.BrickColor = BrickColor.new("Really black")
  309. ButB.Anchored = false
  310. ButB.Size = Vector3.new(0.3,0.6,0.3)
  311. ButB.TopSurface = 0
  312. ButB.BottomSurface = 0
  313. ButB.Parent = Gun
  314. MeshB = Instance.new("CylinderMesh",ButB)
  315. WeldB = Instance.new("Weld")
  316. WeldB.Parent = ButB
  317. WeldB.Part0 = Handle
  318. WeldB.Part1 = ButB
  319. WeldB.C0 = CFrame.new(-0.1,0.4,-0.3) * CFrame.Angles(math.pi/2+0.1,0,0)
  320.  
  321. --[[ * Hinge * ]]--
  322.  
  323. Hinge = Instance.new("Part")
  324. Hinge.formFactor = "Custom"
  325. Hinge.Locked = true
  326. Hinge.CanCollide = false
  327. Hinge.BrickColor = BrickColor.new("Medium stone grey")
  328. Hinge.Anchored = false
  329. Hinge.Size = Vector3.new(0.2,0.25,0.2)
  330. Hinge.TopSurface = 0
  331. Hinge.BottomSurface = 0
  332. Hinge.Parent = Gun
  333. MeshB = Instance.new("CylinderMesh",Hinge)
  334. WeldQ = Instance.new("Weld")
  335. WeldQ.Parent = Hinge
  336. WeldQ.Part0 = Handle
  337. WeldQ.Part1 = Hinge
  338. WeldQ.C0 = CFrame.new(0,0.3,-0.6) * CFrame.Angles(math.pi/2+0.1,0,math.pi/2)
  339.  
  340. --[[ * HingeP * ]]--
  341.  
  342. HingeP = Instance.new("Part")
  343. HingeP.formFactor = "Custom"
  344. HingeP.Locked = true
  345. HingeP.CanCollide = false
  346. HingeP.BrickColor = BrickColor.new("Medium stone grey")
  347. HingeP.Anchored = false
  348. HingeP.Size = Vector3.new(0.2,0.5,0.2)
  349. HingeP.TopSurface = 0
  350. HingeP.BottomSurface = 0
  351. HingeP.Parent = Gun
  352. MeshB = Instance.new("CylinderMesh",HingeP)
  353. WeldB = Instance.new("Weld")
  354. WeldB.Parent = HingeP
  355. WeldB.Part0 = Hinge
  356. WeldB.Part1 = HingeP
  357. WeldB.C0 = CFrame.new(-0.25,0,0) * CFrame.Angles(0,0,math.pi/2)
  358.  
  359. --[[ * BarrelA * ]]--
  360.  
  361. BarrelA = Instance.new("Part")
  362. BarrelA.formFactor = "Custom"
  363. BarrelA.Locked = true
  364. BarrelA.CanCollide = false
  365. BarrelA.BrickColor = BrickColor.new("Really black")
  366. BarrelA.Anchored = false
  367. BarrelA.Size = Vector3.new(0.3,1.5,0.3)
  368. BarrelA.TopSurface = 0
  369. BarrelA.BottomSurface = 0
  370. BarrelA.Parent = Gun
  371. MeshB = Instance.new("CylinderMesh",BarrelA)
  372. WeldB = Instance.new("Weld")
  373. WeldB.Parent = BarrelA
  374. WeldB.Part0 = Hinge
  375. WeldB.Part1 = BarrelA
  376. WeldB.C0 = CFrame.new(-0.75,0.1,-0.125) * CFrame.Angles(0,0,math.pi/2)
  377.  
  378. --[[ * BarrelB * ]]--
  379.  
  380. BarrelB = Instance.new("Part")
  381. BarrelB.formFactor = "Custom"
  382. BarrelB.Locked = true
  383. BarrelB.CanCollide = false
  384. BarrelB.BrickColor = BrickColor.new("Really black")
  385. BarrelB.Anchored = false
  386. BarrelB.Size = Vector3.new(0.3,1.5,0.3)
  387. BarrelB.TopSurface = 0
  388. BarrelB.BottomSurface = 0
  389. BarrelB.Parent = Gun
  390. MeshB = Instance.new("CylinderMesh",BarrelB)
  391. WeldB = Instance.new("Weld")
  392. WeldB.Parent = BarrelB
  393. WeldB.Part0 = Hinge
  394. WeldB.Part1 = BarrelB
  395. WeldB.C0 = CFrame.new(-0.75,-0.1,-0.125) * CFrame.Angles(0,0,math.pi/2)
  396.  
  397. --[[ * Variables * ]]--
  398.  
  399. Head = false
  400. Ammo = 2
  401. Arms = false
  402. Hopper = Instance.new("HopperBin")
  403.  
  404. function TName()
  405. Hopper.Name = "Gun: "..Ammo
  406. end
  407.  
  408. --[[ * Animation * ]]--
  409.  
  410. function ArmsOn()
  411. for i = 1,10 do wait()
  412. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(math.pi/10/2,-math.pi/11/2/2,math.pi/10/2/2)
  413. ArmWeldR.C0 = ArmWeldR.C0 + Vector3.new(0.1,0.05,-0.05)
  414. ArmWeld.C0 = ArmWeld.C0 * CFrame.Angles(0,0,-math.pi/10/2/2/2)
  415. ArmWeld.C0 = ArmWeld.C0 + Vector3.new(-0.05,0,0.09)
  416. end
  417. end
  418.  
  419. function ArmsOff()
  420. for i = 1,10 do wait()
  421. ArmWeldR.C0 = ArmWeldR.C0 - Vector3.new(0.1,0.05,-0.05)
  422. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(-math.pi/10/2,math.pi/11/2/2,-math.pi/10/2/2)
  423. ArmWeld.C0 = ArmWeld.C0 - Vector3.new(-0.05,0,0.09)
  424. ArmWeld.C0 = ArmWeld.C0 * CFrame.Angles(0,0,math.pi/10/2/2/2)
  425. end
  426. for i = 1,3 do wait()
  427. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(0,0,0.05)
  428. end
  429. ArmWeldR.C0 = CFrame.new(-1.5,0,0) * CFrame.fromEulerAnglesXYZ(0,0,0)
  430. end
  431.  
  432. function SuicideYes()
  433. for i = 1,10 do wait()
  434. ArmWeld.C0 = ArmWeld.C0 * CFrame.Angles(0,0,math.pi/10/2/2)
  435. WeldA.C0 = WeldA.C0 * CFrame.Angles(0,math.pi/11,0)
  436. end
  437. end
  438.  
  439. function SuicideNo()
  440. for i = 1,10 do wait()
  441. ArmWeld.C0 = ArmWeld.C0 * CFrame.Angles(0,0,-math.pi/10/2/2)
  442. WeldA.C0 = WeldA.C0 * CFrame.Angles(0,-math.pi/11,0)
  443. end
  444. end
  445.  
  446. function Reload()
  447. if Ammo == 0 then
  448. if Head == true then SuicideNo() end
  449. NewSoundI("http://www.roblox.com/Asset/?id=2761842",10,1,Handle,1.2)
  450. if Arms == false then
  451. for i = 1,10 do wait()
  452. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(math.pi/10/2,-math.pi/11/2/2,math.pi/10/2/2)
  453. ArmWeldR.C0 = ArmWeldR.C0 + Vector3.new(0.1,0.05,-0.05)
  454. ArmWeld.C0 = ArmWeld.C0 * CFrame.Angles(0,0,-math.pi/10/2/2/2)
  455. ArmWeld.C0 = ArmWeld.C0 + Vector3.new(-0.05,0,0.09)
  456. end
  457. end
  458. for i = 1,10 do wait()
  459. WeldQ.C0 = WeldQ.C0 * CFrame.Angles(0,math.pi/10/2/2,0)
  460. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(-math.pi/10/2/2/2,0,0)
  461. end
  462. for i = 1,10 do wait()
  463. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(math.pi/10/2/2/2,0,0)
  464. end
  465. for i = 1,9 do wait()
  466. ArmWeldR.C0 = ArmWeldR.C0 - Vector3.new(0.1,0.05,-0.05)
  467. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(-math.pi/10/2,math.pi/11/2/2,-math.pi/10/2/2)
  468. end
  469. for i = 1,3 do wait()
  470. ArmWeldR.C0 = ArmWeldR.C0 - Vector3.new(-0.1,0.05,-0.05)
  471. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(-math.pi/10/2,math.pi/11/2/2,math.pi/10/2/2)
  472. end
  473. for i = 1,3 do wait()
  474. ArmWeldR.C0 = ArmWeldR.C0 + Vector3.new(-0.1,0.05,-0.05)
  475. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(math.pi/10/2,-math.pi/11/2/2,-math.pi/10/2/2)
  476. end
  477. for i = 1,9 do wait()
  478. ArmWeldR.C0 = ArmWeldR.C0 + Vector3.new(0.1,0.05,-0.05)
  479. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(math.pi/10/2,-math.pi/11/2/2,math.pi/10/2/2)
  480. end
  481. for i = 1,5 do wait()
  482. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(math.pi/4/2/2/2,0,0)
  483. end
  484. Ammo = 1
  485. TName()
  486. NewSound("http://www.roblox.com/Asset/?id=13510352",2,10,Handle)
  487. for i = 1,5 do wait()
  488. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(-math.pi/4/2/2/2,0,0)
  489. end
  490. NewSound("http://www.roblox.com/Asset/?id=13510352",2,10,Handle)
  491. for i = 1,9 do wait()
  492. ArmWeldR.C0 = ArmWeldR.C0 - Vector3.new(0.1,0.05,-0.05)
  493. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(-math.pi/10/2,math.pi/11/2/2,-math.pi/10/2/2)
  494. end
  495. for i = 1,3 do wait()
  496. ArmWeldR.C0 = ArmWeldR.C0 - Vector3.new(-0.1,0.05,-0.05)
  497. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(-math.pi/10/2,math.pi/11/2/2,math.pi/10/2/2)
  498. end
  499. for i = 1,3 do wait()
  500. ArmWeldR.C0 = ArmWeldR.C0 + Vector3.new(-0.1,0.05,-0.05)
  501. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(math.pi/10/2,-math.pi/11/2/2,-math.pi/10/2/2)
  502. end
  503. for i = 1,9 do wait()
  504. ArmWeldR.C0 = ArmWeldR.C0 + Vector3.new(0.1,0.05,-0.05)
  505. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(math.pi/10/2,-math.pi/11/2/2,math.pi/10/2/2)
  506. end
  507. for i = 1,5 do wait()
  508. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(math.pi/4/2/2/2,0,0)
  509. end
  510. Ammo = 2
  511. TName()
  512. NewSound("http://www.roblox.com/Asset/?id=13510352",2,10,Handle)
  513. for i = 1,5 do wait()
  514. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(-math.pi/4/2/2/2,0,0)
  515. end
  516. NewSound("http://www.roblox.com/Asset/?id=13510352",2,10,Handle)
  517. for i = 1,10 do wait()
  518. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(-math.pi/10/2,math.pi/11/2/2,-math.pi/10/2/2)
  519. ArmWeldR.C0 = ArmWeldR.C0 - Vector3.new(0.1,0.05,-0.05)
  520. end
  521. for i = 1,10 do wait()
  522. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(0,0,0.05)
  523. ArmWeld.C0 = ArmWeld.C0 * CFrame.Angles(0,0,math.pi/10/2/2/2)
  524. ArmWeld.C0 = ArmWeld.C0 - Vector3.new(-0.05,0,0.09)
  525. end
  526. ArmWeldR.C0 = CFrame.new(-1.5,0,0) * CFrame.fromEulerAnglesXYZ(0,0,0)
  527. NewSound("http://www.roblox.com/Asset/?id=10209881",10,0.9,Handle)
  528. for i = 1,5 do wait()
  529. WeldQ.C0 = WeldQ.C0 * CFrame.Angles(0,-math.pi/5/2/2,0)
  530. ArmWeld.C0 = ArmWeld.C0 * CFrame.new(0,0,-0.1) * CFrame.Angles(math.pi/5/2/2,0,0)
  531. end
  532. for i = 1,10 do wait()
  533. ArmWeld.C0 = ArmWeld.C0 * CFrame.Angles(-math.pi/10/2/2,0,0) * CFrame.new(0,0,0.05)
  534. end
  535. ArmWeld.C0 = CFrame.new(1.5,0.5,-0.5) * CFrame.fromEulerAnglesXYZ(math.pi/2,0,0)
  536. Ammo = 2
  537. TName()
  538. if Head == true then SuicideYes() end
  539. if Arms == true then ArmsOn() end
  540. elseif Ammo ~= 0 then
  541. if Arms == false then ArmsOn() end
  542. wait(0.1)
  543. NewSound("http://www.roblox.com/Asset/?id=10209881",10,1,Handle)
  544. for i = 1,10 do wait()
  545. ArmWeldR.C0 = ArmWeldR.C0 - Vector3.new(0,0,0.1)
  546. end
  547. --Ammo = Ammo - 1
  548. TName()
  549. for i = 1,10 do wait()
  550. ArmWeldR.C0 = ArmWeldR.C0 + Vector3.new(0,0,0.1)
  551. end
  552. if Arms == false then ArmsOff() end
  553. end
  554. end
  555.  
  556. function Shoot()
  557. NewSound("http://www.roblox.com/Asset/?id=2691586",10,1,Handle)
  558. if Arms == false then
  559. for i = 1,5 do wait()
  560. ArmWeld.C0 = ArmWeld.C0 * CFrame.new(0,0,-0.1) * CFrame.Angles(math.pi/5/2/2,0,0)
  561. WeldA.C0 = WeldA.C0 * CFrame.Angles(0.2,0,0)
  562. end
  563. for i = 1,10 do wait()
  564. ArmWeld.C0 = ArmWeld.C0 * CFrame.Angles(-math.pi/10/2/2,0,0) * CFrame.new(0,0,0.05)
  565. WeldA.C0 = WeldA.C0 * CFrame.Angles(-0.1,0,0)
  566. end
  567. if Arms == false then ArmsOn() end
  568. wait(0.05)
  569. NewSound("http://www.roblox.com/Asset/?id=10209881",10,1,Handle)
  570. for i = 1,5 do wait()
  571. ArmWeldR.C0 = ArmWeldR.C0 - Vector3.new(0,0,0.2)
  572. end
  573. Ammo = Ammo - 1 TName()
  574. wait(0.1)
  575. for i = 1,5 do wait()
  576. ArmWeldR.C0 = ArmWeldR.C0 + Vector3.new(0,0,0.2)
  577. end
  578. if Arms == false then ArmsOff() end
  579. elseif Arms == true then
  580. for i = 1,5 do wait()
  581. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(math.pi/4/2/2/2,0,0)
  582. ArmWeldR.C0 = ArmWeldR.C0 + Vector3.new(0,0.2,0)
  583. ArmWeld.C0 = ArmWeld.C0 * CFrame.new(0,0,-0.1) * CFrame.Angles(math.pi/5/2/2,0,0)
  584. WeldA.C0 = WeldA.C0 * CFrame.Angles(0.2,0,0)
  585. end
  586. for i = 1,10 do wait()
  587. ArmWeldR.C0 = ArmWeldR.C0 * CFrame.Angles(-math.pi/8/2/2/2,0,0)
  588. ArmWeldR.C0 = ArmWeldR.C0 - Vector3.new(0,0.1,0)
  589. ArmWeld.C0 = ArmWeld.C0 * CFrame.Angles(-math.pi/10/2/2,0,0) * CFrame.new(0,0,0.05)
  590. WeldA.C0 = WeldA.C0 * CFrame.Angles(-0.1,0,0)
  591. end
  592. NewSound("http://www.roblox.com/Asset/?id=10209881",10,1,Handle)
  593. for i = 1,5 do wait()
  594. ArmWeldR.C0 = ArmWeldR.C0 - Vector3.new(0,0,0.2)
  595. end
  596. Ammo = Ammo - 1 TName()
  597. wait(0.1)
  598. for i = 1,5 do wait()
  599. ArmWeldR.C0 = ArmWeldR.C0 + Vector3.new(0,0,0.2)
  600. end
  601. end
  602. end
  603.  
  604. --[[ * Sound * ]]--
  605.  
  606. function NewSound(ID,V,P,N)
  607. coroutine.resume(coroutine.create(function()
  608. local SoundD = Instance.new("Sound")
  609. SoundD.SoundId = ID
  610. SoundD.Volume = V
  611. SoundD.Pitch = P
  612. SoundD.Parent = N
  613. SoundD:Play()
  614. while SoundD.IsPlaying do wait() end
  615. SoundD:Remove()
  616. end))
  617. end
  618.  
  619. function NewSoundI(ID,V,P,N,I)
  620. coroutine.resume(coroutine.create(function()
  621. local SoundD = Instance.new("Sound")
  622. SoundD.SoundId = ID
  623. SoundD.Volume = V
  624. SoundD.Pitch = P
  625. SoundD.Parent = N
  626. SoundD:Play()
  627. wait(I)
  628. SoundD:Stop()
  629. wait()
  630. SoundD:Remove()
  631. end))
  632. end
  633.  
  634. --[[ * Tool * ]]--
  635.  
  636. if script.Parent.Name == Player.Name then
  637. Hopper = Instance.new("HopperBin")
  638. Hopper.Name = "Gun"
  639. Hopper.Parent = Player.Backpack
  640. end
  641.  
  642. Blah = true
  643. ABC = BarrelA.CFrame
  644.  
  645. function Clicked(Mouse)
  646. if Blah == true then
  647. Blah = false
  648. if Ammo == 0 then
  649. Reload()
  650. else
  651. if Head == true then Character.Head:BreakJoints() return end
  652. coroutine.resume(coroutine.create(function()
  653. Mouse.Target:BreakJoints()
  654. end))
  655. Shoot()
  656. end
  657. Blah = true
  658. return
  659. end
  660. end
  661.  
  662. function onKeyDown(key)
  663. if Blah == true then
  664. Blah = false
  665.  
  666. if key == "p" then
  667. NewSound("",10,0.5,Handle)
  668. end
  669.  
  670. if key == "0" or key == "/" then
  671. if not Head then
  672. if Arms == false then
  673. ArmsOn()
  674. Arms = true
  675. elseif Arms == true then
  676. ArmsOff()
  677. Arms = false
  678. end
  679. end
  680. end
  681.  
  682. if key == "" then
  683. if not Head then
  684. if Arms then ArmsOff() Arms = false end
  685. SuicideYes()
  686. Head = true
  687. elseif Head then
  688. SuicideNo()
  689. if Arms then ArmsOn() end
  690. Head = false
  691. end
  692. end
  693.  
  694. if key == "r" then
  695. Reload()
  696. end
  697.  
  698. Blah = true
  699. return
  700. end
  701. end
  702.  
  703. function Selected(Mouse)
  704. Mouse.Icon = "rbxasset://textures\\GunCursor.png"
  705. Mouse.KeyDown:connect(onKeyDown)
  706. Mouse.Button1Down:connect(function()Clicked(Mouse)end)
  707. TName()
  708. if Blah then
  709. Blah = false
  710. if not Arms then
  711. ArmsOn()
  712. Arms = true
  713. end
  714. Blah = true
  715. end
  716. end
  717.  
  718. function Deselected(Mouse)
  719. if Blah then
  720. Blah = false
  721. if Arms then
  722. ArmsOff()
  723. Arms = false
  724. end
  725. Blah = true
  726. end
  727. end
  728.  
  729. function Dead()
  730. for i,v in pairs(Character:GetChildren()) do
  731. pcall(function() v.Anchored = true end)
  732. if v.Name == "Head" then v.Anchored = false v.Velocity = Vector3.new(10,0,10) end
  733. for i,a in pairs(v:GetChildren()) do pcall(function() a.Anchored = true end) end
  734. end
  735. end
  736.  
  737. Character.Humanoid.Died:connect(Dead)
  738. Hopper.Selected:connect(Selected)
  739. Hopper.Deselected:connect(Deselected)
Advertisement
Add Comment
Please, Sign In to add comment