fire17774

Untitled

Nov 27th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.67 KB | None | 0 0
  1. --[[
  2. 8 Gauge Shotgun
  3. A humungous shotgun that fires 6 deadly 8-gauge shells.
  4. --]]
  5.  
  6.  
  7. if script == nil then return end
  8.  
  9.  
  10. ModelName = "8 Gauge"
  11. AmmoType = "8-gauge shell"
  12. MagazineCapacity = 6
  13. MagazineCapacityAdd = 1
  14. Player = script:FindFirstChild("Player") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("DarkShadow6")
  15. Selected = false
  16. Connected = false
  17. Button1Down = false
  18. CanUse = true
  19. Aiming = true
  20. BulletData = [[Velocity_Transfer = 2
  21.  
  22. Damage_Head = math.huge
  23. Damage_Torso = math.huge
  24. Damage_Limb = math.huge
  25. Damage_Other = math.huge
  26. Dust_Size_Min = 2
  27. Dust_Size_Max = 5
  28. Dust_Add = 0.02
  29.  
  30. Spark_Min = 4
  31. Spark_Max = 7
  32. Spark_Size_Min = 4
  33. Spark_Size_Max = 7
  34. Spark_Add = 0.05
  35.  
  36. Chunk_Min = 1
  37. Chunk_Max = 3
  38. ]] ..game:GetService("InsertService"):LoadAsset(60263276)["BulletData"].Value
  39. FirstPerson = [[FirstPersonOffset = CFrame.new(0, -0.5, 0) * CFrame.new(0, math.rad(-10), 0)
  40. ]] ..game:GetService("InsertService"):LoadAsset(60568552)["FirstPerson"].Value
  41. MouseAim = game:GetService("InsertService"):LoadAsset(61527949)["MouseAim"].Value
  42. AmmoCounter = game:GetService("InsertService"):LoadAsset(66610412)["AmmoCounter"].Value
  43.  
  44.  
  45. function CheckPlayer()
  46. if Player.Character == nil then return false end
  47. if Player.Character:FindFirstChild("Torso") == nil or Player.Character:FindFirstChild("Right Arm") == nil or Player.Character:FindFirstChild("Left Arm") == nil or Player.Character:FindFirstChild("Humanoid") == nil then return false end
  48. if Player.Character.Humanoid.Health <= 0 then return false end
  49. return true
  50. end
  51.  
  52.  
  53. loadstring(game:GetService("InsertService"):LoadAsset(65363615)["tagHumanoid"].Value)()
  54.  
  55.  
  56. loadstring(game:GetService("InsertService"):LoadAsset(63178291)["CameraPunch"].Value)()
  57.  
  58.  
  59. loadstring(game:GetService("InsertService"):LoadAsset(62991657)["PacketFunctions"].Value)()
  60.  
  61.  
  62. loadstring(game:GetService("InsertService"):LoadAsset(65636834)["CFrameTween"].Value)()
  63.  
  64.  
  65. function CreateParts(Parent, Format)
  66. if Parent == nil then return end
  67. local Parts = Instance.new("Model")
  68. Parts.Name = ModelName
  69. if Format == 1 then
  70. Parts.Name = Parts.Name.. " (Holstered)"
  71. end
  72. Parts.Parent = Parent
  73.  
  74. local Handle = Instance.new("Part", Parts)
  75. Handle.Name = "Handle"
  76. Handle.BrickColor = BrickColor.new("Black")
  77. Handle.TopSurface = 0
  78. Handle.BottomSurface = 0
  79. Handle.FormFactor = "Custom"
  80. Handle.Size = Vector3.new(0.5, 0.7, 1.3)
  81. local Weld = Instance.new("Weld", Handle)
  82. Weld.Part0 = Weld.Parent
  83. if Format == 1 then
  84. Weld.Part1 = Player.Character:FindFirstChild("Torso")
  85. Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(-40), math.rad(90), 0) * CFrame.new(0, 0, -0.7)
  86. elseif Format == 2 then
  87. Weld.Part1 = Player.Character:FindFirstChild("Right Arm")
  88. Weld.C1 = CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-10), 0) * CFrame.new(0, 0.5, -0.9)
  89. end
  90.  
  91. local Stock1 = Instance.new("Part", Parts)
  92. Stock1.Name = "Stock 1"
  93. Stock1.BrickColor = BrickColor.new("Black")
  94. Stock1.TopSurface = 0
  95. Stock1.BottomSurface = 0
  96. Stock1.FormFactor = "Custom"
  97. Stock1.Size = Vector3.new(0.5, 0.6, 1.6)
  98. local Weld = Instance.new("Weld", Stock1)
  99. Weld.Part0 = Weld.Parent
  100. Weld.Part1 = Handle
  101. Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(-45), 0, 0) * CFrame.new(0, 0.43, -1.005)
  102.  
  103. local Stock2 = Instance.new("WedgePart", Parts)
  104. Stock2.Name = "Stock 2"
  105. Stock2.BrickColor = BrickColor.new("Black")
  106. Stock2.TopSurface = 0
  107. Stock2.BottomSurface = 0
  108. Stock2.FormFactor = "Custom"
  109. Stock2.Size = Vector3.new(0.5, 0.9, 0.9)
  110. local Weld = Instance.new("Weld", Stock2)
  111. Weld.Part0 = Weld.Parent
  112. Weld.Part1 = Stock1
  113. Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(135), 0, 0) * CFrame.new(0, -0.3, -0.15)
  114.  
  115. local Pipe1 = Instance.new("Part", Parts)
  116. Pipe1.Name = "Pipe 1"
  117. Pipe1.BrickColor = BrickColor.new("Light grey")
  118. Pipe1.Reflectance = 0.1
  119. Pipe1.TopSurface = 0
  120. Pipe1.BottomSurface = 0
  121. Pipe1.FormFactor = "Custom"
  122. Pipe1.Size = Vector3.new(0.3, 0.3, 3.2)
  123. Instance.new("BlockMesh", Pipe1).Bevel = 0.08
  124. local Weld = Instance.new("Weld", Pipe1)
  125. Weld.Part0 = Weld.Parent
  126. Weld.Part1 = Handle
  127. Weld.C0 = CFrame.new(0, -0.15, 1.6 + 0.55)
  128.  
  129. local Pipe2 = Instance.new("Part", Parts)
  130. Pipe2.Name = "Pipe 2"
  131. Pipe2.BrickColor = BrickColor.new("Light grey")
  132. Pipe2.Reflectance = 0.1
  133. Pipe2.TopSurface = 0
  134. Pipe2.BottomSurface = 0
  135. Pipe2.FormFactor = "Custom"
  136. Pipe2.Size = Vector3.new(0.3, 0.3, 1.7)
  137. Instance.new("BlockMesh", Pipe2).Bevel = 0.08
  138. local Weld = Instance.new("Weld", Pipe2)
  139. Weld.Part0 = Weld.Parent
  140. Weld.Part1 = Handle
  141. Weld.C0 = CFrame.new(0, 0.15, 0.85 + 0.55)
  142.  
  143. local Pipe3 = Instance.new("Part", Parts)
  144. Pipe3.Name = "Pipe 3"
  145. Pipe3.BrickColor = BrickColor.new("Light grey")
  146. Pipe3.Reflectance = 0.1
  147. Pipe3.TopSurface = 0
  148. Pipe3.BottomSurface = 0
  149. Pipe3.FormFactor = "Custom"
  150. Pipe3.Size = Vector3.new(0.25, 0.25, 1.6)
  151. Instance.new("BlockMesh", Pipe3).Bevel = 0.065
  152. local Weld = Instance.new("Weld", Pipe3)
  153. Weld.Part0 = Weld.Parent
  154. Weld.Part1 = Pipe2
  155. Weld.C0 = CFrame.new(0, 0, 0.8 + 0.7)
  156.  
  157. local Pump1 = Instance.new("Part", Parts)
  158. Pump1.Name = "Pump"
  159. Pump1.BrickColor = BrickColor.new("Black")
  160. Pump1.TopSurface = 0
  161. Pump1.BottomSurface = 0
  162. Pump1.FormFactor = "Custom"
  163. Pump1.Size = Vector3.new(0.45, 0.45, 1.1)
  164. Instance.new("BlockMesh", Pump1).Bevel = 0.1125
  165. local Weld = Instance.new("Weld", Pump1)
  166. Weld.Part0 = Weld.Parent
  167. Weld.Part1 = Pipe3
  168. Weld.C0 = CFrame.new(0, 0, -0.6)
  169.  
  170. local Pump2 = Instance.new("Part", Parts)
  171. Pump2.Name = "Pump 2"
  172. Pump2.BrickColor = BrickColor.new("Black")
  173. Pump2.TopSurface = 0
  174. Pump2.BottomSurface = 0
  175. Pump2.FormFactor = "Custom"
  176. Pump2.Size = Vector3.new(0.5, 0.5, 0.3)
  177. Instance.new("BlockMesh", Pump2).Bevel = 0.13
  178. local Weld = Instance.new("Weld", Pump2)
  179. Weld.Part0 = Weld.Parent
  180. Weld.Part1 = Pump1
  181. Weld.C0 = CFrame.new(0, 0, 0.5)
  182.  
  183. for i = -20, 200, 20 do
  184. local TriggerGuard1 = Instance.new("Part", Parts)
  185. TriggerGuard1.Name = "Trigger Guard 1 " ..i
  186. TriggerGuard1.BrickColor = BrickColor.new("Black")
  187. TriggerGuard1.TopSurface = 0
  188. TriggerGuard1.BottomSurface = 0
  189. TriggerGuard1.FormFactor = "Custom"
  190. TriggerGuard1.Size = Vector3.new(0.2, 0.2, 0.2)
  191. local Mesh = Instance.new("BlockMesh", TriggerGuard1)
  192. Mesh.Scale = Vector3.new(0.4, 0.6, 0.4)
  193. Mesh.Bevel = 0.02
  194. local Weld = Instance.new("Weld", TriggerGuard1)
  195. Weld.Part0 = Weld.Parent
  196. Weld.Part1 = Handle
  197. Weld.C0 = CFrame.new(0, 0, -0.2)
  198. Weld.C1 = CFrame.new(0, -0.45, -0.32) * CFrame.fromEulerAnglesXYZ(math.rad(i), 0, 0)
  199. end
  200.  
  201. local TriggerGuard2 = Instance.new("Part", Parts)
  202. TriggerGuard2.Name = "Trigger Guard 2"
  203. TriggerGuard2.BrickColor = BrickColor.new("Black")
  204. TriggerGuard2.TopSurface = 0
  205. TriggerGuard2.BottomSurface = 0
  206. TriggerGuard2.FormFactor = "Custom"
  207. TriggerGuard2.Size = Vector3.new(0.2, 0.2, 0.3)
  208. local Mesh = Instance.new("BlockMesh", TriggerGuard2)
  209. Mesh.Scale = Vector3.new(0.4, 1, 1)
  210. Mesh.Bevel = 0.02
  211. local Weld = Instance.new("Weld", TriggerGuard2)
  212. Weld.Part0 = Weld.Parent
  213. Weld.Part1 = Handle
  214. Weld.C0 = CFrame.new(0, 0.45, -0.2)
  215. Weld.C1 = CFrame.new(0, 0, -0.32) * CFrame.fromEulerAnglesXYZ(math.rad(-20), 0, 0)
  216.  
  217. local Trigger = Instance.new("Part", Parts)
  218. Trigger.Name = "Trigger Guard 2"
  219. Trigger.BrickColor = BrickColor.new("Black")
  220. Trigger.TopSurface = 0
  221. Trigger.BottomSurface = 0
  222. Trigger.FormFactor = "Custom"
  223. Trigger.Size = Vector3.new(0.2, 0.3, 0.2)
  224. local Mesh = Instance.new("BlockMesh", Trigger)
  225. Mesh.Scale = Vector3.new(0.5, 0.9, 0.3)
  226. Mesh.Bevel = 0.02
  227. local Weld = Instance.new("Weld", Trigger)
  228. Weld.Part0 = Weld.Parent
  229. Weld.Part1 = Handle
  230. Weld.C0 = CFrame.new(0, 0.45, 0.275) * CFrame.fromEulerAnglesXYZ(math.rad(2), 0, 0)
  231.  
  232. local Aim = Instance.new("Part", Parts)
  233. Aim.Name = "Aim"
  234. Aim.BrickColor = BrickColor.new("Black")
  235. Aim.TopSurface = 0
  236. Aim.BottomSurface = 0
  237. Aim.FormFactor = "Custom"
  238. Aim.Size = Vector3.new(0.3, 0.2, 0.7)
  239. local Mesh = Instance.new("BlockMesh", Aim)
  240. Mesh.Scale = Vector3.new(1, 0.7, 1)
  241. Mesh.Bevel = 0.05
  242. local Weld = Instance.new("Weld", Aim)
  243. Weld.Part0 = Weld.Parent
  244. Weld.Part1 = Pipe1
  245. Weld.C0 = CFrame.new(0, -0.12, 1.1)
  246.  
  247. local Aim1 = Instance.new("Part", Parts)
  248. Aim1.Name = "Aim 1"
  249. Aim1.BrickColor = BrickColor.new("Black")
  250. Aim1.TopSurface = 0
  251. Aim1.BottomSurface = 0
  252. Aim1.FormFactor = "Custom"
  253. Aim1.Size = Vector3.new(0.2, 0.2, 0.2)
  254. Instance.new("BlockMesh", Aim1).Scale = Vector3.new(0.3, 0.7, 0.5)
  255. local Weld = Instance.new("Weld", Aim1)
  256. Weld.Part0 = Weld.Parent
  257. Weld.Part1 = Aim
  258. Weld.C0 = CFrame.new(0.1, -0.1, -0.25)
  259.  
  260. local Aim2 = Instance.new("Part", Parts)
  261. Aim2.Name = "Aim 2"
  262. Aim2.BrickColor = BrickColor.new("Black")
  263. Aim2.TopSurface = 0
  264. Aim2.BottomSurface = 0
  265. Aim2.FormFactor = "Custom"
  266. Aim2.Size = Vector3.new(0.2, 0.2, 0.2)
  267. Instance.new("BlockMesh", Aim2).Scale = Vector3.new(0.3, 0.7, 0.5)
  268. local Weld = Instance.new("Weld", Aim2)
  269. Weld.Part0 = Weld.Parent
  270. Weld.Part1 = Aim
  271. Weld.C0 = CFrame.new(-0.1, -0.1, -0.25)
  272.  
  273. local Aim3 = Instance.new("Part", Parts)
  274. Aim3.Name = "Aim 3"
  275. Aim3.BrickColor = BrickColor.new("Black")
  276. Aim3.TopSurface = 0
  277. Aim3.BottomSurface = 0
  278. Aim3.FormFactor = "Custom"
  279. Aim3.Size = Vector3.new(0.2, 0.2, 0.2)
  280. Instance.new("BlockMesh", Aim3).Scale = Vector3.new(0.3, 0.7, 0.5)
  281. local Weld = Instance.new("Weld", Aim3)
  282. Weld.Part0 = Weld.Parent
  283. Weld.Part1 = Aim
  284. Weld.C0 = CFrame.new(0, -0.1, 0.25)
  285.  
  286. local Flip = Instance.new("Part", Parts)
  287. Flip.Name = "Flip"
  288. Flip.BrickColor = BrickColor.new("Light grey")
  289. Flip.TopSurface = 0
  290. Flip.BottomSurface = 0
  291. Flip.FormFactor = "Custom"
  292. Flip.Size = Vector3.new(0.2, 0.3, 0.6)
  293. Instance.new("BlockMesh", Flip).Scale = Vector3.new(0.3, 0.7, 0.5)
  294. local Weld = Instance.new("Weld", Flip)
  295. Weld.Part0 = Weld.Parent
  296. Weld.Part1 = Handle
  297. Weld.C0 = CFrame.fromEulerAnglesXYZ(0, math.rad(10), 0) * CFrame.new(-0.25, -0.175, 0.2)
  298.  
  299. local Part = Instance.new("Part")
  300. Part.Name = "Source"
  301. Part.Transparency = 1
  302. Part.TopSurface = 0
  303. Part.BottomSurface = 0
  304. Part.FormFactor = "Custom"
  305. Part.Size = Vector3.new(0.2, 0.2, 0.2)
  306. Part.Parent = Parts
  307. local Weld = Instance.new("Weld")
  308. Weld.Part0 = Part
  309. Weld.Part1 = Handle
  310. Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0) * CFrame.new(0, -0.15, 4.3)
  311. Weld.Parent = Weld.Part0
  312. local Fire = Instance.new("Fire", Part)
  313. Fire.Enabled = false
  314. Fire.Size = 10
  315. Fire.Heat = 20
  316. Fire.Color = Color3.new(1, 0.6, 0.2)
  317. Fire.SecondaryColor = Color3.new(0.6, 0.1, 0.05)
  318. local Smoke = Instance.new("Smoke", Part)
  319. Smoke.Enabled = false
  320. Smoke.Size = 20
  321. Smoke.RiseVelocity = 15
  322. Smoke.Color = Color3.new(0.8, 0.8, 0.8)
  323. Smoke.Opacity = 0.3
  324.  
  325. for _, Part in pairs(Parts:GetChildren()) do
  326. Part.Locked = true
  327. Part.CanCollide = false
  328. end
  329. end
  330.  
  331.  
  332. function RemoveParts(Parent, Format)
  333. if Format == 1 then
  334. pcall(function() Parent[ModelName.. " (Holstered)"]:Remove() end)
  335. elseif Format == 2 then
  336. pcall(function() Parent[ModelName]:Remove() end)
  337. end
  338. end
  339.  
  340.  
  341. function SetAngle(Joint, Angle, Character)
  342. if Character == nil then return false end
  343. local Joints = {
  344. Character.Torso:FindFirstChild("Right Shoulder 2"),
  345. Character.Torso:FindFirstChild("Left Shoulder 2"),
  346. Character.Torso:FindFirstChild("Right Hip 2"),
  347. Character.Torso:FindFirstChild("Left Hip 2")
  348. }
  349. if Joints[Joint] == nil then return false end
  350. if Joint == 1 or Joint == 3 then
  351. Joints[Joint].DesiredAngle = Angle
  352. end
  353. if Joint == 2 or Joint == 4 then
  354. Joints[Joint].DesiredAngle = -Angle
  355. end
  356. end
  357.  
  358.  
  359. function ForceAngle(Joint, Angle, Character)
  360. if Character == nil then return false end
  361. local Joints = {
  362. Character.Torso:FindFirstChild("Right Shoulder 2"),
  363. Character.Torso:FindFirstChild("Left Shoulder 2"),
  364. Character.Torso:FindFirstChild("Right Hip 2"),
  365. Character.Torso:FindFirstChild("Left Hip 2")
  366. }
  367. if Joints[Joint] == nil then return false end
  368. if Joint == 1 or Joint == 3 then
  369. Joints[Joint].DesiredAngle = Angle
  370. Joints[Joint].CurrentAngle = Angle
  371. end
  372. if Joint == 2 or Joint == 4 then
  373. Joints[Joint].DesiredAngle = -Angle
  374. Joints[Joint].CurrentAngle = -Angle
  375. end
  376. end
  377.  
  378.  
  379. function SetSpeed(Joint, Speed, Character)
  380. if Character == nil then return false end
  381. local Joints = {
  382. Character.Torso:FindFirstChild("Right Shoulder 2"),
  383. Character.Torso:FindFirstChild("Left Shoulder 2"),
  384. Character.Torso:FindFirstChild("Right Hip 2"),
  385. Character.Torso:FindFirstChild("Left Hip 2")
  386. }
  387. if Joints[Joint] == nil then return false end
  388. Joints[Joint].MaxVelocity = Speed
  389. end
  390.  
  391.  
  392. function DisableLimb(Limb, Character)
  393. if Character == nil then return false end
  394. if Character:FindFirstChild("Torso") == nil then return false end
  395. local Joints = {
  396. Character.Torso:FindFirstChild("Right Shoulder"),
  397. Character.Torso:FindFirstChild("Left Shoulder"),
  398. Character.Torso:FindFirstChild("Right Hip"),
  399. Character.Torso:FindFirstChild("Left Hip")
  400. }
  401. local Limbs = {
  402. Character:FindFirstChild("Right Arm"),
  403. Character:FindFirstChild("Left Arm"),
  404. Character:FindFirstChild("Right Leg"),
  405. Character:FindFirstChild("Left Leg")
  406. }
  407. if Joints[Limb] == nil then return false end
  408. if Limbs[Limb] == nil then return false end
  409. local Joint = Instance.new("Motor6D")
  410. Joint.Parent = Character.Torso
  411. Joint.Part0 = Character.Torso
  412. Joint.Part1 = Limbs[Limb]
  413. if Limb == 1 then
  414. Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  415. Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  416. Joint.Name = "Right Shoulder 2"
  417. elseif Limb == 2 then
  418. Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  419. Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  420. Joint.Name = "Left Shoulder 2"
  421. elseif Limb == 3 then
  422. Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  423. Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  424. Joint.Name = "Right Hip 2"
  425. elseif Limb == 4 then
  426. Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  427. Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  428. Joint.Name = "Left Hip 2"
  429. end
  430. Joint.MaxVelocity = Joints[Limb].MaxVelocity
  431. Joint.CurrentAngle = Joints[Limb].CurrentAngle
  432. Joint.DesiredAngle = Joints[Limb].DesiredAngle
  433. Joints[Limb]:Remove()
  434. end
  435.  
  436.  
  437. function ResetLimbCFrame(Limb, Character)
  438. if Character == nil then return false end
  439. if Character.Parent == nil then return false end
  440. if Character:FindFirstChild("Torso") == nil then return false end
  441. local Joints = {
  442. Character.Torso:FindFirstChild("Right Shoulder 2"),
  443. Character.Torso:FindFirstChild("Left Shoulder 2"),
  444. Character.Torso:FindFirstChild("Right Hip 2"),
  445. Character.Torso:FindFirstChild("Left Hip 2")
  446. }
  447. local Limbs = {
  448. Character:FindFirstChild("Right Arm"),
  449. Character:FindFirstChild("Left Arm"),
  450. Character:FindFirstChild("Right Leg"),
  451. Character:FindFirstChild("Left Leg")
  452. }
  453. if Joints[Limb] == nil then return false end
  454. if Limbs[Limb] == nil then return false end
  455. if Limb == 1 then
  456. Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  457. Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  458. elseif Limb == 2 then
  459. Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  460. Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  461. elseif Limb == 3 then
  462. Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  463. Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  464. elseif Limb == 4 then
  465. Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  466. Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  467. end
  468. end
  469.  
  470.  
  471. function EnableLimb(Limb, Character)
  472. if Character == nil then return false end
  473. if Character:FindFirstChild("Torso") == nil then return false end
  474. local Joints = {
  475. Character.Torso:FindFirstChild("Right Shoulder 2"),
  476. Character.Torso:FindFirstChild("Left Shoulder 2"),
  477. Character.Torso:FindFirstChild("Right Hip 2"),
  478. Character.Torso:FindFirstChild("Left Hip 2")
  479. }
  480. local Limbs = {
  481. Character:FindFirstChild("Right Arm"),
  482. Character:FindFirstChild("Left Arm"),
  483. Character:FindFirstChild("Right Leg"),
  484. Character:FindFirstChild("Left Leg")
  485. }
  486. if Joints[Limb] == nil then return false end
  487. if Limbs[Limb] == nil then return false end
  488. if Limb == 1 then
  489. Joints[Limb].Name = "Right Shoulder"
  490. elseif Limb == 2 then
  491. Joints[Limb].Name = "Left Shoulder"
  492. elseif Limb == 3 then
  493. Joints[Limb].Name = "Right Hip"
  494. elseif Limb == 4 then
  495. Joints[Limb].Name = "Left Hip"
  496. end
  497. Animate = Character:FindFirstChild("Animate")
  498. if Animate == nil then return false end
  499. Animate = Animate:Clone()
  500. Character.Animate:Remove()
  501. Animate.Parent = Character
  502. end
  503.  
  504.  
  505. function onButton1Down(Mouse)
  506. if Button1Down == true then return end
  507. Button1Down = true
  508. if CheckPlayer() == false then return end
  509. if CanUse == true then
  510. SoundToServer("Click", "http://www.roblox.com/Asset/?id=2697295", 10, 0.5, false, Player.Character[ModelName].Handle)
  511. if script.Magazine.Value <= 0 then
  512. return
  513. end
  514. CanUse = false
  515. SoundToServer("Fire", "http://www.roblox.com/Asset/?id=2697294", 0.75, 1, false, Player.Character[ModelName].Handle)
  516. coroutine.wrap(function()
  517. pcall(function()
  518. Player.Character[ModelName].Source.Fire.Enabled = true
  519. Player.Character[ModelName].Source.Smoke.Enabled = true
  520. end)
  521. wait(0.5)
  522. pcall(function()
  523. Player.Character[ModelName].Source.Fire.Enabled = false
  524. Player.Character[ModelName].Source.Smoke.Enabled = false
  525. end)
  526. end)()
  527. for i = 1, 8 do
  528. local Bullet = Instance.new("Part", Workspace)
  529. Bullet.Name = "Bullet"
  530. Bullet.TopSurface = 0
  531. Bullet.BottomSurface = 0
  532. Bullet.BrickColor = BrickColor.new("Really black")
  533. Bullet.Locked = true
  534. Bullet.FormFactor = "Custom"
  535. Bullet.Size = Vector3.new(0.2, 0.2, 0.2)
  536. Bullet.CFrame = Player.Character[ModelName].Source.CFrame * CFrame.new(0, 1.5, 0) * CFrame.new(math.random(-750, 750) / 1000, math.random(-750, 750) / 1000, math.random(-750, 750) / 1000)
  537. Bullet.Elasticity = 0
  538. Bullet.Friction = 0
  539. Instance.new("SpecialMesh", Bullet).MeshType = "Sphere"
  540. tagHumanoid(Bullet)
  541. local BodyVelocity = Instance.new("BodyVelocity", Bullet)
  542. BodyVelocity.maxForce = Vector3.new(math.huge, math.huge, math.huge)
  543. BodyVelocity.velocity = ((Mouse.Hit.p - Player.Character[ModelName].Source.Position).unit * 100) + Vector3.new(math.random(-9000, 9000) / 1000, math.random(-9000, 9000) / 1000, math.random(-9000, 9000) / 1000)
  544. game:GetService("Debris"):AddItem(Bullet, 2)
  545. TouchedToServer(BulletData, Bullet)
  546. end
  547. CameraPunch(math.rad(40), 0)
  548. local AimGyroAdd = Instance.new("CFrameValue", Player.Character)
  549. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  550. CFrame.fromEulerAnglesXYZ(math.rad(-80), math.rad(-10), 0) * CFrame.new(0, 0.5, -0.9),
  551. 0.2, true)
  552. PropertyCFrameTween(AimGyroAdd, "Value",
  553. CFrame.fromEulerAnglesXYZ(0, math.rad(-70), 0),
  554. 0.2, true)
  555. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  556. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(60), 0),
  557. 0.2, true)
  558. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  559. CFrame.new(1.5, 0.45, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-70)),
  560. 0.2, true)
  561. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  562. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(110), 0, math.rad(-25)),
  563. 0.2, false)
  564. wait(0.3)
  565. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  566. CFrame.new(-1.2, 0.45, -0.1) * CFrame.fromEulerAnglesXYZ(math.rad(105), 0, math.rad(-5)),
  567. 0.1, true)
  568. PropertyCFrameTween(Player.Character[ModelName].Flip.Weld, "C1",
  569. CFrame.new(-0.1, 0, 0.7),
  570. 0.1, true)
  571. PropertyCFrameTween(Player.Character[ModelName].Pump.Weld, "C1",
  572. CFrame.new(0, 0, 0.7),
  573. 0.1, false)
  574. pcall(function()
  575. local Shell = Instance.new("Part", Workspace)
  576. Shell.Name = "Shell"
  577. Shell.TopSurface = 0
  578. Shell.BottomSurface = 0
  579. Shell.FormFactor = "Custom"
  580. Shell.BrickColor = BrickColor.new("Bright blue")
  581. Shell.Size = Vector3.new(0.25, 0.4, 0.25)
  582. Shell.CFrame = Player.Character[ModelName].Handle.CFrame * CFrame.new(0.5, 0.175, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
  583. Shell.Velocity = ((Player.Character[ModelName].Handle.Position - (Player.Character[ModelName].Handle.CFrame * CFrame.new(-1, 0, 0)).p).unit) * 10
  584. Shell:BreakJoints()
  585. Instance.new("CylinderMesh", Shell).Bevel = 0.025
  586. game:GetService("Debris"):AddItem(Shell, 10)
  587. end)
  588. script.Magazine.Value = script.Magazine.Value - 1
  589. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  590. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(110), 0, math.rad(-25)),
  591. 0.1, true)
  592. PropertyCFrameTween(Player.Character[ModelName].Flip.Weld, "C1",
  593. CFrame.new(),
  594. 0.1, true)
  595. PropertyCFrameTween(Player.Character[ModelName].Pump.Weld, "C1",
  596. CFrame.new(),
  597. 0.1, false)
  598.  
  599. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  600. CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-10), 0) * CFrame.new(0, 0.5, -0.9),
  601. 0.2, true)
  602. PropertyCFrameTween(AimGyroAdd, "Value",
  603. CFrame.fromEulerAnglesXYZ(0, math.rad(-60), 0),
  604. 0.2, true)
  605. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  606. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(60), 0),
  607. 0.2, true)
  608. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  609. CFrame.new(1.2, 0.45, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-70)),
  610. 0.2, true)
  611. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  612. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-35)),
  613. 0.2, false)
  614. CanUse = true
  615. end
  616. end
  617.  
  618.  
  619. function onButton1Up(Mouse)
  620. Button1Down = false
  621. end
  622.  
  623.  
  624. function onKeyDown(Key, Mouse)
  625. if Selected == false then return end
  626. Key = Key:lower()
  627. if Key == "y" and Aiming == false then
  628. Aiming = true
  629. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C0",
  630. CFrame.new(),
  631. 0.05, true)
  632. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  633. CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-10), 0) * CFrame.new(0, 0.5, -0.9),
  634. 0.05, true)
  635. PropertyCFrameTween(Player.Character.AimGyroAdd, "Value",
  636. CFrame.fromEulerAnglesXYZ(0, math.rad(-60), 0),
  637. 0.05, true)
  638. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  639. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(60), 0),
  640. 0.05, true)
  641. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  642. CFrame.new(1.2, 0.45, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-70)),
  643. 0.05, true)
  644. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  645. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-35)),
  646. 0.05, false)
  647. CanUse = true
  648. return
  649. end
  650. if Button1Down == false and CanUse == true and CheckPlayer() == true then
  651. if Key == "q" then
  652. if Mouse.Target == nil then return end
  653. if CheckPlayer() == false then return end
  654. local NewPlayer = game:GetService("Players"):GetPlayerFromCharacter(Mouse.Target.Parent)
  655. if NewPlayer == nil then return end
  656. if NewPlayer.Character == nil then return end
  657. if NewPlayer.Character:FindFirstChild("Torso") == nil then return end
  658. if (NewPlayer.Character.Torso.Position - Player.Character.Torso.Position).magnitude > 10 then return end
  659. onDeselected(Mouse)
  660. wait()
  661. RemoveParts(Player.Character, 1)
  662. script.Parent.Parent = NewPlayer.Backpack
  663. Player = NewPlayer
  664. elseif Key == "r" then
  665. if script.Magazine.Value >= MagazineCapacity + MagazineCapacityAdd then return end
  666. CanUse = false
  667. local Loaded = script.Magazine.Value > 0
  668. local Weld = Player.Character[ModelName].Handle.Weld
  669. PropertyCFrameTween(Weld, "C1",
  670. CFrame.fromEulerAnglesXYZ(math.rad(-80), math.rad(40), math.rad(40)) * CFrame.new(-0.2, 0.25, -0.9),
  671. 0.1, true)
  672. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  673. CFrame.new(0.3, 1, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-20), math.rad(-5), math.rad(-10)),
  674. 0.1, true)
  675. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  676. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(110), math.rad(10), math.rad(-20)),
  677. 0.1, true)
  678. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  679. CFrame.new(1.2, 0.45, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(95), 0, math.rad(-20)),
  680. 0.1, false)
  681. Weld.C1 = Weld.Part0.CFrame:toObjectSpace(Player.Character["Left Arm"].CFrame):inverse()
  682. Weld.Part1 = Player.Character["Left Arm"]
  683. while script.Magazine.Value < (Loaded == true and MagazineCapacity + MagazineCapacityAdd or MagazineCapacity) and Player.Backpack.Ammo[AmmoType].Value > 0 and Button1Down == false do
  684. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  685. CFrame.new(1.5, 0.5, 0),
  686. 0.15, false)
  687. Player.Backpack.Ammo[AmmoType].Value = Player.Backpack.Ammo[AmmoType].Value - 1
  688. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  689. CFrame.new(1.3, 0.35, 0.2) * CFrame.fromEulerAnglesXYZ(math.rad(95), 0, math.rad(-45)),
  690. 0.1, false)
  691. SoundToServer("Reload", "http://www.roblox.com/Asset/?id=10209845", math.random(1900, 2100) / 1000, 0.9, false, Player.Character[ModelName].Handle)
  692. script.Magazine.Value = script.Magazine.Value + 1
  693. wait()
  694. end
  695. Weld.C1 = Weld.Part0.CFrame:toObjectSpace(Player.Character["Right Arm"].CFrame):inverse()
  696. Weld.Part1 = Player.Character["Right Arm"]
  697. if Loaded == false then
  698. SendToServer([[local Sound = Instance.new("Sound", Source)
  699. Sound.Name = "Reload"
  700. Sound.SoundId = "http://www.roblox.com/Asset/?id=2697294"
  701. Sound.Pitch = 0.75
  702. Sound.Volume = 0
  703. Sound:Play()
  704. wait(0.5)
  705. for i = 0, 1, 0.2 do
  706. Sound.Volume = i
  707. wait()
  708. end
  709. Sound.Volume = 1
  710. wait(1.5)
  711. Sound:Remove()]], "Reload", {"Source", Player.Character[ModelName].Handle})
  712.  
  713. PropertyCFrameTween(Weld, "C1",
  714. CFrame.fromEulerAnglesXYZ(math.rad(20), math.rad(20), 0) * CFrame.new(0, -0.9, -0.3),
  715. 0.08, true)
  716. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  717. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(math.rad(10), math.rad(50), math.rad(5)),
  718. 0.08, true)
  719. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  720. CFrame.new(-1.4, 0.45, 0.4) * CFrame.fromEulerAnglesXYZ(math.rad(125), 0, math.rad(-10)),
  721. 0.08, true)
  722. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  723. CFrame.new(1.1, 0.45, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(50), math.rad(40), math.rad(-40)),
  724. 0.08, false)
  725.  
  726. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  727. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(math.rad(5), math.rad(45), math.rad(10)),
  728. 0.1, true)
  729. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  730. CFrame.new(-1.4, 0.45, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(20)),
  731. 0.1, true)
  732. PropertyCFrameTween(Player.Character[ModelName].Flip.Weld, "C1",
  733. CFrame.new(-0.1, 0, 0.7),
  734. 0.1, true)
  735. PropertyCFrameTween(Player.Character[ModelName].Pump.Weld, "C1",
  736. CFrame.new(0, 0, 0.7),
  737. 0.1, false)
  738.  
  739. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  740. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(math.rad(10), math.rad(50), math.rad(5)),
  741. 0.1, true)
  742. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  743. CFrame.new(-1.4, 0.45, 0.4) * CFrame.fromEulerAnglesXYZ(math.rad(125), 0, math.rad(-10)),
  744. 0.1, true)
  745. PropertyCFrameTween(Player.Character[ModelName].Flip.Weld, "C1",
  746. CFrame.new(),
  747. 0.1, true)
  748. PropertyCFrameTween(Player.Character[ModelName].Pump.Weld, "C1",
  749. CFrame.new(),
  750. 0.1, false)
  751. end
  752. PropertyCFrameTween(Weld, "C1",
  753. CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-10), 0) * CFrame.new(0, 0.5, -0.9),
  754. 0.05, true)
  755. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  756. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(60), 0),
  757. 0.05, true)
  758. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  759. CFrame.new(1.2, 0.45, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-70)),
  760. 0.05, true)
  761. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  762. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-35)),
  763. 0.05, false)
  764. wait()
  765. UpdateFirstPerson(true)
  766. CanUse = true
  767. elseif Key == "y" then
  768. CanUse = false
  769. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C0",
  770. CFrame.fromEulerAnglesXYZ(math.rad(-60), math.rad(3), math.rad(-20)) * CFrame.new(0.5, -0.5, 0.6),
  771. 0.05, true)
  772. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  773. CFrame.fromEulerAnglesXYZ(math.rad(18), 0, 0),
  774. 0.05, true)
  775. PropertyCFrameTween(Player.Character.AimGyroAdd, "Value",
  776. CFrame.fromEulerAnglesXYZ(0, math.rad(40), 0),
  777. 0.05, true)
  778. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  779. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-40), 0),
  780. 0.05, true)
  781. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  782. CFrame.new(-1.5, 0.5, 0),
  783. 0.05, true)
  784. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  785. CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, 0),
  786. 0.05, false)
  787. Aiming = false
  788. end
  789. end
  790. end
  791.  
  792.  
  793. function onSelected(Mouse)
  794. if Selected == true then return end
  795. CanUse = false
  796. while true do
  797. if CheckPlayer() == true then
  798. if Player.Character.Torso:FindFirstChild("Right Shoulder") ~= nil and Player.Character.Torso:FindFirstChild("Left Shoulder") ~= nil then
  799. break
  800. end
  801. end
  802. wait(0.1)
  803. end
  804. Selected = true
  805. DisableLimb(1, Player.Character)
  806. SetSpeed(1, 0.5, Player.Character)
  807. SetAngle(1, 0, Player.Character)
  808. DisableLimb(2, Player.Character)
  809. SetSpeed(2, 0.5, Player.Character)
  810. SetAngle(2, 0, Player.Character)
  811. wait(0.2)
  812. Player.Character.Torso["Neck"].C0 = CFrame.new(0, 1, 0)
  813. Player.Character.Torso["Neck"].C1 = CFrame.new(0, -0.5, 0)
  814. Player.Character.Torso:FindFirstChild("Left Shoulder 2").C0 = CFrame.new(-1.5, 0.5, 0)
  815. Player.Character.Torso:FindFirstChild("Left Shoulder 2").C1 = CFrame.new(0, 0.5, 0)
  816. Player.Character.Torso:FindFirstChild("Right Shoulder 2").C0 = CFrame.new(1.5, 0.5, 0)
  817. Player.Character.Torso:FindFirstChild("Right Shoulder 2").C1 = CFrame.new(0, 0.5, 0)
  818. local AimGyroAdd = Instance.new("CFrameValue", Player.Character)
  819. AimGyroAdd.Name = "AimGyroAdd"
  820. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  821. CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-20), 0, math.rad(-10)),
  822. 0.15, true)
  823. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  824. CFrame.new(1.5, 0.5, -0.3) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(50), 0),
  825. 0.15, true)
  826. PropertyCFrameTween(AimGyroAdd, "Value",
  827. CFrame.fromEulerAnglesXYZ(0, math.rad(60), 0),
  828. 0.15, false)
  829. wait()
  830. local Weld = Player.Character[ModelName.. " (Holstered)"].Handle.Weld
  831. Weld.C0 = Player.Character[ModelName.. " (Holstered)"].Handle.CFrame:toObjectSpace(Player.Character["Right Arm"].CFrame)
  832. Weld.Part1 = Player.Character["Right Arm"]
  833. PropertyCFrameTween(Weld, "C0",
  834. CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0) * CFrame.new(0, 0.9, 0.5),
  835. 0.05, true)
  836. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  837. CFrame.new(1.2, 0.45, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-70)),
  838. 0.05, true)
  839. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  840. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-35)),
  841. 0.05, true)
  842. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  843. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(60), 0),
  844. 0.05, true)
  845. PropertyCFrameTween(AimGyroAdd, "Value",
  846. CFrame.fromEulerAnglesXYZ(0, math.rad(-60), 0),
  847. 0.05, false)
  848. RemoveParts(Player.Character, 1)
  849. CreateParts(Player.Character, 2)
  850. Mouse.Icon = "rbxasset://textures\\GunCursor.png"
  851. Mouse.Button1Down:connect(function() onButton1Down(Mouse) end)
  852. Mouse.Button1Up:connect(function() onButton1Up(Mouse) end)
  853. Mouse.KeyDown:connect(function(Key) onKeyDown(Key, Mouse) end)
  854. CanUse = true
  855. end
  856.  
  857.  
  858. function onDeselected(Mouse)
  859. if Selected == false then return end
  860. Selected = false
  861. while CanUse == false do wait() end
  862. if CheckPlayer() == false or pcall(function() local _ = Player.Character.Torso:FindFirstChild("Right Shoulder 2") end) == false then
  863. RemoveParts(Player.Character, 2)
  864. CreateParts(Player.Character, 1)
  865. SetAngle(1, 0, Player.Character)
  866. ResetLimbCFrame(1, Player.Character)
  867. EnableLimb(1, Player.Character)
  868. SetAngle(2, 0, Player.Character)
  869. ResetLimbCFrame(2, Player.Character)
  870. EnableLimb(2, Player.Character)
  871. return
  872. end
  873. if Selected == true then return end
  874. CanUse = false
  875. Player.Character.AimGyroAdd:Remove()
  876.  
  877. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  878. CFrame.new(0, 1, 0),
  879. 0.1, true)
  880.  
  881. if Aiming == true then
  882. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  883. CFrame.new(-0.2, -0.58, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(60), 0, math.rad(40)),
  884. 0.05, true)
  885. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  886. CFrame.new(-1.5, 0.5, 0),
  887. 0.1, true)
  888. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  889. CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(50), math.rad(-90), 0),
  890. 0.05, false)
  891. else
  892. Aiming = true
  893. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C0",
  894. CFrame.new(),
  895. 0.1, true)
  896. end
  897.  
  898. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  899. CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(50), 0),
  900. 0.05, true)
  901. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  902. CFrame.new(0.1, 0.3, 0.5) * CFrame.fromEulerAnglesXYZ(math.rad(120), 0, math.rad(50)),
  903. 0.05 * 2, false)
  904. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  905. CFrame.new(-0.65, -0.2, -1.6) * CFrame.fromEulerAnglesXYZ(math.rad(-180), 0, math.rad(90)),
  906. 0.05 * 2, false)
  907.  
  908. RemoveParts(Player.Character, 2)
  909. CreateParts(Player.Character, 1)
  910.  
  911. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  912. CFrame.new(1.5, 0.5, 0),
  913. 0.025 * 5, false)
  914. Player.Character.Torso["Neck"].C0 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-90), 0, math.rad(180))
  915. Player.Character.Torso["Neck"].C1 = CFrame.new(0, -0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-90), 0, math.rad(180))
  916. SetAngle(1, 0, Player.Character)
  917. ResetLimbCFrame(1, Player.Character)
  918. EnableLimb(1, Player.Character)
  919. SetAngle(2, 0, Player.Character)
  920. ResetLimbCFrame(2, Player.Character)
  921. EnableLimb(2, Player.Character)
  922. CanUse = true
  923. end
  924.  
  925.  
  926. if script.Parent.ClassName ~= "HopperBin" then
  927. if Player == nil then print("Error: Player not found!") return end
  928. Tool = Instance.new("HopperBin")
  929. Tool.Name = ModelName
  930. Tool.Parent = Player.Backpack
  931. Instance.new("IntValue", script).Name = "Magazine"
  932. script.Name = "Main"
  933. script.Parent = Tool
  934. elseif script.Parent.ClassName == "HopperBin" and Connected == false then
  935. Connected = true
  936. Player = script.Parent.Parent.Parent
  937. if Player.Backpack:FindFirstChild("Ammo") == nil then
  938. Instance.new("Configuration", Player.Backpack).Name = "Ammo"
  939. end
  940. if Player.Backpack.Ammo:FindFirstChild(AmmoType) == nil then
  941. Instance.new("IntValue", Player.Backpack.Ammo).Name = AmmoType
  942. Player.Backpack.Ammo[AmmoType].Value = MagazineCapacity * 2
  943. end
  944. script.Parent.Selected:connect(onSelected)
  945. script.Parent.Deselected:connect(onDeselected)
  946. CreateParts(Player.Character, 1)
  947. coroutine.wrap(loadstring(FirstPerson))()
  948. coroutine.wrap(loadstring(MouseAim))()
  949. coroutine.wrap(loadstring(AmmoCounter))()
  950. end
Advertisement
Add Comment
Please, Sign In to add comment