Advertisement
kostik228

8 gauge shotgun script

Jul 5th, 2018
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 48.87 KB | None | 0 0
  1. ModelName = "8 Gauge"
  2. AmmoType = "8-gauge shell"
  3. MagazineCapacity = 6
  4. MagazineCapacityAdd = 1
  5. Player = Game:GetService("Players").LocalPlayer
  6. Char = Player.Character
  7. animate = Char:findFirstChild("Animate")
  8. if animate then
  9. animate:Destroy()
  10. end
  11. Selected = false
  12. Connected = false
  13. Button1Down = false
  14. CanUse = true
  15. Aiming = true
  16.  
  17.  
  18. function CheckPlayer()
  19. if Player.Character == nil then return false end
  20. 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
  21. if Player.Character.Humanoid.Health <= 0 then return false end
  22. return true
  23. end
  24.  
  25.  
  26. function tagHumanoid(humanoid)
  27. local tag = Instance.new("ObjectValue")
  28. tag.Name = "creator"
  29. tag.Value = Player
  30. tag.Parent = humanoid
  31. end
  32.  
  33.  
  34. function untagHumanoid(humanoid)
  35. if humanoid ~= nil then
  36. local tag = humanoid:FindFirstChild("creator")
  37. if tag ~= nil then
  38. tag:Remove()
  39. end
  40. end
  41. end
  42.  
  43.  
  44. --[[
  45. CameraPunch v5
  46.  
  47. Functions:
  48. CameraPunch
  49. CameraSlide
  50. --]]
  51.  
  52.  
  53. function CameraPunch(X, Y)
  54. X, Y = X or math.rad(10), Y or math.rad(math.random(-10000, 10000) / 1000)
  55. Workspace.CurrentCamera.CoordinateFrame =
  56. CFrame.new(Workspace.CurrentCamera.Focus.p) *
  57. CFrame.fromEulerAnglesXYZ(CFrame.new(Workspace.CurrentCamera.CoordinateFrame.p, Workspace.CurrentCamera.Focus.p):toEulerAnglesXYZ()) *
  58. CFrame.fromEulerAnglesXYZ(X, Y, 0) *
  59. CFrame.new(0, 0, (Workspace.CurrentCamera.CoordinateFrame.p - Workspace.CurrentCamera.Focus.p).magnitude)
  60. end
  61.  
  62.  
  63. function CameraSlide(X, Y, Step)
  64. X, Y, Step = X or math.rad(10), Y or math.rad(math.random(-10000, 10000) / 1000), Step or 0.1
  65. for i = 0, 1, Step do
  66. CameraPunch(Step * X, Step * Y)
  67. wait()
  68. end
  69. end
  70.  
  71.  
  72. SoundToServer = function(Name, SoundId, Pitch, Volume, Looped, Parent)
  73. local Sound = Instance.new("Sound")
  74. Sound.Name = Name
  75. Sound.SoundId = SoundId
  76. Sound.Pitch = Pitch
  77. Sound.Volume = Volume
  78. Sound.Looped = Looped
  79. Sound.Parent = Parent
  80. Sound:Play()
  81. end
  82.  
  83.  
  84. --[[
  85. CFrameTween v4
  86.  
  87. Functions:
  88. PropertyCFrameTween
  89. --]]
  90.  
  91.  
  92. function PropertyCFrameTween(Part, Property, End, Step, Wrap)
  93. if Part == nil then return end
  94. local StartPosition = Part[Property].p
  95. local StartAngle = Vector3.new(Part[Property]:toEulerAnglesXYZ())
  96. local EndPosition = End.p
  97. local EndAngle = Vector3.new(End:toEulerAnglesXYZ())
  98. local Loop = coroutine.create(function()
  99. for i = 0, 1, Step do
  100. Part[Property] =
  101. CFrame.new((StartPosition * (1 - i)) + (EndPosition * i)) *
  102. CFrame.fromEulerAnglesXYZ(
  103. (StartAngle.x * (1 - i)) + (EndAngle.x * i),
  104. (StartAngle.y * (1 - i)) + (EndAngle.y * i),
  105. (StartAngle.z * (1 - i)) + (EndAngle.z * i)
  106. )
  107. wait()
  108. end
  109. Part[Property] = End
  110. end)
  111. coroutine.resume(Loop)
  112. if Wrap ~= true then
  113. while coroutine.status(Loop) ~= "dead" do wait() end
  114. end
  115. end
  116.  
  117.  
  118. function CreateParts(Parent, Format)
  119. if Parent == nil then return end
  120. local Parts = Instance.new("Model")
  121. Parts.Name = ModelName
  122. if Format == 1 then
  123. Parts.Name = Parts.Name.. " (Holstered)"
  124. end
  125. Parts.Parent = Parent
  126.  
  127. local Handle = Instance.new("Part", Parts)
  128. Handle.Material = "SmoothPlastic"
  129. Handle.Name = "Handle"
  130. Handle.BrickColor = BrickColor.new("Really black")
  131. Handle.TopSurface = 0
  132. Handle.BottomSurface = 0
  133. Handle.FormFactor = "Custom"
  134. Handle.Size = Vector3.new(0.5, 0.7, 1.3)
  135. local Weld = Instance.new("Weld", Handle)
  136. Weld.Part0 = Weld.Parent
  137. if Format == 1 then
  138. Weld.Part1 = Player.Character:FindFirstChild("Torso")
  139. Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(-40), math.rad(90), 0) * CFrame.new(0, 0, -0.7)
  140. elseif Format == 2 then
  141. Weld.Part1 = Player.Character:FindFirstChild("Right Arm")
  142. Weld.C1 = CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-10), 0) * CFrame.new(0, 0.5, -0.9)
  143. end
  144.  
  145. local Stock1 = Instance.new("Part", Parts)
  146. Stock1.Material = "SmoothPlastic"
  147. Stock1.Name = "Stock 1"
  148. Stock1.BrickColor = BrickColor.new("Really black")
  149. Stock1.TopSurface = 0
  150. Stock1.BottomSurface = 0
  151. Stock1.FormFactor = "Custom"
  152. Stock1.Size = Vector3.new(0.5, 0.6, 1.6)
  153. local Weld = Instance.new("Weld", Stock1)
  154. Weld.Part0 = Weld.Parent
  155. Weld.Part1 = Handle
  156. Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(-45), 0, 0) * CFrame.new(0, 0.43, -1.005)
  157.  
  158. local Stock2 = Instance.new("WedgePart", Parts)
  159. Stock2.Material = "SmoothPlastic"
  160. Stock2.Name = "Stock 2"
  161. Stock2.BrickColor = BrickColor.new("Really black")
  162. Stock2.TopSurface = 0
  163. Stock2.BottomSurface = 0
  164. Stock2.FormFactor = "Custom"
  165. Stock2.Size = Vector3.new(0.5, 0.9, 0.9)
  166. local Weld = Instance.new("Weld", Stock2)
  167. Weld.Part0 = Weld.Parent
  168. Weld.Part1 = Stock1
  169. Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(135), 0, 0) * CFrame.new(0, -0.3, -0.15)
  170.  
  171. local Pipe1 = Instance.new("Part", Parts)
  172. Pipe1.Material = "SmoothPlastic"
  173. Pipe1.Name = "Pipe 1"
  174. Pipe1.BrickColor = BrickColor.new("Light grey")
  175. Pipe1.Reflectance = 0.1
  176. Pipe1.TopSurface = 0
  177. Pipe1.BottomSurface = 0
  178. Pipe1.FormFactor = "Custom"
  179. Pipe1.Size = Vector3.new(0.3, 0.3, 3.2)
  180. Instance.new("BlockMesh", Pipe1)
  181. local Weld = Instance.new("Weld", Pipe1)
  182. Weld.Part0 = Weld.Parent
  183. Weld.Part1 = Handle
  184. Weld.C0 = CFrame.new(0, -0.15, 1.6 + 0.55)
  185.  
  186. local Pipe2 = Instance.new("Part", Parts)
  187. Pipe2.Material = "SmoothPlastic"
  188. Pipe2.Name = "Pipe 2"
  189. Pipe2.BrickColor = BrickColor.new("Light grey")
  190. Pipe2.Reflectance = 0.1
  191. Pipe2.TopSurface = 0
  192. Pipe2.BottomSurface = 0
  193. Pipe2.FormFactor = "Custom"
  194. Pipe2.Size = Vector3.new(0.3, 0.3, 1.7)
  195. Instance.new("BlockMesh", Pipe2)
  196. local Weld = Instance.new("Weld", Pipe2)
  197. Weld.Part0 = Weld.Parent
  198. Weld.Part1 = Handle
  199. Weld.C0 = CFrame.new(0, 0.15, 0.85 + 0.55)
  200.  
  201. local Pipe3 = Instance.new("Part", Parts)
  202. Pipe3.Material = "SmoothPlastic"
  203. Pipe3.Name = "Pipe 3"
  204. Pipe3.BrickColor = BrickColor.new("Light grey")
  205. Pipe3.Reflectance = 0.1
  206. Pipe3.TopSurface = 0
  207. Pipe3.BottomSurface = 0
  208. Pipe3.FormFactor = "Custom"
  209. Pipe3.Size = Vector3.new(0.25, 0.25, 1.6)
  210. Instance.new("BlockMesh", Pipe3)
  211. local Weld = Instance.new("Weld", Pipe3)
  212. Weld.Part0 = Weld.Parent
  213. Weld.Part1 = Pipe2
  214. Weld.C0 = CFrame.new(0, 0, 0.8 + 0.7)
  215.  
  216. local Pump1 = Instance.new("Part", Parts)
  217. Pump1.Material = "SmoothPlastic"
  218. Pump1.Name = "Pump"
  219. Pump1.BrickColor = BrickColor.new("Really black")
  220. Pump1.TopSurface = 0
  221. Pump1.BottomSurface = 0
  222. Pump1.FormFactor = "Custom"
  223. Pump1.Size = Vector3.new(0.45, 0.45, 1.1)
  224. Instance.new("BlockMesh", Pump1)
  225. local Weld = Instance.new("Weld", Pump1)
  226. Weld.Part0 = Weld.Parent
  227. Weld.Part1 = Pipe3
  228. Weld.C0 = CFrame.new(0, 0, -0.6)
  229.  
  230. local Pump2 = Instance.new("Part", Parts)
  231. Pump2.Material = "SmoothPlastic"
  232. Pump2.Name = "Pump 2"
  233. Pump2.BrickColor = BrickColor.new("Really black")
  234. Pump2.TopSurface = 0
  235. Pump2.BottomSurface = 0
  236. Pump2.FormFactor = "Custom"
  237. Pump2.Size = Vector3.new(0.5, 0.5, 0.3)
  238. Instance.new("BlockMesh", Pump2)
  239. local Weld = Instance.new("Weld", Pump2)
  240. Weld.Part0 = Weld.Parent
  241. Weld.Part1 = Pump1
  242. Weld.C0 = CFrame.new(0, 0, 0.5)
  243.  
  244. for i = -20, 200, 20 do
  245. local TriggerGuard1 = Instance.new("Part", Parts)
  246. TriggerGuard1.Material = "SmoothPlastic"
  247. TriggerGuard1.Name = "Trigger Guard 1 " ..i
  248. TriggerGuard1.BrickColor = BrickColor.new("Really black")
  249. TriggerGuard1.TopSurface = 0
  250. TriggerGuard1.BottomSurface = 0
  251. TriggerGuard1.FormFactor = "Custom"
  252. TriggerGuard1.Size = Vector3.new(0.2, 0.2, 0.2)
  253. local Mesh = Instance.new("BlockMesh", TriggerGuard1)
  254. Mesh.Scale = Vector3.new(0.4, 0.6, 0.4)
  255. local Weld = Instance.new("Weld", TriggerGuard1)
  256. Weld.Part0 = Weld.Parent
  257. Weld.Part1 = Handle
  258. Weld.C0 = CFrame.new(0, 0, -0.2)
  259. Weld.C1 = CFrame.new(0, -0.45, -0.32) * CFrame.fromEulerAnglesXYZ(math.rad(i), 0, 0)
  260. end
  261.  
  262. local TriggerGuard2 = Instance.new("Part", Parts)
  263. TriggerGuard2.Material = "SmoothPlastic"
  264. TriggerGuard2.Name = "Trigger Guard 2"
  265. TriggerGuard2.BrickColor = BrickColor.new("Really black")
  266. TriggerGuard2.TopSurface = 0
  267. TriggerGuard2.BottomSurface = 0
  268. TriggerGuard2.FormFactor = "Custom"
  269. TriggerGuard2.Size = Vector3.new(0.2, 0.2, 0.3)
  270. local Mesh = Instance.new("BlockMesh", TriggerGuard2)
  271. Mesh.Scale = Vector3.new(0.4, 1, 1)
  272. local Weld = Instance.new("Weld", TriggerGuard2)
  273. Weld.Part0 = Weld.Parent
  274. Weld.Part1 = Handle
  275. Weld.C0 = CFrame.new(0, 0.45, -0.2)
  276. Weld.C1 = CFrame.new(0, 0, -0.32) * CFrame.fromEulerAnglesXYZ(math.rad(-20), 0, 0)
  277.  
  278. local Trigger = Instance.new("Part", Parts)
  279. Trigger.Material = "SmoothPlastic"
  280. Trigger.Name = "Trigger Guard 2"
  281. Trigger.BrickColor = BrickColor.new("Really black")
  282. Trigger.TopSurface = 0
  283. Trigger.BottomSurface = 0
  284. Trigger.FormFactor = "Custom"
  285. Trigger.Size = Vector3.new(0.2, 0.3, 0.2)
  286. local Mesh = Instance.new("BlockMesh", Trigger)
  287. Mesh.Scale = Vector3.new(0.5, 0.9, 0.3)
  288. local Weld = Instance.new("Weld", Trigger)
  289. Weld.Part0 = Weld.Parent
  290. Weld.Part1 = Handle
  291. Weld.C0 = CFrame.new(0, 0.45, 0.275) * CFrame.fromEulerAnglesXYZ(math.rad(2), 0, 0)
  292.  
  293. local Aim = Instance.new("Part", Parts)
  294. Aim.Material = "SmoothPlastic"
  295. Aim.Name = "Aim"
  296. Aim.BrickColor = BrickColor.new("Really black")
  297. Aim.TopSurface = 0
  298. Aim.BottomSurface = 0
  299. Aim.FormFactor = "Custom"
  300. Aim.Size = Vector3.new(0.3, 0.2, 0.7)
  301. local Mesh = Instance.new("BlockMesh", Aim)
  302. Mesh.Scale = Vector3.new(1, 0.7, 1)
  303. local Weld = Instance.new("Weld", Aim)
  304. Weld.Part0 = Weld.Parent
  305. Weld.Part1 = Pipe1
  306. Weld.C0 = CFrame.new(0, -0.12, 1.1)
  307.  
  308. local Aim1 = Instance.new("Part", Parts)
  309. Aim1.Material = "SmoothPlastic"
  310. Aim1.Name = "Aim 1"
  311. Aim1.BrickColor = BrickColor.new("Really black")
  312. Aim1.TopSurface = 0
  313. Aim1.BottomSurface = 0
  314. Aim1.FormFactor = "Custom"
  315. Aim1.Size = Vector3.new(0.2, 0.2, 0.2)
  316. Instance.new("BlockMesh", Aim1).Scale = Vector3.new(0.3, 0.7, 0.5)
  317. local Weld = Instance.new("Weld", Aim1)
  318. Weld.Part0 = Weld.Parent
  319. Weld.Part1 = Aim
  320. Weld.C0 = CFrame.new(0.1, -0.1, -0.25)
  321.  
  322. local Aim2 = Instance.new("Part", Parts)
  323. Aim2.Material = "SmoothPlastic"
  324. Aim2.Name = "Aim 2"
  325. Aim2.BrickColor = BrickColor.new("Really black")
  326. Aim2.TopSurface = 0
  327. Aim2.BottomSurface = 0
  328. Aim2.FormFactor = "Custom"
  329. Aim2.Size = Vector3.new(0.2, 0.2, 0.2)
  330. Instance.new("BlockMesh", Aim2).Scale = Vector3.new(0.3, 0.7, 0.5)
  331. local Weld = Instance.new("Weld", Aim2)
  332. Weld.Part0 = Weld.Parent
  333. Weld.Part1 = Aim
  334. Weld.C0 = CFrame.new(-0.1, -0.1, -0.25)
  335.  
  336. local Aim3 = Instance.new("Part", Parts)
  337. Aim3.Material = "SmoothPlastic"
  338. Aim3.Name = "Aim 3"
  339. Aim3.BrickColor = BrickColor.new("Really black")
  340. Aim3.TopSurface = 0
  341. Aim3.BottomSurface = 0
  342. Aim3.FormFactor = "Custom"
  343. Aim3.Size = Vector3.new(0.2, 0.2, 0.2)
  344. Instance.new("BlockMesh", Aim3).Scale = Vector3.new(0.3, 0.7, 0.5)
  345. local Weld = Instance.new("Weld", Aim3)
  346. Weld.Part0 = Weld.Parent
  347. Weld.Part1 = Aim
  348. Weld.C0 = CFrame.new(0, -0.1, 0.25)
  349.  
  350. local Flip = Instance.new("Part", Parts)
  351. Flip.Material = "SmoothPlastic"
  352. Flip.Name = "Flip"
  353. Flip.BrickColor = BrickColor.new("Light grey")
  354. Flip.TopSurface = 0
  355. Flip.BottomSurface = 0
  356. Flip.FormFactor = "Custom"
  357. Flip.Size = Vector3.new(0.2, 0.3, 0.6)
  358. Instance.new("BlockMesh", Flip).Scale = Vector3.new(0.3, 0.7, 0.5)
  359. local Weld = Instance.new("Weld", Flip)
  360. Weld.Part0 = Weld.Parent
  361. Weld.Part1 = Handle
  362. Weld.C0 = CFrame.fromEulerAnglesXYZ(0, math.rad(10), 0) * CFrame.new(-0.25, -0.175, 0.2)
  363.  
  364. local Part = Instance.new("Part")
  365. Part.Material = "SmoothPlastic"
  366. Part.Name = "Source"
  367. Part.Transparency = 1
  368. Part.TopSurface = 0
  369. Part.BottomSurface = 0
  370. Part.FormFactor = "Custom"
  371. Part.Size = Vector3.new(0.2, 0.2, 0.2)
  372. Part.Parent = Parts
  373. local Weld = Instance.new("Weld")
  374. Weld.Part0 = Part
  375. Weld.Part1 = Handle
  376. Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0) * CFrame.new(0, -0.15, 4.3)
  377. Weld.Parent = Weld.Part0
  378. local Fire = Instance.new("Fire", Part)
  379. Fire.Enabled = false
  380. Fire.Size = 10
  381. Fire.Heat = 20
  382. Fire.Color = Color3.new(1, 0.6, 0.2)
  383. Fire.SecondaryColor = Color3.new(0.6, 0.1, 0.05)
  384. local Smoke = Instance.new("Smoke", Part)
  385. Smoke.Enabled = false
  386. Smoke.Size = 20
  387. Smoke.RiseVelocity = 15
  388. Smoke.Color = Color3.new(0.8, 0.8, 0.8)
  389. Smoke.Opacity = 0.3
  390.  
  391. for _, Part in pairs(Parts:GetChildren()) do
  392. Part.Locked = true
  393. Part.CanCollide = false
  394. end
  395. end
  396.  
  397.  
  398. function RemoveParts(Parent, Format)
  399. if Format == 1 then
  400. pcall(function() Parent[ModelName.. " (Holstered)"]:Remove() end)
  401. elseif Format == 2 then
  402. pcall(function() Parent[ModelName]:Remove() end)
  403. end
  404. end
  405.  
  406.  
  407. function SetAngle(Joint, Angle, Character)
  408. if Character == nil then return false end
  409. local Joints = {
  410. Character.Torso:FindFirstChild("Right Shoulder 2"),
  411. Character.Torso:FindFirstChild("Left Shoulder 2"),
  412. Character.Torso:FindFirstChild("Right Hip 2"),
  413. Character.Torso:FindFirstChild("Left Hip 2")
  414. }
  415. if Joints[Joint] == nil then return false end
  416. if Joint == 1 or Joint == 3 then
  417. Joints[Joint].DesiredAngle = Angle
  418. end
  419. if Joint == 2 or Joint == 4 then
  420. Joints[Joint].DesiredAngle = -Angle
  421. end
  422. end
  423.  
  424.  
  425. function ForceAngle(Joint, Angle, Character)
  426. if Character == nil then return false end
  427. local Joints = {
  428. Character.Torso:FindFirstChild("Right Shoulder 2"),
  429. Character.Torso:FindFirstChild("Left Shoulder 2"),
  430. Character.Torso:FindFirstChild("Right Hip 2"),
  431. Character.Torso:FindFirstChild("Left Hip 2")
  432. }
  433. if Joints[Joint] == nil then return false end
  434. if Joint == 1 or Joint == 3 then
  435. Joints[Joint].DesiredAngle = Angle
  436. Joints[Joint].CurrentAngle = Angle
  437. end
  438. if Joint == 2 or Joint == 4 then
  439. Joints[Joint].DesiredAngle = -Angle
  440. Joints[Joint].CurrentAngle = -Angle
  441. end
  442. end
  443.  
  444.  
  445. function SetSpeed(Joint, Speed, Character)
  446. if Character == nil then return false end
  447. local Joints = {
  448. Character.Torso:FindFirstChild("Right Shoulder 2"),
  449. Character.Torso:FindFirstChild("Left Shoulder 2"),
  450. Character.Torso:FindFirstChild("Right Hip 2"),
  451. Character.Torso:FindFirstChild("Left Hip 2")
  452. }
  453. if Joints[Joint] == nil then return false end
  454. Joints[Joint].MaxVelocity = Speed
  455. end
  456.  
  457.  
  458. function DisableLimb(Limb, Character)
  459. if Character == nil then return false end
  460. if Character:FindFirstChild("Torso") == nil then return false end
  461. local Joints = {
  462. Character.Torso:FindFirstChild("Right Shoulder"),
  463. Character.Torso:FindFirstChild("Left Shoulder"),
  464. Character.Torso:FindFirstChild("Right Hip"),
  465. Character.Torso:FindFirstChild("Left Hip")
  466. }
  467. local Limbs = {
  468. Character:FindFirstChild("Right Arm"),
  469. Character:FindFirstChild("Left Arm"),
  470. Character:FindFirstChild("Right Leg"),
  471. Character:FindFirstChild("Left Leg")
  472. }
  473. if Joints[Limb] == nil then return false end
  474. if Limbs[Limb] == nil then return false end
  475. local Joint = Instance.new("Motor6D")
  476. Joint.Parent = Character.Torso
  477. Joint.Part0 = Character.Torso
  478. Joint.Part1 = Limbs[Limb]
  479. if Limb == 1 then
  480. Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  481. Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  482. Joint.Name = "Right Shoulder 2"
  483. elseif Limb == 2 then
  484. Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  485. Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  486. Joint.Name = "Left Shoulder 2"
  487. elseif Limb == 3 then
  488. Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  489. Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  490. Joint.Name = "Right Hip 2"
  491. elseif Limb == 4 then
  492. Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  493. Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  494. Joint.Name = "Left Hip 2"
  495. end
  496. Joint.MaxVelocity = Joints[Limb].MaxVelocity
  497. Joint.CurrentAngle = Joints[Limb].CurrentAngle
  498. Joint.DesiredAngle = Joints[Limb].DesiredAngle
  499. Joints[Limb]:Remove()
  500. end
  501.  
  502.  
  503. function ResetLimbCFrame(Limb, Character)
  504. if Character == nil then return false end
  505. if Character.Parent == nil then return false end
  506. if Character:FindFirstChild("Torso") == nil then return false end
  507. local Joints = {
  508. Character.Torso:FindFirstChild("Right Shoulder 2"),
  509. Character.Torso:FindFirstChild("Left Shoulder 2"),
  510. Character.Torso:FindFirstChild("Right Hip 2"),
  511. Character.Torso:FindFirstChild("Left Hip 2")
  512. }
  513. local Limbs = {
  514. Character:FindFirstChild("Right Arm"),
  515. Character:FindFirstChild("Left Arm"),
  516. Character:FindFirstChild("Right Leg"),
  517. Character:FindFirstChild("Left Leg")
  518. }
  519. if Joints[Limb] == nil then return false end
  520. if Limbs[Limb] == nil then return false end
  521. if Limb == 1 then
  522. Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  523. Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  524. elseif Limb == 2 then
  525. Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  526. Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  527. elseif Limb == 3 then
  528. Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  529. Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  530. elseif Limb == 4 then
  531. Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  532. Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  533. end
  534. end
  535.  
  536.  
  537. function EnableLimb(Limb, Character)
  538. if Character == nil then return false end
  539. if Character:FindFirstChild("Torso") == nil then return false end
  540. local Joints = {
  541. Character.Torso:FindFirstChild("Right Shoulder 2"),
  542. Character.Torso:FindFirstChild("Left Shoulder 2"),
  543. Character.Torso:FindFirstChild("Right Hip 2"),
  544. Character.Torso:FindFirstChild("Left Hip 2")
  545. }
  546. local Limbs = {
  547. Character:FindFirstChild("Right Arm"),
  548. Character:FindFirstChild("Left Arm"),
  549. Character:FindFirstChild("Right Leg"),
  550. Character:FindFirstChild("Left Leg")
  551. }
  552. if Joints[Limb] == nil then return false end
  553. if Limbs[Limb] == nil then return false end
  554. if Limb == 1 then
  555. Joints[Limb].Name = "Right Shoulder"
  556. elseif Limb == 2 then
  557. Joints[Limb].Name = "Left Shoulder"
  558. elseif Limb == 3 then
  559. Joints[Limb].Name = "Right Hip"
  560. elseif Limb == 4 then
  561. Joints[Limb].Name = "Left Hip"
  562. end
  563. Animate = Character:FindFirstChild("Animate")
  564. if Animate == nil then return false end
  565. Animate = Animate:Clone()
  566. Character.Animate:Remove()
  567. Animate.Parent = Character
  568. end
  569.  
  570. attackdebounce = false
  571. Torso = Char.Torso
  572. CRIT = false
  573. Damagefunc1=function(hit,Damage,Knockback)
  574. if attackdebounce == false then
  575. attackdebounce = true
  576. coroutine.resume(coroutine.create(function()
  577. wait(0.1)
  578. attackdebounce = false
  579. end))
  580. if hit.Parent==nil then
  581. return
  582. end
  583. CPlayer=Bin
  584. h=hit.Parent:FindFirstChild("Humanoid")
  585. if h~=nil and hit.Parent.Name~=Char.Name and hit.Parent:FindFirstChild("Torso")~=nil then
  586. Damage=Damage
  587. --[[ if game.Players:GetPlayerFromCharacter(hit.Parent)~=nil then
  588. return
  589. end]]
  590. c=Instance.new("ObjectValue")
  591. c.Name="creator"
  592. c.Value=game.Players.LocalPlayer
  593. c.Parent=h
  594. game:GetService("Debris"):AddItem(c,.5)
  595. -- print(c.Value)
  596. if math.random(0,99)+math.random()<=5 then
  597. CRIT=true
  598. Damage=Damage*1.5
  599. --[[ Knockback=Knockback*2
  600. r=Instance.new("BodyAngularVelocity")
  601. r.P=3000
  602. r.maxTorque=Vector3.new(500000000,50000000000,500000000)*50000
  603. r.angularvelocity=Vector3.new(math.random(-20,20),math.random(-20,20),math.random(-20,20))
  604. r.Parent=hit.Parent.Torso
  605. critsound(2)]]
  606.  
  607. end
  608. Damage=Damage+math.random(0,10)
  609. -- Blood(hit.CFrame*CFrame.new(math.random(-10,10)/10,math.random(-10,10)/10,0),math.floor(Damage/2))
  610. h:TakeDamage(Damage)
  611. showDamage(hit.Parent,Damage,.5)
  612. vp=Instance.new("BodyVelocity")
  613. vp.P=500
  614. vp.maxForce=Vector3.new(math.huge,0,math.huge)
  615. -- vp.velocity=Character.Torso.CFrame.lookVector*Knockback
  616. vp.velocity=Torso.CFrame.lookVector*Knockback+Torso.Velocity/1.05
  617. if Knockback>0 then
  618. vp.Parent=hit.Parent.Torso
  619. end
  620. game:GetService("Debris"):AddItem(vp,.25)
  621. --[[ r=Instance.new("BodyAngularVelocity")
  622. r.P=3000
  623. r.maxTorque=Vector3.new(500000000,50000000000,500000000)*50000
  624. r.angularvelocity=Vector3.new(math.random(-20,20),math.random(-20,20),math.random(-20,20))
  625. r.Parent=hit.Parent.Torso]]
  626. game:GetService("Debris"):AddItem(r,.5)
  627. c=Instance.new("ObjectValue")
  628. c.Name="creator"
  629. c.Value=Player
  630. c.Parent=h
  631. game:GetService("Debris"):AddItem(c,.5)
  632. CRIT=false
  633. hitDeb=true
  634. AttackPos=6
  635. end
  636. end
  637. end
  638.  
  639. showDamage=function(Char,Dealt,du)
  640. m=Instance.new("Model")
  641. m.Name=tostring(Dealt)
  642. h=Instance.new("Humanoid")
  643. h.Health=0
  644. h.MaxHealth=0
  645. h.Parent=m
  646. c=Instance.new("Part")
  647. c.Material = "SmoothPlastic"
  648. c.Transparency=0
  649. c.BrickColor=BrickColor:Red()
  650. if CRIT==true then
  651. c.BrickColor=BrickColor.new("Really red")
  652. end
  653. c.Name="Head"
  654. c.TopSurface=0
  655. c.BottomSurface=0
  656. c.formFactor="Plate"
  657. c.Size=Vector3.new(1,.4,1)
  658. ms=Instance.new("CylinderMesh")
  659.  
  660. ms.Scale=Vector3.new(.8,.8,.8)
  661. if CRIT==true then
  662. ms.Scale=Vector3.new(1.25,1.5,1.25)
  663.  
  664. end
  665. ms.Parent=c
  666. c.Reflectance=0
  667. Instance.new("BodyGyro").Parent=c
  668. c.Parent=m
  669. c.CFrame=CFrame.new(Char["Head"].CFrame.p+Vector3.new(0,1.5,0))
  670. f=Instance.new("BodyPosition")
  671. f.P=2000
  672. f.D=100
  673. f.maxForce=Vector3.new(math.huge,math.huge,math.huge)
  674. f.position=c.Position+Vector3.new(0,3,0)
  675. f.Parent=c
  676. game:GetService("Debris"):AddItem(m,.5+du)
  677. c.CanCollide=false
  678. m.Parent=workspace
  679. c.CanCollide=false
  680. end
  681.  
  682. function onButton1Down(Mouse)
  683. if Button1Down == true then return end
  684. Button1Down = true
  685. if CheckPlayer() == false then return end
  686. if CanUse == true then
  687. SoundToServer("Click", "http://www.roblox.com/Asset/?id=2697295", 10, 0.5, false, Player.Character[ModelName].Handle)
  688. if script.Magazine.Value <= 0 then
  689. return
  690. end
  691. CanUse = false
  692. SoundToServer("Fire", "http://www.roblox.com/Asset/?id=2697294", 0.75, 1, false, Player.Character[ModelName].Handle)
  693. coroutine.wrap(function()
  694. pcall(function()
  695. Player.Character[ModelName].Source.Fire.Enabled = true
  696. Player.Character[ModelName].Source.Smoke.Enabled = true
  697. end)
  698. wait(0.5)
  699. pcall(function()
  700. Player.Character[ModelName].Source.Fire.Enabled = false
  701. Player.Character[ModelName].Source.Smoke.Enabled = false
  702. end)
  703. end)()
  704. for i = 1, 8 do
  705. local Bullet = Instance.new("Part", Workspace)
  706. Bullet.Material = "SmoothPlastic"
  707. Bullet.Name = "Bullet"
  708. Bullet.TopSurface = 0
  709. Bullet.BottomSurface = 0
  710. Bullet.BrickColor = BrickColor.new("Really black")
  711. Bullet.Locked = true
  712. Bullet.FormFactor = "Custom"
  713. Bullet.Size = Vector3.new(0.2, 0.2, 0.2)
  714. 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)
  715. Bullet.Elasticity = 0
  716. Bullet.Friction = 0
  717. Instance.new("SpecialMesh", Bullet).MeshType = "Sphere"
  718. tagHumanoid(Bullet)
  719. local BodyVelocity = Instance.new("BodyVelocity", Bullet)
  720. BodyVelocity.maxForce = Vector3.new(math.huge, math.huge, math.huge)
  721. 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)
  722. Con1 = Bullet.Touched:connect(function(hit) Damagefunc1(hit,15,10) end)
  723. game:GetService("Debris"):AddItem(Bullet, 2)
  724. end
  725. CameraPunch(math.rad(40), 0)
  726. local AimGyroAdd = Instance.new("CFrameValue", Player.Character)
  727. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  728. CFrame.fromEulerAnglesXYZ(math.rad(-80), math.rad(-10), 0) * CFrame.new(0, 0.5, -0.9),
  729. 0.2, true)
  730. PropertyCFrameTween(AimGyroAdd, "Value",
  731. CFrame.fromEulerAnglesXYZ(0, math.rad(-70), 0),
  732. 0.2, true)
  733. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  734. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(60), 0),
  735. 0.2, true)
  736. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  737. CFrame.new(1.5, 0.45, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-70)),
  738. 0.2, true)
  739. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  740. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(110), 0, math.rad(-25)),
  741. 0.2, false)
  742. wait(0.3)
  743. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  744. CFrame.new(-1.2, 0.45, -0.1) * CFrame.fromEulerAnglesXYZ(math.rad(105), 0, math.rad(-5)),
  745. 0.1, true)
  746. PropertyCFrameTween(Player.Character[ModelName].Flip.Weld, "C1",
  747. CFrame.new(-0.1, 0, 0.7),
  748. 0.1, true)
  749. PropertyCFrameTween(Player.Character[ModelName].Pump.Weld, "C1",
  750. CFrame.new(0, 0, 0.7),
  751. 0.1, false)
  752. pcall(function()
  753. local Shell = Instance.new("Part", Workspace)
  754. Shell.Name = "Shell"
  755. Shell.TopSurface = 0
  756. Shell.BottomSurface = 0
  757. Shell.FormFactor = "Custom"
  758. Shell.BrickColor = BrickColor.new("Bright blue")
  759. Shell.Size = Vector3.new(0.25, 0.4, 0.25)
  760. 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)))
  761. Shell.Velocity = ((Player.Character[ModelName].Handle.Position - (Player.Character[ModelName].Handle.CFrame * CFrame.new(-1, 0, 0)).p).unit) * 10
  762. Shell:BreakJoints()
  763. Instance.new("CylinderMesh", Shell)
  764. game:GetService("Debris"):AddItem(Shell, 10)
  765. end)
  766. script.Magazine.Value = script.Magazine.Value - 1
  767. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  768. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(110), 0, math.rad(-25)),
  769. 0.1, true)
  770. PropertyCFrameTween(Player.Character[ModelName].Flip.Weld, "C1",
  771. CFrame.new(),
  772. 0.1, true)
  773. PropertyCFrameTween(Player.Character[ModelName].Pump.Weld, "C1",
  774. CFrame.new(),
  775. 0.1, false)
  776.  
  777. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  778. CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-10), 0) * CFrame.new(0, 0.5, -0.9),
  779. 0.2, true)
  780. PropertyCFrameTween(AimGyroAdd, "Value",
  781. CFrame.fromEulerAnglesXYZ(0, math.rad(-60), 0),
  782. 0.2, true)
  783. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  784. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(60), 0),
  785. 0.2, true)
  786. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  787. CFrame.new(1.2, 0.45, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-70)),
  788. 0.2, true)
  789. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  790. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-35)),
  791. 0.2, false)
  792. CanUse = true
  793. end
  794. end
  795.  
  796.  
  797. function onButton1Up(Mouse)
  798. Button1Down = false
  799. end
  800.  
  801.  
  802. function onKeyDown(Key, Mouse)
  803. if Selected == false then return end
  804. Key = Key:lower()
  805. if Key == "y" and Aiming == false then
  806. Aiming = true
  807. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C0",
  808. CFrame.new(),
  809. 0.05, true)
  810. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  811. CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-10), 0) * CFrame.new(0, 0.5, -0.9),
  812. 0.05, true)
  813. PropertyCFrameTween(Player.Character.AimGyroAdd, "Value",
  814. CFrame.fromEulerAnglesXYZ(0, math.rad(-60), 0),
  815. 0.05, true)
  816. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  817. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(60), 0),
  818. 0.05, true)
  819. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  820. CFrame.new(1.2, 0.45, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-70)),
  821. 0.05, true)
  822. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  823. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-35)),
  824. 0.05, false)
  825. CanUse = true
  826. return
  827. end
  828. if Button1Down == false and CanUse == true and CheckPlayer() == true then
  829. if Key == "q" then
  830. if Mouse.Target == nil then return end
  831. if CheckPlayer() == false then return end
  832. local NewPlayer = game:GetService("Players"):GetPlayerFromCharacter(Mouse.Target.Parent)
  833. if NewPlayer == nil then return end
  834. if NewPlayer.Character == nil then return end
  835. if NewPlayer.Character:FindFirstChild("Torso") == nil then return end
  836. if (NewPlayer.Character.Torso.Position - Player.Character.Torso.Position).magnitude > 10 then return end
  837. onDeselected(Mouse)
  838. wait()
  839. RemoveParts(Player.Character, 1)
  840. script.Parent.Parent = NewPlayer.Backpack
  841. Player = NewPlayer
  842. elseif Key == "r" then
  843. if script.Magazine.Value >= MagazineCapacity + MagazineCapacityAdd then return end
  844. CanUse = false
  845. local Loaded = script.Magazine.Value > 0
  846. local Weld = Player.Character[ModelName].Handle.Weld
  847. PropertyCFrameTween(Weld, "C1",
  848. CFrame.fromEulerAnglesXYZ(math.rad(-80), math.rad(40), math.rad(40)) * CFrame.new(-0.2, 0.25, -0.9),
  849. 0.1, true)
  850. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  851. CFrame.new(0.3, 1, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-20), math.rad(-5), math.rad(-10)),
  852. 0.1, true)
  853. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  854. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(110), math.rad(10), math.rad(-20)),
  855. 0.1, true)
  856. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  857. CFrame.new(1.2, 0.45, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(95), 0, math.rad(-20)),
  858. 0.1, false)
  859. Weld.C1 = Weld.Part0.CFrame:toObjectSpace(Player.Character["Left Arm"].CFrame):inverse()
  860. Weld.Part1 = Player.Character["Left Arm"]
  861. while script.Magazine.Value < (Loaded == true and MagazineCapacity + MagazineCapacityAdd or MagazineCapacity) and Player.Backpack.Ammo[AmmoType].Value > 0 and Button1Down == false do
  862. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  863. CFrame.new(1.5, 0.5, 0),
  864. 0.15, false)
  865. Player.Backpack.Ammo[AmmoType].Value = Player.Backpack.Ammo[AmmoType].Value - 1
  866. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  867. CFrame.new(1.3, 0.35, 0.2) * CFrame.fromEulerAnglesXYZ(math.rad(95), 0, math.rad(-45)),
  868. 0.1, false)
  869. SoundToServer("Reload", "http://www.roblox.com/Asset/?id=10209845", math.random(1900, 2100) / 1000, 0.9, false, Player.Character[ModelName].Handle)
  870. script.Magazine.Value = script.Magazine.Value + 1
  871. wait()
  872. end
  873. Weld.C1 = Weld.Part0.CFrame:toObjectSpace(Player.Character["Right Arm"].CFrame):inverse()
  874. Weld.Part1 = Player.Character["Right Arm"]
  875. if Loaded == false then
  876. Source = Char[ModelName]:FindFirstChild("Source")
  877. local Sound = Instance.new("Sound", Source)
  878. Sound.Name = "Reload"
  879. Sound.SoundId = "http://www.roblox.com/Asset/?id=2697294"
  880. Sound.Pitch = 0.75
  881. Sound.Volume = 0
  882. Sound:Play()
  883. wait(0.5)
  884. for i = 0, 1, 0.2 do
  885. Sound.Volume = i
  886. wait()
  887. end
  888. Sound.Volume = 1
  889. wait(1.5)
  890. Sound:Remove()
  891.  
  892. PropertyCFrameTween(Weld, "C1",
  893. CFrame.fromEulerAnglesXYZ(math.rad(20), math.rad(20), 0) * CFrame.new(0, -0.9, -0.3),
  894. 0.08, true)
  895. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  896. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(math.rad(10), math.rad(50), math.rad(5)),
  897. 0.08, true)
  898. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  899. CFrame.new(-1.4, 0.45, 0.4) * CFrame.fromEulerAnglesXYZ(math.rad(125), 0, math.rad(-10)),
  900. 0.08, true)
  901. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  902. CFrame.new(1.1, 0.45, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(50), math.rad(40), math.rad(-40)),
  903. 0.08, false)
  904.  
  905. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  906. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(math.rad(5), math.rad(45), math.rad(10)),
  907. 0.1, true)
  908. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  909. CFrame.new(-1.4, 0.45, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(20)),
  910. 0.1, true)
  911. PropertyCFrameTween(Player.Character[ModelName].Flip.Weld, "C1",
  912. CFrame.new(-0.1, 0, 0.7),
  913. 0.1, true)
  914. PropertyCFrameTween(Player.Character[ModelName].Pump.Weld, "C1",
  915. CFrame.new(0, 0, 0.7),
  916. 0.1, false)
  917.  
  918. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  919. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(math.rad(10), math.rad(50), math.rad(5)),
  920. 0.1, true)
  921. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  922. CFrame.new(-1.4, 0.45, 0.4) * CFrame.fromEulerAnglesXYZ(math.rad(125), 0, math.rad(-10)),
  923. 0.1, true)
  924. PropertyCFrameTween(Player.Character[ModelName].Flip.Weld, "C1",
  925. CFrame.new(),
  926. 0.1, true)
  927. PropertyCFrameTween(Player.Character[ModelName].Pump.Weld, "C1",
  928. CFrame.new(),
  929. 0.1, false)
  930. end
  931. PropertyCFrameTween(Weld, "C1",
  932. CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-10), 0) * CFrame.new(0, 0.5, -0.9),
  933. 0.05, true)
  934. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  935. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(60), 0),
  936. 0.05, true)
  937. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  938. CFrame.new(1.2, 0.45, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-70)),
  939. 0.05, true)
  940. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  941. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-35)),
  942. 0.05, false)
  943. wait()
  944. CanUse = true
  945. elseif Key == "y" then
  946. CanUse = false
  947. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C0",
  948. CFrame.fromEulerAnglesXYZ(math.rad(-60), math.rad(3), math.rad(-20)) * CFrame.new(0.5, -0.5, 0.6),
  949. 0.05, true)
  950. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  951. CFrame.fromEulerAnglesXYZ(math.rad(18), 0, 0),
  952. 0.05, true)
  953. PropertyCFrameTween(Player.Character.AimGyroAdd, "Value",
  954. CFrame.fromEulerAnglesXYZ(0, math.rad(40), 0),
  955. 0.05, true)
  956. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  957. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-40), 0),
  958. 0.05, true)
  959. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  960. CFrame.new(-1.5, 0.5, 0),
  961. 0.05, true)
  962. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  963. CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, 0),
  964. 0.05, false)
  965. Aiming = false
  966. end
  967. end
  968. end
  969.  
  970.  
  971. function onSelected(Mouse)
  972. if Selected == true then return end
  973. CanUse = false
  974. while true do
  975. if CheckPlayer() == true then
  976. if Player.Character.Torso:FindFirstChild("Right Shoulder") ~= nil and Player.Character.Torso:FindFirstChild("Left Shoulder") ~= nil then
  977. break
  978. end
  979. end
  980. wait(0.1)
  981. end
  982. Selected = true
  983. DisableLimb(1, Player.Character)
  984. SetSpeed(1, 0.5, Player.Character)
  985. SetAngle(1, 0, Player.Character)
  986. DisableLimb(2, Player.Character)
  987. SetSpeed(2, 0.5, Player.Character)
  988. SetAngle(2, 0, Player.Character)
  989. wait(0.2)
  990. Player.Character.Torso["Neck"].C0 = CFrame.new(0, 1, 0)
  991. Player.Character.Torso["Neck"].C1 = CFrame.new(0, -0.5, 0)
  992. Player.Character.Torso:FindFirstChild("Left Shoulder 2").C0 = CFrame.new(-1.5, 0.5, 0)
  993. Player.Character.Torso:FindFirstChild("Left Shoulder 2").C1 = CFrame.new(0, 0.5, 0)
  994. Player.Character.Torso:FindFirstChild("Right Shoulder 2").C0 = CFrame.new(1.5, 0.5, 0)
  995. Player.Character.Torso:FindFirstChild("Right Shoulder 2").C1 = CFrame.new(0, 0.5, 0)
  996. local AimGyroAdd = Instance.new("CFrameValue", Player.Character)
  997. AimGyroAdd.Name = "AimGyroAdd"
  998. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  999. CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-20), 0, math.rad(-10)),
  1000. 0.15, true)
  1001. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  1002. CFrame.new(1.5, 0.5, -0.3) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(50), 0),
  1003. 0.15, true)
  1004. PropertyCFrameTween(AimGyroAdd, "Value",
  1005. CFrame.fromEulerAnglesXYZ(0, math.rad(60), 0),
  1006. 0.15, false)
  1007. wait()
  1008. local Weld = Player.Character[ModelName.. " (Holstered)"].Handle.Weld
  1009. Weld.C0 = Player.Character[ModelName.. " (Holstered)"].Handle.CFrame:toObjectSpace(Player.Character["Right Arm"].CFrame)
  1010. Weld.Part1 = Player.Character["Right Arm"]
  1011. PropertyCFrameTween(Weld, "C0",
  1012. CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0) * CFrame.new(0, 0.9, 0.5),
  1013. 0.05, true)
  1014. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  1015. CFrame.new(1.2, 0.45, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-70)),
  1016. 0.05, true)
  1017. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  1018. CFrame.new(-1.4, 0.45, -0.4) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(-35)),
  1019. 0.05, true)
  1020. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  1021. CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(60), 0),
  1022. 0.05, true)
  1023. PropertyCFrameTween(AimGyroAdd, "Value",
  1024. CFrame.fromEulerAnglesXYZ(0, math.rad(-60), 0),
  1025. 0.05, false)
  1026. RemoveParts(Player.Character, 1)
  1027. CreateParts(Player.Character, 2)
  1028. Mouse.Icon = "rbxasset://textures\\GunCursor.png"
  1029. Mouse.Button1Down:connect(function() onButton1Down(Mouse) end)
  1030. Mouse.Button1Up:connect(function() onButton1Up(Mouse) end)
  1031. Mouse.KeyDown:connect(function(Key) onKeyDown(Key, Mouse) end)
  1032. CanUse = true
  1033. end
  1034.  
  1035.  
  1036. function onDeselected(Mouse)
  1037. if Selected == false then return end
  1038. Selected = false
  1039. while CanUse == false do wait() end
  1040. if CheckPlayer() == false or pcall(function() local _ = Player.Character.Torso:FindFirstChild("Right Shoulder 2") end) == false then
  1041. RemoveParts(Player.Character, 2)
  1042. CreateParts(Player.Character, 1)
  1043. SetAngle(1, 0, Player.Character)
  1044. ResetLimbCFrame(1, Player.Character)
  1045. EnableLimb(1, Player.Character)
  1046. SetAngle(2, 0, Player.Character)
  1047. ResetLimbCFrame(2, Player.Character)
  1048. EnableLimb(2, Player.Character)
  1049. return
  1050. end
  1051. if Selected == true then return end
  1052. CanUse = false
  1053. Player.Character.AimGyroAdd:Remove()
  1054.  
  1055. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Neck"), "C0",
  1056. CFrame.new(0, 1, 0),
  1057. 0.1, true)
  1058.  
  1059. if Aiming == true then
  1060. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  1061. CFrame.new(-0.2, -0.58, -0.2) * CFrame.fromEulerAnglesXYZ(math.rad(60), 0, math.rad(40)),
  1062. 0.05, true)
  1063. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Left Shoulder 2"), "C0",
  1064. CFrame.new(-1.5, 0.5, 0),
  1065. 0.1, true)
  1066. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  1067. CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(50), math.rad(-90), 0),
  1068. 0.05, false)
  1069. else
  1070. Aiming = true
  1071. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C0",
  1072. CFrame.new(),
  1073. 0.1, true)
  1074. end
  1075.  
  1076. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  1077. CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(50), 0),
  1078. 0.05, true)
  1079. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  1080. CFrame.new(0.1, 0.3, 0.5) * CFrame.fromEulerAnglesXYZ(math.rad(120), 0, math.rad(50)),
  1081. 0.05 * 2, false)
  1082. PropertyCFrameTween(Player.Character[ModelName].Handle.Weld, "C1",
  1083. CFrame.new(-0.65, -0.2, -1.6) * CFrame.fromEulerAnglesXYZ(math.rad(-180), 0, math.rad(90)),
  1084. 0.05 * 2, false)
  1085.  
  1086. RemoveParts(Player.Character, 2)
  1087. CreateParts(Player.Character, 1)
  1088.  
  1089. PropertyCFrameTween(Player.Character.Torso:FindFirstChild("Right Shoulder 2"), "C0",
  1090. CFrame.new(1.5, 0.5, 0),
  1091. 0.025 * 5, false)
  1092. Player.Character.Torso["Neck"].C0 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-90), 0, math.rad(180))
  1093. Player.Character.Torso["Neck"].C1 = CFrame.new(0, -0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-90), 0, math.rad(180))
  1094. SetAngle(1, 0, Player.Character)
  1095. ResetLimbCFrame(1, Player.Character)
  1096. EnableLimb(1, Player.Character)
  1097. SetAngle(2, 0, Player.Character)
  1098. ResetLimbCFrame(2, Player.Character)
  1099. EnableLimb(2, Player.Character)
  1100. CanUse = true
  1101. end
  1102.  
  1103.  
  1104. if script.Parent.ClassName ~= "HopperBin" then
  1105. if Player == nil then print("Error: Player not found!") return end
  1106. Tool = Instance.new("HopperBin")
  1107. Tool.Name = ModelName
  1108. Tool.Parent = Player.Backpack
  1109. Instance.new("IntValue", script).Name = "Magazine"
  1110. script.Name = "Main"
  1111. script.Parent = Tool
  1112. elseif script.Parent.ClassName == "HopperBin" and Connected == false then
  1113. Connected = true
  1114. Player = script.Parent.Parent.Parent
  1115. end wait() if script.Parent.ClassName == "HopperBin" then
  1116. while script.Parent.Parent.ClassName ~= "Backpack" do
  1117. wait()
  1118. end
  1119. Instance.new("Configuration", Player.Backpack).Name = "Ammo"
  1120. Instance.new("IntValue", Player.Backpack.Ammo).Name = AmmoType
  1121. Player.Backpack.Ammo[AmmoType].Value = MagazineCapacity * 2
  1122. script.Parent.Selected:connect(onSelected)
  1123. script.Parent.Deselected:connect(onDeselected)
  1124. CreateParts(Player.Character, 1)
  1125. --[[
  1126. MouseAim v11
  1127. --]]
  1128.  
  1129.  
  1130. script.Parent.Selected:connect(function(Mouse)
  1131. while Selected == false do wait() end
  1132. while Selected == true do
  1133. if script.Parent == nil then break end
  1134. if Player.Character:FindFirstChild("Humanoid") == nil or Player.Character:FindFirstChild("Torso") == nil then break end
  1135. if Player.Character.Humanoid.Health > 0 and Player.Character.Humanoid.Sit == false and Player.Character.Humanoid.PlatformStand == false and Player.Character.Torso:FindFirstChild("BodyGyro") == nil and Player.Character.Torso:FindFirstChild("BodyAngularVelocity") == nil and Player.Character:FindFirstChild("Ragdoll") == nil then
  1136. local AimGyro = Instance.new("BodyGyro")
  1137. game:GetService("Debris"):AddItem(AimGyro, 0)
  1138. AimGyro.Parent = Player.Character.Torso
  1139. AimGyro.Name = "AimGyro"
  1140. AimGyro.P = 40000
  1141. AimGyro.D = 300
  1142. AimGyro.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
  1143. AimGyro.cframe = CFrame.new(Player.Character.Torso.Position, Vector3.new(Mouse.Hit.p.x, Player.Character.Torso.Position.y, Mouse.Hit.p.z)) * (Player.Character:FindFirstChild("AimGyroAdd") and Player.Character.AimGyroAdd.Value or CFrame.new())
  1144. end
  1145. wait()
  1146. end
  1147. end)
  1148. --[[
  1149. AmmoCounter v5
  1150. --]]
  1151.  
  1152.  
  1153. local Gui = nil
  1154.  
  1155.  
  1156. local function Remove()
  1157. if Gui ~= nil then
  1158. local Gui2 = Gui
  1159. Gui = nil
  1160. if Gui2.Parent ~= nil then
  1161. Gui2.AmmoCounter:TweenPosition(UDim2.new(0.35, 0, 1, 0), "In", "Quart", 0.5, true)
  1162. wait(0.5)
  1163. end
  1164. Gui2:Remove()
  1165. end
  1166. end
  1167.  
  1168.  
  1169. script.Parent.Selected:connect(function(Mouse)
  1170. while Selected == false do wait() end
  1171. local DualConnection1, DualConnection2
  1172. Gui = Instance.new("ScreenGui", Player.PlayerGui)
  1173. Gui.Name = "AmmoCounter"
  1174. local AmmoCounter = Instance.new("Frame", Gui)
  1175. AmmoCounter.Name = "AmmoCounter"
  1176. AmmoCounter.BorderColor3 = Color3.new(0, 0, 0)
  1177. AmmoCounter.BackgroundTransparency = 0.8
  1178. AmmoCounter.BackgroundColor3 = Color3.new(0.7, 0.7, 0.7)
  1179. AmmoCounter.Size = UDim2.new(0.3, 0, 0, 100)
  1180. AmmoCounter.Position = UDim2.new(0.35, 0, 1, 0)
  1181. AmmoCounter:TweenPosition(UDim2.new(0.35, 0, 1, -200), "Out", "Quart", 0.5, true)
  1182. local Notification = Instance.new("TextLabel", AmmoCounter)
  1183. Notification.Name = "Notification"
  1184. Notification.Text = ""
  1185. Notification.TextTransparency = 1
  1186. Notification.Font = "ArialBold"
  1187. Notification.FontSize = "Size18"
  1188. Notification.BorderColor3 = Color3.new(0, 0, 0)
  1189. Notification.BackgroundTransparency = 0.3
  1190. Notification.BackgroundColor3 = Color3.new(0.4, 0.4, 0.4)
  1191. Notification.Size = UDim2.new(1, -10, 0, 20)
  1192. Notification.Position = UDim2.new(0, 5, 0, 5)
  1193. coroutine.wrap(function()
  1194. local Reloading = false
  1195. local OldMagazine = script.Magazine.Value
  1196. local OldMagazineDual = nil
  1197. pcall(function() OldMagazineDual = script.Dual.Main.Magazine.Value end)
  1198. while Notification.Parent ~= nil do
  1199. if OldMagazineDual == nil then
  1200. pcall(function() OldMagazineDual = script.Dual.Main.Magazine.Value end)
  1201. end
  1202. if Reloading == false then
  1203. if ((script.Magazine.Value > OldMagazine or OldMagazine - script.Magazine.Value > 1) or (Dual == true and (script.Dual.Main.Magazine.Value > OldMagazineDual or OldMagazineDual - script.Dual.Main.Magazine.Value > 1))) and CanUse == false then
  1204. Reloading = true
  1205. end
  1206. else
  1207. if CanUse == true then
  1208. Reloading = false
  1209. end
  1210. end
  1211. OldMagazine = script.Magazine.Value
  1212. pcall(function() OldMagazineDual = script.Dual.Main.Magazine.Value end)
  1213. if Reloading == true then
  1214. Notification.TextTransparency = 0
  1215. Notification.TextColor3 = Color3.new(0.1, 0.8, 0.1)
  1216. Notification.Text = "Reloading..."
  1217. wait()
  1218. else
  1219. if (script.Magazine.Value / MagazineCapacity < 0.2) or (Dual == true and (script.Dual.Main.Magazine.Value / MagazineCapacity < 0.2)) then
  1220. Notification.TextColor3 = Color3.new(1, 0.1, 0.05)
  1221. Notification.TextTransparency = 0
  1222. else
  1223. Notification.TextColor3 = CanUse == false and Color3.new(0.8, 0.8, 0.8) or Color3.new(0, 0, 0)
  1224. Notification.TextTransparency = 0
  1225. end
  1226. Notification.Text = "Magazine: " ..script.Magazine.Value .. (Dual == true and ("/" ..script.Dual.Main.Magazine.Value) or "")
  1227. wait()
  1228. end
  1229. end
  1230. end)()
  1231. for x = 1, Dual ~= nil and 2 or 1 do
  1232. for i = 1, MagazineCapacity + MagazineCapacityAdd do
  1233. local Bullet = Instance.new("Frame", AmmoCounter)
  1234. Bullet.Name = i.. ", " ..x
  1235. Bullet.BorderColor3 = Color3.new(0, 0, 0)
  1236. if i > script.Magazine.Value then
  1237. Bullet.BackgroundTransparency = 0.8
  1238. Bullet.BackgroundColor3 = Color3.new(0.7, 0.7, 0.7)
  1239. else
  1240. Bullet.BackgroundTransparency = 0.3
  1241. Bullet.BackgroundColor3 = Color3.new(0.4, 0.4, 0.4)
  1242. end
  1243. Bullet.Size = UDim2.new(1 / (MagazineCapacity + MagazineCapacityAdd), -10, 0, Dual ~= nil and 20 or 40)
  1244. Bullet.Position = UDim2.new((i - 1) / (MagazineCapacity + MagazineCapacityAdd), 5, 0, 30 + (20 * (x - 1)))
  1245. end
  1246. end
  1247. local function Check(Value, y)
  1248. return Value.Changed:connect(function()
  1249. for i = 1, MagazineCapacity + MagazineCapacityAdd do
  1250. AmmoCounter[i.. ", " ..y].BackgroundTransparency = 0.8
  1251. AmmoCounter[i.. ", " ..y].BackgroundColor3 = Color3.new(0.7, 0.7, 0.7)
  1252. end
  1253. for i = 1, Value.Value do
  1254. AmmoCounter[i.. ", " ..y].BackgroundTransparency = 0.3
  1255. AmmoCounter[i.. ", " ..y].BackgroundColor3 = Color3.new(0.4, 0.4, 0.4)
  1256. end
  1257. end)
  1258. end
  1259. Check(script.Magazine, 1)
  1260. if Dual == true then
  1261. DualConnection1 = Check(script.Dual.Main.Magazine, 2)
  1262. coroutine.wrap(function()
  1263. while Dual == true do
  1264. wait()
  1265. end
  1266. pcall(function() DualConnection1:disconnect() end)
  1267. end)()
  1268. else
  1269. DualConnection1 = script.ChildAdded:connect(function(Child)
  1270. if Child.Name == "Dual" then
  1271. DualConnection2 = Check(Child.Main.Magazine, 2)
  1272. coroutine.wrap(function()
  1273. wait()
  1274. for i = 1, MagazineCapacity + MagazineCapacityAdd do
  1275. AmmoCounter[i.. ", 2"].BackgroundTransparency = 0.8
  1276. AmmoCounter[i.. ", 2"].BackgroundColor3 = Color3.new(0.7, 0.7, 0.7)
  1277. end
  1278. for i = 1, Child.Main.Magazine.Value do
  1279. AmmoCounter[i.. ", 2"].BackgroundTransparency = 0.3
  1280. AmmoCounter[i.. ", 2"].BackgroundColor3 = Color3.new(0.4, 0.4, 0.4)
  1281. end
  1282. while Dual == true do
  1283. wait()
  1284. end
  1285. pcall(function() DualConnection2:disconnect() end)
  1286. for i = 1, MagazineCapacity + MagazineCapacityAdd do
  1287. AmmoCounter[i.. ", 2"].BackgroundTransparency = 0.8
  1288. AmmoCounter[i.. ", 2"].BackgroundColor3 = Color3.new(0.7, 0.7, 0.7)
  1289. end
  1290. end)()
  1291. end
  1292. end)
  1293. end
  1294. local ModelNameLabel = Instance.new("TextLabel", AmmoCounter)
  1295. ModelNameLabel.Name = "ModelNameLabel"
  1296. ModelNameLabel.Text = " " ..ModelName
  1297. ModelNameLabel.TextColor3 = Color3.new(0, 0, 0)
  1298. ModelNameLabel.Font = "ArialBold"
  1299. ModelNameLabel.FontSize = "Size14"
  1300. ModelNameLabel.TextXAlignment = "Left"
  1301. ModelNameLabel.BorderColor3 = Color3.new(0, 0, 0)
  1302. ModelNameLabel.BackgroundTransparency = 0.3
  1303. ModelNameLabel.BackgroundColor3 = Color3.new(0.4, 0.4, 0.4)
  1304. ModelNameLabel.Size = UDim2.new(1, -10, 0, 20)
  1305. ModelNameLabel.Position = UDim2.new(0, 5, 0, 75)
  1306. local TotalAmmo = ModelNameLabel:Clone()
  1307. TotalAmmo.Parent = AmmoCounter
  1308. TotalAmmo.Name = "TotalAmmo"
  1309. TotalAmmo.Text = Player.Backpack.Ammo[AmmoType].Value.. " " ..AmmoType.. " "
  1310. TotalAmmo.TextXAlignment = "Right"
  1311. TotalAmmo.BorderSizePixel = 0
  1312. TotalAmmo.BackgroundTransparency = 1
  1313. TotalAmmo.Size = UDim2.new(1, - 10, 0, 20)
  1314. TotalAmmo.Position = UDim2.new(0, 5, 1, -25)
  1315. Player.Backpack.Ammo[AmmoType].Changed:connect(function()
  1316. TotalAmmo.Text = Player.Backpack.Ammo[AmmoType].Value.. " " ..AmmoType.. " "
  1317. end)
  1318. coroutine.wrap(function()
  1319. while Selected == true do
  1320. wait()
  1321. end
  1322. Remove()
  1323. pcall(function() DualConnection1:disconnect() end)
  1324. pcall(function() DualConnection2:disconnect() end)
  1325. end)()
  1326. end)
  1327. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement