Advertisement
tallzack145

L96A1 (non local)

Sep 20th, 2012
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 75.12 KB | None | 0 0
  1. --MADE BY OneLegend (NOT THE SCRIPT) Thanks to CyberFromLU for letting me Publish! REGULAR SCIRPT: Go to line 3 and put your name where it says "YOUR NAME HERE"
  2. -----------------------------------------------------------------------------------------------------------------------------------
  3. Player = script:FindFirstChild("Player") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("YOURNAMEHERE")
  4. Name = "L96A1"
  5. MC = BrickColor.new("Black")
  6. DC = BrickColor.new("Black")
  7. GC = BrickColor.new("Medium green")
  8. BC = BrickColor.new("Dark stone grey")
  9. MR = 0
  10. GR = 0
  11. HP = true
  12. selected = false
  13. canDual = false
  14. dual = false
  15. Button1Down = false
  16. damage = 95
  17. canFire = true
  18. canFire2 = false
  19. readyTime = 1.8
  20. automatic = false
  21. burst = false
  22. burstCount = 0
  23. burstCountMax = 2
  24. canSilence = true
  25. silenced = false
  26. canZoom = true
  27. zoom = false
  28. switchToSingle = true
  29. switchToBurst = true
  30. switchToAutomatic = true
  31.  
  32. ammoGui = Instance.new("ScreenGui")
  33. ammoGui.Name = Name
  34. local frame = Instance.new("Frame")
  35. frame.Name = "Frame"
  36. frame.Size = UDim2.new(0, 165, 0, 60)
  37. frame.Position = UDim2.new(0, 0, 1, -400)
  38. frame.BackgroundColor3 = Color3.new(1, 1, 1)
  39. frame.BorderColor3 = Color3.new(0, 0, 0)
  40. frame.Parent = ammoGui
  41. local label = Instance.new("TextLabel")
  42. label.Name = "Weapon"
  43. label.Text = "Weapon: " ..Name
  44. label.Size = UDim2.new(1, 0, 0, 20)
  45. label.Position = UDim2.new(0, 0, 0, 0)
  46. label.BackgroundColor3 = Color3.new(1, 0, 0)
  47. label.BorderColor3 = Color3.new(0, 0, 0)
  48. label.Parent = frame
  49. local label = Instance.new("TextLabel")
  50. label.Name = "MagazinePrefix"
  51. label.Text = " Magazine:"
  52. label.TextXAlignment = "Left"
  53. label.Size = UDim2.new(1, 0, 0, 20)
  54. label.Position = UDim2.new(0, 0, 0, 20)
  55. label.BackgroundColor3 = Color3.new(1, 1, 1)
  56. label.BorderColor3 = Color3.new(0, 0, 0)
  57. label.Parent = frame
  58. local label = Instance.new("TextLabel")
  59. label.Name = "Magazine"
  60. label.Text = "0/0"
  61. label.TextXAlignment = "Right"
  62. label.Size = UDim2.new(1, 0, 0, 20)
  63. label.Position = UDim2.new(0, -10, 0, 20)
  64. label.BackgroundTransparency = 1
  65. label.BorderSizePixel = 0
  66. label.Parent = frame
  67. local label = Instance.new("TextLabel")
  68. label.Name = "AmmoPrefix"
  69. label.Text = " Ammunition:"
  70. label.TextXAlignment = "Left"
  71. label.Size = UDim2.new(1, 0, 0, 20)
  72. label.Position = UDim2.new(0, 0, 0, 40)
  73. label.BackgroundColor3 = Color3.new(1, 1, 1)
  74. label.BorderColor3 = Color3.new(0, 0, 0)
  75. label.Parent = frame
  76. local label = Instance.new("TextLabel")
  77. label.Name = "Ammo"
  78. label.Text = "0/0"
  79. label.TextXAlignment = "Right"
  80. label.Size = UDim2.new(1, 0, 0, 20)
  81. label.Position = UDim2.new(0, -10, 0, 40)
  82. label.BackgroundTransparency = 1
  83. label.BorderSizePixel = 0
  84. label.Parent = frame
  85.  
  86. function updateGui()
  87. if selected == false then return end
  88. if Player:FindFirstChild("PlayerGui") == nil then Instance.new("PlayerGui").Parent = Player end
  89. if Player.PlayerGui:FindFirstChild(Name) == nil then
  90. ammoGui:Clone().Parent = Player.PlayerGui
  91. end
  92. Player.PlayerGui[Name].Frame.Magazine.Text = tostring(magazine.Value).. "/" ..tostring(magazineMax.Value)
  93. Player.PlayerGui[Name].Frame.Ammo.Text = tostring(ammo.Value).. "/" ..tostring(ammoMax.Value)
  94. end
  95.  
  96. function makeParts(format)
  97. local model = Instance.new("Model")
  98. model.Name = Name
  99. local pm = Instance.new("Part")
  100. pm.Name = "Handle"
  101. pm.formFactor = "Symmetric"
  102. pm.Size = Vector3.new(1, 1, 1)
  103. pm.BrickColor = GC
  104. pm.Reflectance = GR
  105. pm.CanCollide = false
  106. pm.Transparency = 1
  107. pm.Locked = true
  108. pm.TopSurface = 0
  109. pm.BottomSurface = 0
  110. pm.Parent = model
  111. local m = Instance.new("BlockMesh")
  112. m.Scale = Vector3.new(0.28, 1.1, 0.19)
  113. m.Offset = Vector3.new(0, -0.25, 0.07)
  114. m.Parent = pm
  115. if format ~= nil then
  116. local w = Instance.new("Weld")
  117. w.Part0 = pm
  118. if format == "RightHand" then
  119. w.Part1 = Player.Character:FindFirstChild("Right Arm")
  120. w.C0 = CFrame.new(0, 1.15, 0.7)
  121. w.C1 = CFrame.new()
  122. elseif format == "RightHolster" then
  123. w.Part1 = Player.Character:FindFirstChild("Torso")
  124. w.C0 = CFrame.new(-0.66, -0.7, 0.3) * CFrame.fromEulerAnglesXYZ(math.rad(-135), math.rad(90), 0)
  125. w.C1 = CFrame.new()
  126. model.Name = Name.. " (Holstered)"
  127. end
  128. w.Parent = pm
  129. model.Parent = Player.Character
  130. end
  131. --[[
  132. sniper1 http://www.roblox.com/asset/?id=1868836
  133. equip http://www.roblox.com/asset/?id=13510737
  134. fire1 http://www.roblox.com/asset/?id=2760979
  135. fire2 http://www.roblox.com/asset/?id=13510352
  136. fire3 http://www.roblox.com/asset/?id=2692806
  137. fire4 http://www.roblox.com/asset/?id=2691586
  138. fire5 http://www.roblox.com/asset/?id=2920959
  139. fire6 http://www.roblox.com/asset/?id=2697431
  140. fire7 http://www.roblox.com/asset/?id=2920959
  141. reload1 http://www.roblox.com/asset/?id=2691591
  142. reload2 http://www.roblox.com/asset/?id=2697432
  143. reload3 http://www.roblox.com/asset/?id=2920960
  144. reload4 http://www.roblox.com/asset/?id=2761842
  145. shotgun1 http://www.roblox.com/asset/?id=2697294
  146. --]]
  147. local s = Instance.new("Sound")
  148. s.Name = "Fire"
  149. s.SoundId = "http://www.roblox.com/asset/?id=1868836"
  150. s.Volume = 1
  151. s.Pitch = 1
  152. s.Looped = false
  153. s.Parent = pm
  154. local s = Instance.new("Sound")
  155. s.Name = "Fire2"
  156. s.SoundId = "http://roblox.com/asset/?id=10209803"
  157. s.Volume = 1
  158. s.Pitch = 1.4
  159. s.Looped = false
  160. s.Parent = pm
  161. local s = Instance.new("Sound")
  162. s.Name = "Equip"
  163. s.SoundId = "http://www.roblox.com/asset/?id=10209881"
  164. s.Volume = 1
  165. s.Pitch = 0.6
  166. s.Looped = false
  167. s.Parent = pm
  168. local s = Instance.new("Sound")
  169. s.Name = "Reload"
  170. s.SoundId = "http://www.roblox.com/asset/?id=2761842"
  171. s.Volume = 1
  172. s.Pitch = 1.2
  173. s.Looped = false
  174. s.Parent = pm
  175. local s = Instance.new("Sound")
  176. s.Name = "Empty"
  177. s.SoundId = "http://www.roblox.com/asset/?id=2697295"
  178. s.Volume = 1
  179. s.Pitch = 5
  180. s.Looped = false
  181. s.Parent = pm
  182. local s = Instance.new("Sound")
  183. s.Name = "Switch"
  184. s.SoundId = "http://www.roblox.com/asset/?id=2697295"
  185. s.Volume = 1
  186. s.Pitch = 10
  187. s.Looped = false
  188. s.Parent = pm
  189. local p = Instance.new("Part")
  190. p.Name = "ShellOut"
  191. p.formFactor = "Custom"
  192. p.Size = Vector3.new(0.2, 0.2, 0.2)
  193. p.Transparency = 1
  194. p.Locked = true
  195. p.CanCollide = false
  196. p.TopSurface = 0
  197. p.BottomSurface = 0
  198. p.Parent = model
  199. local w = Instance.new("Weld")
  200. w.Part0 = p
  201. w.Part1 = pm
  202. w.C0 = CFrame.new(-0.06, 0.62, -0.06) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  203. w.C1 = CFrame.new()
  204. w.Parent = p--]]
  205. local p = Instance.new("Part")
  206. p.Name = "Grip"
  207. p.formFactor = "Symmetric"
  208. p.Size = Vector3.new(1, 1, 1)
  209. p.BrickColor = GC
  210. p.Reflectance = GR
  211. p.CanCollide = false
  212. p.Locked = true
  213. p.TopSurface = 0
  214. p.BottomSurface = 0
  215. p.Parent = model
  216. local m = Instance.new("BlockMesh")
  217. m.Scale = Vector3.new(0.3, 0.38, 0.8)
  218. m.Parent = p
  219. local w = Instance.new("Weld")
  220. w.Part0 = p
  221. w.Part1 = pm
  222. w.C0 = CFrame.new(0, -0.15, -0.5) * CFrame.fromEulerAnglesXYZ(math.rad(15), 0, 0)
  223. w.C1 = CFrame.new()
  224. w.Parent = p
  225. local p = Instance.new("Part")
  226. p.Name = "GripWood"
  227. p.formFactor = "Symmetric"
  228. p.Size = Vector3.new(1, 1, 1)
  229. p.BrickColor = DC
  230. p.Reflectance = MR
  231. p.CanCollide = false
  232. p.Locked = true
  233. p.TopSurface = 0
  234. p.BottomSurface = 0
  235. p.Parent = model
  236. local m = Instance.new("SpecialMesh")
  237. m.MeshType = "Brick"
  238. m.Scale = Vector3.new(0.36, 0.36, 0.6)
  239. m.Parent = p
  240. local w = Instance.new("Weld")
  241. w.Part0 = p
  242. w.Part1 = pm
  243. w.C0 = CFrame.new(0, -0.15, -0.56) * CFrame.fromEulerAnglesXYZ(math.rad(15), 0, 0)
  244. w.C1 = CFrame.new()
  245. w.Parent = p--]]
  246. local p = Instance.new("Part")
  247. p.Name = "Magazine"
  248. p.formFactor = "Symmetric"
  249. p.Size = Vector3.new(1, 1, 1)
  250. p.BrickColor = DC
  251. p.Reflectance = MR
  252. p.CanCollide = false
  253. p.Locked = true
  254. p.TopSurface = 0
  255. p.BottomSurface = 0
  256. p.Parent = model
  257. local m = Instance.new("BlockMesh")
  258. m.Scale = Vector3.new(0.25, 0.5, 0.5)
  259. m.Parent = p
  260. local w = Instance.new("Weld")
  261. w.Part0 = p
  262. w.Part1 = pm
  263. w.C0 = CFrame.new(0, 0.5, -0.24)
  264. w.C1 = CFrame.new()
  265. w.Parent = p
  266. local p = Instance.new("Part")
  267. p.Name = "Trigger Housing"
  268. p.formFactor = "Symmetric"
  269. p.Size = Vector3.new(1, 1, 1)
  270. p.BrickColor = MC
  271. p.Reflectance = MR
  272. p.CanCollide = false
  273. p.Locked = true
  274. p.TopSurface = 0
  275. p.BottomSurface = 0
  276. p.Parent = model
  277. local m = Instance.new("BlockMesh")
  278. m.Scale = Vector3.new(0.2, 0.4, 0.04)
  279. m.Parent = p
  280. local w = Instance.new("Weld")
  281. w.Part0 = p
  282. w.Part1 = pm
  283. w.C0 = CFrame.new(0, 0.1, -0.36)
  284. w.C1 = CFrame.new()
  285. w.Parent = p
  286. local p = Instance.new("Part")
  287. p.Name = "Trigger"
  288. p.formFactor = "Symmetric"
  289. p.Size = Vector3.new(1, 1, 1)
  290. p.BrickColor = BrickColor.new("Dark stone grey")
  291. p.Reflectance = MR
  292. p.CanCollide = false
  293. p.Locked = true
  294. p.TopSurface = 0
  295. p.BottomSurface = 0
  296. p.Parent = model
  297. local m = Instance.new("BlockMesh")
  298. m.Scale = Vector3.new(0.18, 0.18, 0.18)
  299. m.Parent = p
  300. local w = Instance.new("Weld")
  301. w.Part0 = p
  302. w.Part1 = pm
  303. w.C0 = CFrame.new(0, 0.02, -0.25)
  304. w.C1 = CFrame.new()
  305. w.Parent = p
  306. local p = Instance.new("Part")
  307. p.Name = "Body1" --------------
  308. p.CanCollide = false
  309. p.formFactor = "Symmetric"
  310. p.Size = Vector3.new(1, 1, 1)
  311. p.BrickColor = GC
  312. p.Reflectance = GR
  313. p.Locked = true
  314. p.TopSurface = 0
  315. p.BottomSurface = 0
  316. p.Parent = model
  317. local m = Instance.new("BlockMesh")
  318. m.Scale = Vector3.new(0.3, 2, 0.38)
  319. m.Parent = p
  320. local w = Instance.new("Weld")
  321. w.Part0 = p
  322. w.Part1 = pm
  323. w.C0 = CFrame.new(0, 1.2, -0.12)
  324. w.C1 = CFrame.new()
  325. w.Parent = p
  326. local p = Instance.new("Part")
  327. p.Name = "Body2"
  328. p.CanCollide = false
  329. p.formFactor = "Symmetric"
  330. p.Size = Vector3.new(1, 1, 1)
  331. p.BrickColor = DC
  332. p.Reflectance = MR
  333. p.Locked = true
  334. p.TopSurface = 0
  335. p.BottomSurface = 0
  336. p.Parent = model
  337. local m = Instance.new("SpecialMesh")
  338. m.MeshType = "Brick"
  339. m.Scale = Vector3.new(0.32, 1.4, 0.2)
  340. m.Parent = p
  341. local w = Instance.new("Weld")
  342. w.Part0 = p
  343. w.Part1 = pm
  344. w.C0 = CFrame.new(0, 1.48, -0.08)
  345. w.C1 = CFrame.new()
  346. w.Parent = p
  347. local p = Instance.new("Part")
  348. p.Name = "GripAngle1"
  349. p.CanCollide = false
  350. p.formFactor = "Symmetric"
  351. p.Size = Vector3.new(1, 1, 1)
  352. p.BrickColor = GC
  353. p.Reflectance = GR
  354. p.Locked = true
  355. p.TopSurface = 0
  356. p.BottomSurface = 0
  357. p.Parent = model
  358. local m = Instance.new("SpecialMesh")
  359. m.MeshType = "Wedge"
  360. m.Scale = Vector3.new(0.3, 0.14, 0.6)
  361. m.Parent = p
  362. local w = Instance.new("Weld")
  363. w.Part0 = p
  364. w.Part1 = pm
  365. w.C0 = CFrame.new(0, -0.38, 0.5) * CFrame.fromEulerAnglesXYZ(math.rad(270), 0, math.rad(180))
  366. w.C1 = CFrame.new()
  367. w.Parent = p
  368. local p = Instance.new("Part")
  369. p.Name = "GripAngle2"
  370. p.CanCollide = false
  371. p.formFactor = "Symmetric"
  372. p.Size = Vector3.new(1, 1, 1)
  373. p.BrickColor = GC
  374. p.Reflectance = GR
  375. p.Locked = true
  376. p.TopSurface = 0
  377. p.BottomSurface = 0
  378. p.Parent = model
  379. local m = Instance.new("SpecialMesh")
  380. m.MeshType = "Wedge"
  381. m.Scale = Vector3.new(0.3, 0.06, 0.8)
  382. m.Parent = p
  383. local w = Instance.new("Weld")
  384. w.Part0 = p
  385. w.Part1 = pm
  386. w.C0 = CFrame.new(0, -0.34, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(270), 0, math.rad(180))
  387. w.C1 = CFrame.new()
  388. w.Parent = p
  389. local p = Instance.new("Part")
  390. p.Name = "GripTrigHous"
  391. p.formFactor = "Symmetric"
  392. p.Size = Vector3.new(1, 1, 1)
  393. p.BrickColor = GC
  394. p.Reflectance = GR
  395. p.CanCollide = false
  396. p.Locked = true
  397. p.TopSurface = 0
  398. p.BottomSurface = 0
  399. p.Parent = model
  400. local m = Instance.new("BlockMesh")
  401. m.Scale = Vector3.new(0.3, 0.4, 0.1)
  402. m.Parent = p
  403. local w = Instance.new("Weld")
  404. w.Part0 = p
  405. w.Part1 = pm
  406. w.C0 = CFrame.new(0, 0, -0.4)
  407. w.C1 = CFrame.new()
  408. w.Parent = p
  409. local p = Instance.new("Part")
  410. p.Name = "GripCover"
  411. p.formFactor = "Symmetric"
  412. p.Size = Vector3.new(1, 1, 1)
  413. p.BrickColor = GC
  414. p.Reflectance = GR
  415. p.CanCollide = false
  416. p.Locked = true
  417. p.TopSurface = 0
  418. p.BottomSurface = 0
  419. p.Parent = model
  420. local m = Instance.new("BlockMesh")
  421. m.Scale = Vector3.new(0.3, 1, 0.3)
  422. m.Parent = p
  423. local w = Instance.new("Weld")
  424. w.Part0 = p
  425. w.Part1 = pm
  426. w.C0 = CFrame.new(0, 0.1, -0.08)
  427. w.C1 = CFrame.new()
  428. w.Parent = p
  429. local p = Instance.new("Part")
  430. p.Name = "BoltBlock" --------------
  431. p.CanCollide = false
  432. p.formFactor = "Symmetric"
  433. p.Size = Vector3.new(1, 1, 1)
  434. p.BrickColor = DC
  435. p.Reflectance = MR
  436. p.Locked = true
  437. p.TopSurface = 0
  438. p.BottomSurface = 0
  439. p.Parent = model
  440. local m = Instance.new("SpecialMesh")
  441. m.MeshType = "Brick"
  442. m.Scale = Vector3.new(0.28, 1, 0.3)
  443. m.Parent = p
  444. local w = Instance.new("Weld")
  445. w.Part0 = p
  446. w.Part1 = pm
  447. w.C0 = CFrame.new(0, 0.3, 0.06)
  448. w.C1 = CFrame.new()
  449. w.Parent = p
  450. local p = Instance.new("Part")
  451. p.Name = "BoltShaftI"
  452. p.formFactor = "Symmetric"
  453. p.Size = Vector3.new(1, 1, 1)
  454. p.BrickColor = BC
  455. p.Reflectance = MR
  456. p.Transparency = 0
  457. p.CanCollide = false
  458. p.Locked = true
  459. p.TopSurface = 0
  460. p.BottomSurface = 0
  461. p.Parent = model
  462. local m = Instance.new("SpecialMesh")
  463. m.MeshType = "Brick"
  464. m.Scale = Vector3.new(0.26, 1, 0.26)
  465. m.Parent = p
  466. local w = Instance.new("Weld")
  467. w.Part0 = p
  468. w.Part1 = pm
  469. w.C0 = CFrame.new(0, 0.06, 0.06)
  470. w.C1 = CFrame.new()
  471. w.Parent = p
  472. local p = Instance.new("Part")
  473. p.Name = "BoltKnobI"
  474. p.CanCollide = false
  475. p.formFactor = "Symmetric"
  476. p.Size = Vector3.new(1, 1, 1)
  477. p.BrickColor = BC
  478. p.Reflectance = MR
  479. p.Transparency = 0
  480. p.Locked = true
  481. p.TopSurface = 0
  482. p.BottomSurface = 0
  483. p.Parent = model
  484. local m = Instance.new("SpecialMesh")
  485. m.MeshType = "Brick"
  486. m.Scale = Vector3.new(0.3, 0.14, 0.14)
  487. m.Parent = p
  488. local w = Instance.new("Weld")
  489. w.Part0 = p
  490. w.Part1 = pm
  491. w.C0 = CFrame.new(0.2, -0.3, 0.06)
  492. w.C1 = CFrame.new()
  493. w.Parent = p
  494. local p = Instance.new("Part")
  495. p.Name = "BoltShaftO"
  496. p.formFactor = "Symmetric"
  497. p.Size = Vector3.new(1, 1, 1)
  498. p.BrickColor = BC
  499. p.Reflectance = MR
  500. p.Transparency = 1
  501. p.CanCollide = false
  502. p.Locked = true
  503. p.TopSurface = 0
  504. p.BottomSurface = 0
  505. p.Parent = model
  506. local m = Instance.new("SpecialMesh")
  507. m.MeshType = "Brick"
  508. m.Scale = Vector3.new(0.26, 1, 0.26)
  509. m.Parent = p
  510. local w = Instance.new("Weld")
  511. w.Part0 = p
  512. w.Part1 = pm
  513. w.C0 = CFrame.new(0, -0.06, 0.06)
  514. w.C1 = CFrame.new()
  515. w.Parent = p
  516. local p = Instance.new("Part")
  517. p.Name = "BoltKnobO"
  518. p.CanCollide = false
  519. p.formFactor = "Symmetric"
  520. p.Size = Vector3.new(1, 1, 1)
  521. p.BrickColor = BC
  522. p.Reflectance = MR
  523. p.Transparency = 1
  524. p.Locked = true
  525. p.TopSurface = 0
  526. p.BottomSurface = 0
  527. p.Parent = model
  528. local m = Instance.new("SpecialMesh")
  529. m.MeshType = "Brick"
  530. m.Scale = Vector3.new(0.3, 0.14, 0.14)
  531. m.Parent = p
  532. local w = Instance.new("Weld")
  533. w.Part0 = p
  534. w.Part1 = pm
  535. w.C0 = CFrame.new(0.2, -0.4, 0.06)
  536. w.C1 = CFrame.new()
  537. w.Parent = p
  538. local p = Instance.new("Part")
  539. p.Name = "Barrel 1"
  540. p.formFactor = "Symmetric"
  541. p.Size = Vector3.new(1, 1, 1)
  542. p.BrickColor = DC
  543. p.Reflectance = MR
  544. p.CanCollide = false
  545. p.Locked = true
  546. p.TopSurface = 0
  547. p.BottomSurface = 0
  548. p.Parent = model
  549. local m = Instance.new("CylinderMesh")
  550. m.Scale = Vector3.new(0.2, 4, 0.2)
  551. m.Parent = p
  552. local w = Instance.new("Weld")
  553. w.Part0 = p
  554. w.Part1 = pm
  555. w.C0 = CFrame.new(0, 2.6, 0.06)
  556. w.C1 = CFrame.new()
  557. w.Parent = p
  558. local p = Instance.new("Part")
  559. p.Name = "Muzzle"
  560. p.formFactor = "Symmetric"
  561. p.Size = Vector3.new(1, 1, 1)
  562. p.BrickColor = DC
  563. p.Reflectance = MR
  564. p.CanCollide = false
  565. p.Locked = true
  566. p.TopSurface = 0
  567. p.BottomSurface = 0
  568. p.Parent = model
  569. local m = Instance.new("CylinderMesh")
  570. m.Scale = Vector3.new(0.24, 0.8, 0.24)
  571. m.Parent = p
  572. local w = Instance.new("Weld")
  573. w.Part0 = p
  574. w.Part1 = pm
  575. w.C0 = CFrame.new(0, 4.2, 0.06)
  576. w.C1 = CFrame.new()
  577. w.Parent = p
  578. local s = Instance.new("Smoke")
  579. s.Enabled = false
  580. s.Name = "Smoke"
  581. s.RiseVelocity = -5
  582. s.Opacity = 0.5
  583. s.Color = Color3.new(75 / 225, 75 / 225, 75 / 225)
  584. s.Size = 2.4
  585. s.Parent = p
  586. local f = Instance.new("Fire")
  587. f.Enabled = false
  588. f.Name = "Fire"
  589. f.Heat = -20
  590. f.Size = 3.6
  591. f.Parent = p
  592. local p = Instance.new("Part")
  593. p.Name = "MuzzleHole"
  594. p.formFactor = "Symmetric"
  595. p.Size = Vector3.new(1, 1, 1)
  596. p.BrickColor = BrickColor.new("Really black")
  597. p.Reflectance = MR
  598. p.CanCollide = false
  599. p.Locked = true
  600. p.TopSurface = 0
  601. p.BottomSurface = 0
  602. p.Parent = model
  603. local m = Instance.new("CylinderMesh")
  604. m.Scale = Vector3.new(0.18, 0.8, 0.18)
  605. m.Parent = p
  606. local w = Instance.new("Weld")
  607. w.Part0 = p
  608. w.Part1 = pm
  609. w.C0 = CFrame.new(0, 4.203, 0.06)
  610. w.C1 = CFrame.new()
  611. w.Parent = p
  612. local p = Instance.new("Part")
  613. p.Name = "Silencer"
  614. p.formFactor = "Symmetric"
  615. p.Size = Vector3.new(1, 1, 1)
  616. p.BrickColor = BrickColor.new("Black")
  617. p.CanCollide = false
  618. p.Transparency = 1
  619. p.Locked = true
  620. p.TopSurface = 0
  621. p.BottomSurface = 0
  622. p.Parent = model
  623. local m = Instance.new("CylinderMesh")
  624. m.Scale = Vector3.new(0.28, 3, 0.28)
  625. m.Parent = p
  626. local w = Instance.new("Weld")
  627. w.Part0 = p
  628. w.Part1 = pm
  629. w.C0 = CFrame.new(0, 4, 0.06)
  630. w.C1 = CFrame.new()
  631. w.Parent = p
  632. local p = Instance.new("Part")
  633. p.Name = "GripStock"
  634. p.formFactor = "Symmetric"
  635. p.Size = Vector3.new(1, 1, 1)
  636. p.BrickColor = GC
  637. p.Reflectance = GR
  638. p.CanCollide = false
  639. p.Locked = true
  640. p.TopSurface = 0
  641. p.BottomSurface = 0
  642. p.Parent = model
  643. local m = Instance.new("BlockMesh")
  644. m.Scale = Vector3.new(0.3, 0.8, 0.3)
  645. m.Parent = p
  646. local w = Instance.new("Weld")
  647. w.Part0 = p
  648. w.Part1 = pm
  649. w.C0 = CFrame.new(0, -0.6, -0.75) * CFrame.fromEulerAnglesXYZ(math.rad(20), 0, 0)
  650. w.C1 = CFrame.new()
  651. w.Parent = p
  652. local p = Instance.new("Part") -- Standard Stock
  653. p.Name = "StockT"
  654. p.CanCollide = false
  655. p.formFactor = "Symmetric"
  656. p.Size = Vector3.new(1, 1, 1)
  657. p.BrickColor = GC
  658. p.Reflectance = GR
  659. p.Locked = true
  660. p.TopSurface = 0
  661. p.BottomSurface = 0
  662. p.Parent = model
  663. local m = Instance.new("BlockMesh")
  664. m.Scale = Vector3.new(0.3, 1.4, 0.25)
  665. m.Parent = p
  666. local w = Instance.new("Weld")
  667. w.Part0 = p
  668. w.Part1 = pm
  669. w.C0 = CFrame.new(0, -0.6, -0.1)
  670. w.C1 = CFrame.new()
  671. w.Parent = p
  672. local p = Instance.new("Part")
  673. p.Name = "CheekRest" --------------
  674. p.CanCollide = false
  675. p.formFactor = "Symmetric"
  676. p.Size = Vector3.new(1, 1, 1)
  677. p.BrickColor = DC
  678. p.Reflectance = MR
  679. p.Locked = true
  680. p.TopSurface = 0
  681. p.BottomSurface = 0
  682. p.Parent = model
  683. local m = Instance.new("SpecialMesh")
  684. m.MeshType = "Brick"
  685. m.Scale = Vector3.new(0.26, 0.6, 0.3)
  686. m.Parent = p
  687. local w = Instance.new("Weld")
  688. w.Part0 = p
  689. w.Part1 = pm
  690. w.C0 = CFrame.new(0, -0.84, -0.04)
  691. w.C1 = CFrame.new()
  692. w.Parent = p
  693. local p = Instance.new("Part")
  694. p.Name = "Stock1"
  695. p.CanCollide = false
  696. p.formFactor = "Symmetric"
  697. p.Size = Vector3.new(1, 1, 1)
  698. p.BrickColor = DC
  699. p.Reflectance = MR
  700. p.Locked = true
  701. p.TopSurface = 0
  702. p.BottomSurface = 0
  703. p.Parent = model
  704. local m = Instance.new("BlockMesh")
  705. m.Scale = Vector3.new(0.34, 0.4, 0.7)
  706. m.Parent = p
  707. local w = Instance.new("Weld")
  708. w.Part0 = p
  709. w.Part1 = pm
  710. w.C0 = CFrame.new(0, -1.38, -0.3) --* CFrame.fromEulerAnglesXYZ(math.rad(270), 0, math.rad(180))
  711. w.C1 = CFrame.new()
  712. w.Parent = p
  713. local p = Instance.new("Part")
  714. p.Name = "Stock2"
  715. p.CanCollide = false
  716. p.formFactor = "Symmetric"
  717. p.Size = Vector3.new(1, 1, 1)
  718. p.BrickColor = GC
  719. p.Reflectance = GR
  720. p.Locked = true
  721. p.TopSurface = 0
  722. p.BottomSurface = 0
  723. p.Parent = model
  724. local m = Instance.new("BlockMesh")
  725. m.Scale = Vector3.new(0.3, 0.4, 0.5)
  726. m.Parent = p
  727. local w = Instance.new("Weld")
  728. w.Part0 = p
  729. w.Part1 = pm
  730. w.C0 = CFrame.new(0, -0.38, -1) * CFrame.fromEulerAnglesXYZ(math.rad(270), 0, math.rad(180))
  731. w.C1 = CFrame.new()
  732. w.Parent = p--]]
  733. local p = Instance.new("Part") -------------- SCOPE
  734. p.Name = "Scope Base"
  735. p.formFactor = "Symmetric"
  736. p.CanCollide = false
  737. p.Size = Vector3.new(1, 1, 1)
  738. p.BrickColor = DC
  739. p.Reflectance = MR
  740. p.Locked = true
  741. p.TopSurface = 0
  742. p.BottomSurface = 0
  743. p.Parent = model
  744. local m = Instance.new("BlockMesh")
  745. m.Scale = Vector3.new(0.1, 0.14, 0.4)
  746. m.Parent = p
  747. local w = Instance.new("Weld")
  748. w.Part0 = p
  749. w.Part1 = pm
  750. w.C0 = CFrame.new(0, 0.1, 0.18)
  751. w.C1 = CFrame.new()
  752. w.Parent = p
  753. local p = Instance.new("Part")
  754. p.Name = "Scope Base"
  755. p.formFactor = "Symmetric"
  756. p.CanCollide = false
  757. p.Size = Vector3.new(1, 1, 1)
  758. p.BrickColor = DC
  759. p.Reflectance = MR
  760. p.Locked = true
  761. p.TopSurface = 0
  762. p.BottomSurface = 0
  763. p.Parent = model
  764. local m = Instance.new("BlockMesh")
  765. m.Scale = Vector3.new(0.1, 0.14, 0.4)
  766. m.Parent = p
  767. local w = Instance.new("Weld")
  768. w.Part0 = p
  769. w.Part1 = pm
  770. w.C0 = CFrame.new(0, 0.48, 0.18)
  771. w.C1 = CFrame.new()
  772. w.Parent = p
  773. local p = Instance.new("Part")
  774. p.Name = "Scope End 1" --End = Back
  775. p.CanCollide = false
  776. p.formFactor = "Symmetric"
  777. p.Size = Vector3.new(1, 1, 1)
  778. p.BrickColor = DC
  779. p.Reflectance = MR
  780. p.Locked = true
  781. p.TopSurface = 0
  782. p.BottomSurface = 0
  783. p.Parent = model
  784. local m = Instance.new("CylinderMesh")
  785. m.Scale = Vector3.new(0.24, 0.375, 0.24)
  786. m.Parent = p
  787. local w = Instance.new("Weld")
  788. w.Part0 = p
  789. w.Part1 = pm
  790. w.C0 = CFrame.new(0, -0.2, 0.38)
  791. w.C1 = CFrame.new()
  792. w.Parent = p
  793. local p = Instance.new("Part")
  794. p.Name = "Scope Center 1"
  795. p.CanCollide = false
  796. p.formFactor = "Symmetric"
  797. p.Size = Vector3.new(1, 1, 1)
  798. p.BrickColor = DC
  799. p.Reflectance = MR
  800. p.Locked = true
  801. p.TopSurface = 0
  802. p.BottomSurface = 0
  803. p.Parent = model
  804. local m = Instance.new("CylinderMesh")
  805. m.Scale = Vector3.new(0.2, 0.8, 0.2)
  806. m.Parent = p
  807. local w = Instance.new("Weld")
  808. w.Part0 = p
  809. w.Part1 = pm
  810. w.C0 = CFrame.new(0, 0.3, 0.38)
  811. w.C1 = CFrame.new()
  812. w.Parent = p
  813. local p = Instance.new("Part")
  814. p.Name = "Scope Front 1"
  815. p.CanCollide = false
  816. p.formFactor = "Symmetric"
  817. p.Size = Vector3.new(1, 1, 1)
  818. p.BrickColor = DC
  819. p.Reflectance = MR
  820. p.Locked = true
  821. p.TopSurface = 0
  822. p.BottomSurface = 0
  823. p.Parent = model
  824. local m = Instance.new("CylinderMesh")
  825. m.Scale = Vector3.new(0.28, 0.7, 0.28)
  826. m.Parent = p
  827. local w = Instance.new("Weld")
  828. w.Part0 = p
  829. w.Part1 = pm
  830. w.C0 = CFrame.new(0, 0.94, 0.38)
  831. w.C1 = CFrame.new()
  832. w.Parent = p
  833. local p = Instance.new("Part")
  834. p.Name = "Scope Window F"
  835. p.CanCollide = false
  836. p.formFactor = "Symmetric"
  837. p.Size = Vector3.new(1, 1, 1)
  838. p.BrickColor = BrickColor.new("White")
  839. p.Reflectance = 0.3
  840. p.Locked = true
  841. p.TopSurface = 0
  842. p.BottomSurface = 0
  843. p.Parent = model
  844. local m = Instance.new("CylinderMesh")
  845. m.Scale = Vector3.new(0.27, 0.7, 0.27)
  846. m.Offset = Vector3.new(0, -0.003 ,0)
  847. m.Parent = p
  848. local w = Instance.new("Weld")
  849. w.Part0 = p
  850. w.Part1 = pm
  851. w.C0 = CFrame.new(0, 0.94, 0.38)
  852. w.C1 = CFrame.new()
  853. w.Parent = p
  854. local p = Instance.new("Part")
  855. p.Name = "Scope Window B"
  856. p.CanCollide = false
  857. p.formFactor = "Symmetric"
  858. p.Size = Vector3.new(1, 1, 1)
  859. p.BrickColor = BrickColor.new("White")
  860. p.Reflectance = 0.3
  861. p.Locked = true
  862. p.TopSurface = 0
  863. p.BottomSurface = 0
  864. p.Parent = model
  865. local m = Instance.new("CylinderMesh")
  866. m.Scale = Vector3.new(0.23, 0.375, 0.23)
  867. m.Offset = Vector3.new(0, 0.003 ,0)
  868. m.Parent = p
  869. local w = Instance.new("Weld")
  870. w.Part0 = p
  871. w.Part1 = pm
  872. w.C0 = CFrame.new(0, -0.2, 0.38)
  873. w.C1 = CFrame.new()
  874. w.Parent = p--]]
  875. local p = Instance.new("Part") ---Bipod
  876. p.Name = "BipodM" --------------
  877. p.CanCollide = false
  878. p.formFactor = "Symmetric"
  879. p.Size = Vector3.new(1, 1, 1)
  880. p.BrickColor = DC
  881. p.Reflectance = MR
  882. p.Locked = true
  883. p.TopSurface = 0
  884. p.BottomSurface = 0
  885. p.Parent = model
  886. local m = Instance.new("BlockMesh")
  887. m.Scale = Vector3.new(0.17, 0.25, 0.2)
  888. m.Parent = p
  889. local w = Instance.new("Weld")
  890. w.Part0 = p
  891. w.Part1 = pm
  892. w.C0 = CFrame.new(0, 2, -0.35)
  893. w.C1 = CFrame.new()
  894. w.Parent = p
  895. local p = Instance.new("Part")
  896. p.Name = "BipodArm"
  897. p.formFactor = "Symmetric"
  898. p.Size = Vector3.new(1, 1, 1)
  899. p.CanCollide = false
  900. p.BrickColor = DC
  901. p.Reflectance = MR
  902. p.Locked = true
  903. p.TopSurface = 0
  904. p.BottomSurface = 0
  905. p.Parent = model
  906. local m = Instance.new("CylinderMesh")
  907. m.Scale = Vector3.new(0.15, 1, 0.15)
  908. m.Offset = Vector3.new(0, -0.44 ,0)
  909. m.Parent = p
  910. local w = Instance.new("Weld")
  911. w.Part0 = p
  912. w.Part1 = pm
  913. w.C0 = CFrame.new(-0.09, 2, -0.4)
  914. w.C1 = CFrame.new()
  915. w.Parent = p
  916. local p = Instance.new("Part")
  917. p.Name = "BipodArm"
  918. p.formFactor = "Symmetric"
  919. p.Size = Vector3.new(1, 1, 1)
  920. p.CanCollide = false
  921. p.BrickColor = DC
  922. p.Reflectance = MR
  923. p.Locked = true
  924. p.TopSurface = 0
  925. p.BottomSurface = 0
  926. p.Parent = model
  927. local m = Instance.new("CylinderMesh")
  928. m.Scale = Vector3.new(0.15, 1, 0.15)
  929. m.Offset = Vector3.new(0, -0.44 ,0)
  930. m.Parent = p
  931. local w = Instance.new("Weld")
  932. w.Part0 = p
  933. w.Part1 = pm
  934. w.C0 = CFrame.new(0.09, 2, -0.4)
  935. w.C1 = CFrame.new()
  936. w.Parent = p--]]
  937. return model
  938. end
  939.  
  940. function removeParts(format)
  941. if format == "RightHand" then
  942. pcall(function() Player.Character[Name]:Remove() end)
  943. elseif format == "LeftHand" then
  944. pcall(function() Player.Character[Name.. " (Left)"]:Remove() end)
  945. elseif format == "RightHolster" then
  946. pcall(function() Player.Character[Name.. " (Holstered)"]:Remove() end)
  947. elseif format == "LeftHolster" then
  948. pcall(function() Player.Character[Name.. " (Holstered, Left)"]:Remove() end)
  949. end
  950. end
  951.  
  952. function SetAngle(Joint, Angle, Character)
  953. if Character == nil then return false end
  954. local Joints = {
  955. Character.Torso:FindFirstChild("Right Shoulder 2"),
  956. Character.Torso:FindFirstChild("Left Shoulder 2"),
  957. Character.Torso:FindFirstChild("Right Hip 2"),
  958. Character.Torso:FindFirstChild("Left Hip 2")
  959. }
  960. if Joints[Joint] == nil then return false end
  961. if Joint == 1 or Joint == 3 then
  962. Joints[Joint].DesiredAngle = Angle
  963. end
  964. if Joint == 2 or Joint == 4 then
  965. Joints[Joint].DesiredAngle = -Angle
  966. end
  967. end
  968.  
  969. function ForceAngle(Joint, Angle, Character)
  970. if Character == nil then return false end
  971. local Joints = {
  972. Character.Torso:FindFirstChild("Right Shoulder 2"),
  973. Character.Torso:FindFirstChild("Left Shoulder 2"),
  974. Character.Torso:FindFirstChild("Right Hip 2"),
  975. Character.Torso:FindFirstChild("Left Hip 2")
  976. }
  977. if Joints[Joint] == nil then return false end
  978. if Joint == 1 or Joint == 3 then
  979. Joints[Joint].DesiredAngle = Angle
  980. Joints[Joint].CurrentAngle = Angle
  981. end
  982. if Joint == 2 or Joint == 4 then
  983. Joints[Joint].DesiredAngle = -Angle
  984. Joints[Joint].CurrentAngle = -Angle
  985. end
  986. end
  987.  
  988. function SetSpeed(Joint, Speed, Character)
  989. if Character == nil then return false end
  990. local Joints = {
  991. Character.Torso:FindFirstChild("Right Shoulder 2"),
  992. Character.Torso:FindFirstChild("Left Shoulder 2"),
  993. Character.Torso:FindFirstChild("Right Hip 2"),
  994. Character.Torso:FindFirstChild("Left Hip 2")
  995. }
  996. if Joints[Joint] == nil then return false end
  997. Joints[Joint].MaxVelocity = Speed
  998. end
  999.  
  1000. function DisableLimb(Limb, Character)
  1001. if Character == nil then return false end
  1002. if Character:FindFirstChild("Torso") == nil then return false end
  1003. local Joints = {
  1004. Character.Torso:FindFirstChild("Right Shoulder"),
  1005. Character.Torso:FindFirstChild("Left Shoulder"),
  1006. Character.Torso:FindFirstChild("Right Hip"),
  1007. Character.Torso:FindFirstChild("Left Hip")
  1008. }
  1009. local Limbs = {
  1010. Character:FindFirstChild("Right Arm"),
  1011. Character:FindFirstChild("Left Arm"),
  1012. Character:FindFirstChild("Right Leg"),
  1013. Character:FindFirstChild("Left Leg")
  1014. }
  1015. if Joints[Limb] == nil then return false end
  1016. if Limbs[Limb] == nil then return false end
  1017. local Joint = Instance.new("Motor")
  1018. Joint.Parent = Character.Torso
  1019. Joint.Part0 = Character.Torso
  1020. Joint.Part1 = Limbs[Limb]
  1021. if Limb == 1 then
  1022. Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1023. Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1024. Joint.Name = "Right Shoulder 2"
  1025. elseif Limb == 2 then
  1026. Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1027. Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1028. Joint.Name = "Left Shoulder 2"
  1029. elseif Limb == 3 then
  1030. Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1031. Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1032. Joint.Name = "Right Hip 2"
  1033. elseif Limb == 4 then
  1034. Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1035. Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1036. Joint.Name = "Left Hip 2"
  1037. end
  1038. Joint.MaxVelocity = Joints[Limb].MaxVelocity
  1039. Joint.CurrentAngle = Joints[Limb].CurrentAngle
  1040. Joint.DesiredAngle = Joints[Limb].DesiredAngle
  1041. Joints[Limb]:Remove()
  1042. end
  1043.  
  1044. function ResetLimbCFrame(Limb, Character)
  1045. if Character == nil then return false end
  1046. if Character.Parent == nil then return false end
  1047. if Character:FindFirstChild("Torso") == nil then return false end
  1048. local Joints = {
  1049. Character.Torso:FindFirstChild("Right Shoulder 2"),
  1050. Character.Torso:FindFirstChild("Left Shoulder 2"),
  1051. Character.Torso:FindFirstChild("Right Hip 2"),
  1052. Character.Torso:FindFirstChild("Left Hip 2")
  1053. }
  1054. local Limbs = {
  1055. Character:FindFirstChild("Right Arm"),
  1056. Character:FindFirstChild("Left Arm"),
  1057. Character:FindFirstChild("Right Leg"),
  1058. Character:FindFirstChild("Left Leg")
  1059. }
  1060. if Joints[Limb] == nil then return false end
  1061. if Limbs[Limb] == nil then return false end
  1062. if Limb == 1 then
  1063. Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1064. Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1065. elseif Limb == 2 then
  1066. Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1067. Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1068. elseif Limb == 3 then
  1069. Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1070. Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1071. elseif Limb == 4 then
  1072. Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1073. Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1074. end
  1075. end
  1076.  
  1077. function EnableLimb(Limb, Character)
  1078. if Character == nil then return false end
  1079. if Character:FindFirstChild("Torso") == nil then return false end
  1080. local Joints = {
  1081. Character.Torso:FindFirstChild("Right Shoulder 2"),
  1082. Character.Torso:FindFirstChild("Left Shoulder 2"),
  1083. Character.Torso:FindFirstChild("Right Hip 2"),
  1084. Character.Torso:FindFirstChild("Left Hip 2")
  1085. }
  1086. local Limbs = {
  1087. Character:FindFirstChild("Right Arm"),
  1088. Character:FindFirstChild("Left Arm"),
  1089. Character:FindFirstChild("Right Leg"),
  1090. Character:FindFirstChild("Left Leg")
  1091. }
  1092. if Joints[Limb] == nil then return false end
  1093. if Limbs[Limb] == nil then return false end
  1094. if Limb == 1 then
  1095. Joints[Limb].Name = "Right Shoulder"
  1096. elseif Limb == 2 then
  1097. Joints[Limb].Name = "Left Shoulder"
  1098. elseif Limb == 3 then
  1099. Joints[Limb].Name = "Right Hip"
  1100. elseif Limb == 4 then
  1101. Joints[Limb].Name = "Left Hip"
  1102. end
  1103. Animate = Character:FindFirstChild("Animate")
  1104. if Animate == nil then return false end
  1105. Animate = Animate:Clone()
  1106. Character.Animate:Remove()
  1107. Animate.Parent = Character
  1108. end
  1109.  
  1110. function playAnimation(format, mouse)
  1111. if format == "equip" then
  1112. EnableLimb(1, Player.Character)
  1113. EnableLimb(2, Player.Character)
  1114. DisableLimb(2, Player.Character)
  1115. SetSpeed(2, 0.1, Player.Character)
  1116. ForceAngle(2, 0, Player.Character)
  1117. SetAngle(2, math.rad(-50), Player.Character)
  1118. wait(0.25)
  1119. if Player.Character:FindFirstChild(Name.. " (Holstered)") == nil then makeParts("RightHolster") end
  1120. Player.Character[Name.. " (Holstered)"].Handle.Weld:Remove()
  1121. local w = Instance.new("Weld")
  1122. w.Part0 = Player.Character[Name.. " (Holstered)"].Handle
  1123. w.Part1 = Player.Character:FindFirstChild("Left Arm")
  1124. w.C0 = CFrame.new(0.5, -0.25, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1125. w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, 0)
  1126. w.Parent = Player.Character[Name.. " (Holstered)"].Handle
  1127. SetAngle(2, 0, Player.Character)
  1128. wait(0.25)
  1129. DisableLimb(1, Player.Character)
  1130. ForceAngle(1, 0, Player.Character)
  1131. delay(0.3, function() Player.Character[Name.. " (Holstered)"].Handle.Equip:Play() end)
  1132. for i = 0, 1, 0.05 do
  1133. if Player.Character:FindFirstChild("Torso") ~= nil then
  1134. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1135. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1136. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new((-0.5 * i) + (1.5 * (1 - i)), 1.2 * i, 0.8 * i) * CFrame.fromEulerAnglesXYZ(math.rad(300 + ((1 - i) * 50)), math.rad(10), math.rad(-90) * i)
  1137. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1138. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new((-0.9 * i) + (-1.5 * (1 - i)), -0.35 * i, 0.51 * i) * CFrame.fromEulerAnglesXYZ(math.rad(-90 * i), math.rad(-5 * i), 0)
  1139. w.C0 = CFrame.new(0.5 - (i * (0.5 * 2)), -0.25 - (i * (-0.25 * 2)), -0.75 - (i * (-0.75 * 2))) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 + (i * 180)), 0)
  1140. w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50 - i * 25), 0, -math.rad(i * 15))
  1141. wait()
  1142. else return false end
  1143. else return false end
  1144. end
  1145. return playAnimation("hold")
  1146. end
  1147. if format == "unequip" then
  1148. Player.Character[Name].Handle.Weld:Remove()
  1149. local w = Instance.new("Weld")
  1150. w.Part0 = Player.Character[Name].Handle
  1151. w.Part1 = Player.Character:FindFirstChild("Left Arm")
  1152. w.C0 = CFrame.new(0.5, -0.25, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1153. w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, 0)
  1154. w.Parent = Player.Character[Name].Handle
  1155. for i = 1, 0, -0.05 do
  1156. if Player.Character:FindFirstChild("Torso") ~= nil then
  1157. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1158. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1159. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new((-0.5 * i) + (1.5 * (1 - i)), 1.2 * i, 0.8 * i) * CFrame.fromEulerAnglesXYZ(math.rad(300 + ((1 - i) * 50)), math.rad(10), math.rad(-90) * i)
  1160. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1161. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new((-0.9 * i) + (-1.5 * (1 - i)), -0.35 * i, 0.51 * i) * CFrame.fromEulerAnglesXYZ(math.rad(-90 * i), math.rad(-5 * i), 0)
  1162. w.C0 = CFrame.new(0.5 - (i * (0.5 * 2)), -0.25 - (i * (-0.25 * 2)), -0.75 - (i * (-0.75 * 2))) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 + (i * 180)), 0)
  1163. w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50 - i * 25), 0, -math.rad(i * 15))
  1164. wait()
  1165. else return false end
  1166. else return false end
  1167. end
  1168. w.C0 = CFrame.new(0.5, -0.25, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1169. w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, 0)
  1170. ResetLimbCFrame(1, Player.Character)
  1171. ResetLimbCFrame(2, Player.Character)
  1172. EnableLimb(1, Player.Character)
  1173. EnableLimb(2, Player.Character)
  1174. DisableLimb(2, Player.Character)
  1175. SetSpeed(2, 0.1, Player.Character)
  1176. ForceAngle(2, 0, Player.Character)
  1177. SetAngle(2, math.rad(-50), Player.Character)
  1178. wait(0.25)
  1179. SetAngle(2, 0, Player.Character)
  1180. removeParts("RightHand")
  1181. makeParts("RightHolster")
  1182. wait(0.25)
  1183. makeParts("RightHand")
  1184. removeParts("RightHolster")
  1185. return true
  1186. end
  1187. if format == "hold" then
  1188. if Player.Character:FindFirstChild("Torso") ~= nil then
  1189. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1190. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1191. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10), math.rad(-90))
  1192. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1193. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-5), 0)
  1194. else return false end
  1195. else return false end
  1196. end
  1197. if format == "reload" then
  1198. Player.Character[Name].Handle.Equip:Play()
  1199. for i = 0, 10, 5 do
  1200. if Player.Character:FindFirstChild("Torso") ~= nil then
  1201. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil then
  1202. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1203. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5 - (i / 25), 0.2, 0.2) * CFrame.fromEulerAnglesXYZ(math.rad(300 - i), math.rad(10 - i), math.rad(-90))
  1204. wait()
  1205. else return false end
  1206. else return false end
  1207. end
  1208. wait(0.1)
  1209. Player.Character[Name].BoltKnobI.Transparency = 1
  1210. Player.Character[Name].BoltShaftI.Transparency = 1
  1211. Player.Character[Name].BoltShaftO.Transparency = 0
  1212. Player.Character[Name].BoltKnobO.Transparency = 0
  1213. for i = 0, 10, 1.5 do
  1214. if Player.Character:FindFirstChild("Torso") ~= nil then
  1215. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil then
  1216. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1217. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.9, 0.2 - (i / 25), 0.2) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0, math.rad(-90))
  1218. wait()
  1219. else return false end
  1220. else return false end
  1221. end
  1222. Player.Character[Name].Handle.Equip:Stop()
  1223. Player.Character[Name].Handle.Reload:Play()
  1224. Player.Character[Name].Magazine.Transparency = 1
  1225. magazineDrop = Player.Character[Name].Magazine:Clone()
  1226. magazineDrop.Transparency = 0
  1227. magazineDrop.CanCollide = true
  1228. magazineDrop.Parent = game.Workspace
  1229. coroutine.resume(coroutine.create(function(part) wait(4.5) for i = 0, 1, 0.1 do part.Transparency = i wait() end part:Remove() end), magazineDrop)
  1230. delay(0.1, function() magazineDrop.CanCollide = true end)
  1231. for i = 0, 25, 5 do
  1232. if Player.Character:FindFirstChild("Torso") ~= nil then
  1233. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1234. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1235. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5 + (i / 60), 1.2 - (i / 20), 0.8 + (i / 35)) * CFrame.fromEulerAnglesXYZ(math.rad(300 - i), math.rad(10 + -i * 3.5), math.rad(-90))
  1236. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1237. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), 0)
  1238. wait()
  1239. else return false end
  1240. else return false end
  1241. end
  1242. magazineNew = Player.Character[Name].Magazine:Clone()
  1243. magazineNew.Name = "New Magazine"
  1244. magazineNew.Transparency = 0
  1245. magazineNew.Parent = Player.Character[Name]
  1246. local w = Instance.new("Weld")
  1247. w.Part0 = magazineNew
  1248. w.Part1 = Player.Character:FindFirstChild("Left Arm")
  1249. w.C0 = CFrame.new(0, 1.1, 0)
  1250. w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1251. w.Parent = magazineNew
  1252. wait(0.2)
  1253. for i = 25, 0, -5 do
  1254. if Player.Character:FindFirstChild("Torso") ~= nil then
  1255. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1256. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1257. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5 + ((i + 10) / 60), 1.2 - ((i + 10) / 20), 0.8 + (i / 35)) * CFrame.fromEulerAnglesXYZ(math.rad(300 - (i - 10)), math.rad(10 + -i * 3.5), math.rad(-90))
  1258. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1259. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), 0)
  1260. wait()
  1261. else return false end
  1262. else return false end
  1263. end
  1264. Player.Character[Name].Magazine.Transparency = 0
  1265. Player.Character[Name]["New Magazine"]:Remove()
  1266. wait(0.8)
  1267. Player.Character[Name].Handle.Reload:Stop()
  1268. Player.Character[Name].Handle.Equip:Play()
  1269. for i = 10, 0, -1.5 do
  1270. if Player.Character:FindFirstChild("Torso") ~= nil then
  1271. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil then
  1272. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1273. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.9, 0.2 - (i / 25), 0.2) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0, math.rad(-90))
  1274. wait()
  1275. else return false end
  1276. else return false end
  1277. end
  1278. Player.Character[Name].BoltKnobI.Transparency = 0
  1279. Player.Character[Name].BoltShaftI.Transparency = 0
  1280. Player.Character[Name].BoltShaftO.Transparency = 1
  1281. Player.Character[Name].BoltKnobO.Transparency = 1
  1282. for i = 10, 0, -5 do
  1283. if Player.Character:FindFirstChild("Torso") ~= nil then
  1284. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil then
  1285. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1286. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5 - (i / 25), 0.2, 0.2) * CFrame.fromEulerAnglesXYZ(math.rad(300 - i), math.rad(10 - i), math.rad(-90))
  1287. wait()
  1288. else return false end
  1289. else return false end
  1290. end
  1291. for i = 10, 0, -5 do
  1292. if Player.Character:FindFirstChild("Torso") ~= nil then
  1293. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1294. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1295. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 + i), math.rad(-90))
  1296. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1297. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 - i), math.rad(-5), 0)
  1298. wait()
  1299. else return false end
  1300. else return false end
  1301. end
  1302. Player.Character[Name].Handle.Equip:Stop()
  1303. end
  1304. if format == "fire" then
  1305. if Player.Character[Name]:FindFirstChild("Handle") ~= nil then
  1306. if silenced then
  1307. Player.Character[Name].Handle.Fire:Stop()
  1308. Player.Character[Name].Handle.Fire.Volume = math.random(3, 8) / 10
  1309. Player.Character[Name].Handle.Fire.Pitch = math.random(20, 25) / 10
  1310. Player.Character[Name].Handle.Fire:Play()
  1311. --coroutine.resume(coroutine.create(function() for i = 0.8, 0, -0.075 do Player.Character[Name].Handle.Fire.Volume = i wait() end Player.Character[Name].Handle.Fire.Volume = 0 end))
  1312. CamShake(10, 2000)
  1313. else
  1314. Player.Character[Name].Handle.Fire:Stop()
  1315. Player.Character[Name].Handle.Fire.Volume = math.random(9, 10) / 10
  1316. Player.Character[Name].Handle.Fire.Pitch = 1
  1317. Player.Character[Name].Handle.Fire:Play()
  1318. --Player.Character[Name].Handle.Fire2:Play()
  1319. --coroutine.resume(coroutine.create(function() for i = 0.8, 0, -0.075 do Player.Character[Name].Handle.Fire.Volume = i wait() end Player.Character[Name].Handle.Fire.Volume = 0 end))
  1320. CamShake(10, 2000)
  1321. end
  1322. else return false end
  1323. if Player.Character[Name]:FindFirstChild("Muzzle") ~= nil then
  1324. coroutine.resume(coroutine.create(function() Player.Character[Name].Muzzle.Smoke.Enabled = true Player.Character[Name].Muzzle.Fire.Enabled = true wait(0.1) Player.Character[Name].Muzzle.Smoke.Enabled = false Player.Character[Name].Muzzle.Fire.Enabled = false end))
  1325. else return false end
  1326. for i = 0, 10, 5 do
  1327. if Player.Character:FindFirstChild("Torso") ~= nil then
  1328. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1329. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1330. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 + i), math.rad(-90))
  1331. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1332. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 - i), math.rad(-5), 0)
  1333. wait()
  1334. else return false end
  1335. else return false end
  1336. end
  1337. --[[for i = 10, 0, -5 do
  1338. if Player.Character:FindFirstChild("Torso") ~= nil then
  1339. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1340. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1341. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 + i), math.rad(-90))
  1342. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1343. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 - i), math.rad(-5), 0)
  1344. wait()
  1345. else return false end
  1346. else return false end
  1347. end--]]
  1348. wait(0.75) --Bolt Action
  1349. if silenced == true then
  1350. Player.Character[Name].Handle.Equip:Play()
  1351. end
  1352. for i = 0, 10, 5 do
  1353. if Player.Character:FindFirstChild("Torso") ~= nil then
  1354. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil then
  1355. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1356. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5 - (i / 25), 0.2, 0.2) * CFrame.fromEulerAnglesXYZ(math.rad(300 - i), math.rad(10 - i), math.rad(-90))
  1357. wait()
  1358. else return false end
  1359. else return false end
  1360. end
  1361. wait(0.1)
  1362. for i = 0, 10, 1.5 do
  1363. if Player.Character:FindFirstChild("Torso") ~= nil then
  1364. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil then
  1365. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1366. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.9, 0.2 - (i / 25), 0.2) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0, math.rad(-90))
  1367. wait()
  1368. else return false end
  1369. else return false end
  1370. end
  1371. Player.Character[Name].BoltKnobI.Transparency = 1
  1372. Player.Character[Name].BoltShaftI.Transparency = 1
  1373. Player.Character[Name].BoltShaftO.Transparency = 0
  1374. Player.Character[Name].BoltKnobO.Transparency = 0
  1375. makeShell(Player.Character[Name]:FindFirstChild("ShellOut"))
  1376. for i = 10, 0, -1.5 do
  1377. if Player.Character:FindFirstChild("Torso") ~= nil then
  1378. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil then
  1379. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1380. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.9, 0.2 - (i / 25), 0.2) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0, math.rad(-90))
  1381. wait()
  1382. else return false end
  1383. else return false end
  1384. end
  1385. Player.Character[Name].BoltKnobI.Transparency = 0
  1386. Player.Character[Name].BoltShaftI.Transparency = 0
  1387. Player.Character[Name].BoltShaftO.Transparency = 1
  1388. Player.Character[Name].BoltKnobO.Transparency = 1
  1389. for i = 10, 0, -5 do
  1390. if Player.Character:FindFirstChild("Torso") ~= nil then
  1391. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil then
  1392. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1393. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5 - (i / 25), 0.2, 0.2) * CFrame.fromEulerAnglesXYZ(math.rad(300 - i), math.rad(10 - i), math.rad(-90))
  1394. wait()
  1395. else return false end
  1396. else return false end
  1397. end
  1398. for i = 10, 0, -5 do
  1399. if Player.Character:FindFirstChild("Torso") ~= nil then
  1400. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1401. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1402. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 + i), math.rad(-90))
  1403. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1404. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 - i), math.rad(-5), 0)
  1405. wait()
  1406. else return false end
  1407. else return false end
  1408. end
  1409. end
  1410. return true
  1411. end
  1412.  
  1413. function CamShake(time, freq)
  1414. coroutine.resume(coroutine.create(function()
  1415. local cam = game:GetService("Workspace").CurrentCamera
  1416. local time = 10
  1417. local seed = Vector3.new(math.random(100, 200) / freq, math.random(100, 200) / freq, 0)
  1418. if math.random(1, 2) == 1 then seed = Vector3.new(-seed.x, seed.y, 0) end
  1419. if math.random(1, 2) == 1 then seed = Vector3.new(seed.x, -seed.y, 0) end
  1420. cam.CoordinateFrame = (CFrame.new(cam.Focus.p) * (cam.CoordinateFrame - cam.CoordinateFrame.p) * CFrame.fromEulerAnglesXYZ(seed.x * time, seed.y * time, 0)) * CFrame.new(0, 0, (cam.CoordinateFrame.p - cam.Focus.p).magnitude)
  1421. for i = 1, time do
  1422. cam.CoordinateFrame = (CFrame.new(cam.Focus.p) * (cam.CoordinateFrame - cam.CoordinateFrame.p) * CFrame.fromEulerAnglesXYZ(-seed.x, -seed.y, 0)) * CFrame.new(0, 0, (cam.CoordinateFrame.p - cam.Focus.p).magnitude)
  1423. wait()
  1424. end
  1425. end))
  1426. end
  1427.  
  1428. function makeShell(part)
  1429. if part == nil then return false end
  1430. local casing = Instance.new("Part")
  1431. casing.Name = "Shell"
  1432. casing.formFactor = "Symmetric"
  1433. casing.Size = Vector3.new(1, 1, 1)
  1434. casing.CFrame = CFrame.new(part.Position) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
  1435. casing.BrickColor = BrickColor.new("New Yeller")
  1436. local mesh = Instance.new("CylinderMesh")
  1437. mesh.Scale = Vector3.new(0.2, 0.6, 0.2)
  1438. mesh.Parent = casing
  1439. casing.Parent = game:GetService("Workspace")
  1440. casing:BreakJoints()
  1441. casing.Velocity = (part.CFrame.lookVector * 65) + Vector3.new(0, 10, 0)
  1442. coroutine.resume(coroutine.create(function() wait(4.5) for i = 0, 1, 0.1 do casing.Transparency = i wait() end casing:Remove() end))
  1443. end
  1444.  
  1445. function Weld(x, y)
  1446. local weld = Instance.new("Weld")
  1447. weld.Part0 = x
  1448. weld.Part1 = y
  1449. CJ = CFrame.new(x.Position)
  1450. C0 = x.CFrame:inverse() * CJ
  1451. C1 = y.CFrame:inverse() * CJ
  1452. weld.C0 = C0
  1453. weld.C1 = C1
  1454. weld.Parent = x
  1455. end
  1456.  
  1457. function tagHumanoid(humanoid)
  1458. local tag = Instance.new("ObjectValue")
  1459. tag.Name = "creator"
  1460. tag.Value = Player
  1461. tag.Parent = humanoid
  1462. local tag = Instance.new("StringValue")
  1463. tag.Name = "creatorType1"
  1464. tag.Value = Name
  1465. tag.Parent = humanoid
  1466. local tag = Instance.new("StringValue")
  1467. tag.Name = "creatorType2"
  1468. tag.Value = "shot"
  1469. tag.Parent = humanoid
  1470. end
  1471.  
  1472. function untagHumanoid(humanoid)
  1473. if humanoid ~= nil then
  1474. local tag = humanoid:FindFirstChild("creator")
  1475. if tag ~= nil then
  1476. tag:Remove()
  1477. end
  1478. local tag = humanoid:FindFirstChild("creatorType1")
  1479. if tag ~= nil then
  1480. tag:Remove()
  1481. end
  1482. local tag = humanoid:FindFirstChild("creatorType2")
  1483. if tag ~= nil then
  1484. tag:Remove()
  1485. end
  1486. end
  1487. end
  1488.  
  1489. function fire(startPoint, endPoint, hit)
  1490. local trail = Instance.new("Part")
  1491. trail.Name = "Bullet Trail"
  1492. trail.BrickColor = BrickColor.new("Bright yellow")
  1493. trail.TopSurface = 0
  1494. trail.BottomSurface = 0
  1495. trail.formFactor = 0
  1496. trail.Size = Vector3.new(1, 1, 1)
  1497. trail.Transparency = 0.6
  1498. trail.Anchored = true
  1499. trail.CanCollide = false
  1500. trail.CFrame = CFrame.new((startPoint + endPoint) / 2, endPoint)
  1501. trail.Parent = game:GetService("Workspace")
  1502. local mesh = Instance.new("SpecialMesh")
  1503. mesh.MeshType = "Brick"
  1504. mesh.Scale = Vector3.new(0.2, 0.2, (startPoint - endPoint).magnitude)
  1505. mesh.Parent = trail
  1506. coroutine.resume(coroutine.create(function(part) for i = 1, 10 do part.Mesh.Scale = Vector3.new(part.Mesh.Scale.x - 0.01, part.Mesh.Scale.y - 0.01, part.Mesh.Scale.z) wait() end part:Remove() end), trail)
  1507. if hit ~= nil then
  1508. if hit.Parent == nil then return end
  1509. if hit.Parent:FindFirstChild("Humanoid") ~= nil then
  1510. tagHumanoid(hit.Parent.Humanoid)
  1511. if hit.Name == "Head" then
  1512. hit.Parent.Humanoid:TakeDamage(damage * 10)
  1513. elseif hit.Name == "Torso" then
  1514. hit.Parent.Humanoid:TakeDamage(damage * 2)
  1515. else
  1516. hit.Parent.Humanoid:TakeDamage(damage)
  1517. end
  1518. if HP == true then
  1519. hit.Parent.Humanoid.Sit = true
  1520. end
  1521. delay(0.1, function() untagHumanoid(hit.Parent.Humanoid) end)
  1522. end
  1523. if hit.Anchored == false then
  1524. hit.Velocity = hit.Velocity + ((endPoint - startPoint).unit * (damage * 2))
  1525. end
  1526. end
  1527. end
  1528.  
  1529. function onButton1Down(mouse)
  1530. if selected == false then return end
  1531. if Player.Character:FindFirstChild(Name) ~= nil and Button1Down == false and canFire == true and (function() if dual == true then if Player.Character:FindFirstChild(Name.. " (Left)") ~= nil then return true else return false end else return true end end)() == true then
  1532. if Player.Character[Name]:FindFirstChild("Handle") == nil then return end
  1533. if Player.Character[Name]:FindFirstChild("Muzzle") == nil then return end
  1534. if dual == true then if Player.Character[Name.. " (Left)"]:FindFirstChild("Handle") == nil then return end end
  1535. if dual == true then if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end end
  1536. mouse.Icon = "http://www.roblox.com/asset/?id=1868836"
  1537. Button1Down = true
  1538. canFire = false
  1539. canFire2 = true
  1540. while canFire2 == true do
  1541. local humanoid = Player.Character:FindFirstChild("Humanoid")
  1542. if humanoid == nil then
  1543. canFire2 = false
  1544. break
  1545. end
  1546. if humanoid.Health <= 0 then
  1547. canFire2 = false
  1548. break
  1549. end
  1550. local fireLeft = false
  1551. if automatic == false and burst == false then
  1552. canFire2 = false
  1553. elseif automatic == false and burst == true then
  1554. if burstCount >= burstCountMax then
  1555. canFire2 = false
  1556. burstCount = 0
  1557. break
  1558. end
  1559. burstCount = burstCount + 1
  1560. elseif automatic == true and burst == false then
  1561. fireLeft = true
  1562. end
  1563. if magazine.Value > 0 then
  1564. magazine.Value = magazine.Value - 1
  1565. updateGui()
  1566. fire(Player.Character[Name].Muzzle.Position, mouse.Hit.p, mouse.Target)
  1567. coroutine.resume(coroutine.create(function()
  1568. if dual == true then
  1569. playAnimation("rightFire")
  1570. elseif dual == false then
  1571. playAnimation("fire")
  1572. end
  1573. end))
  1574. else
  1575. Player.Character[Name].Handle.Empty:Play()
  1576. end
  1577. if fireLeft == true and dual == true and automatic == true then
  1578. if magazine.Value > 0 then
  1579. coroutine.resume(coroutine.create(function()
  1580. wait(readyTime / 2)
  1581. magazine.Value = magazine.Value - 1
  1582. updateGui()
  1583. fire(Player.Character[Name.. " (Left)"].Muzzle.Position, mouse.Hit.p, mouse.Target)
  1584. playAnimation("leftFire")
  1585. end))
  1586. else
  1587. coroutine.resume(coroutine.create(function()
  1588. wait(readyTime / 2)
  1589. Player.Character[Name].Handle.Empty:Play()
  1590. end))
  1591. end
  1592. end
  1593. wait(readyTime)
  1594. end
  1595. mouse.Icon = "http://www.roblox.com/asset/?id=1868836"
  1596. canFire = true
  1597. end
  1598. end
  1599.  
  1600. function onButton1Up(mouse)
  1601. if selected == false then return end
  1602. Button1Down = false
  1603. canFire2 = false
  1604. burstCount = 0
  1605. while canFire == false do wait() end
  1606. if dual == true and automatic == false then
  1607. if Player.Character[Name.. " (Left)"]:FindFirstChild("Handle") == nil then return end
  1608. if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end
  1609. mouse.Icon = "http://www.roblox.com/asset/?id=1868836"
  1610. canFire = false
  1611. canFire2 = true
  1612. while canFire2 == true do
  1613. local humanoid = Player.Character:FindFirstChild("Humanoid")
  1614. if humanoid == nil then
  1615. canFire2 = false
  1616. break
  1617. end
  1618. if humanoid.Health <= 0 then
  1619. canFire2 = false
  1620. break
  1621. end
  1622. if burst == false then
  1623. canFire2 = false
  1624. elseif burst == true then
  1625. if burstCount >= burstCountMax then
  1626. canFire2 = false
  1627. burstCount = 0
  1628. break
  1629. end
  1630. burstCount = burstCount + 1
  1631. end
  1632. if magazine.Value <= 0 then
  1633. Player.Character[Name].Handle.Empty:Play()
  1634. else
  1635. coroutine.resume(coroutine.create(function()
  1636. playAnimation("leftFire")
  1637. end))
  1638. magazine.Value = magazine.Value - 1
  1639. updateGui()
  1640. fire(Player.Character[Name.. " (Left)"].Muzzle.Position, mouse.Hit.p, mouse.Target)
  1641. end
  1642. wait(readyTime)
  1643. end
  1644. mouse.Icon = "http://www.roblox.com/asset/?id=49912389"
  1645. canFire = true
  1646. end
  1647. end
  1648.  
  1649. function onKeyDown(key, mouse)
  1650. if selected == false then return end
  1651. key = key:lower()
  1652. if key == "q" and Button1Down == false and canFire == true then
  1653. if mouse.Target == nil then return end
  1654. if game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent) ~= nil then
  1655. if dual == true then onKeyDown("t", mouse) end
  1656. onDeselected(mouse)
  1657. removeParts("RightHolster")
  1658. script.Parent.Parent = game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent).Backpack
  1659. end
  1660. end
  1661. if key == "e" and Button1Down == false and canFire == true and canSilence == true then
  1662. if silenced then
  1663. silenced = false
  1664. if Player.Character:FindFirstChild(Name) == nil then return end
  1665. if Player.Character[Name]:FindFirstChild("Muzzle") == nil then return end
  1666. if Player.Character[Name]:FindFirstChild("Muzzle 2") == nil then return end
  1667. Player.Character[Name].Muzzle.Transparency = 1
  1668. Player.Character[Name].Muzzle.Name = "Silencer"
  1669. Player.Character[Name]["Muzzle 2"].Name = "Muzzle"
  1670. if dual == true then
  1671. if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end
  1672. if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle 2") == nil then return end
  1673. Player.Character[Name.. " (Left)"].Muzzle.Transparency = 1
  1674. Player.Character[Name.. " (Left)"].Muzzle.Name = "Silencer"
  1675. Player.Character[Name.. " (Left)"]["Muzzle 2"].Name = "Muzzle"
  1676. end
  1677. else
  1678. silenced = true
  1679. if Player.Character:FindFirstChild(Name) == nil then return end
  1680. if Player.Character[Name]:FindFirstChild("Silencer") == nil then return end
  1681. if Player.Character[Name]:FindFirstChild("Muzzle") == nil then return end
  1682. Player.Character[Name].Silencer.Transparency = 0
  1683. Player.Character[Name].Muzzle.Name = "Muzzle 2"
  1684. Player.Character[Name].Silencer.Name = "Muzzle"
  1685. if dual == true then
  1686. if Player.Character[Name.. " (Left)"]:FindFirstChild("Silencer") == nil then return end
  1687. if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end
  1688. Player.Character[Name.. " (Left)"].Silencer.Transparency = 0
  1689. Player.Character[Name.. " (Left)"].Muzzle.Name = "Muzzle 2"
  1690. Player.Character[Name.. " (Left)"].Silencer.Name = "Muzzle"
  1691. end
  1692. end
  1693. end
  1694. if key == "r" and Button1Down == false and canFire == true then
  1695. if ammo.Value > 0 and magazine.Value ~= magazineMax.Value then
  1696. canFire = false
  1697. burstCount = 0
  1698. mouse.Icon = "http://www.roblox.com/asset/?id=1868836"
  1699. if magazine.Value > 0 then ammo.Value = ammo.Value + magazine.Value magazine.Value = 0 end
  1700. updateGui()
  1701. if dual == true then
  1702. playAnimation("reloadDual")
  1703. elseif dual == false then
  1704. playAnimation("reload")
  1705. end
  1706. if ammo.Value - magazineMax.Value < 0 then
  1707. magazine.Value = ammo.Value
  1708. ammo.Value = 0
  1709. elseif ammo.Value - magazineMax.Value >= 0 then
  1710. ammo.Value = ammo.Value - magazineMax.Value
  1711. magazine.Value = magazineMax.Value
  1712. end
  1713. updateGui()
  1714. mouse.Icon = "http://www.roblox.com/asset/?id=1868836"
  1715. canFire = true
  1716. end
  1717. end
  1718. if key == "t" and Button1Down == false and canFire == true and canDual == true then
  1719. canFire = false
  1720. if dual == false then
  1721. local weapon = nil
  1722. for _, p in pairs(Player.Backpack:GetChildren()) do
  1723. if p.Name == Name and p ~= script.Parent then weapon = p break end
  1724. end
  1725. if weapon ~= nil then
  1726. dual = true
  1727. weapon.Name = "Dual"
  1728. weapon.Parent = script
  1729. silenced = false
  1730. removeParts("RightHand")
  1731. makeParts("RightHand")
  1732. removeParts("RightHolster")
  1733. makeParts("LeftHolster")
  1734. playAnimation("leftEquip")
  1735. removeParts("LeftHolster")
  1736. makeParts("LeftHand")
  1737. magazineMax.Value = math.ceil(magazineMax.Value * 2)
  1738. ammoMax.Value = math.ceil(ammoMax.Value * 2)
  1739. magazine.Value = magazine.Value + weapon.Magazine.Value
  1740. ammo.Value = ammo.Value + weapon.Ammo.Value
  1741. updateGui()
  1742. end
  1743. elseif dual == true then
  1744. local weapon = script:FindFirstChild("Dual")
  1745. if weapon ~= nil then
  1746. dual = false
  1747. weapon.Name = Name
  1748. weapon.Parent = Player.Backpack
  1749. silenced = false
  1750. removeParts("RightHand")
  1751. makeParts("RightHand")
  1752. playAnimation("leftUnequip")
  1753. removeParts("LeftHand")
  1754. makeParts("RightHolster")
  1755. playAnimation("hold")
  1756. weapon.Magazine.Value = math.floor(magazine.Value / 2)
  1757. weapon.Ammo.Value = math.floor(ammo.Value / 2)
  1758. magazineMax.Value = math.ceil(magazineMax.Value / 2)
  1759. ammoMax.Value = math.ceil(ammoMax.Value / 2)
  1760. magazine.Value = math.ceil(magazine.Value / 2)
  1761. ammo.Value = math.ceil(ammo.Value / 2)
  1762. updateGui()
  1763. end
  1764. end
  1765. canFire = true
  1766. end
  1767. if key == "y" and canZoom == true then
  1768. if zoom == false then
  1769. zoom = true
  1770. local pos = mouse.Hit.p
  1771. local target = mouse.Target
  1772. local cam = game:GetService("Workspace").CurrentCamera
  1773. focus = Instance.new("Part", workspace)
  1774. focus.Anchored = true
  1775. focus.CanCollide = false
  1776. focus.Transparency = 1
  1777. focus.TopSurface = 0
  1778. focus.BottomSurface = 0
  1779. focus.formFactor = "Plate"
  1780. focus.Size = Vector3.new(0, 0, 0)
  1781. focus.CFrame = CFrame.new(pos) * (CFrame.new(Player.Character.Torso.CFrame.p, pos) - CFrame.new(Player.Character.Torso.CFrame.p, pos).p)
  1782. cam.CameraSubject = focus
  1783. cam.CameraType = "Attach"
  1784. while zoom == true and selected == true do
  1785. local set = false
  1786. if target ~= nil then
  1787. if target.Parent ~= nil then
  1788. if target.Anchored == false then
  1789. focus.CFrame = CFrame.new(target.CFrame.p) * (CFrame.new(Player.Character.Torso.CFrame.p, target.CFrame.p) - CFrame.new(Player.Character.Torso.CFrame.p, target.CFrame.p).p)
  1790. set = true
  1791. end
  1792. end
  1793. end
  1794. if set == false then
  1795. focus.CFrame = CFrame.new(pos) * (CFrame.new(Player.Character.Torso.CFrame.p, pos) - CFrame.new(Player.Character.Torso.CFrame.p, pos).p)
  1796. end
  1797. wait()
  1798. end
  1799. if focus ~= nil then focus:Remove() focus = nil end
  1800. local cam = game:GetService("Workspace").CurrentCamera
  1801. cam.CameraSubject = Player.Character:FindFirstChild("Humanoid")
  1802. cam.CameraType = "Custom"
  1803. else
  1804. zoom = false
  1805. end
  1806. end
  1807. if key == "u" and Button1Down == false and canFire == true then
  1808. if automatic == false and burst == false then
  1809. if switchToBurst == true then
  1810. burst = true
  1811. local m = Instance.new("Message", Player)
  1812. m.Text = "Burst"
  1813. pcall(function() Player.Character[Name].Handle.Switch:Play() end)
  1814. delay(2.5, function() m:Remove() end)
  1815. elseif switchToAutomatic == true then
  1816. automatic = true
  1817. local m = Instance.new("Message", Player)
  1818. m.Text = "Automatic"
  1819. pcall(function() Player.Character[Name].Handle.Switch:Play() end)
  1820. delay(2.5, function() m:Remove() end)
  1821. end
  1822. elseif automatic == false and burst == true then
  1823. if switchToAutomatic == true then
  1824. automatic = true
  1825. burst = false
  1826. local m = Instance.new("Message", Player)
  1827. m.Text = "Automatic"
  1828. pcall(function() Player.Character[Name].Handle.Switch:Play() end)
  1829. delay(2.5, function() m:Remove() end)
  1830. elseif switchToSingle == true then
  1831. burst = false
  1832. local m = Instance.new("Message", Player)
  1833. m.Text = "Single"
  1834. pcall(function() Player.Character[Name].Handle.Switch:Play() end)
  1835. delay(2.5, function() m:Remove() end)
  1836. end
  1837. elseif automatic == true and burst == false then
  1838. if switchToSingle == true then
  1839. automatic = false
  1840. local m = Instance.new("Message", Player)
  1841. m.Text = "Single"
  1842. pcall(function() Player.Character[Name].Handle.Switch:Play() end)
  1843. delay(2.5, function() m:Remove() end)
  1844. elseif switchToBurst == true then
  1845. automatic = false
  1846. burst = true
  1847. local m = Instance.new("Message", Player)
  1848. m.Text = "Burst"
  1849. pcall(function() Player.Character[Name].Handle.Switch:Play() end)
  1850. delay(2.5, function() m:Remove() end)
  1851. end
  1852. end
  1853. end
  1854. end
  1855.  
  1856. function onSelected(mouse)
  1857. if selected == true then return end
  1858. selected = true
  1859. canFire = false
  1860. mouse.Icon = "http://www.roblox.com/asset/?id=1868836"
  1861. while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
  1862. if Player.Character.WeaponActivated.Value == nil then break end
  1863. if Player.Character.WeaponActivated.Value.Parent == nil then break end
  1864. wait()
  1865. end
  1866. updateGui()
  1867. local weapon = Instance.new("ObjectValue")
  1868. weapon.Name = "WeaponActivated"
  1869. weapon.Value = script.Parent
  1870. weapon.Parent = Player.Character
  1871. DisableLimb(1, Player.Character)
  1872. DisableLimb(2, Player.Character)
  1873. ForceAngle(1, 0, Player.Character)
  1874. ForceAngle(2, 0, Player.Character)
  1875. if dual == true then
  1876. coroutine.resume(coroutine.create(function() playAnimation("leftEquip") end))
  1877. playAnimation("rightEquip")
  1878. removeParts("LeftHolster")
  1879. makeParts("LeftHand")
  1880. else
  1881. playAnimation("equip")
  1882. end
  1883. removeParts("RightHolster")
  1884. makeParts("RightHand")
  1885. mouse.Button1Down:connect(function() onButton1Down(mouse) end)
  1886. mouse.Button1Up:connect(function() onButton1Up(mouse) end)
  1887. mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end)
  1888. mouse.Icon = "http://www.roblox.com/asset/?id=1868836"
  1889. canFire = true
  1890. end
  1891.  
  1892. function onDeselected(mouse)
  1893. if selected == false then return end
  1894. Button1Down = false
  1895. while canFire == false do
  1896. wait()
  1897. end
  1898. selected = false
  1899. if dual == true then
  1900. if math.random(1, 2) == 1 then
  1901. coroutine.resume(coroutine.create(function() playAnimation("leftUnequip") end))
  1902. wait(math.random(1, 10) / 10)
  1903. playAnimation("rightUnequip")
  1904. else
  1905. coroutine.resume(coroutine.create(function() playAnimation("rightUnequip") end))
  1906. wait(math.random(1, 10) / 10)
  1907. playAnimation("leftUnequip")
  1908. end
  1909. removeParts("LeftHand")
  1910. makeParts("LeftHolster")
  1911. else
  1912. playAnimation("unequip")
  1913. end
  1914. removeParts("RightHand")
  1915. makeParts("RightHolster")
  1916. ForceAngle(1, 0, Player.Character)
  1917. ForceAngle(2, 0, Player.Character)
  1918. ResetLimbCFrame(1, Player.Character)
  1919. ResetLimbCFrame(2, Player.Character)
  1920. EnableLimb(1, Player.Character)
  1921. EnableLimb(2, Player.Character)
  1922. silenced = false
  1923. if Player.PlayerGui:FindFirstChild(Name) ~= nil then Player.PlayerGui[Name]:Remove() end
  1924. if Player.Character:FindFirstChild("WeaponActivated") ~= nil then
  1925. if Player.Character.WeaponActivated.Value == script.Parent then
  1926. Player.Character.WeaponActivated:Remove()
  1927. end
  1928. end
  1929. while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
  1930. if Player.Character.WeaponActivated.Value == nil then break end
  1931. if Player.Character.WeaponActivated.Value.Parent == nil then break end
  1932. wait()
  1933. end
  1934. end
  1935.  
  1936. if script.Parent.className ~= "HopperBin" then
  1937. if Player == nil then print("Error: Player not found!") return end
  1938. Tool = Instance.new("HopperBin")
  1939. Tool.Name = Name
  1940. Tool.Parent = Player.Backpack
  1941. script.Name = "Main"
  1942. script.Parent = Tool
  1943. elseif script.Parent.className == "HopperBin" then
  1944. while script.Parent.Parent.className ~= "Backpack" do
  1945. wait()
  1946. end
  1947. if script.Parent:FindFirstChild("MagazineMax") == nil then
  1948. magazineMax = Instance.new("NumberValue")
  1949. magazineMax.Name = "MagazineMax"
  1950. magazineMax.Value = 5
  1951. magazineMax.Parent = script.Parent
  1952. else
  1953. magazineMax = script.Parent.MagazineMax
  1954. end
  1955. if script.Parent:FindFirstChild("Magazine") == nil then
  1956. magazine = Instance.new("NumberValue")
  1957. magazine.Name = "Magazine"
  1958. magazine.Value = 0
  1959. magazine.Parent = script.Parent
  1960. else
  1961. magazine = script.Parent.Magazine
  1962. end
  1963. if script.Parent:FindFirstChild("AmmoMax") == nil then
  1964. ammoMax = Instance.new("NumberValue")
  1965. ammoMax.Name = "AmmoMax"
  1966. ammoMax.Value = 300
  1967. ammoMax.Parent = script.Parent
  1968. else
  1969. ammoMax = script.Parent.AmmoMax
  1970. end
  1971. if script.Parent:FindFirstChild("Ammo") == nil then
  1972. ammo = Instance.new("NumberValue")
  1973. ammo.Name = "Ammo"
  1974. ammo.Value = script.Parent.AmmoMax.Value
  1975. ammo.Parent = script.Parent
  1976. else
  1977. ammo = script.Parent.Ammo
  1978. end
  1979. Player = script.Parent.Parent.Parent
  1980. makeParts("RightHolster")
  1981. script.Parent.Selected:connect(onSelected)
  1982. script.Parent.Deselected:connect(onDeselected)
  1983. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement