codemen

Light saber script [roblox]

Nov 11th, 2017
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.23 KB | None | 0 0
  1. local health = 500
  2. local speed = 20
  3. local damage = 20
  4.  
  5. local runDummyScript = function(f,scri)
  6. local oldenv = getfenv(f)
  7. local newenv = setmetatable({}, {
  8. __index = function(_, k)
  9. if k:lower() == 'script' then
  10. return scri
  11. else
  12. return oldenv[k]
  13. end
  14. end
  15. })
  16. setfenv(f, newenv)
  17. ypcall(function() f() end)
  18. end
  19. cors = {}
  20. mas = Instance.new("Model",game:GetService("Lighting"))
  21. mas.Name = "CompiledModel"
  22. o1 = Instance.new("Model")
  23. o2 = Instance.new("Part")
  24. o3 = Instance.new("Part")
  25. o4 = Instance.new("Part")
  26. o5 = Instance.new("Part")
  27. o6 = Instance.new("Part")
  28. o7 = Instance.new("Part")
  29. o8 = Instance.new("Part")
  30. o9 = Instance.new("Part")
  31. o10 = Instance.new("Part")
  32. o11 = Instance.new("Part")
  33. o12 = Instance.new("Part")
  34. o13 = Instance.new("Part")
  35. o1.Name = "Saber"
  36. o1.Parent = mas
  37. o2.Name = "Handle"
  38. o2.Parent = o1
  39. o2.Material = Enum.Material.SmoothPlastic
  40. o2.BrickColor = BrickColor.new("Dark stone grey")
  41. o2.Position = Vector3.new(56, 5.11798573, 33.7409973)
  42. o2.Rotation = Vector3.new(90.0000076, -90, 0)
  43. o2.Anchored = true
  44. o2.CanCollide = false
  45. o2.Shape = Enum.PartType.Cylinder
  46. o2.Size = Vector3.new(2, 0.5, 0.5)
  47. o2.CFrame = CFrame.new(56, 5.11798573, 33.7409973, 1.50995831e-007, -1.50995774e-007, -1, -1, -1.50995817e-007, -1.50995803e-007, -1.50995788e-007, 1, -1.50995803e-007)
  48. o2.BottomSurface = Enum.SurfaceType.Smooth
  49. o2.TopSurface = Enum.SurfaceType.Smooth
  50. o2.Color = Color3.new(0.388235, 0.372549, 0.384314)
  51. o2.Position = Vector3.new(56, 5.11798573, 33.7409973)
  52. o3.Parent = o1
  53. o3.Material = Enum.Material.SmoothPlastic
  54. o3.BrickColor = BrickColor.new("Smoky grey")
  55. o3.Position = Vector3.new(56, 4.11000824, 33.7409973)
  56. o3.Rotation = Vector3.new(90.0000076, -90, 0)
  57. o3.Anchored = true
  58. o3.CanCollide = false
  59. o3.Shape = Enum.PartType.Cylinder
  60. o3.Size = Vector3.new(0.200000003, 0.600000024, 0.600000024)
  61. o3.CFrame = CFrame.new(56, 4.11000824, 33.7409973, 1.50995831e-007, -1.50995774e-007, -1, -1, -1.50995817e-007, -1.50995803e-007, -1.50995788e-007, 1, -1.50995803e-007)
  62. o3.BottomSurface = Enum.SurfaceType.Smooth
  63. o3.TopSurface = Enum.SurfaceType.Smooth
  64. o3.Color = Color3.new(0.356863, 0.364706, 0.411765)
  65. o3.Position = Vector3.new(56, 4.11000824, 33.7409973)
  66. o4.Parent = o1
  67. o4.Material = Enum.Material.SmoothPlastic
  68. o4.BrickColor = BrickColor.new("Smoky grey")
  69. o4.Position = Vector3.new(56, 6.01100636, 33.7409973)
  70. o4.Rotation = Vector3.new(90.0000076, -90, 0)
  71. o4.Anchored = true
  72. o4.CanCollide = false
  73. o4.Shape = Enum.PartType.Cylinder
  74. o4.Size = Vector3.new(0.200000003, 0.600000024, 0.600000024)
  75. o4.CFrame = CFrame.new(56, 6.01100636, 33.7409973, 1.50995831e-007, -1.50995774e-007, -1, -1, -1.50995817e-007, -1.50995803e-007, -1.50995788e-007, 1, -1.50995803e-007)
  76. o4.BottomSurface = Enum.SurfaceType.Smooth
  77. o4.TopSurface = Enum.SurfaceType.Smooth
  78. o4.Color = Color3.new(0.356863, 0.364706, 0.411765)
  79. o4.Position = Vector3.new(56, 6.01100636, 33.7409973)
  80. o5.Parent = o1
  81. o5.Material = Enum.Material.SmoothPlastic
  82. o5.BrickColor = BrickColor.new("Really black")
  83. o5.Position = Vector3.new(55.9981995, 6.02698612, 33.7367439)
  84. o5.Rotation = Vector3.new(90, 90, 0)
  85. o5.Anchored = true
  86. o5.CanCollide = false
  87. o5.Shape = Enum.PartType.Cylinder
  88. o5.Size = Vector3.new(0.200000003, 0.400000006, 0.5)
  89. o5.CFrame = CFrame.new(55.9981995, 6.02698612, 33.7367439, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  90. o5.BottomSurface = Enum.SurfaceType.Smooth
  91. o5.TopSurface = Enum.SurfaceType.Smooth
  92. o5.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  93. o5.Position = Vector3.new(55.9981995, 6.02698612, 33.7367439)
  94. o6.Name = "Blade"
  95. o6.Parent = o1
  96. o6.Material = Enum.Material.Neon
  97. o6.BrickColor = BrickColor.new("Really red")
  98. o6.Transparency = 1
  99. o6.Position = Vector3.new(55.9981995, 7.85400581, 33.7367439)
  100. o6.Rotation = Vector3.new(90, 90, 0)
  101. o6.Anchored = true
  102. o6.CanCollide = false
  103. o6.Shape = Enum.PartType.Cylinder
  104. o6.Size = Vector3.new(3.5, 0.400000006, 0.5)
  105. o6.CFrame = CFrame.new(55.9981995, 7.85400581, 33.7367439, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  106. o6.BottomSurface = Enum.SurfaceType.Smooth
  107. o6.TopSurface = Enum.SurfaceType.Smooth
  108. o6.Position = Vector3.new(55.9981995, 7.85400581, 33.7367439)
  109. o7.Parent = o1
  110. o7.Material = Enum.Material.SmoothPlastic
  111. o7.BrickColor = BrickColor.new("Black")
  112. o7.Position = Vector3.new(56, 4.34401417, 33.7409973)
  113. o7.Rotation = Vector3.new(90.0000076, -90, 0)
  114. o7.Anchored = true
  115. o7.CanCollide = false
  116. o7.Shape = Enum.PartType.Cylinder
  117. o7.Size = Vector3.new(0.200000003, 0.550000012, 0.600000024)
  118. o7.CFrame = CFrame.new(56, 4.34401417, 33.7409973, -4.37113883e-008, 0, -1, -1, -1.62920685e-007, 4.37113883e-008, -1.62920685e-007, 1, 7.12148964e-015)
  119. o7.BottomSurface = Enum.SurfaceType.Smooth
  120. o7.TopSurface = Enum.SurfaceType.Smooth
  121. o7.Color = Color3.new(0.105882, 0.164706, 0.207843)
  122. o7.Position = Vector3.new(56, 4.34401417, 33.7409973)
  123. o8.Parent = o1
  124. o8.Material = Enum.Material.SmoothPlastic
  125. o8.BrickColor = BrickColor.new("Black")
  126. o8.Position = Vector3.new(56, 4.74401188, 33.7409973)
  127. o8.Rotation = Vector3.new(90.0000076, -90, 0)
  128. o8.Anchored = true
  129. o8.CanCollide = false
  130. o8.Shape = Enum.PartType.Cylinder
  131. o8.Size = Vector3.new(0.200000003, 0.550000012, 0.600000024)
  132. o8.CFrame = CFrame.new(56, 4.74401188, 33.7409973, -4.37113883e-008, 0, -1, -1, -1.62920685e-007, 4.37113883e-008, -1.62920685e-007, 1, 7.12148964e-015)
  133. o8.BottomSurface = Enum.SurfaceType.Smooth
  134. o8.TopSurface = Enum.SurfaceType.Smooth
  135. o8.Color = Color3.new(0.105882, 0.164706, 0.207843)
  136. o8.Position = Vector3.new(56, 4.74401188, 33.7409973)
  137. o9.Parent = o1
  138. o9.Material = Enum.Material.SmoothPlastic
  139. o9.BrickColor = BrickColor.new("Black")
  140. o9.Position = Vector3.new(56, 5.08402443, 33.7409973)
  141. o9.Rotation = Vector3.new(90.0000076, -90, 0)
  142. o9.Anchored = true
  143. o9.CanCollide = false
  144. o9.Shape = Enum.PartType.Cylinder
  145. o9.Size = Vector3.new(0.200000003, 0.550000012, 0.600000024)
  146. o9.CFrame = CFrame.new(56, 5.08402443, 33.7409973, -4.37113883e-008, 0, -1, -1, -1.62920685e-007, 4.37113883e-008, -1.62920685e-007, 1, 7.12148964e-015)
  147. o9.BottomSurface = Enum.SurfaceType.Smooth
  148. o9.TopSurface = Enum.SurfaceType.Smooth
  149. o9.Color = Color3.new(0.105882, 0.164706, 0.207843)
  150. o9.Position = Vector3.new(56, 5.08402443, 33.7409973)
  151. o10.Parent = o1
  152. o10.Material = Enum.Material.SmoothPlastic
  153. o10.BrickColor = BrickColor.new("Black")
  154. o10.Position = Vector3.new(56, 5.41400814, 33.7409973)
  155. o10.Rotation = Vector3.new(90.0000076, -90, 0)
  156. o10.Anchored = true
  157. o10.CanCollide = false
  158. o10.Shape = Enum.PartType.Cylinder
  159. o10.Size = Vector3.new(0.200000003, 0.550000012, 0.600000024)
  160. o10.CFrame = CFrame.new(56, 5.41400814, 33.7409973, -4.37113883e-008, 0, -1, -1, -1.62920685e-007, 4.37113883e-008, -1.62920685e-007, 1, 7.12148964e-015)
  161. o10.BottomSurface = Enum.SurfaceType.Smooth
  162. o10.TopSurface = Enum.SurfaceType.Smooth
  163. o10.Color = Color3.new(0.105882, 0.164706, 0.207843)
  164. o10.Position = Vector3.new(56, 5.41400814, 33.7409973)
  165. o11.Parent = o1
  166. o11.Material = Enum.Material.SmoothPlastic
  167. o11.BrickColor = BrickColor.new("Smoky grey")
  168. o11.Position = Vector3.new(56.0248947, 5.70129061, 33.5617981)
  169. o11.Anchored = true
  170. o11.CanCollide = false
  171. o11.Size = Vector3.new(0.300000012, 0.300000012, 0.200000003)
  172. o11.CFrame = CFrame.new(56.0248947, 5.70129061, 33.5617981, 1, 0, 0, 0, 1, 0, 0, 0, 1)
  173. o11.BottomSurface = Enum.SurfaceType.Smooth
  174. o11.TopSurface = Enum.SurfaceType.Smooth
  175. o11.Color = Color3.new(0.356863, 0.364706, 0.411765)
  176. o11.Position = Vector3.new(56.0248947, 5.70129061, 33.5617981)
  177. o12.Parent = o1
  178. o12.Material = Enum.Material.SmoothPlastic
  179. o12.BrickColor = BrickColor.new("Smoky grey")
  180. o12.Position = Vector3.new(56, 5.70401382, 33.7409973)
  181. o12.Rotation = Vector3.new(90.0000076, -90, 0)
  182. o12.Anchored = true
  183. o12.CanCollide = false
  184. o12.Shape = Enum.PartType.Cylinder
  185. o12.Size = Vector3.new(0.200000003, 0.550000012, 0.600000024)
  186. o12.CFrame = CFrame.new(56, 5.70401382, 33.7409973, -4.37113883e-008, 0, -1, -1, -1.62920685e-007, 4.37113883e-008, -1.62920685e-007, 1, 7.12148964e-015)
  187. o12.BottomSurface = Enum.SurfaceType.Smooth
  188. o12.TopSurface = Enum.SurfaceType.Smooth
  189. o12.Color = Color3.new(0.356863, 0.364706, 0.411765)
  190. o12.Position = Vector3.new(56, 5.70401382, 33.7409973)
  191. o13.Name = "Button"
  192. o13.Parent = o1
  193. o13.Material = Enum.Material.SmoothPlastic
  194. o13.BrickColor = BrickColor.new("Really red")
  195. o13.Position = Vector3.new(56.0299988, 5.69999981, 33.5109978)
  196. o13.Rotation = Vector3.new(2.04905682e-005, -90, 0)
  197. o13.Anchored = true
  198. o13.CanCollide = false
  199. o13.Shape = Enum.PartType.Cylinder
  200. o13.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
  201. o13.CFrame = CFrame.new(56.0299988, 5.69999981, 33.5109978, -4.37113883e-008, 0, -1, -3.57627869e-007, 1, 1.56324098e-014, 1, 3.57627869e-007, -4.37113883e-008)
  202. o13.BottomSurface = Enum.SurfaceType.Smooth
  203. o13.TopSurface = Enum.SurfaceType.Smooth
  204. o13.Color = Color3.new(1, 0, 0)
  205. o13.Position = Vector3.new(56.0299988, 5.69999981, 33.5109978)
  206. mas.Parent = workspace
  207. mas:MakeJoints()
  208. local mas1 = mas:GetChildren()
  209. for i=1,#mas1 do
  210. mas1[i].Parent = workspace
  211. ypcall(function() mas1[i]:MakeJoints() end)
  212. end
  213. mas:Destroy()
  214. for i=1,#cors do
  215. coroutine.resume(cors[i])
  216. end
  217.  
  218.  
  219. function indicate(part,damagevar)
  220. local clonepart = Instance.new("Part", workspace)
  221. clonepart.Size = Vector3.new(1,1,1)
  222. clonepart.CanCollide = false
  223. clonepart.Anchored = true
  224. clonepart.CFrame = part.CFrame
  225. clonepart.Transparency = 1
  226. local base1 = Instance.new("BillboardGui", clonepart)
  227. base1.Name = "damage"
  228. base1.ExtentsOffset = Vector3.new(-0.1,2,0)
  229. base1.Size = UDim2.new(1,0,1,0)
  230. base1.Adornee = clonepart
  231. local indicator = Instance.new("TextLabel", base1)
  232. indicator.Text = "-"..math.floor(damagevar)
  233. indicator.TextScaled = false
  234. indicator.TextWrapped = false
  235. indicator.TextColor3 = Color3.new(1,0,0)
  236. indicator.TextScaled = true
  237. indicator.FontSize = 7
  238. indicator.Size = UDim2.new(1,0,1,0)
  239. indicator.BackgroundTransparency = 1
  240. local change = coroutine.wrap(function(thing,thing2)
  241. for i=1, 20 do
  242. thing.TextTransparency = thing.TextTransparency + 0.05
  243. thing2.ExtentsOffset = thing2.ExtentsOffset + Vector3.new(0,0.1,0)
  244. wait(0.0001)
  245. end
  246. indicator.Parent.Parent:Remove()
  247. end)
  248. change(indicator,base1)
  249. end
  250.  
  251. ---------------------------------------------------------------------------------------------------
  252.  
  253.  
  254.  
  255. local saber = o1
  256. local handle = o1:FindFirstChild("Handle")
  257. local blade = o1:FindFirstChild("Blade")
  258. local button = o1:FindFirstChild("Button")
  259. local Player = game.Players.LocalPlayer
  260. o1.Parent = Player.Character
  261. local Mouse = Player:GetMouse()
  262. local hitter = false
  263. local animstate = -1
  264. local equipped = false
  265. local keyframe = 0
  266. local cooled = true
  267. local cooled2 = true
  268. local cooled3 = true
  269. local cooled4 = true
  270. local attacking = false
  271. local hits = {}
  272. local combo = 0
  273. local qtarget = nil
  274. local animating = false
  275. local indexer = 0
  276. local ready = true
  277. local ready1 = true
  278. local ready2 = true
  279.  
  280. Player.Character.Humanoid.MaxHealth = health
  281. wait()
  282. Player.Character.Humanoid.Health = Player.Character.Humanoid.MaxHealth
  283. Player.Character.Humanoid.WalkSpeed = speed
  284.  
  285. if script.Parent ~= Player.Backpack then
  286. script.Parent = Player.Backpack
  287. end
  288. local Character = Player.Character
  289. Character.Animate:remove()
  290. Character.Humanoid.Animator:remove()
  291.  
  292. for _,v in pairs (saber:GetChildren()) do
  293. if v.Name ~= "Handle" then
  294. local NewWeld = Instance.new("Weld")
  295. NewWeld.Part0 = handle
  296. NewWeld.Part1 = v
  297. NewWeld.C0 = CFrame.new()
  298. NewWeld.C1 = v.CFrame:toObjectSpace(handle.CFrame)
  299. if v.Name == "Blade" then
  300. NewWeld.Name = "BladeWeld"
  301. end
  302. NewWeld.Parent = handle
  303. end
  304. wait()
  305. end
  306. for _,v in pairs (saber:GetChildren()) do
  307. v.Anchored = false
  308. wait()
  309. end
  310.  
  311. handle.CFrame = Character:FindFirstChild("Right Arm").CFrame*CFrame.new(0,-1.2,-3)*CFrame.Angles(0,math.rad(270),math.rad(180))
  312.  
  313. local HandleWeld = Instance.new("Weld")
  314. HandleWeld.Name = "HandleWeld"
  315. HandleWeld.Part0 = Character:FindFirstChild("Right Arm")
  316. HandleWeld.Part1 = handle
  317. HandleWeld.C0 = CFrame.new(0,0,0)
  318. HandleWeld.C1 = handle.CFrame:toObjectSpace(Character:FindFirstChild("Right Arm").CFrame)
  319. HandleWeld.Parent = handle
  320.  
  321. numLerp=function(start,goal,alpha)
  322. return(((goal-start)*alpha)+start);
  323. end;
  324. CFrameZero=function()
  325. return CFrame.new(Vector3.new());
  326. end;
  327. local function a()
  328. local t=tick();
  329. local l=t%1*3;
  330. local t=.5*math.pi*(l%1);
  331. if l<1 then
  332. return Color3.new(1,1-math.cos(t),1-math.sin(t));
  333. elseif l<2 then
  334. return Color3.new(1-math.sin(t),1,1-math.cos(t));
  335. else
  336. return Color3.new(1-math.cos(t),1-math.sin(t),1);
  337. end;
  338. end;
  339. rad=function(value)
  340. return math.rad(value);
  341. end;
  342. CFAngles=function(Vector)
  343. return CFrame.Angles(rad(Vector.x),rad(Vector.y),rad(Vector.z));
  344. end;
  345. AnimStat={
  346. lerpSpeed=.2;
  347. lerpSpeed2=.35;
  348. lerpTween=0;
  349. }
  350. Joints={
  351. Character.HumanoidRootPart.RootJoint;
  352. Character.Torso.Neck;
  353. Character.Torso['Left Shoulder'];
  354. Character.Torso['Right Shoulder'];
  355. Character.Torso['Left Hip'];
  356. Character.Torso['Right Hip'];
  357. handle:FindFirstChild("HandleWeld")
  358. }
  359. local orig1 = Joints[1].C0
  360. local orig2 = Joints[2].C0
  361. local orig3 = Joints[3].C0
  362. local orig4 = Joints[4].C0
  363. local orig5 = Joints[5].C0
  364. local orig6 = Joints[6].C0
  365. local orig7 = Joints[7].C0
  366. JointTargets={
  367. Character.HumanoidRootPart.RootJoint.C0;
  368. Character.Torso.Neck.C0;
  369. Character.Torso['Left Shoulder'].C0;
  370. Character.Torso['Right Shoulder'].C0;
  371. Character.Torso['Left Hip'].C0;
  372. Character.Torso['Right Hip'].C0;
  373. handle:FindFirstChild("HandleWeld").C0;
  374. }
  375. setJointCFrames=function(table)
  376. for i=1,#table do
  377. JointTargets[i]=table[i];
  378. end
  379. end
  380. triWave=function(x)
  381. local pi2=math.pi/2;
  382. return math.abs((x/pi2)%4-2)-1;
  383. end
  384. setLerp=function(speed)
  385. AnimStat.lerpSpeed=speed;
  386. end;
  387. setTween=function(tween)
  388. AnimStat.lerpTween=tween;
  389. end
  390. local FPSLerp=AnimStat.lerpSpeed
  391.  
  392. local animator = coroutine.wrap(function()
  393. while Player.Character do
  394.  
  395. if Player.Character.Humanoid.MoveDirection == Vector3.new(0,0,0) and not attacking and animstate ~= 0 then
  396. ready = true
  397. animstate = 0
  398. keyframe = 0
  399. elseif Player.Character.Humanoid.MoveDirection ~= Vector3.new(0,0,0) and not attacking and animstate ~= 1 then
  400. ready = true
  401. animstate = 1
  402. keyframe = 0
  403. end
  404.  
  405. if animstate == 0 and ready then
  406.  
  407. if keyframe == 0 then
  408. ready = false
  409. JointTargets={
  410. orig1*CFrame.Angles(0,0,math.rad(15));
  411. orig2*CFrame.Angles(0,0,math.rad(-15));
  412. orig3*CFrame.Angles(math.rad(40),math.rad(65),0);
  413. orig4*CFrame.Angles(math.rad(40),math.rad(85),math.rad(20));
  414. orig5*CFrame.Angles(math.rad(-15),0,0);
  415. orig6*CFrame.Angles(math.rad(-5),math.rad(-15),0);
  416. Joints[7].C0;
  417. }
  418. local lerper = coroutine.wrap(function(rate)
  419. for i=1, 10 do
  420. for p=1,#Joints do
  421. if animstate == 0 then
  422. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.1*i)
  423. end
  424. end
  425. wait(rate)
  426. end
  427. if animstate == 0 then
  428. keyframe = 1
  429. ready = true
  430. end
  431. end)
  432. lerper(0.001)
  433. elseif keyframe == 1 then
  434. ready = false
  435. JointTargets={
  436. orig1*CFrame.new(0,0,0.05)*CFrame.Angles(0,0,math.rad(15));
  437. orig2*CFrame.Angles(math.rad(3),0,math.rad(-15));
  438. orig3*CFrame.Angles(math.rad(35),math.rad(60),0);
  439. orig4*CFrame.Angles(math.rad(38),math.rad(83),math.rad(18));
  440. orig5*CFrame.new(0,-0.05,-0.025)*CFrame.Angles(math.rad(-15),0,0);
  441. orig6*CFrame.new(0,-0.05,-0.025)*CFrame.Angles(math.rad(-5),math.rad(-15),0);
  442. Joints[7].C0;
  443. }
  444.  
  445. if indexer + 1 <= 22 then
  446. indexer = indexer + 1
  447. for p=1,#Joints do
  448. if animstate == 0 then
  449. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],indexer/50)
  450. end
  451. end
  452.  
  453. ready = true
  454. else
  455. indexer = 0
  456. keyframe = 2
  457. ready = true
  458. end
  459. elseif keyframe == 2 then
  460. ready = false
  461. JointTargets={
  462. orig1*CFrame.Angles(0,0,math.rad(15));
  463. orig2*CFrame.Angles(0,0,math.rad(-15));
  464. orig3*CFrame.Angles(math.rad(40),math.rad(65),0);
  465. orig4*CFrame.Angles(math.rad(40),math.rad(85),math.rad(20));
  466. orig5*CFrame.Angles(math.rad(-15),0,0);
  467. orig6*CFrame.Angles(math.rad(-5),math.rad(-15),0);
  468. Joints[7].C0;
  469. }
  470.  
  471. if indexer + 1 <= 22 then
  472. indexer = indexer + 1
  473. for p=1,#Joints do
  474. if animstate == 0 then
  475. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],indexer/50)
  476. end
  477. end
  478.  
  479. ready = true
  480. else
  481. indexer = 0
  482. keyframe = 1
  483. ready = true
  484. end
  485. end
  486.  
  487. elseif animstate == 1 and ready then
  488.  
  489. if keyframe == 0 then
  490. ready = false
  491. JointTargets={
  492. orig1;
  493. orig2*CFrame.Angles(math.rad(15),0,0);
  494. orig3*CFrame.Angles(math.rad(40),math.rad(65),0);
  495. orig4*CFrame.Angles(math.rad(40),math.rad(-65),math.rad(90));
  496. orig5*CFrame.Angles(0,0,math.rad(35));
  497. orig6*CFrame.Angles(0,0,math.rad(35));
  498. Joints[7].C0;
  499. }
  500. local lerper = coroutine.wrap(function(rate)
  501. for i=1, 10 do
  502. for p=1,#Joints do
  503. if animstate == 1 then
  504. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.1*i)
  505. end
  506. end
  507. wait(rate)
  508. end
  509. if animstate == 1 then
  510. keyframe = 1
  511. ready = true
  512. end
  513. end)
  514. lerper(0.001)
  515. elseif keyframe == 1 then
  516. ready = false
  517. JointTargets={
  518. orig1;
  519. orig2*CFrame.Angles(math.rad(15),0,0);
  520. orig3*CFrame.Angles(math.rad(40),math.rad(65),0);
  521. orig4*CFrame.Angles(math.rad(40),math.rad(-65),math.rad(90));
  522. orig5*CFrame.Angles(0,0,math.rad(-35));
  523. orig6*CFrame.Angles(0,0,math.rad(-35));
  524. Joints[7].C0;
  525. }
  526. local lerper = coroutine.wrap(function(rate)
  527. for i=1, 10 do
  528. for p=1,#Joints do
  529. if animstate == 1 then
  530. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.1*i)
  531. end
  532. end
  533. wait(rate)
  534. end
  535. if animstate == 1 then
  536. keyframe = 0
  537. ready = true
  538. end
  539. end)
  540. lerper(0.001)
  541. end
  542.  
  543. elseif animstate == 2 and ready then
  544.  
  545. if combo == 1 then
  546. if keyframe == 0 then
  547. ready = false
  548. cooled = false
  549. animating = true
  550. JointTargets={
  551. orig1*CFrame.Angles(0,0,math.rad(45));
  552. orig2*CFrame.Angles(0,0,math.rad(-25));
  553. orig3*CFrame.Angles(math.rad(-35),0,0);
  554. orig4*CFrame.Angles(math.rad(65),0,math.rad(155));
  555. Joints[5].C0;
  556. Joints[6].C0;
  557. Joints[7].C0;
  558. }
  559. local lerper = coroutine.wrap(function(rate)
  560. for i=1, 5 do
  561. for p=1,#Joints do
  562. if animstate == 2 then
  563. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.2*i)
  564. end
  565. end
  566. wait(rate)
  567. end
  568. ready = true
  569. keyframe = 1
  570. end)
  571. lerper(0)
  572. elseif keyframe == 1 then
  573. ready = false
  574. hitter = true
  575. JointTargets={
  576. orig1*CFrame.Angles(0,0,math.rad(85));
  577. orig2*CFrame.Angles(0,0,math.rad(-65));
  578. orig3*CFrame.Angles(math.rad(-35),0,0);
  579. orig4*CFrame.Angles(math.rad(65),0,math.rad(65));
  580. Joints[5].C0;
  581. Joints[6].C0;
  582. Joints[7].C0;
  583. }
  584. local lerper = coroutine.wrap(function(rate)
  585. for i=1, 10 do
  586. for p=1,#Joints do
  587. if animstate == 2 then
  588. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.1*i)
  589. end
  590. end
  591. print(i)
  592. wait(rate)
  593. end
  594. ready = true
  595. hitter = false
  596. attacking = false
  597. animating = false
  598. hits = {}
  599. keyframe = 0
  600. animstate = -1
  601. local comboer = coroutine.wrap(function(limit)
  602. cooled = true
  603. wait(limit)
  604. if animstate ~= 2 then
  605. cooled = false
  606. combo = 0
  607. wait(0.35)
  608. cooled = true
  609. end
  610. end)
  611. comboer(0.3)
  612. end)
  613. lerper(0.0001)
  614. end
  615.  
  616. elseif combo == 2 then
  617. if keyframe == 0 then
  618. ready = false
  619. cooled = false
  620. animating = true
  621. JointTargets={
  622. orig1*CFrame.Angles(0,0,math.rad(85));
  623. orig2*CFrame.Angles(0,0,math.rad(-65));
  624. orig3*CFrame.Angles(math.rad(-45),0,0);
  625. orig4*CFrame.Angles(math.rad(-50),0,math.rad(55));
  626. Joints[5].C0;
  627. Joints[6].C0;
  628. Joints[7].C0;
  629. }
  630. local lerper = coroutine.wrap(function(rate)
  631. for i=1, 5 do
  632. for p=1,#Joints do
  633. if animstate == 2 then
  634. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.2*i)
  635. end
  636. end
  637. wait(rate)
  638. end
  639. ready = true
  640. keyframe = 1
  641. end)
  642. lerper(0)
  643. elseif keyframe == 1 then
  644. ready = false
  645. hitter = true
  646. JointTargets={
  647. orig1*CFrame.Angles(0,0,math.rad(15));
  648. orig2*CFrame.Angles(0,0,math.rad(-5));
  649. orig3*CFrame.Angles(math.rad(-35),0,0);
  650. orig4*CFrame.Angles(math.rad(-65),0,math.rad(-55));
  651. Joints[5].C0;
  652. Joints[6].C0;
  653. Joints[7].C0;
  654. }
  655. local lerper = coroutine.wrap(function(rate)
  656. for i=1, 10 do
  657. for p=1,#Joints do
  658. if animstate == 2 then
  659. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.1*i)
  660. end
  661. end
  662. wait(rate)
  663. end
  664. ready = true
  665. hitter = false
  666. attacking = false
  667. animating = false
  668. hits = {}
  669. keyframe = 0
  670. animstate = -1
  671. local comboer = coroutine.wrap(function(limit)
  672. cooled = true
  673. wait(limit)
  674. if animstate ~= 2 then
  675. cooled = false
  676. combo = 0
  677. wait(0.35)
  678. cooled = true
  679. end
  680. end)
  681. comboer(0.3)
  682. end)
  683. lerper(0.001)
  684. end
  685.  
  686. elseif combo == 3 then
  687. if keyframe == 0 then
  688. ready = false
  689. cooled = false
  690. animating = true
  691. JointTargets={
  692. orig1*CFrame.Angles(0,0,math.rad(125));
  693. orig2*CFrame.Angles(0,0,math.rad(-105));
  694. orig3*CFrame.Angles(math.rad(-35),0,0);
  695. orig4*CFrame.Angles(math.rad(-50),0,math.rad(55));
  696. Joints[5].C0;
  697. Joints[6].C0;
  698. Joints[7].C0;
  699. }
  700. local lerper = coroutine.wrap(function(rate)
  701. for i=1, 5 do
  702. for p=1,#Joints do
  703. if animstate == 2 then
  704. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.2*i)
  705. end
  706. end
  707. wait(rate)
  708. end
  709. ready = true
  710. keyframe = 1
  711. end)
  712. lerper(0)
  713. elseif keyframe == 1 then
  714. ready = false
  715. hitter = true
  716. JointTargets={
  717. orig1*CFrame.Angles(0,0,math.rad(-35));
  718. orig2*CFrame.Angles(0,0,math.rad(-15));
  719. orig3*CFrame.Angles(math.rad(-15),0,0);
  720. orig4*CFrame.Angles(math.rad(65),0,math.rad(65));
  721. Joints[5].C0;
  722. Joints[6].C0;
  723. Joints[7].C0;
  724. }
  725. local lerper = coroutine.wrap(function(rate)
  726. for i=1, 10 do
  727. for p=1,#Joints do
  728. if animstate == 2 then
  729. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.1*i)
  730. end
  731. end
  732. print(i)
  733. wait(rate)
  734. end
  735. JointTargets={
  736. orig1*CFrame.Angles(0,0,math.rad(125));
  737. orig2*CFrame.Angles(0,0,math.rad(-105));
  738. orig3*CFrame.Angles(math.rad(-45),0,0);
  739. orig4*CFrame.Angles(math.rad(65),0,math.rad(65));
  740. Joints[5].C0;
  741. Joints[6].C0;
  742. Joints[7].C0;
  743. }
  744. local lerper2 = coroutine.wrap(function(rate2)
  745. for o=1, 10 do
  746. for y=1,#Joints do
  747. Joints[y].C0=Joints[y].C0:lerp(JointTargets[y],0.1*o)
  748. end
  749. print(o)
  750. wait(rate2)
  751. end
  752. ready = true
  753. hitter = false
  754. attacking = false
  755. animating = false
  756. hits = {}
  757. keyframe = 0
  758. animstate = -1
  759. local comboer = coroutine.wrap(function()
  760. combo = 0
  761. wait(0.35)
  762. cooled = true
  763. end)
  764. comboer()
  765. end)
  766. hits = {}
  767. lerper2(0.00001)
  768. end)
  769. lerper(0.001)
  770. end
  771.  
  772. end
  773.  
  774. elseif animstate == 3 and ready then
  775.  
  776. if keyframe == 0 then
  777. Player.Character.Humanoid.WalkSpeed = 0
  778. ready = false
  779. cooled2 = false
  780. animating = true
  781. JointTargets={
  782. orig1*CFrame.Angles(0,0,math.rad(-85));
  783. orig2*CFrame.Angles(0,0,math.rad(85));
  784. orig3*CFrame.Angles(math.rad(-90),math.rad(90),0);
  785. orig4*CFrame.Angles(math.rad(-35),0,0);
  786. Joints[5].C0;
  787. Joints[6].C0;
  788. Joints[7].C0;
  789. }
  790. local lerper = coroutine.wrap(function(rate)
  791. for i=1, 10 do
  792. for p=1,#Joints do
  793. if animstate == 3 then
  794. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.1*i)
  795. end
  796. end
  797. wait(rate)
  798. end
  799. keyframe = 1
  800. ready = true
  801. end)
  802. lerper(0.001)
  803. elseif keyframe == 1 then
  804. ready = false
  805. local velocity = Instance.new("BodyVelocity",qtarget:FindFirstChild("Torso"))
  806. velocity.Velocity = Vector3.new(0,1.5,0)
  807. local lerper = coroutine.wrap(function(rate)
  808. for i=1, 20 do
  809. if animstate == 3 then
  810. qtarget:FindFirstChild("Humanoid"):TakeDamage(damage*0.06)
  811. indicate(qtarget:FindFirstChild("Head"),damage*0.06)
  812. if i%2 == 0 then
  813. local wave = Instance.new("Part", game.Workspace)
  814. wave.FormFactor = 0
  815. wave.Size = Vector3.new(5,5,1)
  816. wave.Transparency = 0.6
  817. wave.Anchored = true
  818. wave.CanCollide = false
  819. wave.CFrame = Player.Character.Torso.CFrame * CFrame.new(0,-2.75,0) * CFrame.Angles(0, -(3), 0)
  820. wave.BrickColor = BrickColor.new("Institutional white")
  821. local mesh = Instance.new("SpecialMesh", wave)
  822. mesh.MeshType = 5
  823. mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
  824. mesh.Scale = Vector3.new(1,0.5,1)
  825. local grow = coroutine.wrap(function(part)
  826. game:GetService("Debris"):AddItem(part, 2)
  827. for x = 1, 25 do
  828. part.Mesh.Scale = part.Mesh.Scale + Vector3.new(0.5,0.25,0.5)
  829. part.Transparency = part.Transparency + 0.02
  830. wait()
  831. end
  832. part:Destroy()
  833. end)
  834. grow(wave)
  835. end
  836. end
  837. wait(rate)
  838. end
  839. keyframe = 2
  840. ready = true
  841. velocity:remove()
  842. end)
  843. lerper(0.1)
  844. elseif keyframe == 2 then
  845. ready = false
  846. attacking = false
  847. animating = false
  848. keyframe = 0
  849. animstate = -1
  850. local cooler = coroutine.wrap(function(limit)
  851. wait(limit)
  852. cooled2 = true
  853. end)
  854. cooler(8)
  855. ready = true
  856. Player.Character.Humanoid.WalkSpeed = speed
  857. end
  858.  
  859. elseif animstate == 4 and ready then
  860.  
  861. if keyframe == 0 then
  862. ready = false
  863. cooled3 = false
  864. animating = true
  865. JointTargets={
  866. orig1*CFrame.Angles(math.rad(15),0,0);
  867. orig2*CFrame.Angles(math.rad(-15),0,0);
  868. orig3*CFrame.Angles(math.rad(-10),0,math.rad(20));
  869. orig4*CFrame.Angles(math.rad(-10),0,math.rad(-20));
  870. orig5*CFrame.Angles(math.rad(-5),0,0);
  871. orig6*CFrame.Angles(math.rad(-5),0,0);
  872. Joints[7].C0
  873. }
  874. local lerper = coroutine.wrap(function(rate)
  875. for i=1, 10 do
  876. for p=1,#Joints do
  877. if animstate == 4 then
  878. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.1*i)
  879. end
  880. end
  881. wait(rate)
  882. end
  883. keyframe = 1
  884. ready = true
  885. end)
  886. lerper(0)
  887. local wave = Instance.new("Part", game.Workspace)
  888. wave.FormFactor = 0
  889. wave.Size = Vector3.new(5,5,1)
  890. wave.Transparency = 0.6
  891. wave.Anchored = true
  892. wave.CanCollide = false
  893. wave.CFrame = Player.Character.HumanoidRootPart.CFrame * CFrame.new(0,0,1) * CFrame.Angles(math.rad(90), -(3), 0)
  894. wave.BrickColor = BrickColor.new("Institutional white")
  895. local mesh = Instance.new("SpecialMesh", wave)
  896. mesh.MeshType = 5
  897. mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
  898. mesh.Scale = Vector3.new(1,0.5,1)
  899. local grow = coroutine.wrap(function(part)
  900. game:GetService("Debris"):AddItem(part, 2)
  901. for x = 1, 25 do
  902. part.Mesh.Scale = part.Mesh.Scale + Vector3.new(0.25,0.125,0.25)
  903. part.Transparency = part.Transparency + 0.02
  904. wait()
  905. end
  906. part:Destroy()
  907. end)
  908. grow(wave)
  909.  
  910. Player.Character.HumanoidRootPart.Velocity = Player.Character.HumanoidRootPart.CFrame.lookVector*200
  911.  
  912. elseif keyframe == 1 then
  913. ready = false
  914. local cooler = coroutine.wrap(function()
  915. wait(2)
  916. cooled3 = true
  917. end)
  918. cooler()
  919. wait(0.01)
  920. ready = true
  921. attacking = false
  922. animating = false
  923. keyframe = 0
  924. animstate = -1
  925. end
  926.  
  927. elseif animstate == 5 and ready then
  928.  
  929. if keyframe == 0 then
  930. Player.Character.Humanoid.WalkSpeed = 0
  931. ready = false
  932. cooled4 = false
  933. animating = true
  934. JointTargets={
  935. orig1*CFrame.Angles(0,0,math.rad(-45));
  936. orig2*CFrame.Angles(0,0,math.rad(45));
  937. orig3*CFrame.Angles(math.rad(-45),math.rad(40),0);
  938. orig4*CFrame.new(0,-0.5,0.5)*CFrame.Angles(math.rad(-90),0,0);
  939. Joints[5].C0;
  940. Joints[6].C0;
  941. Joints[7].C0;
  942. }
  943.  
  944. local lerper = coroutine.wrap(function(rate)
  945. for i=1, 10 do
  946. for p=1,#Joints do
  947. if animstate == 5 then
  948. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.1*i)
  949. end
  950. end
  951. wait(rate)
  952. end
  953. keyframe = 1
  954. ready = true
  955. end)
  956. lerper(0.00001)
  957. elseif keyframe == 1 then
  958. ready = false
  959. JointTargets={
  960. orig1*CFrame.Angles(0,0,math.rad(90));
  961. orig2*CFrame.Angles(0,0,math.rad(-90));
  962. orig3*CFrame.Angles(math.rad(-25),0,0);
  963. orig4*CFrame.new(0,-0.25,0.5)*CFrame.Angles(math.rad(-90),0,0);
  964. Joints[5].C0;
  965. Joints[6].C0;
  966. Joints[7].C0;
  967. }
  968.  
  969. local lerper = coroutine.wrap(function(rate)
  970. for i=1, 10 do
  971. for p=1,#Joints do
  972. if animstate == 5 then
  973. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.1*i)
  974. end
  975. end
  976. wait(rate)
  977. end
  978. keyframe = 2
  979. ready = true
  980. end)
  981. lerper(0)
  982. elseif keyframe == 2 then
  983. ready = false
  984. local hitter2 = true
  985. local hits2 = {}
  986. local throwbox = Instance.new("Part",workspace)
  987. throwbox.Size = Vector3.new(1,9,1)
  988. throwbox.CanCollide = false
  989. throwbox.Anchored = false
  990. throwbox.Transparency = 1
  991. throwbox.CFrame = handle.CFrame*CFrame.Angles(0,0,math.rad(90))
  992. throwbox.Name = "hitbox"
  993.  
  994. throwbox.Touched:connect(function(hit)
  995. if hitter2 and hit ~= nil and hit.Parent ~= nil and hit.Parent:FindFirstChild("Humanoid") ~= nil then
  996. local humanoid = hit.Parent:findFirstChild("Humanoid")
  997. if humanoid ~= nil and humanoid ~= Character.Humanoid and Character.Humanoid ~= nil then
  998. local donthit = false
  999. for _,v in pairs (hits2) do
  1000. if v == hit.Parent.Name then
  1001. donthit = true
  1002. end
  1003. end
  1004. if not donthit then
  1005. local sound = Instance.new("Sound", hit.Parent:FindFirstChild("Torso"))
  1006. sound.SoundId = "rbxassetid://526719128"
  1007. sound.Volume = 0.7
  1008. sound.PlayOnRemove = true
  1009. sound:Remove()
  1010. humanoid:TakeDamage(damage)
  1011. indicate(hit.Parent:FindFirstChild("Head"),damage)
  1012. table.insert(hits2,hit.Parent.Name)
  1013. end
  1014. end
  1015. end
  1016. end)
  1017.  
  1018. JointTargets={
  1019. Joints[1].C0;
  1020. Joints[2].C0;
  1021. Joints[3].C0;
  1022. Joints[4].C0;
  1023. Joints[5].C0;
  1024. Joints[6].C0;
  1025. orig7*CFrame.new(0,-35,0)*CFrame.Angles(math.rad(180),0,0);
  1026. }
  1027.  
  1028. local lerper = coroutine.wrap(function(rate)
  1029. for i=1, 20 do
  1030. for p=1,#Joints do
  1031. if animstate == 5 then
  1032. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.05*i)
  1033. throwbox.CFrame = handle.CFrame*CFrame.Angles(0,0,math.rad(90))
  1034. end
  1035. end
  1036. wait(rate)
  1037. end
  1038. hits2 = {}
  1039.  
  1040. JointTargets={
  1041. Joints[1].C0;
  1042. Joints[2].C0;
  1043. Joints[3].C0;
  1044. Joints[4].C0;
  1045. Joints[5].C0;
  1046. Joints[6].C0;
  1047. orig7;
  1048. }
  1049.  
  1050. local lerper2 = coroutine.wrap(function(rate2)
  1051. for y=1, 20 do
  1052. for o=1,#Joints do
  1053. if animstate == 5 then
  1054. Joints[o].C0=Joints[o].C0:lerp(JointTargets[o],0.05*y)
  1055. throwbox.CFrame = handle.CFrame*CFrame.Angles(0,0,math.rad(90))
  1056. end
  1057. end
  1058. wait(rate2)
  1059. end
  1060. ready = true
  1061. hitter2 = false
  1062. attacking = false
  1063. animating = false
  1064. hits2 = {}
  1065. keyframe = 0
  1066. animstate = -1
  1067. throwbox:Remove()
  1068. Player.Character.Humanoid.WalkSpeed = speed
  1069. local cooler = coroutine.wrap(function()
  1070. wait(10)
  1071. cooled4 = true
  1072. end)
  1073. cooler()
  1074. end)
  1075. lerper2(0.001)
  1076. end)
  1077. lerper(0.001)
  1078. end
  1079.  
  1080. elseif animstate == 6 and ready then
  1081.  
  1082. if keyframe == 0 then
  1083. Player.Character.Humanoid.WalkSpeed = 0
  1084. ready = false
  1085. JointTargets={
  1086. orig1*CFrame.Angles(0,0,math.rad(90));
  1087. orig2*CFrame.Angles(0,0,math.rad(-90));
  1088. orig3*CFrame.Angles(math.rad(-25),math.rad(-10),0);
  1089. orig4*CFrame.new(0,-0.5,0.5)*CFrame.Angles(math.rad(-90),0,0);
  1090. Joints[5].C0;
  1091. Joints[6].C0;
  1092. orig7*CFrame.Angles(0,math.rad(-90),0);
  1093. }
  1094.  
  1095. local lerper = coroutine.wrap(function(rate)
  1096. for i=1, 10 do
  1097. for p=1,#Joints do
  1098. if animstate == 6 then
  1099. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],0.1*i)
  1100. end
  1101. end
  1102. wait(rate)
  1103. end
  1104. keyframe = 1
  1105. ready = true
  1106. end)
  1107. lerper(0)
  1108. elseif keyframe == 1 then
  1109. ready = false
  1110. local bladeweld = handle:FindFirstChild("BladeWeld")
  1111. if not equipped then
  1112. bladeweld.C0 = bladeweld.C0*CFrame.new(Vector3.new(3.5,0,0))
  1113. end
  1114. local grower = coroutine.wrap(function()
  1115. for i=1, 20 do
  1116. if not equipped then
  1117. if i == 10 then
  1118. blade.Transparency = blade.Transparency - 0.5
  1119. end
  1120. if i > 10 then
  1121. blade.Transparency = blade.Transparency - 0.05
  1122. end
  1123. bladeweld.C0 = bladeweld.C0*CFrame.new(Vector3.new(-(0.35/2),0,0))
  1124. else
  1125. blade.Transparency = blade.Transparency + 0.05
  1126. end
  1127. wait(0.001)
  1128. end
  1129. if not equipped then
  1130. equipped = true
  1131. else
  1132. equipped = false
  1133. end
  1134. JointTargets={
  1135. Joints[1].C0;
  1136. Joints[2].C0;
  1137. Joints[3].C0;
  1138. Joints[4].C0;
  1139. Joints[5].C0;
  1140. Joints[6].C0;
  1141. orig7;
  1142. }
  1143.  
  1144. local lerper = coroutine.wrap(function(rate)
  1145. for p=1,#Joints do
  1146. Joints[p].C0=Joints[p].C0:lerp(JointTargets[p],1)
  1147. end
  1148. Player.Character.Humanoid.WalkSpeed = speed
  1149. ready = true
  1150. attacking = false
  1151. animating = false
  1152. animstate = -1
  1153. keyframe = 0
  1154. end)
  1155. lerper()
  1156. end)
  1157. grower()
  1158. end
  1159.  
  1160. end
  1161. wait()
  1162. end
  1163. end)
  1164. animator()
  1165.  
  1166. Mouse.KeyDown:connect(function(key)
  1167. if key == 'f' and not attacking and not animating then
  1168. if not equipped then
  1169. animating = true
  1170. attacking = true
  1171. button.BrickColor = BrickColor.new("Black")
  1172. ready = true
  1173. keyframe = 0
  1174. animstate = 6
  1175. elseif equipped then
  1176. animating = true
  1177. attacking = true
  1178. button.BrickColor = BrickColor.new("Really red")
  1179. ready = true
  1180. keyframe = 0
  1181. animstate = 6
  1182. end
  1183. elseif key=='e' and equipped and not animating and cooled and combo < 3 then
  1184. print("epress")
  1185. attacking = true
  1186. ready = true
  1187. animstate = 2
  1188. keyframe = 0
  1189. combo = combo + 1
  1190. print(combo)
  1191. elseif key=='q' and not animating and not attacking and cooled2 and Mouse.Target and Mouse.Target.Parent and Mouse.Target.Parent:FindFirstChild("Humanoid") and Mouse.Target.Parent ~= Player.Character and (Player.Character.Torso.Position-Mouse.Target.Parent:FindFirstChild("Torso").Position).magnitude <= 45 then
  1192. print("qpress")
  1193. attacking = true
  1194. qtarget = Mouse.Target.Parent
  1195. ready = true
  1196. animstate = 3
  1197. keyframe = 0
  1198. elseif key=='r' and not animating and cooled3 then
  1199. print("rpress")
  1200. attacking = true
  1201. ready = true
  1202. animstate = 4
  1203. keyframe = 0
  1204. elseif key=='t' and not animating and cooled4 and equipped and not attacking then
  1205. print("tpress")
  1206. attacking = true
  1207. ready = true
  1208. animstate = 5
  1209. keyframe = 0
  1210. end
  1211. end)
  1212.  
  1213. blade.Touched:connect(function(hit)
  1214. if hitter and hit ~= nil and hit.Parent ~= nil and hit.Parent:FindFirstChild("Humanoid") ~= nil then
  1215. local humanoid = hit.Parent:findFirstChild("Humanoid")
  1216. if humanoid ~= nil and humanoid ~= Character.Humanoid and Character.Humanoid ~= nil then
  1217. local donthit = false
  1218. for _,v in pairs (hits) do
  1219. if v == hit.Parent.Name then
  1220. donthit = true
  1221. end
  1222. end
  1223. if not donthit then
  1224. local sound = Instance.new("Sound", hit.Parent:FindFirstChild("Torso"))
  1225. sound.SoundId = "rbxassetid://526719128"
  1226. sound.Volume = 0.7
  1227. sound.PlayOnRemove = true
  1228. sound:Remove()
  1229. humanoid:TakeDamage(damage)
  1230. indicate(hit.Parent:FindFirstChild("Head"),damage)
  1231. table.insert(hits,hit.Parent.Name)
  1232. end
  1233. end
  1234. end
  1235. end)
Add Comment
Please, Sign In to add comment