Advertisement
PeanutBrickle

Black katana (still not done)

Aug 12th, 2015
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 63.62 KB | None | 0 0
  1. if script == nil then return end
  2.  
  3.  
  4. ModelName = "Black Katana"
  5. Player = script:FindFirstChild("Player") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("goodtiger456789123")
  6. Selected = false
  7. Connected = false
  8. Button1Down = false
  9. CanUse = true
  10. Damage = 0
  11.  
  12.  
  13. function SetSwordDamage(DamageNew, Time)
  14. if DamageDefault == nil then
  15. DamageDefault = Damage
  16. end
  17. if DamageNew == "Default" then
  18. Damage = DamageDefault
  19. elseif type(DamageNew) == "number" then
  20. Damage = DamageNew
  21. end
  22. if Time ~= nil then
  23. coroutine.wrap(function()
  24. local DamageResetDefault = time()
  25. DamageReset = DamageResetDefault
  26. wait(Time)
  27. if DamageReset == DamageResetDefault then
  28. Damage = DamageDefault
  29. end
  30. end)()
  31. end
  32. end
  33.  
  34.  
  35. function CheckPlayer()
  36. if Player.Character == nil then return false end
  37. if Player.Character:FindFirstChild("Torso") == nil or Player.Character:FindFirstChild("Right Arm") == nil or Player.Character:FindFirstChild("Humanoid") == nil then return false end
  38. if Player.Character.Humanoid.Health <= 0 then return false end
  39. return true
  40. end
  41.  
  42.  
  43. function PlaySound(Name, SoundId, Pitch, Volume, Looped, Parent)
  44. local NewScript = script:Clone()
  45. NewScript.Name = "PlaySound"
  46. local SoundData = Instance.new("Model", NewScript)
  47. SoundData.Name = "SoundData"
  48. Instance.new("StringValue", SoundData).Name = "_Name"
  49. SoundData._Name.Value = Name
  50. Instance.new("StringValue", SoundData).Name = "_SoundId"
  51. SoundData._SoundId.Value = SoundId
  52. Instance.new("NumberValue", SoundData).Name = "_Pitch"
  53. SoundData._Pitch.Value = Pitch
  54. Instance.new("NumberValue", SoundData).Name = "_Volume"
  55. SoundData._Volume.Value = Volume
  56. Instance.new("BoolValue", SoundData).Name = "_Looped"
  57. SoundData._Looped.Value = Looped
  58. Instance.new("ObjectValue", SoundData).Name = "_Parent"
  59. SoundData._Parent.Value = Parent
  60. NewScript.Disabled = true
  61. NewScript.Parent = game:GetService("Workspace")
  62. coroutine.wrap(function()
  63. wait(0.05)
  64. NewScript.Disabled = false
  65. end)()
  66. end
  67.  
  68.  
  69. function SetPartDamage(Damage, Break, Parent)
  70. pcall(function() Parent.PartDamage:Remove() end)
  71. local NewScript = script:Clone()
  72. NewScript.Name = "PartDamage"
  73. local DamageData = Instance.new("Model", NewScript)
  74. DamageData.Name = "DamageData"
  75. Instance.new("NumberValue", DamageData).Name = "Damage"
  76. DamageData.Damage.Value = Damage
  77. Instance.new("BoolValue", DamageData).Name = "Break"
  78. DamageData.Break.Value = Break
  79. NewScript.Disabled = true
  80. NewScript.Parent = Parent
  81. coroutine.wrap(function()
  82. wait(0.05)
  83. NewScript.Disabled = false
  84. end)()
  85. end
  86.  
  87.  
  88. function CreateParts(Parent, Format)
  89. if Parent == nil then return end
  90. local Parts = Instance.new("Model")
  91. Parts.Name = ModelName
  92. if Format == 1 then
  93. Parts.Name = Parts.Name.. " (Holstered)"
  94. end
  95. Parts.Parent = Parent
  96.  
  97. local MasterPart1 = Instance.new("Part")
  98. MasterPart1.Name = "Sheath"
  99. MasterPart1.BrickColor = BrickColor.new("Really black")
  100. MasterPart1.TopSurface = 0
  101. MasterPart1.BottomSurface = 0
  102. MasterPart1.formFactor = "Custom"
  103. MasterPart1.Size = Vector3.new(0.25, 0.5, 3.5)
  104. MasterPart1.Locked = true
  105. MasterPart1.Parent = Parts
  106. local Weld = Instance.new("Weld")
  107. Weld.Part0 = MasterPart1
  108. Weld.Part1 = Player.Character:FindFirstChild("Torso")
  109. Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(150), 0, 0)
  110. Weld.C1 = CFrame.new(-1.1, -1.75, 0.5)
  111. Weld.Parent = Weld.Part0
  112.  
  113. local MasterPart2 = Instance.new("Part")
  114. MasterPart2.Name = "Handle"
  115. MasterPart2.BrickColor = BrickColor.new("Really black")
  116. MasterPart2.TopSurface = 0
  117. MasterPart2.BottomSurface = 0
  118. MasterPart2.formFactor = "Custom"
  119. MasterPart2.Size = Vector3.new(0.3, 0.4, 1.25)
  120. MasterPart2.Locked = true
  121. MasterPart2.Parent = Parts
  122. local Weld = Instance.new("Weld")
  123. Weld.Part0 = MasterPart2
  124. if Format == 1 then
  125. Weld.Part1 = MasterPart1
  126. Weld.C1 = CFrame.new(0, 0, 2.625)
  127. elseif Format == 2 then
  128. Weld.Part1 = Player.Character:FindFirstChild("Right Arm")
  129. Weld.C1 = CFrame.new(0, -1, -0.1)
  130. end
  131. Weld.Parent = Weld.Part0
  132. local Part = Instance.new("Part")
  133. Part.Name = "Hand Guard"
  134. Part.BrickColor = BrickColor.new("Really black")
  135. Part.TopSurface = 0
  136. Part.BottomSurface = 0
  137. Part.formFactor = "Custom"
  138. Part.Size = Vector3.new(0.5, 0.6, 0.25)
  139. Part.Locked = true
  140. Part.Parent = Parts
  141. local Weld = Instance.new("Weld")
  142. Weld.Part0 = Part
  143. Weld.Part1 = MasterPart2
  144. Weld.C0 = CFrame.new(0, 0, 0.75)
  145. Weld.Parent = Weld.Part0
  146. local Part = Instance.new("Part")
  147. Part.Name = "Blade Holder"
  148. Part.BrickColor = BrickColor.new("Really black")
  149. Part.TopSurface = 0
  150. Part.BottomSurface = 0
  151. Part.formFactor = "Custom"
  152. Part.Size = Vector3.new(0.25, 0.375, 0.2)
  153. Part.Locked = true
  154. Part.Parent = Parts
  155. local Weld = Instance.new("Weld")
  156. Weld.Part0 = Part
  157. Weld.Part1 = MasterPart2
  158. Weld.C0 = CFrame.new(0, 0, 0.9)
  159. Weld.Parent = Weld.Part0
  160. local Mesh = Instance.new("SpecialMesh", Part)
  161. Mesh.MeshType = "Brick"
  162. Mesh.Scale = Vector3.new(1, 1, 0.25)
  163. local Part = Instance.new("Part")
  164. Part.Name = "Blade"
  165. Part.BrickColor = BrickColor.new("Light stone grey")
  166. Part.Reflectance = 0.25
  167. Part.TopSurface = 0
  168. Part.BottomSurface = 0
  169. Part.formFactor = "Custom"
  170. Part.Size = Vector3.new(0.2, 0.3, 2.75)
  171. Part.Locked = true
  172. Part.Parent = Parts
  173. Part.Touched:connect(SwordTouched)
  174. local Weld = Instance.new("Weld")
  175. Weld.Part0 = Part
  176. Weld.Part1 = MasterPart2
  177. Weld.C0 = CFrame.new(0, 0, 2.25)
  178. Weld.Parent = Weld.Part0
  179. local Mesh = Instance.new("SpecialMesh", Part)
  180. Mesh.MeshType = "Brick"
  181. Mesh.Scale = Vector3.new(0.1, 1, 1)
  182. local Part = Instance.new("WedgePart")
  183. Part.Name = "Blade Tip"
  184. Part.BrickColor = BrickColor.new("Light stone grey")
  185. Part.Reflectance = 0.25
  186. Part.TopSurface = 0
  187. Part.BottomSurface = 0
  188. Part.formFactor = "Custom"
  189. Part.Size = Vector3.new(0.2, 0.3, 0.75)
  190. Part.Locked = true
  191. Part.Parent = Parts
  192. Part.Touched:connect(SwordTouched)
  193. local Weld = Instance.new("Weld")
  194. Weld.Part0 = Part
  195. Weld.Part1 = MasterPart2
  196. Weld.C0 = CFrame.new(0, 0, 4) * CFrame.fromEulerAnglesXYZ(0, 0, math.rad(180))
  197. Weld.Parent = Weld.Part0
  198. local Mesh = Instance.new("SpecialMesh", Part)
  199. Mesh.MeshType = "Wedge"
  200. Mesh.Scale = Vector3.new(0.1, 1, 1)
  201. end
  202.  
  203.  
  204. function RemoveParts(Parent, Format)
  205. if Format == 1 then
  206. pcall(function() Parent[ModelName.. " (Holstered)"]:Remove() end)
  207. elseif Format == 2 then
  208. pcall(function() Parent[ModelName]:Remove() end)
  209. end
  210. end
  211.  
  212.  
  213. function SetAngle(Joint, Angle, Character)
  214. if Character == nil then return false end
  215. local Joints = {
  216. Character.Torso:FindFirstChild("Right Shoulder 2"),
  217. Character.Torso:FindFirstChild("Left Shoulder 2"),
  218. Character.Torso:FindFirstChild("Right Hip 2"),
  219. Character.Torso:FindFirstChild("Left Hip 2")
  220. }
  221. if Joints[Joint] == nil then return false end
  222. if Joint == 1 or Joint == 3 then
  223. Joints[Joint].DesiredAngle = Angle
  224. end
  225. if Joint == 2 or Joint == 4 then
  226. Joints[Joint].DesiredAngle = -Angle
  227. end
  228. end
  229.  
  230.  
  231. function ForceAngle(Joint, Angle, Character)
  232. if Character == nil then return false end
  233. local Joints = {
  234. Character.Torso:FindFirstChild("Right Shoulder 2"),
  235. Character.Torso:FindFirstChild("Left Shoulder 2"),
  236. Character.Torso:FindFirstChild("Right Hip 2"),
  237. Character.Torso:FindFirstChild("Left Hip 2")
  238. }
  239. if Joints[Joint] == nil then return false end
  240. if Joint == 1 or Joint == 3 then
  241. Joints[Joint].DesiredAngle = Angle
  242. Joints[Joint].CurrentAngle = Angle
  243. end
  244. if Joint == 2 or Joint == 4 then
  245. Joints[Joint].DesiredAngle = -Angle
  246. Joints[Joint].CurrentAngle = -Angle
  247. end
  248. end
  249.  
  250.  
  251. function SetSpeed(Joint, Speed, Character)
  252. if Character == nil then return false end
  253. local Joints = {
  254. Character.Torso:FindFirstChild("Right Shoulder 2"),
  255. Character.Torso:FindFirstChild("Left Shoulder 2"),
  256. Character.Torso:FindFirstChild("Right Hip 2"),
  257. Character.Torso:FindFirstChild("Left Hip 2")
  258. }
  259. if Joints[Joint] == nil then return false end
  260. Joints[Joint].MaxVelocity = Speed
  261. end
  262.  
  263.  
  264. function DisableLimb(Limb, Character)
  265. if Character == nil then return false end
  266. if Character:FindFirstChild("Torso") == nil then return false end
  267. local Joints = {
  268. Character.Torso:FindFirstChild("Right Shoulder"),
  269. Character.Torso:FindFirstChild("Left Shoulder"),
  270. Character.Torso:FindFirstChild("Right Hip"),
  271. Character.Torso:FindFirstChild("Left Hip")
  272. }
  273. local Limbs = {
  274. Character:FindFirstChild("Right Arm"),
  275. Character:FindFirstChild("Left Arm"),
  276. Character:FindFirstChild("Right Leg"),
  277. Character:FindFirstChild("Left Leg")
  278. }
  279. if Joints[Limb] == nil then return false end
  280. if Limbs[Limb] == nil then return false end
  281. local Joint = Instance.new("Motor")
  282. Joint.Parent = Character.Torso
  283. Joint.Part0 = Character.Torso
  284. Joint.Part1 = Limbs[Limb]
  285. if Limb == 1 then
  286. Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  287. Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  288. Joint.Name = "Right Shoulder 2"
  289. elseif Limb == 2 then
  290. Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  291. Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  292. Joint.Name = "Left Shoulder 2"
  293. elseif Limb == 3 then
  294. Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  295. Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  296. Joint.Name = "Right Hip 2"
  297. elseif Limb == 4 then
  298. Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  299. Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  300. Joint.Name = "Left Hip 2"
  301. end
  302. Joint.MaxVelocity = Joints[Limb].MaxVelocity
  303. Joint.CurrentAngle = Joints[Limb].CurrentAngle
  304. Joint.DesiredAngle = Joints[Limb].DesiredAngle
  305. Joints[Limb]:Remove()
  306. end
  307.  
  308.  
  309. function ResetLimbCFrame(Limb, Character)
  310. if Character == nil then return false end
  311. if Character.Parent == nil then return false end
  312. if Character:FindFirstChild("Torso") == nil then return false end
  313. local Joints = {
  314. Character.Torso:FindFirstChild("Right Shoulder 2"),
  315. Character.Torso:FindFirstChild("Left Shoulder 2"),
  316. Character.Torso:FindFirstChild("Right Hip 2"),
  317. Character.Torso:FindFirstChild("Left Hip 2")
  318. }
  319. local Limbs = {
  320. Character:FindFirstChild("Right Arm"),
  321. Character:FindFirstChild("Left Arm"),
  322. Character:FindFirstChild("Right Leg"),
  323. Character:FindFirstChild("Left Leg")
  324. }
  325. if Joints[Limb] == nil then return false end
  326. if Limbs[Limb] == nil then return false end
  327. if Limb == 1 then
  328. Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  329. Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  330. elseif Limb == 2 then
  331. Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  332. Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  333. elseif Limb == 3 then
  334. Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  335. Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  336. elseif Limb == 4 then
  337. Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  338. Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  339. end
  340. end
  341.  
  342.  
  343. function EnableLimb(Limb, Character)
  344. if Character == nil then return false end
  345. if Character:FindFirstChild("Torso") == nil then return false end
  346. local Joints = {
  347. Character.Torso:FindFirstChild("Right Shoulder 2"),
  348. Character.Torso:FindFirstChild("Left Shoulder 2"),
  349. Character.Torso:FindFirstChild("Right Hip 2"),
  350. Character.Torso:FindFirstChild("Left Hip 2")
  351. }
  352. local Limbs = {
  353. Character:FindFirstChild("Right Arm"),
  354. Character:FindFirstChild("Left Arm"),
  355. Character:FindFirstChild("Right Leg"),
  356. Character:FindFirstChild("Left Leg")
  357. }
  358. if Joints[Limb] == nil then return false end
  359. if Limbs[Limb] == nil then return false end
  360. if Limb == 1 then
  361. Joints[Limb].Name = "Right Shoulder"
  362. elseif Limb == 2 then
  363. Joints[Limb].Name = "Left Shoulder"
  364. elseif Limb == 3 then
  365. Joints[Limb].Name = "Right Hip"
  366. elseif Limb == 4 then
  367. Joints[Limb].Name = "Left Hip"
  368. end
  369. Animate = Character:FindFirstChild("Animate")
  370. if Animate == nil then return false end
  371. Animate = Animate:Clone()
  372. Character.Animate:Remove()
  373. Animate.Parent = Character
  374. end
  375.  
  376.  
  377. function Weld(x, y)
  378. weld = Instance.new("Weld")
  379. weld.Part0 = x
  380. weld.Part1 = y
  381. CJ = CFrame.new(x.Position)
  382. C0 = x.CFrame:inverse() * CJ
  383. C1 = y.CFrame:inverse() * CJ
  384. weld.C0 = C0
  385. weld.C1 = C1
  386. weld.Parent = x
  387. end
  388.  
  389.  
  390. function SwordTouched(Hit)
  391. if Hit:IsDescendantOf(Player.Character) then return end
  392. if Hit.Parent:FindFirstChild("Humanoid") ~= nil then
  393. tagHumanoid(Hit.Parent.Humanoid)
  394. Hit.Parent.Humanoid:TakeDamage(Damage)
  395. wait()
  396. pcall(function() untagHumanoid(hit.Parent.Humanoid) end)
  397. end
  398. end
  399.  
  400.  
  401. function tagHumanoid(humanoid)
  402. local tag = Instance.new("ObjectValue")
  403. tag.Name = "creator"
  404. tag.Value = Player
  405. tag.Parent = humanoid
  406. end
  407.  
  408.  
  409. function untagHumanoid(humanoid)
  410. if humanoid ~= nil then
  411. local tag = humanoid:findFirstChild("creator")
  412. if tag ~= nil then
  413. tag:Remove()
  414. end
  415. end
  416. end
  417.  
  418.  
  419. function onButton1Down(Mouse)
  420. if Button1Down == true then return end
  421. Button1Down = true
  422. if CheckPlayer() == false then return end
  423. if KeyUGrab == true and KeyUGrabCharacter ~= nil and KeyUChoke ~= true and KeyUSlit ~= true then
  424. KeyUChoke = true
  425. for i = 0, 1, 0.1 do
  426. pcall(function()
  427. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1, 0.5, -0.75) * CFrame.fromEulerAnglesXYZ(math.rad(10 * i), math.rad(110 + (25 * i)), 0)
  428. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1, 0.5, -0.75) * CFrame.fromEulerAnglesXYZ(math.rad(10 * i), math.rad(-110 - (25 * i)), 0)
  429. end)
  430. wait()
  431. end
  432. pcall(function()
  433. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1, 0.5, -0.75) * CFrame.fromEulerAnglesXYZ(math.rad(10), math.rad(135), 0)
  434. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1, 0.5, -0.75) * CFrame.fromEulerAnglesXYZ(math.rad(10), math.rad(-135), 0)
  435. end)
  436. while Button1Down == true and KeyUGrab == true and Selected == true do
  437. if KeyUGrabCharacter.Humanoid.Health - 0.5 <= 0 and KeyUGrabCharacter:FindFirstChild("Head") ~= nil then
  438. pcall(function() KeyUWeld:Remove() end)
  439. for _, Part in pairs(KeyUGrabCharacter.Head:GetChildren()) do
  440. pcall(function()
  441. Part.SoundId = ""
  442. Part.Volume = 0
  443. Part.Pitch = 0
  444. end)
  445. end
  446. wait(0.1)
  447. KeyUGrabCharacter.Humanoid.Health = 0
  448. else
  449. KeyUGrabCharacter.Humanoid:TakeDamage(0.5)
  450. end
  451. if math.random(1, 20) == 1 then
  452. local BillboardGui = Instance.new("BillboardGui")
  453. BillboardGui.Parent = KeyUGrabCharacter
  454. BillboardGui.Adornee = KeyUGrabCharacter:FindFirstChild("Head")
  455. BillboardGui.Size = UDim2.new(1, 0, 1, 0)
  456. BillboardGui.StudsOffset = Vector3.new(0, 0.5, 0)
  457. local TextLabel = Instance.new("TextLabel")
  458. TextLabel.Parent = BillboardGui
  459. TextLabel.Position = UDim2.new(0, 0, 0, 0)
  460. TextLabel.Size = UDim2.new(1, 0, 1, 0)
  461. TextLabel.Text = (function()
  462. local Choice1 = math.random(1, 5)
  463. if Choice1 == 1 then
  464. Choice1 = "Hrk"
  465. elseif Choice1 == 2 then
  466. Choice1 = "Hk"
  467. elseif Choice1 == 3 then
  468. Choice1 = "Gak"
  469. elseif Choice1 == 4 then
  470. Choice1 = "Mmph"
  471. elseif Choice1 == 5 then
  472. Choice1 = "Mph"
  473. end
  474. local Choice2 = math.random(1, 5)
  475. if Choice2 == 1 then
  476. Choice2 = "!"
  477. elseif Choice2 == 2 then
  478. Choice2 = "?"
  479. elseif Choice2 == 3 then
  480. Choice2 = "..."
  481. elseif Choice2 == 4 then
  482. Choice2 = "-"
  483. elseif Choice2 == 5 then
  484. Choice2 = "!?"
  485. elseif Choice2 == 5 then
  486. Choice2 = "?!"
  487. end
  488. return Choice1 .. Choice2
  489. end)()
  490. TextLabel.FontSize = "Size14"
  491. TextLabel.TextColor3 = Color3.new(math.random(0, 255) / 255, 0, 0)
  492. TextLabel.BackgroundTransparency = 1
  493. coroutine.wrap(function()
  494. local Direction = Vector3.new(math.random(-75, 75) / 1000, math.random(-75, 75) / 1000, math.random(-75, 75) / 1000)
  495. for i = 0, math.random(25, 100) do
  496. BillboardGui.StudsOffset = BillboardGui.StudsOffset + Direction
  497. wait()
  498. end
  499. for i = 0, 1, 0.05 do
  500. BillboardGui.StudsOffset = BillboardGui.StudsOffset + (Direction * (1 - i)) - Vector3.new(0, 0.5 * i, 0)
  501. TextLabel.TextTransparency = i
  502. wait()
  503. end
  504. BillboardGui:Remove()
  505. end)()
  506. end
  507. wait()
  508. end
  509. for i = 0, 1, 0.1 do
  510. pcall(function()
  511. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1, 0.5, -0.75) * CFrame.fromEulerAnglesXYZ(math.rad(10 * (1 - i)), math.rad(135 - (25 * i)), 0)
  512. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1, 0.5, -0.75) * CFrame.fromEulerAnglesXYZ(math.rad(10 * (1 - i)), math.rad(-135 + (25 * i)), 0)
  513. end)
  514. wait()
  515. end
  516. pcall(function()
  517. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1, 0.5, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(110), 0)
  518. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1, 0.5, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-110), 0)
  519. end)
  520. KeyUChoke = false
  521. elseif KeyUChoke == true and KeyUSlit ~= true then
  522. KeyUSlit = true
  523. while KeyUChoke == true do wait() end
  524. for i = 0, 1, 0.25 do
  525. pcall(function()
  526. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1 + (0.5 * i), 0.5, -0.75 + (0.75 * i)) * CFrame.fromEulerAnglesXYZ(0, math.rad(110 - (100 * i)), 0)
  527. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1, 0.5, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-110 + (50 * i)), 0)
  528. end)
  529. wait()
  530. end
  531. pcall(function() KeyUWeld:Remove() end)
  532. KeyUGrabCharacter.Humanoid.Health = 0
  533. wait(1)
  534. KeyUSlit = false
  535. CanUse = true
  536. elseif CanUse == true then
  537. CanUse = false
  538. PlaySound("Slash", "rbxasset://sounds\\swordslash.wav", math.random(150, 175) / 100, 1, false, Player.Character[ModelName].Blade)
  539. SetSwordDamage(2)
  540. SetSpeed(1, 0.75, Player.Character)
  541. SetAngle(1, math.rad(125), Player.Character)
  542. wait(0.15)
  543. SetSwordDamage(10, 0.2)
  544. SetSpeed(1, 1, Player.Character)
  545. SetAngle(1, math.rad(-10), Player.Character)
  546. wait(0.15)
  547. SetSpeed(1, 0.5, Player.Character)
  548. SetAngle(1, math.rad(90), Player.Character)
  549. wait(0.05)
  550. CanUse = true
  551. end
  552. end
  553.  
  554.  
  555. function onButton1Up(Mouse)
  556. Button1Down = false
  557. Mouse.Icon = "rbxasset://textures\\GunCursor.png"
  558. end
  559.  
  560.  
  561. function onKeyDown(Key, Mouse)
  562. if Selected == false then return end
  563. Key = Key:lower()
  564. if Key == "u" then
  565. if KeyUGrab == true then
  566. KeyUGrab = false
  567. end
  568. end
  569. if Button1Down == false and CanUse == true and CheckPlayer() == true then
  570. if Key == "q" then
  571. if Mouse.Target == nil then return end
  572. if CheckPlayer() == false then return end
  573. local NewPlayer = game:GetService("Players"):GetPlayerFromCharacter(Mouse.Target.Parent)
  574. if NewPlayer == nil then return end
  575. if NewPlayer.Character == nil then return end
  576. if NewPlayer.Character:FindFirstChild("Torso") == nil then return end
  577. if (NewPlayer.Character.Torso.CFrame.p - Player.Character.Torso.CFrame.p).magnitude > 10 then return end
  578. onDeselected(Mouse)
  579. wait()
  580. RemoveParts(Player.Character, 1)
  581. script.Parent.Parent = NewPlayer.Backpack
  582. Player = NewPlayer
  583. end
  584. if Key == "e" then
  585. CanUse = false
  586. local OldWalkSpeed = Player.Character.Humanoid.WalkSpeed
  587. local Direction = Player.Character.Torso.CFrame.lookVector
  588. Player.Character.Humanoid.WalkSpeed = 0
  589. DisableLimb(2, Player.Character)
  590. DisableLimb(3, Player.Character)
  591. DisableLimb(4, Player.Character)
  592. SetSpeed(1, 0.2, Player.Character)
  593. SetSpeed(2, 0.2, Player.Character)
  594. SetSpeed(3, 0.05, Player.Character)
  595. SetSpeed(4, 0.05, Player.Character)
  596. SetAngle(1, math.rad(90), Player.Character)
  597. SetAngle(2, math.rad(90), Player.Character)
  598. SetAngle(3, math.rad(35), Player.Character)
  599. SetAngle(4, math.rad(-35), Player.Character)
  600. for i = 0, 1, 0.075 do
  601. pcall(function()
  602. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90 * i), math.rad(180 * i), 0)
  603. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 * (1 - i)), 0)
  604. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 * (1 - i)), 0)
  605. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 * (1 - i)), 0)
  606. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 * (1 - i)), 0)
  607. end)
  608. wait()
  609. end
  610. pcall(function()
  611. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90), math.rad(180 * i), 0)
  612. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0)
  613. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0)
  614. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5, 0.5, 0)
  615. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(0, 0.5, 0)
  616. end)
  617. SetSwordDamage(10, 2.5)
  618. local BodyVelocity = Instance.new("BodyVelocity")
  619. BodyVelocity.maxForce = Vector3.new(math.huge, 0, math.huge)
  620. BodyVelocity.velocity = Direction * (OldWalkSpeed * 1.5)
  621. BodyVelocity.Parent = Player.Character.Torso
  622. local BodyAngularVelocity = Instance.new("BodyAngularVelocity")
  623. BodyAngularVelocity.maxTorque = Vector3.new(0, math.huge, 0)
  624. BodyAngularVelocity.angularvelocity = Vector3.new(0, 37.5, 0)
  625. BodyAngularVelocity.Parent = Player.Character.Torso
  626. for i = 0, 1, 0.01 do
  627. PlaySound("Slash", "rbxasset://sounds\\swordslash.wav", math.random(125, 200) / 100, 1, false, Player.Character[ModelName].Blade)
  628. local Wave = Instance.new("Part")
  629. Wave.Name = "Wave"
  630. Wave.BrickColor = BrickColor.new("Light stone grey")
  631. Wave.TopSurface = 0
  632. Wave.BottomSurface = 0
  633. Wave.Transparency = math.cos(i * math.pi * 1.85)
  634. Wave.Transparency = Wave.Transparency < 0.4 and 0.4 or Wave.Transparency
  635. Wave.Anchored = true
  636. Wave.CanCollide = false
  637. Wave.formFactor = "Custom"
  638. Wave.Size = Vector3.new(math.random(12, 15), 1, math.random(13, 16))
  639. Wave.CFrame = Player.Character.Torso.CFrame * CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(-5, 5)), 0, math.rad(math.random(-5, 5)))
  640. Wave.Parent = game:GetService("Workspace")
  641. local Mesh = Instance.new("CylinderMesh", Wave)
  642. local Size = math.random(14, 16)
  643. Mesh.Scale = Vector3.new(1, 0.075, 1)
  644. coroutine.wrap(function()
  645. for i = Wave.Transparency, 1, 0.1 do
  646. Wave.Transparency = i
  647. wait()
  648. end
  649. Wave:Remove()
  650. end)()
  651. wait()
  652. end
  653. for i = 1, 25 do
  654. BodyVelocity.velocity = BodyVelocity.velocity / 1.2
  655. BodyAngularVelocity.angularvelocity = BodyAngularVelocity.angularvelocity / 1.075
  656. wait()
  657. end
  658. BodyVelocity:Remove()
  659. BodyAngularVelocity:Remove()
  660. SetAngle(2, 0, Player.Character)
  661. SetAngle(3, 0, Player.Character)
  662. SetAngle(4, 0, Player.Character)
  663. for i = 1, 0, -0.075 do
  664. pcall(function()
  665. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90 * i), math.rad(180 * i), 0)
  666. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 * (1 - i)), 0)
  667. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 * (1 - i)), 0)
  668. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 * (1 - i)), 0)
  669. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 * (1 - i)), 0)
  670. end)
  671. wait()
  672. end
  673. pcall(function()
  674. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new()
  675. end)
  676. ResetLimbCFrame(1, Player.Character)
  677. ResetLimbCFrame(2, Player.Character)
  678. ResetLimbCFrame(3, Player.Character)
  679. ResetLimbCFrame(4, Player.Character)
  680. SetSpeed(1, 0.5, Player.Character)
  681. SetSpeed(2, 0.5, Player.Character)
  682. SetSpeed(3, 0.1, Player.Character)
  683. SetSpeed(4, 0.1, Player.Character)
  684. EnableLimb(1, Player.Character)
  685. EnableLimb(2, Player.Character)
  686. EnableLimb(3, Player.Character)
  687. EnableLimb(4, Player.Character)
  688. DisableLimb(1, Player.Character)
  689. Player.Character.Humanoid.WalkSpeed = OldWalkSpeed
  690. CanUse = true
  691. end
  692. if Key == "r" then
  693. CanUse = false
  694. local OldWalkSpeed = Player.Character.Humanoid.WalkSpeed
  695. local Direction = Player.Character.Torso.CFrame.lookVector
  696. Player.Character.Humanoid.WalkSpeed = 0
  697. DisableLimb(2, Player.Character)
  698. DisableLimb(3, Player.Character)
  699. DisableLimb(4, Player.Character)
  700. SetSpeed(1, 0.1, Player.Character)
  701. SetSpeed(2, 0.1, Player.Character)
  702. SetSpeed(3, 0.075, Player.Character)
  703. SetSpeed(4, 0.075, Player.Character)
  704. SetAngle(1, math.rad(90), Player.Character)
  705. SetAngle(2, math.rad(-45), Player.Character)
  706. SetAngle(3, math.rad(90), Player.Character)
  707. SetAngle(4, math.rad(-60), Player.Character)
  708. PlaySound("Slash", "rbxasset://sounds\\swordslash.wav", math.random(75, 100) / 100, 1, false, Player.Character[ModelName].Blade)
  709. for i = 0, 1, 0.075 do
  710. pcall(function()
  711. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90 * i), 0, 0)
  712. end)
  713. wait()
  714. end
  715. pcall(function()
  716. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
  717. end)
  718. SetSwordDamage(20, 1)
  719. local BodyVelocity = Instance.new("BodyVelocity")
  720. BodyVelocity.maxForce = Vector3.new(math.huge, 0, math.huge)
  721. BodyVelocity.velocity = Direction * (OldWalkSpeed * 5)
  722. BodyVelocity.Parent = Player.Character.Torso
  723. for i = 1, 20 do
  724. BodyVelocity.velocity = BodyVelocity.velocity / 1.15
  725. wait()
  726. end
  727. BodyVelocity:Remove()
  728. SetAngle(2, 0, Player.Character)
  729. SetAngle(3, 0, Player.Character)
  730. SetAngle(4, 0, Player.Character)
  731. for i = 1, 0, -0.1 do
  732. pcall(function()
  733. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90 * i), 0, 0)
  734. end)
  735. wait()
  736. end
  737. pcall(function()
  738. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new()
  739. end)
  740. SetSpeed(1, 0.5, Player.Character)
  741. SetSpeed(2, 0.5, Player.Character)
  742. SetSpeed(3, 0.1, Player.Character)
  743. SetSpeed(4, 0.1, Player.Character)
  744. EnableLimb(1, Player.Character)
  745. EnableLimb(2, Player.Character)
  746. EnableLimb(3, Player.Character)
  747. EnableLimb(4, Player.Character)
  748. DisableLimb(1, Player.Character)
  749. Player.Character.Humanoid.WalkSpeed = OldWalkSpeed
  750. CanUse = true
  751. end
  752. if Key == "t" then
  753. CanUse = false
  754. KeyTDown = true
  755. local KeyTCharge = 0
  756. local KeyTFire = false
  757. local OldWalkSpeed = Player.Character.Humanoid.WalkSpeed
  758. Player.Character.Humanoid.WalkSpeed = OldWalkSpeed / 10
  759. for i = 0, 1, 0.1 do
  760. pcall(function()
  761. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 - (100 * i)), 0)
  762. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 + (90 * i)), 0)
  763. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90 * i), 0, 0)
  764. end)
  765. wait()
  766. end
  767. pcall(function()
  768. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-10), 0)
  769. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(180), 0)
  770. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
  771. end)
  772. while KeyTDown == true and Mouse ~= nil and Selected == true do
  773. KeyTCharge = KeyTCharge + 1
  774. if KeyTCharge >= 35 then
  775. KeyTFire = true
  776. local Shock = Instance.new("Part", game:GetService("Workspace"))
  777. Shock.Name = "Shock Ring"
  778. Shock.BrickColor = BrickColor.new("Industrial white")
  779. Shock.Transparency = 0.5
  780. Shock.Anchored = true
  781. Shock.CanCollide = false
  782. Shock.formFactor = "Custom"
  783. Shock.Size = Vector3.new(1.5, 1, 1.5)
  784. Shock.CFrame = Player.Character["Right Arm"].CFrame * CFrame.new(0, -1.5, 0.125) * CFrame.fromEulerAnglesXYZ(math.rad(180 + math.random(-25, 25)), 0, math.rad(math.random(-25, 25)))
  785. local Mesh = Instance.new("SpecialMesh", Shock)
  786. Mesh.MeshType = "FileMesh"
  787. Mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
  788. Mesh.Scale = Shock.Size
  789. coroutine.wrap(function()
  790. wait()
  791. for i = Shock.Transparency, 1, 0.05 do
  792. Shock.Transparency = i
  793. Shock.CFrame = Shock.CFrame * CFrame.new(0, 0.5, 0)
  794. wait()
  795. end
  796. Shock:Remove()
  797. end)()
  798. end
  799. wait()
  800. end
  801. PlaySound("Slash", "rbxasset://sounds\\swordslash.wav", math.random(125, 150) / 100, 1, false, Player.Character[ModelName].Blade)
  802. wait(0.05)
  803. SetSwordDamage(20, 0.5)
  804. local _, Position = pcall(function() return Mouse.Hit.p end)
  805. for i = 0, 1, KeyTFire == true and 0.1 or 0.2 do
  806. pcall(function()
  807. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-10 + (170 * i)), 0)
  808. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90 + (10 * i)), 0, 0)
  809. end)
  810. if KeyTFire == true and type(Position) == "userdata" then
  811. local Shock = Instance.new("Part", game:GetService("Workspace"))
  812. Shock.Name = "Shock Ring"
  813. Shock.BrickColor = BrickColor.new("Industrial white")
  814. Shock.TopSurface = 0
  815. Shock.BottomSurface = 0
  816. Shock.Anchored = true
  817. Shock.CanCollide = false
  818. Shock.formFactor = "Custom"
  819. Shock.Size = Vector3.new(0.2, 0.2, 0.2)
  820. Shock.CFrame = CFrame.new(Player.Character[ModelName].Blade.CFrame.p, Position) * CFrame.fromEulerAnglesXYZ(math.rad(-90), 0, math.rad(math.sin((i + 1.5) * math.pi) * 25))
  821. coroutine.wrap(function()
  822. wait()
  823. for i = 0, 1, 0.05 do
  824. Shock.Transparency = i
  825. local NewPosition = Shock.CFrame * CFrame.new(0, 3, 0)
  826. Shock.Size = Shock.Size + Vector3.new(0.75, 0.5, 0.05)
  827. Shock.CFrame = NewPosition
  828. wait()
  829. end
  830. Shock:Remove()
  831. end)()
  832. SetPartDamage(15, false, Shock)
  833. end
  834. wait()
  835. end
  836. pcall(function()
  837. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(160), 0)
  838. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(100), 0, 0)
  839. end)
  840. for i = 0, 1, 0.1 do
  841. pcall(function()
  842. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(160 - (70 * i)), 0)
  843. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(180 - (90 * i)), 0)
  844. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(100 * (1 - i)), 0, 0)
  845. end)
  846. wait()
  847. end
  848. pcall(function()
  849. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new()
  850. end)
  851. ResetLimbCFrame(1, Player.Character)
  852. Player.Character.Humanoid.WalkSpeed = OldWalkSpeed
  853. CanUse = true
  854. end
  855. if Key == "y" then
  856. CanUse = false
  857. KeyYDown = true
  858. local OldWalkSpeed = Player.Character.Humanoid.WalkSpeed
  859. Player.Character.Humanoid.WalkSpeed = OldWalkSpeed / 5
  860. for i = 0, 1, 0.25 do
  861. pcall(function()
  862. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90 * i), 0, 0)
  863. end)
  864. wait()
  865. end
  866. pcall(function()
  867. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
  868. end)
  869. for _, Part in pairs(Player.Character[ModelName]:GetChildren()) do
  870. if Part.Name ~= "Sheath" then
  871. pcall(function() Part.Transparency = 1 end)
  872. end
  873. end
  874. SetSwordDamage(10)
  875. while KeyYDown == true and Mouse ~= nil and Selected == true do
  876. PlaySound("Slash", "rbxasset://sounds\\swordslash.wav", math.random(150, 175) / 100, 1, false, Player.Character[ModelName].Blade)
  877. pcall(function()
  878. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0)
  879. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + math.random(-30, 30)), math.rad(math.random(-30, 30)), 0)
  880. end)
  881. local Ghost = Instance.new("Part", game:GetService("Workspace"))
  882. Ghost.Name = "Ghost"
  883. Ghost.BrickColor = BrickColor.new("Industrial white")
  884. Ghost.Anchored = true
  885. Ghost.CanCollide = false
  886. Ghost.formFactor = "Custom"
  887. Ghost.Size = Vector3.new(0.2, 0.2, 4)
  888. Ghost.CFrame = Player.Character[ModelName].Handle.CFrame * CFrame.fromEulerAnglesXYZ(math.rad(math.random(-25, 25)), math.rad(math.random(-25, 25)), 0) * CFrame.new(math.random(-100, 100) / 100, math.random(-100, 100) / 100, math.random(-4, -3))
  889. local Mesh = Instance.new("SpecialMesh", Ghost)
  890. Mesh.MeshType = "Sphere"
  891. coroutine.wrap(function()
  892. wait()
  893. for i = 0, 1, 0.1 do
  894. Ghost.Transparency = i
  895. wait()
  896. end
  897. Ghost:Remove()
  898. end)()
  899. wait()
  900. end
  901. ResetLimbCFrame(1, Player.Character)
  902. SetSwordDamage(0)
  903. for _, Part in pairs(Player.Character[ModelName]:GetChildren()) do
  904. if Part.Name ~= "Sheath" then
  905. pcall(function() Part.Transparency = 0 end)
  906. end
  907. end
  908. for i = 0, 1, 0.1 do
  909. pcall(function()
  910. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(100 * (1 - i)), 0, 0)
  911. end)
  912. wait()
  913. end
  914. pcall(function()
  915. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new()
  916. end)
  917. Player.Character.Humanoid.WalkSpeed = OldWalkSpeed
  918. CanUse = true
  919. end
  920. if Key == "u" then
  921. if KeyUGrab ~= true then
  922. if Player.Character.Torso:FindFirstChild("IsGrabbed") ~= nil then return end
  923. if Mouse.Target == nil then return end
  924. KeyUGrabCharacter = Mouse.Target.Parent
  925. if KeyUGrabCharacter == nil then return end
  926. if KeyUGrabCharacter:FindFirstChild("Torso") == nil or KeyUGrabCharacter:FindFirstChild("Head") == nil or KeyUGrabCharacter:FindFirstChild("Humanoid") == nil then return end
  927. if KeyUGrabCharacter.Torso:FindFirstChild("IsGrabbed") ~= nil then return end
  928. if (KeyUGrabCharacter.Torso.CFrame.p - Player.Character.Torso.CFrame.p).magnitude > 5 then return end
  929. CanUse = false
  930. KeyUGrab = true
  931. local Marker1 = Instance.new("IntValue", KeyUGrabCharacter.Torso)
  932. Marker1.Name = "IsGrabbed"
  933. KeyUWeld = Instance.new("Weld", Player.Character.Torso)
  934. KeyUWeld.Name = "IsGrabbed"
  935. KeyUWeld.Part0 = KeyUWeld.Parent
  936. KeyUWeld.Part1 = KeyUGrabCharacter.Torso
  937. KeyUWeld.C0 = CFrame.new(0, 0, -1.05)
  938. DisableLimb(2, Player.Character)
  939. SetSpeed(1, 0.2, Player.Character)
  940. SetSpeed(2, 0.2, Player.Character)
  941. SetAngle(1, math.rad(100), Player.Character)
  942. SetAngle(2, math.rad(100), Player.Character)
  943. for i = 0, 1, 0.1 do
  944. pcall(function()
  945. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5 - (0.5 * i), 0.5, -0.75 * i) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 + (20 * i)), 0)
  946. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5 + (0.5 * i), 0.5, -0.75 * i) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 - (20 * i)), 0)
  947. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(160 * i), math.rad(110 * i), 0)
  948. end)
  949. wait()
  950. end
  951. pcall(function()
  952. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1, 0.5, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(110), 0)
  953. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1, 0.5, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-110), 0)
  954. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(160), math.rad(110), 0)
  955. end)
  956. while KeyUGrab == true and Selected == true do
  957. if CheckPlayer() == false then break end
  958. if KeyUWeld.Parent == nil then break end
  959. if KeyUGrabCharacter == nil then break end
  960. if KeyUGrabCharacter:FindFirstChild("Torso") == nil or KeyUGrabCharacter:FindFirstChild("Humanoid") == nil then break end
  961. if KeyUGrabCharacter.Humanoid.Health <= 0 then break end
  962. KeyUGrabCharacter.Humanoid.PlatformStand = true
  963. wait()
  964. end
  965. KeyUGrab = false
  966. while KeyUChoke == true do wait() end
  967. pcall(function() KeyUWeld:Remove() end)
  968. pcall(function() Marker1:Remove() end)
  969. pcall(function() Marker2:Remove() end)
  970. pcall(function() KeyUGrabCharacter.Humanoid.Sit = true end)
  971. if KeyUSlit == true then
  972. while KeyUSlit == true do wait() end
  973. SetSpeed(1, 0.5, Player.Character)
  974. SetSpeed(2, 0.5, Player.Character)
  975. SetAngle(1, math.rad(90), Player.Character)
  976. SetAngle(2, 0, Player.Character)
  977. for i = 0, 1, 0.1 do
  978. pcall(function()
  979. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(10 + (80 * i)), 0)
  980. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1 - (0.5 * i), 0.5, -0.75 + 0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-10 - (80 * i)), 0)
  981. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(160 * (1 - i)), math.rad(110 * (1 - i)), 0)
  982. end)
  983. wait()
  984. end
  985. else
  986. SetSpeed(1, 0.5, Player.Character)
  987. SetSpeed(2, 0.5, Player.Character)
  988. SetAngle(1, math.rad(90), Player.Character)
  989. SetAngle(2, 0, Player.Character)
  990. for i = 1, 0, -0.1 do
  991. pcall(function()
  992. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5 - (0.5 * i), 0.5, -0.75 * i) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 + (20 * i)), 0)
  993. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5 + (0.5 * i), 0.5, -0.75 * i) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 - (20 * i)), 0)
  994. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(160 * i), math.rad(110 * i), 0)
  995. end)
  996. wait()
  997. end
  998. end
  999. ResetLimbCFrame(1, Player.Character)
  1000. ResetLimbCFrame(2, Player.Character)
  1001. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new()
  1002. EnableLimb(1, Player.Character)
  1003. EnableLimb(2, Player.Character)
  1004. DisableLimb(1, Player.Character)
  1005. CanUse = true
  1006. end
  1007. end
  1008. if Key == "f" then
  1009. CanUse = false
  1010. DisableLimb(2, Player.Character)
  1011. SetSpeed(1, 0.3, Player.Character)
  1012. SetSpeed(2, 0.3, Player.Character)
  1013. SetAngle(1, math.rad(45), Player.Character)
  1014. SetAngle(2, math.rad(45), Player.Character)
  1015. PlaySound("Slash", "rbxasset://sounds\\swordslash.wav", math.random(65, 80) / 100, 1, false, Player.Character[ModelName].Blade)
  1016. for i = 0, 1, 0.25 do
  1017. pcall(function()
  1018. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5 - (0.5 * i), 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 + (45 * i)), 0)
  1019. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5 + (0.5 * i), 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 - (45 * i)), 0)
  1020. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(90 * i), math.rad(213.25 * i), math.rad(-39 * i))
  1021. end)
  1022. wait()
  1023. end
  1024. pcall(function()
  1025. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(100), math.rad(213.25), math.rad(-39))
  1026. end)
  1027. wait(0.35)
  1028. SetSpeed(1, 0.75, Player.Character)
  1029. SetSpeed(2, 0.75, Player.Character)
  1030. SetAngle(1, math.rad(135), Player.Character)
  1031. SetAngle(2, math.rad(135), Player.Character)
  1032. SetSwordDamage(15, 0.5)
  1033. Player.Character.Humanoid.Jump = true
  1034. local Connection = Player.Character[ModelName].Blade.Touched:connect(function(Hit)
  1035. if Hit:IsDescendantOf(Player.Character) then return end
  1036. pcall(function() Hit.Parent.Humanoid.Sit = true end)
  1037. pcall(function() Hit.Parent.Torso.Velocity = (Player.Character.Torso.CFrame.lookVector * math.random(10, 25)) + Vector3.new(math.random(-10, 10), 75, math.random(-10, 10)) end)
  1038. end)
  1039. for i = 0, 1, 0.25 do
  1040. pcall(function()
  1041. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(100 + (45 * i)), math.rad(213.25 - (66.5 * i)), math.rad(-39))
  1042. end)
  1043. wait()
  1044. end
  1045. wait(0.5)
  1046. Connection:disconnect()
  1047. wait(0.25)
  1048. SetSpeed(1, 0.5, Player.Character)
  1049. SetSpeed(2, 0.5, Player.Character)
  1050. SetAngle(1, math.rad(90), Player.Character)
  1051. SetAngle(2, 0, Player.Character)
  1052. for i = 1, 0, -0.1 do
  1053. pcall(function()
  1054. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5 - (0.5 * i), 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 + (45 * i)), 0)
  1055. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5 + (0.5 * i), 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 - (45 * i)), 0)
  1056. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(145 * i), math.rad(146.75 * i), math.rad(-39 * i))
  1057. end)
  1058. wait()
  1059. end
  1060. pcall(function()
  1061. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new()
  1062. end)
  1063. ResetLimbCFrame(1, Player.Character)
  1064. ResetLimbCFrame(2, Player.Character)
  1065. EnableLimb(1, Player.Character)
  1066. EnableLimb(2, Player.Character)
  1067. DisableLimb(1, Player.Character)
  1068. CanUse = true
  1069. end
  1070. if Key == "g" then
  1071. CanUse = false
  1072. DisableLimb(2, Player.Character)
  1073. SetSpeed(1, 0.3, Player.Character)
  1074. SetSpeed(2, 0.3, Player.Character)
  1075. SetAngle(1, math.rad(135), Player.Character)
  1076. SetAngle(2, math.rad(135), Player.Character)
  1077. PlaySound("Slash", "rbxasset://sounds\\swordslash.wav", math.random(65, 80) / 100, 1, false, Player.Character[ModelName].Blade)
  1078. for i = 0, 1, 0.25 do
  1079. pcall(function()
  1080. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5 - (0.5 * i), 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 + (45 * i)), 0)
  1081. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5 + (0.5 * i), 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 - (45 * i)), 0)
  1082. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(10 * i), math.rad(-28.125 * i), math.rad(-39 * i))
  1083. end)
  1084. wait()
  1085. end
  1086. pcall(function()
  1087. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(10), math.rad(-28.125), math.rad(-39))
  1088. end)
  1089. Player.Character.Humanoid.Jump = true
  1090. wait(0.4)
  1091. SetSpeed(1, 0.75, Player.Character)
  1092. SetSpeed(2, 0.75, Player.Character)
  1093. SetAngle(1, math.rad(45), Player.Character)
  1094. SetAngle(2, math.rad(45), Player.Character)
  1095. SetSwordDamage(20, 0.5)
  1096. for i = 0, 1, 0.25 do
  1097. pcall(function()
  1098. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(10 + (90 * i)), math.rad(-28.125 + (66.5 * i)), math.rad(-39))
  1099. end)
  1100. wait()
  1101. end
  1102. wait(0.5)
  1103. SetSpeed(1, 0.5, Player.Character)
  1104. SetSpeed(2, 0.5, Player.Character)
  1105. SetAngle(1, math.rad(90), Player.Character)
  1106. SetAngle(2, 0, Player.Character)
  1107. for i = 1, 0, -0.1 do
  1108. pcall(function()
  1109. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5 - (0.5 * i), 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 + (45 * i)), 0)
  1110. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5 + (0.5 * i), 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 - (45 * i)), 0)
  1111. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(145 * i), math.rad(146.75 * i), math.rad(-39 * i))
  1112. end)
  1113. wait()
  1114. end
  1115. pcall(function()
  1116. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new()
  1117. end)
  1118. ResetLimbCFrame(1, Player.Character)
  1119. ResetLimbCFrame(2, Player.Character)
  1120. EnableLimb(1, Player.Character)
  1121. EnableLimb(2, Player.Character)
  1122. DisableLimb(1, Player.Character)
  1123. CanUse = true
  1124. end
  1125. if Key == "h" then
  1126. CanUse = false
  1127. local OldWalkSpeed = Player.Character.Humanoid.WalkSpeed
  1128. Player.Character.Humanoid.WalkSpeed = OldWalkSpeed / 10
  1129. SetAngle(1, math.rad(90), Player.Character)
  1130. SetSwordDamage(10)
  1131. for i = 0, 1, 0.01 do
  1132. pcall(function()
  1133. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(0, math.rad(360 * 15 * i), 0)
  1134. end)
  1135. PlaySound("Slash", "rbxasset://sounds\\swordslash.wav", math.random(125, 200) / 100, 1, false, Player.Character[ModelName].Blade)
  1136. local Size = math.random(8, 12)
  1137. local Wave = Instance.new("Part")
  1138. Wave.Name = "Wave"
  1139. Wave.BrickColor = BrickColor.new("Light stone grey")
  1140. Wave.TopSurface = 0
  1141. Wave.BottomSurface = 0
  1142. Wave.Transparency = math.cos(i * math.pi * 1.85)
  1143. Wave.Transparency = Wave.Transparency < 0.4 and 0.4 or Wave.Transparency
  1144. Wave.Anchored = true
  1145. Wave.CanCollide = math.random(1, 3) == 1 and true or false
  1146. Wave.formFactor = "Custom"
  1147. Wave.Size = Vector3.new(Size, 1, Size)
  1148. Wave.CFrame = Player.Character["Right Arm"].CFrame * CFrame.new(0, math.random(-150, -125) / 100, 0) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(-5, 5)), 0, math.rad(math.random(-5, 5)))
  1149. Wave.Parent = game:GetService("Workspace")
  1150. local Mesh = Instance.new("CylinderMesh", Wave)
  1151. Mesh.Scale = Vector3.new(1, 0.075, 1)
  1152. coroutine.wrap(function()
  1153. for i = Wave.Transparency, 1, 0.1 do
  1154. Wave.Transparency = i
  1155. wait()
  1156. end
  1157. Wave:Remove()
  1158. end)()
  1159. wait()
  1160. end
  1161. pcall(function()
  1162. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new()
  1163. end)
  1164. SetSwordDamage("Default")
  1165. Player.Character.Humanoid.WalkSpeed = OldWalkSpeed
  1166. CanUse = true
  1167. end
  1168. if Key == "x" then
  1169. if Player.Character.Torso.Velocity.x > 2 or Player.Character.Torso.Velocity.y > 2 or Player.Character.Torso.Velocity.z > 2 or Player.Character.Torso.Velocity.x < -2 or Player.Character.Torso.Velocity.y < -2 or Player.Character.Torso.Velocity.z < -2 then return end
  1170. CanUse = false
  1171. Player.Character.Torso.Anchored = true
  1172. Player.Character.Humanoid.PlatformStand = true
  1173. local Pos = Player.Character.Torso.CFrame
  1174. DisableLimb(2, Player.Character)
  1175. DisableLimb(3, Player.Character)
  1176. DisableLimb(4, Player.Character)
  1177. SetSpeed(1, 0.3, Player.Character)
  1178. SetSpeed(2, 0.3, Player.Character)
  1179. SetSpeed(3, 0.3, Player.Character)
  1180. SetSpeed(4, 0.3, Player.Character)
  1181. SetAngle(1, math.rad(90), Player.Character)
  1182. SetAngle(2, math.rad(90), Player.Character)
  1183. SetAngle(3, 0, Player.Character)
  1184. SetAngle(4, 0, Player.Character)
  1185. for i = 0, 1, 0.25 do
  1186. pcall(function()
  1187. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5 - (0.5 * i), 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 + (45 * i)), 0)
  1188. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5 + (0.5 * i), 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 - (45 * i)), 0)
  1189. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(10 * i), math.rad(-28.125 * i), math.rad(-39 * i))
  1190. end)
  1191. wait()
  1192. end
  1193. wait(0.1)
  1194. for i = 0, math.pi, 0.05 do
  1195. Player.Character.Torso.CFrame = Pos * CFrame.new(0, math.sin(-i) + 0.25, math.sin(-i)) * CFrame.fromEulerAnglesXYZ(math.rad(math.sin(-i) * 80), 0, 0)
  1196. ForceAngle(3, math.rad(math.sin(i) * 80), Player.Character)
  1197. ForceAngle(4, math.rad(math.sin(i) * 80), Player.Character)
  1198. wait()
  1199. end
  1200. SetAngle(2, 0, Player.Character)
  1201. for i = 1, 0, -0.25 do
  1202. pcall(function()
  1203. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5 - (0.5 * i), 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90 + (45 * i)), 0)
  1204. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5 + (0.5 * i), 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 - (45 * i)), 0)
  1205. Player.Character[ModelName].Handle.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(10 * i), math.rad(-28.125 * i), math.rad(-39 * i))
  1206. end)
  1207. wait()
  1208. end
  1209. wait(0.1)
  1210. SetSpeed(1, 0.2, Player.Character)
  1211. SetSpeed(2, 0.2, Player.Character)
  1212. SetSpeed(3, 0.1, Player.Character)
  1213. SetSpeed(4, 0.1, Player.Character)
  1214. EnableLimb(1, Player.Character)
  1215. EnableLimb(2, Player.Character)
  1216. EnableLimb(3, Player.Character)
  1217. EnableLimb(4, Player.Character)
  1218. DisableLimb(1, Player.Character)
  1219. Player.Character.Torso.Velocity = Vector3.new(0, 0, 0)
  1220. Player.Character.Torso.Anchored = false
  1221. Player.Character.Humanoid.PlatformStand = false
  1222. CanUse = true
  1223. end
  1224. if Key == "j" then
  1225. CanUse = false
  1226. local OldWalkSpeed = Player.Character.Humanoid.WalkSpeed
  1227. local Direction = (Player.Character.Torso.CFrame.p - (Player.Character.Torso.CFrame * CFrame.new(3, 0, 0)).p).unit
  1228. Player.Character.Humanoid.WalkSpeed = 0
  1229. local BodyVelocity = Instance.new("BodyVelocity")
  1230. BodyVelocity.maxForce = Vector3.new(math.huge, 0, math.huge)
  1231. BodyVelocity.velocity = Direction * (OldWalkSpeed * 10)
  1232. BodyVelocity.Parent = Player.Character.Torso
  1233. for i = 1, 20 do
  1234. BodyVelocity.velocity = BodyVelocity.velocity / 1.2
  1235. wait()
  1236. end
  1237. BodyVelocity:Remove()
  1238. Player.Character.Humanoid.WalkSpeed = OldWalkSpeed
  1239. CanUse = true
  1240. end
  1241. if Key == "k" then
  1242. CanUse = false
  1243. local OldWalkSpeed = Player.Character.Humanoid.WalkSpeed
  1244. local Direction = (Player.Character.Torso.CFrame.p - (Player.Character.Torso.CFrame * CFrame.new(-3, 0, 0)).p).unit
  1245. Player.Character.Humanoid.WalkSpeed = 0
  1246. local BodyVelocity = Instance.new("BodyVelocity")
  1247. BodyVelocity.maxForce = Vector3.new(math.huge, 0, math.huge)
  1248. BodyVelocity.velocity = Direction * (OldWalkSpeed * 10)
  1249. BodyVelocity.Parent = Player.Character.Torso
  1250. for i = 1, 20 do
  1251. BodyVelocity.velocity = BodyVelocity.velocity / 1.2
  1252. wait()
  1253. end
  1254. BodyVelocity:Remove()
  1255. Player.Character.Humanoid.WalkSpeed = OldWalkSpeed
  1256. CanUse = true
  1257. end
  1258. if Key == "z" then
  1259. if KeyZDown == true then return end
  1260. local KeyZMaxTime = 25
  1261. if KeyZTime == nil then KeyZTime = KeyZMaxTime end
  1262. if KeyZTime <= 0 then return end
  1263. CanUse = false
  1264. KeyZDown = true
  1265. DisableLimb(2, Player.Character)
  1266. SetSpeed(1, 0.5, Player.Character)
  1267. SetSpeed(2, 0.5, Player.Character)
  1268. SetAngle(1, math.rad(10), Player.Character)
  1269. SetAngle(2, math.rad(10), Player.Character)
  1270. local KeyZMovement1 = Player.Character.Humanoid.Running:connect(function(Speed)
  1271. if Speed > 0 then
  1272. SetAngle(1, math.rad(-45), Player.Character)
  1273. SetAngle(2, math.rad(-45), Player.Character)
  1274. else
  1275. SetAngle(1, math.rad(10), Player.Character)
  1276. SetAngle(2, math.rad(10), Player.Character)
  1277. end
  1278. end)
  1279. local KeyZMovement2 = Player.Character.Humanoid.Jumping:connect(function()
  1280. --Player.Character.Torso.Velocity = Player.Character.Torso.Velocity + Vector3.new(0, 35, 0)
  1281. wait()
  1282. SetAngle(1, math.rad(-45), Player.Character)
  1283. SetAngle(2, math.rad(-45), Player.Character)
  1284. wait(0.15)
  1285. SetAngle(1, math.rad(180), Player.Character)
  1286. SetAngle(2, math.rad(180), Player.Character)
  1287. wait(0.5)
  1288. end)
  1289. local KeyZMovement3 = Player.Character.Humanoid.FreeFalling:connect(function()
  1290. SetAngle(1, math.rad(180), Player.Character)
  1291. SetAngle(2, math.rad(180), Player.Character)
  1292. end)
  1293. local Gui = Instance.new("ScreenGui", Player.PlayerGui)
  1294. Gui.Name = ModelName.. " Stamina Bar"
  1295. local BarUnderlay = Instance.new("Frame", Gui)
  1296. BarUnderlay.Name = "BarUnderlay"
  1297. BarUnderlay.BackgroundColor3 = Color3.new(1, 0, 0)
  1298. BarUnderlay.BorderColor3 = Color3.new(0, 0, 0)
  1299. BarUnderlay.Size = UDim2.new(0, 250, 0, 15)
  1300. BarUnderlay.Position = UDim2.new(1, -300, 1, -100)
  1301. local BarOverlay = Instance.new("Frame", Gui)
  1302. BarOverlay.Name = "BarOverlay"
  1303. BarOverlay.BackgroundColor3 = Color3.new(0, 1, 0)
  1304. BarOverlay.BorderColor3 = Color3.new(0, 0, 0)
  1305. BarOverlay.Position = UDim2.new(1, -300, 1, -100)
  1306. local TextLabel = Instance.new("TextLabel", Gui)
  1307. TextLabel.Name = "Stamina"
  1308. TextLabel.Text = "Stamina"
  1309. TextLabel.BackgroundTransparency = 1
  1310. TextLabel.BorderSizePixel = 1
  1311. TextLabel.Size = UDim2.new(0, 250, 0, 15)
  1312. TextLabel.Position = UDim2.new(1, -300, 1, -100)
  1313. coroutine.wrap(function()
  1314. for i = 1, 0, -0.1 do
  1315. BarUnderlay.BackgroundTransparency = i
  1316. BarOverlay.BackgroundTransparency = i
  1317. TextLabel.TextTransparency = i
  1318. wait()
  1319. end
  1320. end)()
  1321. local OldWalkSpeed = Player.Character.Humanoid.WalkSpeed
  1322. Player.Character.Humanoid.WalkSpeed = 0
  1323. wait(0.1)
  1324. Player.Character.Humanoid.WalkSpeed = OldWalkSpeed * 2.5
  1325. while KeyZDown == true and KeyZTime > 0 and Selected == true do
  1326. KeyZTime = KeyZTime - 0.1
  1327. BarOverlay.Size = UDim2.new(0, 250 - ((1 - (KeyZTime / KeyZMaxTime)) * 250), 0, 15)
  1328. wait()
  1329. end
  1330. KeyZMovement1:disconnect()
  1331. KeyZMovement2:disconnect()
  1332. KeyZMovement3:disconnect()
  1333. Player.Character.Humanoid.WalkSpeed = 0
  1334. wait(0.1)
  1335. Player.Character.Humanoid.WalkSpeed = OldWalkSpeed
  1336. SetSpeed(1, 0.2, Player.Character)
  1337. SetSpeed(2, 0.2, Player.Character)
  1338. SetAngle(1, math.rad(90), Player.Character)
  1339. SetAngle(2, 0, Player.Character)
  1340. EnableLimb(1, Player.Character)
  1341. EnableLimb(2, Player.Character)
  1342. DisableLimb(1, Player.Character)
  1343. while KeyZDown == true and Selected == true do
  1344. wait()
  1345. end
  1346. CanUse = true
  1347. while KeyZDown == false and KeyZTime < KeyZMaxTime and Selected == true do
  1348. KeyZTime = KeyZTime + 0.09
  1349. BarOverlay.Size = UDim2.new(0, 250 - ((1 - (KeyZTime / KeyZMaxTime)) * 250), 0, 15)
  1350. wait()
  1351. end
  1352. coroutine.wrap(function()
  1353. for i = 0, 1, 0.05 do
  1354. BarUnderlay.BackgroundTransparency = i
  1355. BarOverlay.BackgroundTransparency = i
  1356. TextLabel.TextTransparency = i
  1357. wait()
  1358. end
  1359. Gui:Remove()
  1360. end)()
  1361. end
  1362. end
  1363. end
  1364.  
  1365.  
  1366. function onKeyUp(Key, Mouse)
  1367. if Selected == false then return end
  1368. Key = Key:lower()
  1369. if Key == "z" then
  1370. KeyZDown = false
  1371. elseif Key == "t" then
  1372. KeyTDown = false
  1373. elseif Key == "y" then
  1374. KeyYDown = false
  1375. end
  1376. if CheckPlayer() == true then
  1377. if Button1Down == false and CanUse == true then
  1378.  
  1379. end
  1380. end
  1381. end
  1382.  
  1383.  
  1384. function onSelected(Mouse)
  1385. if script.Parent.Active == false then return end
  1386. if Selected == true then return end
  1387. while true do
  1388. if CheckPlayer() == true then
  1389. if Player.Character.Torso:FindFirstChild("Right Shoulder") ~= nil then
  1390. break
  1391. end
  1392. end
  1393. wait(0.1)
  1394. end
  1395. Selected = true
  1396. if script.Parent.Active == false then return end
  1397. CanUse = false
  1398. DisableLimb(1, Player.Character)
  1399. SetSpeed(1, 0.5, Player.Character)
  1400. SetAngle(1, 0, Player.Character)
  1401. DisableLimb(2, Player.Character)
  1402. SetSpeed(2, 0.5, Player.Character)
  1403. SetAngle(2, 0, Player.Character)
  1404. wait(0.05)
  1405. for i = 0, 1, 0.1 do
  1406. pcall(function()
  1407. Player.Character.Torso["Right Shoulder 2"].C0 =
  1408. CFrame.new(-0.05 * i, 0.11 * i, -0.8 * i) * CFrame.fromEulerAnglesXYZ(math.rad(50) * i, 0, math.rad(-45) * i) *
  1409. CFrame.new(1.5 * (1 - i), 0.5 * (1 - i), 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90) * (1 - i), 0)
  1410. Player.Character.Torso["Right Shoulder 2"].C1 =
  1411. CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90) * (1 - i), 0)
  1412. end)
  1413. wait()
  1414. end
  1415. RemoveParts(Player.Character, 1)
  1416. CreateParts(Player.Character, 2)
  1417. pcall(function()
  1418. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(-0.05, 0.11, -0.8) * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, math.rad(-45))
  1419. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0)
  1420. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new(0, 0, -0.1) * CFrame.fromEulerAnglesXYZ(math.rad(200), 0, math.rad(-45))
  1421. end)
  1422. wait(0.1)
  1423. PlaySound("Unsheath", "rbxasset://sounds\\unsheath.wav", 1.25, 1, false, Player.Character[ModelName].Sheath)
  1424. SetSwordDamage(10, 0.5)
  1425. SetSpeed(2, 0.025, Player.Character)
  1426. SetAngle(2, math.rad(-15), Player.Character)
  1427. for i = 0, 1, 0.1 do
  1428. pcall(function()
  1429. Player.Character.Torso["Right Shoulder 2"].C0 =
  1430. CFrame.new(-0.05 + (0.4 * i), 0.11 + (0.49 * i), -0.8 - (0.1 * i)) * CFrame.fromEulerAnglesXYZ(math.rad(50 + (130 * i)), 0, math.rad(-45 + (10 * i)))
  1431. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new(0.2 * i, 0, -0.5 * i) * CFrame.fromEulerAnglesXYZ(math.rad(200 + (87.5 * i)), 0, math.rad(-45 - (3 * i)))
  1432. Player.Character[ModelName].Sheath.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(150 - (40 * i)), math.rad(17.5 * i), 0)
  1433. Player.Character[ModelName].Sheath.Weld.C1 = CFrame.new(-1.1 - (0.375 * i), -1.75, 0.5 - (0.2 * i))
  1434. end)
  1435. wait()
  1436. end
  1437. SetAngle(2, 0, Player.Character)
  1438. pcall(function()
  1439. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(0.35, 0.6, -0.9) * CFrame.fromEulerAnglesXYZ(math.rad(180), 0, math.rad(-35))
  1440. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new(0.2, 0, -0.5) * CFrame.fromEulerAnglesXYZ(math.rad(287.5), 0, math.rad(-48))
  1441. Player.Character[ModelName].Sheath.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(110), math.rad(17.5), 0)
  1442. Player.Character[ModelName].Sheath.Weld.C1 = CFrame.new(-1.475, -1.75, 0.3)
  1443. end)
  1444. SetAngle(1, math.rad(90), Player.Character)
  1445. for i = 0, 1, 0.1 do
  1446. pcall(function()
  1447. Player.Character.Torso["Right Shoulder 2"].C0 =
  1448. CFrame.new(1.5 * i, 0.5 * i, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90) * i, 0) *
  1449. CFrame.new(0.35 * (1 - i), 0.6 * (1 - i), -0.9 * (1 - i)) * CFrame.fromEulerAnglesXYZ(math.rad(180 * (1 - i)), 0, math.rad(-35 * (1 - i)))
  1450. Player.Character.Torso["Right Shoulder 2"].C1 =
  1451. CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90) * i, 0)
  1452. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new(0.2 * (1 - i), 0, -0.5 * (1 - i)) * CFrame.fromEulerAnglesXYZ(math.rad(287.5 * (1 - i)), 0, math.rad(-48 * (1 - i)))
  1453. Player.Character[ModelName].Sheath.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(110 + (40 * i)), math.rad(17.5 * (1 - i)), 0)
  1454. Player.Character[ModelName].Sheath.Weld.C1 = CFrame.new(-1.475 + (0.375 * i), -1.75, 0.3 + (0.2 * i))
  1455. end)
  1456. wait()
  1457. end
  1458. ResetLimbCFrame(1, Player.Character)
  1459. EnableLimb(1, Player.Character)
  1460. SetSpeed(2, 0.2, Player.Character)
  1461. SetAngle(2, 0, Player.Character)
  1462. EnableLimb(2, Player.Character)
  1463. DisableLimb(1, Player.Character)
  1464. Mouse.Icon = "rbxasset://textures\\GunCursor.png"
  1465. Mouse.Button1Down:connect(function() onButton1Down(Mouse) end)
  1466. Mouse.Button1Up:connect(function() onButton1Up(Mouse) end)
  1467. Mouse.KeyDown:connect(function(Key) onKeyDown(Key, Mouse) end)
  1468. Mouse.KeyUp:connect(function(Key) onKeyUp(Key, Mouse) end)
  1469. CanUse = true
  1470. end
  1471.  
  1472.  
  1473. function onDeselected(Mouse)
  1474. if Selected == false then return end
  1475. Selected = false
  1476. while CanUse == false do wait() end
  1477. RemoveParts(Player.Character, 2)
  1478. CreateParts(Player.Character, 1)
  1479. while Selected == false do
  1480. if CheckPlayer() == true then
  1481. if Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1482. break
  1483. end
  1484. end
  1485. wait(0.1)
  1486. end
  1487. if Selected == true then return end
  1488. CanUse = false
  1489. RemoveParts(Player.Character, 1)
  1490. CreateParts(Player.Character, 2)
  1491. SetSpeed(1, 0.5, Player.Character)
  1492. SetAngle(1, 0, Player.Character)
  1493. DisableLimb(2, Player.Character)
  1494. SetSpeed(2, 0.5, Player.Character)
  1495. SetAngle(2, 0, Player.Character)
  1496. wait(0.1)
  1497. SetSpeed(2, 0.025, Player.Character)
  1498. SetAngle(2, math.rad(-15), Player.Character)
  1499. for i = 1, 0, -0.1 do
  1500. pcall(function()
  1501. Player.Character.Torso["Right Shoulder 2"].C0 =
  1502. CFrame.new(1.5 * i, 0.5 * i, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90) * i, 0) *
  1503. CFrame.new(0.35 * (1 - i), 0.6 * (1 - i), -0.9 * (1 - i)) * CFrame.fromEulerAnglesXYZ(math.rad(180 * (1 - i)), 0, math.rad(-35 * (1 - i)))
  1504. Player.Character.Torso["Right Shoulder 2"].C1 =
  1505. CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90) * i, 0)
  1506. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new(0.2 * (1 - i), 0, -0.5 * (1 - i)) * CFrame.fromEulerAnglesXYZ(math.rad(287.5 * (1 - i)), 0, math.rad(-48 * (1 - i)))
  1507. Player.Character[ModelName].Sheath.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(110 + (40 * i)), math.rad(17.5 * (1 - i)), 0)
  1508. Player.Character[ModelName].Sheath.Weld.C1 = CFrame.new(-1.475 + (0.375 * i), -1.75, 0.3 + (0.2 * i))
  1509. end)
  1510. wait()
  1511. end
  1512. pcall(function()
  1513. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(0.35, 0.6, -0.9) * CFrame.fromEulerAnglesXYZ(math.rad(180), 0, math.rad(-35))
  1514. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new(0.2, 0, -0.5) * CFrame.fromEulerAnglesXYZ(math.rad(287.5), 0, math.rad(-48))
  1515. Player.Character[ModelName].Sheath.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(110), math.rad(17.5), 0)
  1516. Player.Character[ModelName].Sheath.Weld.C1 = CFrame.new(-1.475, -1.75, 0.3)
  1517. end)
  1518. PlaySound("Sheath", "rbxasset://sounds\\unsheath.wav", -1.1, 1, true, Player.Character[ModelName].Sheath)
  1519. coroutine.wrap(function()
  1520. while Player.Character[ModelName].Sheath:FindFirstChild("Sheath") == nil do
  1521. wait()
  1522. end
  1523. wait(0.05)
  1524. Player.Character[ModelName].Sheath.Sheath.Looped = false
  1525. end)()
  1526. wait(0.15)
  1527. SetAngle(2, 0, Player.Character)
  1528. for i = 1, 0, -0.1 do
  1529. pcall(function()
  1530. Player.Character.Torso["Right Shoulder 2"].C0 =
  1531. CFrame.new(-0.05 + (0.4 * i), 0.11 + (0.49 * i), -0.8 - (0.1 * i)) * CFrame.fromEulerAnglesXYZ(math.rad(50 + (130 * i)), 0, math.rad(-45 + (10 * i)))
  1532. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new(0.2 * i, 0, -0.5 * i) * CFrame.fromEulerAnglesXYZ(math.rad(200 + (87.5 * i)), 0, math.rad(-45 - (3 * i)))
  1533. Player.Character[ModelName].Sheath.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(150 - (40 * i)), math.rad(17.5 * i), 0)
  1534. Player.Character[ModelName].Sheath.Weld.C1 = CFrame.new(-1.1 - (0.375 * i), -1.75, 0.5 - (0.2 * i))
  1535. end)
  1536. wait()
  1537. end
  1538. pcall(function()
  1539. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(-0.05, 0.11, -0.8) * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, math.rad(-45))
  1540. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0)
  1541. Player.Character[ModelName].Handle.Weld.C0 = CFrame.new(0, 0, -0.1) * CFrame.fromEulerAnglesXYZ(math.rad(200), 0, math.rad(-45))
  1542. end)
  1543. RemoveParts(Player.Character, 2)
  1544. CreateParts(Player.Character, 1)
  1545. for i = 1, 0, -0.1 do
  1546. pcall(function()
  1547. Player.Character.Torso["Right Shoulder 2"].C0 =
  1548. CFrame.new(-0.05 * i, 0.11 * i, -0.8 * i) * CFrame.fromEulerAnglesXYZ(math.rad(50) * i, 0, math.rad(-45) * i) *
  1549. CFrame.new(1.5 * (1 - i), 0.5 * (1 - i), 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90) * (1 - i), 0)
  1550. Player.Character.Torso["Right Shoulder 2"].C1 =
  1551. CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90) * (1 - i), 0)
  1552. end)
  1553. wait()
  1554. end
  1555. SetSpeed(1, 0.25, Player.Character)
  1556. SetAngle(1, 0, Player.Character)
  1557. ResetLimbCFrame(1, Player.Character)
  1558. EnableLimb(1, Player.Character)
  1559. SetSpeed(2, 0.2, Player.Character)
  1560. SetAngle(2, 0, Player.Character)
  1561. EnableLimb(2, Player.Character)
  1562. CanUse = true
  1563. end
  1564.  
  1565.  
  1566. if script:FindFirstChild("SoundData") ~= nil then
  1567. local Sound = Instance.new("Sound")
  1568. Sound.Name = script.SoundData._Name.Value
  1569. Sound.SoundId = script.SoundData._SoundId.Value
  1570. Sound.Pitch = script.SoundData._Pitch.Value
  1571. Sound.Volume = script.SoundData._Volume.Value
  1572. Sound.Looped = script.SoundData._Looped.Value
  1573. Sound.Parent = script.SoundData._Parent.Value
  1574. Sound:Play()
  1575. script:Remove()
  1576. elseif script:FindFirstChild("DamageData") ~= nil then
  1577. script.Parent.Touched:connect(function(Hit)
  1578. if Hit.Parent == nil then return end
  1579. if script.DamageData.Break.Value == true then Hit:BreakJoints() end
  1580. if Hit.Parent:FindFirstChild("Humanoid") == nil then return end
  1581. Hit.Parent.Humanoid:TakeDamage(script.DamageData.Damage.Value)
  1582. end)
  1583. elseif script.Parent.className ~= "HopperBin" then
  1584. if Player == nil then print("Error: Player not found!") return end
  1585. Tool = Instance.new("HopperBin")
  1586. Tool.Name = ModelName
  1587. Tool.Parent = Player.Backpack
  1588. script.Name = "Main"
  1589. script.Parent = Tool
  1590. elseif script.Parent.className == "HopperBin" and Connected == false then
  1591. Connected = true
  1592. Player = script.Parent.Parent.Parent
  1593. script.Parent.Selected:connect(onSelected)
  1594. script.Parent.Deselected:connect(onDeselected)
  1595. CreateParts(Player.Character, 1)
  1596. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement