Advertisement
ohhhhhhshdhashdahsd

Dragon Slayer

Nov 22nd, 2014
647
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 43.40 KB | None | 0 0
  1. --Natsu Dragon Slayer Script, by GodSlayerCole.
  2. --Put your name on line 6 where it says "facebook531".
  3. --You can use this for your game, but it's mainly for SB.
  4.  
  5. local Shared = nil
  6. if not Shared or game.Players.LocalPlayer.PutYaNaimHere == Shared then
  7. wait(1/30)
  8. pcall(function()
  9. game.Players.LocalPlayer.Character.Animate.Disabled = true
  10. end)
  11. local active = true
  12. local player = game.Players.LocalPlayer
  13. local mouse = player:GetMouse()
  14. local stats = {
  15. ["Power"] = 5,
  16. ["HP"] = math.huge,
  17. ["HPRegen"] = math.huge,
  18. ["MP"] = math.huge,
  19. ["MPRegen"] = 5000,
  20. ["MPCharge"] = 5,
  21. ["WalkSpeed"] = 16
  22. }
  23. local state = {}
  24. local c0 = {
  25. ["Neck"] = {Vector3.new(0,1.5,0),CFrame.Angles(math.pi/-2,0,0)},
  26. ["Right Shoulder"] = {Vector3.new(1.5,0.5,0),CFrame.Angles(0,math.pi/2,0)},
  27. ["Left Shoulder"] = {Vector3.new(-1.5,0.5,0),CFrame.Angles(0,math.pi/-2,0)},
  28. ["Right Hip"] = {Vector3.new(0.5,-1,0),CFrame.Angles(0,math.pi/2,0)},
  29. ["Left Hip"] = {Vector3.new(-0.5,-1,0),CFrame.Angles(0,math.pi/-2,0)}
  30. }
  31. local c1 = {
  32. ["Neck"] = CFrame.Angles(math.pi/-2,0,0),
  33. ["Right Shoulder"] = CFrame.new(0,0.5,0)*CFrame.Angles(0,math.pi/2,0),
  34. ["Left Shoulder"] = CFrame.new(0,0.5,0)*CFrame.Angles(0,math.pi/-2,0),
  35. ["Right Hip"] = CFrame.new(0,1,0)*CFrame.Angles(0,math.pi/2,0),
  36. ["Left Hip"] = CFrame.new(0,1,0)*CFrame.Angles(0,math.pi/-2,0)
  37. }
  38. local bodyPart = {}
  39. local limb = {}
  40. local humanoidState = {}
  41. local humanoidCurrentState = "Standing"
  42. for _,v in pairs({"Climbing","FallingDown","FreeFalling","GettingUp","Jumping","Ragdoll","Running","Seated","Strafing","Swimming"}) do
  43. local number = {"Running","Strafing","Climbing","Swimming"}
  44. for _,p in pairs(number) do number[p] = true end
  45. humanoidState[v] = {
  46. ["Connection"] = nil,
  47. ["Value"] = number[v] and 0 or false}
  48. end
  49. local humanoid
  50. local bpos
  51. local gyro
  52. local bvel
  53. local ui
  54. local skillName = {
  55. ["z"] = "Iron Fist",
  56. ["x"] = "Crushing Fang",
  57. ["c"] = "Flame Elbow",
  58. ["v"] = "Claw",
  59. ["g"] = "FireBreath",
  60. ["f"] = "Eagle",
  61. ["b"] = "Roar",
  62. ["n"] = "Wing Attack",
  63. ["m"] = "Sword Horn"
  64. }
  65. local skillFunc = {
  66. ["Iron Fist"] = function()
  67. local cam = workspace.CurrentCamera
  68. local target = CFrame.new(bodyPart.Torso.Position,mouse.Hit.p)
  69. local strength = state.MPCharge*stats.Power
  70. for i=1,5 do
  71. wait(1/30)
  72. gyro.cframe = target*CFrame.Angles(-math.pi/3,-math.pi/4,0)
  73. bodyPart.Torso.CFrame = bodyPart.Torso.CFrame+target.lookVector*2
  74. bodyPart.Torso.Velocity = Vector3.new()
  75. translateLimb("Neck",Vector3.new(math.pi/6,0,0),Vector3.new(),0.75)
  76. translateLimb("Right Shoulder",Vector3.new(0,-math.pi/3,math.pi/2),Vector3.new(),0.75)
  77. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/8,-math.pi/1.5),Vector3.new(0.25,0,-0.25),0.75)
  78. translateLimb("Right Hip",Vector3.new(-math.pi/12,0,-math.pi/6),Vector3.new(0,0.75,-0.75),0.75)
  79. translateLimb("Left Hip",Vector3.new(-math.pi/12,0,-math.pi/12),Vector3.new(),0.75)
  80. flame(CFrame.new((bodyPart["Right Arm"].CFrame*CFrame.new(0,-1,0)).p)*CFrame.Angles((math.random()-0.5)*math.pi/4,0,(math.random()-0.5)*math.pi/4),state.MP,math.min(5,state.MPCharge))
  81. end
  82. for i=1,5 do
  83. wait(1/30)
  84. local ratio = i/5
  85. gyro.cframe = target*CFrame.Angles(-math.pi/3,math.pi/2,0)
  86. bodyPart.Torso.CFrame = bodyPart.Torso.CFrame+target.lookVector*2*(1-ratio)
  87. bodyPart.Torso.Velocity = Vector3.new()
  88. translateLimb("Neck",Vector3.new(),Vector3.new(),0.75)
  89. translateLimb("Right Shoulder",Vector3.new(0,math.pi/5,math.pi/1.5),Vector3.new(-0.5,0,-0.5),0.75)
  90. translateLimb("Left Shoulder",Vector3.new(-math.pi/6,0,math.pi/24),Vector3.new(),0.75)
  91. translateLimb("Right Hip",Vector3.new(-math.pi/12,0,-math.pi/6),Vector3.new(0,0.5,-0.5),0.75)
  92. translateLimb("Left Hip",Vector3.new(-math.pi/12,0,math.pi/12),Vector3.new(),0.75)
  93. AoE((bodyPart["Right Arm"].CFrame*CFrame.new(0,-1,0)).p,math.max(2,math.min(5,state.MPCharge)),strength/10,target.lookVector*strength/10,true)
  94. flame(CFrame.new((bodyPart["Right Arm"].CFrame*CFrame.new(0,-1,0)).p)*CFrame.Angles((math.random()-0.5)*math.pi/4,0,(math.random()-0.5)*math.pi/4),state.MP,math.min(5,state.MPCharge))
  95. end
  96. end,
  97. ["Crushing Fang"] = function()
  98. local cam = workspace.CurrentCamera
  99. local target = CFrame.new(bodyPart.Torso.Position,mouse.Hit.p)
  100. local strength = state.MPCharge*stats.Power
  101. for i=1,5 do
  102. wait(1/30)
  103. local ratio = math.min(1,i/3)
  104. gyro.cframe = target*CFrame.Angles(math.pi/6*ratio,0,math.pi/3*ratio)
  105. bodyPart.Torso.CFrame = bodyPart.Torso.CFrame+target.lookVector
  106. bodyPart.Torso.Velocity = Vector3.new()
  107. translateLimb("Right Shoulder",Vector3.new(0,-math.pi/3,math.pi/2),Vector3.new(),0.75)
  108. translateLimb("Left Shoulder",Vector3.new(-math.pi/6,0,math.pi/12),Vector3.new(0.25,0,-0.25),0.75)
  109. translateLimb("Right Hip",Vector3.new(-math.pi/12,0,-math.pi/12),Vector3.new(0,0.5,-0.25),0.75)
  110. translateLimb("Left Hip",Vector3.new(-math.pi/12,0,-math.pi/12),Vector3.new(),0.75)
  111. flame(CFrame.new((bodyPart["Right Arm"].CFrame*CFrame.new(0,-1,0)).p)*CFrame.Angles((math.random()-0.5)*math.pi/4,0,(math.random()-0.5)*math.pi/4),state.MP,math.min(5,state.MPCharge))
  112. end
  113. for i=1,5 do
  114. wait(1/30)
  115. local ratio = math.min(1,i/3)
  116. gyro.cframe = target*CFrame.Angles(math.pi/6-(math.pi+math.pi/6)*ratio,0,math.pi/3)
  117. bodyPart.Torso.CFrame = bodyPart.Torso.CFrame+target.lookVector*(1-ratio)
  118. bodyPart.Torso.Velocity = Vector3.new()
  119. translateLimb("Right Shoulder",Vector3.new(0,math.pi/8,math.pi/2),Vector3.new(),0.75)
  120. translateLimb("Left Shoulder",Vector3.new(-math.pi/6,0,math.pi/12),Vector3.new(0.25,0,-0.25),0.75)
  121. translateLimb("Right Hip",Vector3.new(-math.pi/12,0,-math.pi/12),Vector3.new(0,0.5,-0.25),0.75)
  122. translateLimb("Left Hip",Vector3.new(-math.pi/12,0,-math.pi/12),Vector3.new(),0.75)
  123. AoE((bodyPart["Right Arm"].CFrame*CFrame.new(0,-1,0)).p,math.max(2,math.min(5,state.MPCharge)),strength/50,target.lookVector*strength/500,true)
  124. flame(CFrame.new((bodyPart["Right Arm"].CFrame*CFrame.new(0,-1,0)).p)*CFrame.Angles((math.random()-0.5)*math.pi/4,0,(math.random()-0.5)*math.pi/4),state.MP,math.min(5,state.MPCharge))
  125. end
  126. end,
  127. ["Flame Elbow"] = function()
  128. local cam = workspace.CurrentCamera
  129. local cf = bodyPart.Torso.CFrame
  130. local lookXZ = CFrame.new(cf.p,mouse.Hit.p*Vector3.new(1,0,1)+Vector3.new(0,cf.p.y,0))
  131. local strength = state.MPCharge*stats.Power
  132. function booster(size)
  133. local dir = bodyPart["Right Arm"].CFrame
  134. local maxSize = math.min(10,math.ceil(size/2))
  135. for i=1,maxSize do
  136. wait(1/30)
  137. local ratio = i/maxSize
  138. local pos = (dir*CFrame.new(0,1+i*math.min(30,math.max(2,size*ratio))/4,0)).p
  139. flame(CFrame.new(pos)*CFrame.Angles((math.random()-0.5)*math.pi/4,0,(math.random()-0.5)*math.pi/4),9,size*ratio)
  140. AoE(pos,math.max(2,size*ratio),strength/100,(dir*CFrame.Angles(math.pi/2,0,0)).lookVector*strength/1000)
  141. end
  142. end
  143. for i=1,30 do
  144. wait(1/30)
  145. gyro.cframe = lookXZ*CFrame.Angles(0,-math.pi/3,0)
  146. bodyPart.Torso.CFrame = (bodyPart.Torso.CFrame-bodyPart.Torso.CFrame.p)+cf.p
  147. bodyPart.Torso.Velocity = Vector3.new()
  148. translateLimb("Neck",Vector3.new(0,0,math.pi/4),Vector3.new(),0.75)
  149. translateLimb("Right Shoulder",Vector3.new(0,math.pi/3,math.pi/2),Vector3.new(-0.25,0,-0.5),0.75)
  150. translateLimb("Left Shoulder",Vector3.new(-math.pi/6,0,math.pi/12),Vector3.new(),0.75)
  151. translateLimb("Right Hip",Vector3.new(-math.pi/12,0,0),Vector3.new(),0.75)
  152. translateLimb("Left Hip",Vector3.new(-math.pi/12,0,0),Vector3.new(),0.75)
  153. if i > 3 then
  154. coroutine.wrap(booster)(i)
  155. end
  156. end
  157. for i=1,5 do
  158. wait(0.01)
  159. gyro.cframe = lookXZ*CFrame.Angles(0,math.pi/2,0)
  160. bodyPart.Torso.CFrame = lookXZ*CFrame.new(0,0,-5*i)*CFrame.Angles(0,math.pi/2,0)
  161. bodyPart.Torso.Velocity = Vector3.new()
  162. translateLimb("Neck",Vector3.new(),Vector3.new(),0.9)
  163. translateLimb("Right Shoulder",Vector3.new(0,-math.pi/2,math.pi/2),Vector3.new(),0.9)
  164. translateLimb("Left Shoulder",Vector3.new(-math.pi/6,0,math.pi/12),Vector3.new(),0.9)
  165. translateLimb("Right Hip",Vector3.new(-math.pi/12,0,0),Vector3.new(),0.75)
  166. translateLimb("Left Hip",Vector3.new(-math.pi/12,0,0),Vector3.new(),0.75)
  167. AoE((bodyPart["Right Arm"].CFrame*CFrame.new(0,-1,0)).p,2,strength*10,lookXZ.lookVector*strength*100,true)
  168. end
  169. end,
  170. ["Eagle"] = function()
  171. local cam = workspace.CurrentCamera
  172. local target = CFrame.new(bodyPart.Torso.Position,mouse.Hit.p)
  173. local strength = state.MPCharge*stats.Power
  174. for i=1,5 do
  175. wait(1/30)
  176. gyro.cframe = target*CFrame.Angles(-math.pi/3,-math.pi/4,0)
  177. bodyPart.Torso.CFrame = bodyPart.Torso.CFrame+target.lookVector*2
  178. bodyPart.Torso.Velocity = Vector3.new()
  179. translateLimb("Neck",Vector3.new(math.pi/6,0,0),Vector3.new(),0.75)
  180. translateLimb("Right Shoulder",Vector3.new(0,-math.pi/3,math.pi/2),Vector3.new(),0.75)
  181. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/8,-math.pi/1.5),Vector3.new(0.25,0,-0.25),0.75)
  182. translateLimb("Right Hip",Vector3.new(-math.pi/12,0,-math.pi/6),Vector3.new(0,0.75,-0.75),0.75)
  183. translateLimb("Left Hip",Vector3.new(-math.pi/12,0,-math.pi/12),Vector3.new(),0.75)
  184. flame(CFrame.new((bodyPart["Right Arm"].CFrame*CFrame.new(0,-1,0)).p)*CFrame.Angles((math.random()-0.5)*math.pi/4,0,(math.random()-0.5)*math.pi/4),state.MP,math.min(5,state.MPCharge))
  185. end
  186. for i=1,5 do
  187. wait(1/30)
  188. gyro.cframe = target*CFrame.Angles(-math.pi/3,-math.pi/4,0)
  189. bodyPart.Torso.CFrame = bodyPart.Torso.CFrame+target.lookVector*2
  190. bodyPart.Torso.Velocity = Vector3.new()
  191. translateLimb("Neck",Vector3.new(math.pi/6,0,0),Vector3.new(),0.75)
  192. translateLimb("Right Shoulder",Vector3.new(0,-math.pi/7,math.pi/1),Vector3.new(),0.75)
  193. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/8,-math.pi/3),Vector3.new(0.50,0,-0.30),0.90)
  194. translateLimb("Right Hip",Vector3.new(-math.pi/6,0,-math.pi/6),Vector3.new(0,0.75,-0.20),0.50)
  195. translateLimb("Left Hip",Vector3.new(-math.pi/6,0,-math.pi/12),Vector3.new(),0.50)
  196. AoE((bodyPart["Right Arm"].CFrame*CFrame.new(0,-1,0)).p,math.max(2,math.min(5,state.MPCharge)),strength/10,target.lookVector*strength/10,true)
  197. end
  198. for i=1,5 do
  199. wait(1/30)
  200. local ratio = i/5
  201. gyro.cframe = target*CFrame.Angles(-math.pi/3,math.pi/2,0)
  202. bodyPart.Torso.CFrame = bodyPart.Torso.CFrame+target.lookVector*2*(1-ratio)
  203. bodyPart.Torso.Velocity = Vector3.new()
  204. translateLimb("Neck",Vector3.new(),Vector3.new(),0.75)
  205. translateLimb("Right Shoulder",Vector3.new(0,math.pi/5,math.pi/1.5),Vector3.new(-0.5,0,-0.5),0.75)
  206. translateLimb("Left Shoulder",Vector3.new(-math.pi/6,0,math.pi/24),Vector3.new(),0.75)
  207. translateLimb("Right Hip",Vector3.new(-math.pi/12,0,-math.pi/6),Vector3.new(0,0.5,-0.5),0.75)
  208. translateLimb("Left Hip",Vector3.new(-math.pi/12,0,math.pi/12),Vector3.new(),0.75)
  209. explosion((bodyPart["Right Arm"]),5,2,0)
  210. AoE((bodyPart["Right Arm"].CFrame*CFrame.new(0,-1,0)).p,math.max(2,math.min(5,state.MPCharge)),strength/10,target.lookVector*strength/10,true)
  211. flame(CFrame.new((bodyPart["Right Arm"].CFrame*CFrame.new(0,-1,0)).p)*CFrame.Angles((math.random()-0.5)*math.pi/4,0,(math.random()-0.5)*math.pi/4),state.MP,math.min(5,state.MPCharge))
  212. end
  213. end,
  214. ["Claw"] = function()
  215. local cam = workspace.CurrentCamera
  216. local target = CFrame.new(bodyPart.Torso.Position,mouse.Hit.p)
  217. local strength = state.MPCharge*stats.Power
  218. for i=1,10 do
  219. wait(1/30)
  220. local hit,pos = advRay(bodyPart.Torso.Position,target.lookVector*5,{player.Character})
  221. gyro.cframe = target*CFrame.Angles(0,math.pi/2,math.pi/3)
  222. bodyPart.Torso.CFrame = bodyPart.Torso.CFrame+target.lookVector*(bodyPart.Torso.Position-pos).magnitude
  223. bodyPart.Torso.Velocity = Vector3.new()
  224. translateLimb("Neck",Vector3.new(0,math.pi/12,-math.pi/3),Vector3.new(),0.75)
  225. translateLimb("Right Shoulder",Vector3.new(-math.pi/3,0,0),Vector3.new(),0.75)
  226. translateLimb("Left Shoulder",Vector3.new(-math.pi/3,0,0),Vector3.new(0.25,0,-0.25),0.75)
  227. translateLimb("Right Hip",Vector3.new(-math.pi/8,0,0),Vector3.new(),0.75)
  228. translateLimb("Left Hip",Vector3.new(math.pi/8,0,-math.pi/12),Vector3.new(-0.5,0.5,0),0.75)
  229. AoE((bodyPart["Right Leg"].CFrame*CFrame.new(0,-1,0)).p,math.max(2,math.min(5,state.MPCharge)),strength/10,target.lookVector*strength/10,true)
  230. flame(CFrame.new((bodyPart["Right Leg"].CFrame*CFrame.new(0,-1,0)).p)*CFrame.Angles((math.random()-0.5)*math.pi/4,0,(math.random()-0.5)*math.pi/4),state.MP,math.min(5,state.MPCharge))
  231. if hit then
  232. bodyPart.Torso.Velocity = bodyPart.Torso.Velocity+Vector3.new(0,60,0)-target.lookVector*20
  233. break
  234. end
  235. end
  236. end,
  237. ["FireBreath"] = function()
  238. local cam = workspace.CurrentCamera
  239. local mouseHit = mouse.Hit.p
  240. local cf = bodyPart.Torso.CFrame
  241. local lookXZ = CFrame.new(cf.p,mouseHit*Vector3.new(1,0,1)+Vector3.new(0,cf.p.y,0))
  242. local target = (mouseHit-cf.p).unit
  243. local dir = math.pi/2-math.acos(target.y)
  244. local strength = state.MPCharge*stats.Power
  245. for i=1,50 do
  246. wait(1/30)
  247. local ratio = math.sin(i/100*math.pi)
  248. local offset = math.sin(-ratio*math.pi/8)
  249. gyro.cframe = lookXZ*CFrame.Angles(math.pi/4*ratio,0,0)
  250. bodyPart.Torso.CFrame = lookXZ*CFrame.new(0,offset,-offset)*CFrame.Angles(math.pi/4*ratio,0,0)
  251. bodyPart.Torso.Velocity = Vector3.new()
  252. translateLimb("Neck",Vector3.new(math.pi/12*ratio,0,0),Vector3.new(),1)
  253. translateLimb("Right Shoulder",Vector3.new(0,math.pi/12,-math.pi/12),Vector3.new(),0.5)
  254. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/12,math.pi/12),Vector3.new(),0.5)
  255. translateLimb("Right Hip",Vector3.new(-math.pi/24,0,-math.pi/4*ratio),Vector3.new(),1)
  256. translateLimb("Left Hip",Vector3.new(-math.pi/24,0,math.pi/4*ratio),Vector3.new(),1)
  257. end
  258. for i=1,5 do
  259. wait(1/30)
  260. local ratio = 1-i/5
  261. local offset = math.sin(i/5*dir)+math.sin(-ratio*math.pi/8)
  262. local rot = dir*i/5
  263. gyro.cframe = lookXZ*CFrame.Angles(math.pi/4*ratio+rot,0,0)
  264. bodyPart.Torso.CFrame = lookXZ*CFrame.new(0,-math.abs(offset),offset)*CFrame.Angles(math.pi/4*ratio+rot,0,0)
  265. bodyPart.Torso.Velocity = Vector3.new()
  266. translateLimb("Neck",Vector3.new(math.pi/12*ratio,0,0),Vector3.new(),1)
  267. translateLimb("Right Shoulder",Vector3.new(0,math.pi/3,math.pi/1.5),Vector3.new(-0.75,0,-0.5),0.5)
  268. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/3.5,-math.pi/1.5),Vector3.new(0.75,0,-0.5),0.5)
  269. translateLimb("Right Hip",Vector3.new(-math.pi/24,0,-math.pi/4*ratio-rot),Vector3.new(),1)
  270. translateLimb("Left Hip",Vector3.new(-math.pi/24,0,math.pi/4*ratio+rot),Vector3.new(),1)
  271. end
  272. --rune(bodyPart.Head.CFrame*CFrame.new(0,0,-3)*CFrame.Angles(math.pi/2,0,0),5,13/3)
  273. for i=1,50 do
  274. wait(1/30)
  275. mouseHit = mouseHit:Lerp(mouse.Hit.p,0.1)
  276. lookXZ = CFrame.new(cf.p,mouseHit*Vector3.new(1,0,1)+Vector3.new(0,cf.p.y,0))
  277. target = (mouseHit-cf.p).unit
  278. dir = math.pi/2-math.acos(target.y)
  279. local offset = math.sin(dir)
  280. gyro.cframe = lookXZ*CFrame.Angles(dir,0,0)
  281. bodyPart.Torso.CFrame = lookXZ*CFrame.new(0,-math.abs(offset),offset)*CFrame.Angles(dir,0,0)
  282. bodyPart.Torso.Velocity = Vector3.new()
  283. translateLimb("Neck",Vector3.new(),Vector3.new(),1)
  284. translateLimb("Right Shoulder",Vector3.new(0,math.pi/3,math.pi/1.5),Vector3.new(-0.75,0,-0.5),0.5)
  285. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/3.5,-math.pi/1.5),Vector3.new(0.75,0,-0.5),0.5)
  286. translateLimb("Right Hip",Vector3.new(-math.pi/24,0,-dir),Vector3.new(),0.5)
  287. translateLimb("Left Hip",Vector3.new(-math.pi/24,0,dir),Vector3.new(),0.5)
  288. coroutine.wrap(function()
  289. local direction = bodyPart.Head.CFrame
  290. for n=1,10 do
  291. wait(1/30)
  292. local scale = math.min(30,n*3)
  293. flame(CFrame.new((direction*CFrame.new(0,0,-5-n*scale/4)).p)*CFrame.Angles((math.random()-0.5)*math.pi/4,0,(math.random()-0.5)*math.pi/4),9,scale)
  294. AoE((direction*CFrame.new(0,0,-5-n*scale/4)).p,scale,strength/100,target*strength/1000,false)
  295. end
  296. end)()
  297. end
  298. end,
  299. ["Roar"] = function()
  300. local cam = workspace.CurrentCamera
  301. local mouseHit = mouse.Hit.p
  302. local cf = bodyPart.Torso.CFrame
  303. local lookXZ = CFrame.new(cf.p,mouseHit*Vector3.new(1,0,1)+Vector3.new(0,cf.p.y,0))
  304. local target = (mouseHit-cf.p).unit
  305. local dir = math.pi/2-math.acos(target.y)
  306. local strength = state.MPCharge*stats.Power
  307. for i=1,50 do
  308. wait(1/30)
  309. local ratio = math.sin(i/100*math.pi)
  310. local offset = math.sin(-ratio*math.pi/8)
  311. gyro.cframe = lookXZ*CFrame.Angles(math.pi/4*ratio,0,0)
  312. bodyPart.Torso.CFrame = lookXZ*CFrame.new(0,offset,-offset)*CFrame.Angles(math.pi/4*ratio,0,0)
  313. bodyPart.Torso.Velocity = Vector3.new()
  314. translateLimb("Neck",Vector3.new(math.pi/12*ratio,0,0),Vector3.new(),1)
  315. translateLimb("Right Shoulder",Vector3.new(0,math.pi/12,-math.pi/12),Vector3.new(),0.5)
  316. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/12,math.pi/12),Vector3.new(),0.5)
  317. translateLimb("Right Hip",Vector3.new(-math.pi/24,0,-math.pi/4*ratio),Vector3.new(),1)
  318. translateLimb("Left Hip",Vector3.new(-math.pi/24,0,math.pi/4*ratio),Vector3.new(),1)
  319. end
  320. for i=1,5 do
  321. wait(1/30)
  322. local ratio = 1-i/5
  323. local offset = math.sin(i/5*dir)+math.sin(-ratio*math.pi/8)
  324. local rot = dir*i/5
  325. gyro.cframe = lookXZ*CFrame.Angles(math.pi/4*ratio+rot,0,0)
  326. bodyPart.Torso.CFrame = lookXZ*CFrame.new(0,-math.abs(offset),offset)*CFrame.Angles(math.pi/4*ratio+rot,0,0)
  327. bodyPart.Torso.Velocity = Vector3.new()
  328. translateLimb("Neck",Vector3.new(math.pi/12*ratio,0,0),Vector3.new(),1)
  329. translateLimb("Right Shoulder",Vector3.new(0,math.pi/3,math.pi/1.5),Vector3.new(-0.75,0,-0.5),0.5)
  330. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/3.5,-math.pi/1.5),Vector3.new(0.75,0,-0.5),0.5)
  331. translateLimb("Right Hip",Vector3.new(-math.pi/24,0,-math.pi/4*ratio-rot),Vector3.new(),1)
  332. translateLimb("Left Hip",Vector3.new(-math.pi/24,0,math.pi/4*ratio+rot),Vector3.new(),1)
  333. end
  334. --rune(bodyPart.Head.CFrame*CFrame.new(0,0,-3)*CFrame.Angles(math.pi/2,0,0),5,13/3)
  335. for i=1,50 do
  336. wait(1/30)
  337. mouseHit = mouseHit:Lerp(mouse.Hit.p,0.1)
  338. lookXZ = CFrame.new(cf.p,mouseHit*Vector3.new(1,0,1)+Vector3.new(0,cf.p.y,0))
  339. target = (mouseHit-cf.p).unit
  340. dir = math.pi/2-math.acos(target.y)
  341. local offset = math.sin(dir)
  342. gyro.cframe = lookXZ*CFrame.Angles(dir,0,0)
  343. bodyPart.Torso.CFrame = lookXZ*CFrame.new(0,-math.abs(offset),offset)*CFrame.Angles(dir,0,0)
  344. bodyPart.Torso.Velocity = Vector3.new()
  345. translateLimb("Neck",Vector3.new(),Vector3.new(),1)
  346. translateLimb("Right Shoulder",Vector3.new(0,math.pi/3,math.pi/1.5),Vector3.new(-0.75,0,-0.5),0.5)
  347. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/3.5,-math.pi/1.5),Vector3.new(0.75,0,-0.5),0.5)
  348. translateLimb("Right Hip",Vector3.new(-math.pi/24,0,-dir),Vector3.new(),0.5)
  349. translateLimb("Left Hip",Vector3.new(-math.pi/24,0,dir),Vector3.new(),0.5)
  350. coroutine.wrap(function()
  351. local direction = bodyPart.Head.CFrame
  352. for n=1,10 do
  353. wait(1/30)
  354. local scale = math.min(30,n*3)
  355. flame(CFrame.new((direction*CFrame.new(0,0,-5-n*scale/4)).p)*CFrame.Angles((math.random()-0.5)*math.pi/4,0,(math.random()-0.5)*math.pi/4),9,scale)
  356. AoE((direction*CFrame.new(0,0,-5-n*scale/4)).p,scale,strength/100,target*strength/1000,false)
  357. end
  358. end)()
  359. end
  360. end,
  361. ["Wing Attack"] = function()
  362. local cam = workspace.CurrentCamera
  363. local cf = bodyPart.Torso.CFrame
  364. local lookXZ = CFrame.new(cf.p,mouse.Hit.p*Vector3.new(1,0,1)+Vector3.new(0,cf.p.y,0))
  365. local target = CFrame.new(cf.p,mouse.Hit.p)
  366. local strength = state.MPCharge*stats.Power
  367. for i=1,5 do
  368. wait(1/30)
  369. gyro.cframe = lookXZ*CFrame.Angles(-math.pi/6,0,0)
  370. bodyPart.Torso.CFrame = bodyPart.Torso.CFrame+(lookXZ*CFrame.Angles(math.pi/6,0,0)).lookVector*3
  371. bodyPart.Torso.Velocity = Vector3.new()
  372. translateLimb("Neck",Vector3.new(math.pi/12,0,0),Vector3.new(),0.75)
  373. translateLimb("Right Shoulder",Vector3.new(0,math.pi/3,math.pi/1.5),Vector3.new(),0.75)
  374. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/4,-math.pi/1.5),Vector3.new(),0.75)
  375. translateLimb("Right Hip",Vector3.new(-math.pi/12,0,-math.pi/6),Vector3.new(0,0.75,-0.75),0.75)
  376. translateLimb("Left Hip",Vector3.new(-math.pi/12,0,-math.pi/12),Vector3.new(),0.75)
  377. end
  378. function wing()
  379. local dir1 = bodyPart["Right Arm"].CFrame
  380. local dir2 = bodyPart["Left Arm"].CFrame
  381. for n=1,10 do
  382. wait(1/30)
  383. if dir1 then
  384. local hit,pos = advRay(dir1.p,(dir1*CFrame.new(0,-1-n*5,0)).p-dir1.p,{player.Character})
  385. flame(CFrame.new(pos)*CFrame.Angles((math.random()-0.5)*math.pi/4,0,(math.random()-0.5)*math.pi/4),9,10,true)
  386. AoE(pos,hit and 20 or 10,strength/(hit and 1 or 10),(dir1*CFrame.Angles(-math.pi,0,0)).lookVector*strength/10,true)
  387. if hit then
  388. local x = Instance.new("Explosion",workspace)
  389. x.Position = pos
  390. x.BlastPressure = 0
  391. x.BlastRadius = 3
  392. dir1 = nil
  393. end
  394. end
  395. if dir2 then
  396. local hit,pos = advRay(dir2.p,(dir2*CFrame.new(0,-1-n*5,0)).p-dir2.p,{player.Character})
  397. flame(CFrame.new(pos)*CFrame.Angles((math.random()-0.5)*math.pi/4,0,(math.random()-0.5)*math.pi/4),9,10,true)
  398. AoE(pos,hit and 20 or 10,strength/(hit and 1 or 10),(dir2*CFrame.Angles(-math.pi,0,0)).lookVector*strength/(hit and 1 or 10),true)
  399. if hit then
  400. local x = Instance.new("Explosion",workspace)
  401. x.Position = pos
  402. x.BlastPressure = 0
  403. x.BlastRadius = 3
  404. dir2 = nil
  405. end
  406. end
  407. if not dir1 and not dir2 then break end
  408. end
  409. end
  410. for i=1,10 do
  411. wait(1/30)
  412. local ratio = i/10
  413. gyro.cframe = lookXZ*CFrame.Angles(-math.pi/6+math.pi/3*ratio,0,0)
  414. bodyPart.Torso.CFrame = bodyPart.Torso.CFrame+(lookXZ*CFrame.Angles(math.pi/6,0,0)).lookVector*3
  415. bodyPart.Torso.Velocity = Vector3.new()
  416. translateLimb("Neck",Vector3.new(-math.pi/12,0,0),Vector3.new(),0.75)
  417. translateLimb("Right Shoulder",Vector3.new(0,math.pi/12,math.pi*1.25),Vector3.new(),0.5)
  418. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/12,-math.pi*1.25),Vector3.new(),0.5)
  419. translateLimb("Right Hip",Vector3.new(-math.pi/12,0,-math.pi/12),Vector3.new(),0.75)
  420. translateLimb("Left Hip",Vector3.new(-math.pi/12,0,math.pi/12),Vector3.new(),0.75)
  421. if i > 3 then
  422. coroutine.wrap(wing)()
  423. end
  424. end
  425. for i=1,10 do
  426. wait(1/30)
  427. gyro.cframe = lookXZ*CFrame.Angles(math.pi/6-(math.pi/3+math.pi/6)*math.min(1,i/3),0,0)
  428. bodyPart.Torso.CFrame = bodyPart.Torso.CFrame+(lookXZ*CFrame.Angles(math.pi/6,0,0)).lookVector*3*(1-i/10)
  429. bodyPart.Torso.Velocity = Vector3.new()
  430. translateLimb("Neck",Vector3.new(math.pi/12,0,0),Vector3.new(),0.75)
  431. translateLimb("Right Shoulder",Vector3.new(0,math.pi/12,-math.pi/6),Vector3.new(),0.25)
  432. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/12,math.pi/6),Vector3.new(),0.25)
  433. translateLimb("Right Hip",Vector3.new(-math.pi/12,0,-math.pi/12),Vector3.new(),0.75)
  434. translateLimb("Left Hip",Vector3.new(-math.pi/12,0,math.pi/12),Vector3.new(),0.75)
  435. coroutine.wrap(wing)()
  436. end
  437. bodyPart.Torso.Velocity = lookXZ.lookVector*20
  438. end
  439. }
  440. function getRegion(point,range,ignore)
  441. return workspace:FindPartsInRegion3WithIgnoreList(Region3.new(point-Vector3.new(1,1,1)*range/2,point+Vector3.new(1,1,1)*range/2),ignore,100)
  442. end
  443. function getHumanoid(v)
  444. if v and v.Parent then
  445. local h = v.Parent:findFirstChild("Humanoid") or v.Parent.Parent:findFirstChild("Humanoid")
  446. if not h then
  447. for _,p in ipairs(v.Parent:GetChildren()) do
  448. if p:isA("Humanoid") then
  449. h = p
  450. end
  451. end
  452. if not h and v.Parent.Parent and v.Parent.Parent ~= game and v.Parent.Parent ~= workspace then
  453. for _,p in ipairs(v.Parent.Parent:GetChildren()) do
  454. if p:isA("Humanoid") then
  455. h = p
  456. end
  457. end
  458. end
  459. end
  460. return h
  461. end
  462. end
  463. function advRay(start,point)
  464. local dis = (start-(start+point)).magnitude
  465. local dir = ((start+point)-start).unit
  466. if dis > 999 then
  467. dis = 999
  468. end
  469. point = dis*dir
  470. hit,pos = workspace:FindPartOnRayWithIgnoreList(Ray.new(start,point),{player.Character})
  471. if hit and not hit.CanCollide and not getHumanoid(hit) then
  472. function persistentRay(list)
  473. hit,pos = workspace:FindPartOnRayWithIgnoreList(Ray.new(start,point),{player.Character,unpack(list)})
  474. if hit and not hit.CanCollide and not getHumanoid(hit) then
  475. hit,pos = persistentRay({hit,unpack(list)})
  476. end
  477. return hit,pos
  478. end
  479. hit,pos = persistentRay({hit})
  480. end
  481. return hit,pos
  482. end
  483. function AoE(point,radius,damage,push,trip)
  484. ypcall(function()
  485. local push = push or Vector3.new()
  486. local hit = getRegion(point,radius,{player.Character})
  487. local humanoidList = {}
  488. for _,v in pairs(hit) do
  489. local h = getHumanoid(v)
  490. if not v.Anchored then
  491. if h then
  492. if not humanoidList[h] then
  493. humanoidList[h] = true
  494. h:TakeDamage(damage)
  495. if h.Parent:findFirstChild("Torso") and h.Parent.Torso:isA("BasePart") then
  496. if push.magnitude > 0 then
  497. local v = Instance.new("BodyVelocity",h.Parent.Torso)
  498. v.maxForce = Vector3.new(1,1,1)*10000000000
  499. v.velocity = push/0.1
  500. game.Debris:AddItem(v,0.1)
  501. end
  502. if trip then
  503. local v = Instance.new("BodyAngularVelocity",h.Parent.Torso)
  504. v.maxTorque = Vector3.new(1,1,1)*10000000000
  505. v.angularvelocity = Vector3.new(math.pi,0,math.pi)/0.1
  506. game.Debris:AddItem(v,0.1)
  507. end
  508. end
  509. end
  510. else v:BreakJoints()
  511. v.Velocity = v.Velocity+push/v:GetMass()
  512. end
  513. end
  514. end
  515. end)
  516. end
  517. function preloadCharacter()
  518. humanoid = player.Character.Humanoid
  519. state = {
  520. ["Move"] = "Iron Fist",
  521. ["CD"] = 0,
  522. ["MP"] = 0,
  523. ["MPCharge"] = 0,
  524. ["LastCharge"] = 0,
  525. ["Falling"] = false,
  526. ["W"] = 0,
  527. ["A"] = 0,
  528. ["S"] = 0,
  529. ["D"] = 0,
  530. ["J"] = 0,
  531. ["Sprint"] = false,
  532. ["Charge"] = false,
  533. ["Skill"] = false
  534. }
  535. for _,v in pairs({"Head","Torso","Right Arm","Left Arm","Right Leg","Left Leg"}) do
  536. bodyPart[v] = player.Character:findFirstChild(v)
  537. end
  538. for _,v in pairs({"Neck","Right Shoulder","Left Shoulder","Right Hip","Left Hip"}) do
  539. if bodyPart.Torso:findFirstChild(v) then
  540. limb[v] = {
  541. ["Weld"] = bodyPart.Torso[v],
  542. ["Rotation"] = Vector3.new(),
  543. ["Offset"] = Vector3.new(),
  544. ["C0"] = c0[v],
  545. ["C1"] = c1[v]
  546. }
  547. bodyPart.Torso[v].DesiredAngle = 0
  548. end
  549. end
  550. for n,v in pairs(humanoidState) do
  551. pcall(function() v.Connection:disconnect() end)
  552. v.Connection = humanoid[n]:connect(function(p)
  553. local running = nil
  554. if string.match("RunningStrafingClimbingSwimming",n) then
  555. if p > 0.1 then
  556. running = n == "Climbing" and n or "Running"
  557. else running = "Standing"
  558. end
  559. end
  560. local falling = string.match("JumpingGettingUpFreeFallingFallingDown",n) and "Falling"
  561. humanoidCurrentState = running or falling or n
  562. v.Value = p
  563. end)
  564. end
  565. bpos = Instance.new("BodyPosition",bodyPart.Torso)
  566. bpos.D = 200
  567. bpos.maxForce = Vector3.new(0,99999,0)
  568. bpos.position = bodyPart.Torso.Position
  569. gyro = Instance.new("BodyGyro",bodyPart.Torso)
  570. gyro.D = 100
  571. gyro.maxTorque = Vector3.new(1,1,1)*99999
  572. gyro.cframe = bodyPart.Torso.CFrame
  573. bvel = Instance.new("BodyVelocity",bodyPart.Torso)
  574. bvel.maxForce = Vector3.new(1,0,1)*9999
  575. bvel.velocity = Vector3.new()
  576. ui = Instance.new("ScreenGui",player.PlayerGui)
  577. local txt = Instance.new("TextLabel",ui)
  578. txt.Name = "MP"
  579. txt.BackgroundTransparency = 1
  580. txt.Position = UDim2.new(0,210,1,-60)
  581. txt.Font = "ArialBold"
  582. txt.FontSize = "Size18"
  583. txt.Text = "Magic Power: 0"
  584. txt.TextColor3 = Color3.new(1,1,1)
  585. txt.TextStrokeTransparency = 0.9
  586. txt.TextXAlignment = "Left"
  587. txt.TextYAlignment = "Bottom"
  588. local txt = txt:Clone()
  589. txt.Name = "Charge"
  590. txt.Text = "Charge: 0"
  591. txt.Position = UDim2.new(0,210,1,-80)
  592. txt.Parent = ui
  593. local txt = txt:Clone()
  594. txt.Name = "Move"
  595. txt.Text = "Move: Iron Fist"
  596. txt.Position = UDim2.new(0,210,1,-100)
  597. txt.Parent = ui
  598. end
  599. preloadCharacter()
  600. function translateLimb(v,rot,pos,alpha)
  601. rot = rot or limb[v].Rotation
  602. pos = pos or limb[v].Offset
  603. limb[v].Rotation = limb[v].Rotation:Lerp(rot,alpha)
  604. limb[v].Offset = limb[v].Offset:Lerp(pos,alpha)
  605. end
  606. function rune(cf,size,lifespan)
  607. coroutine.wrap(function()
  608. local p = Instance.new("Part")
  609. plight = Instance.new("PointLight",p)
  610. plight.Color = BrickColor.new("Bright red").Color
  611. p.formFactor = 0
  612. p.Size = Vector3.new()
  613. p.BrickColor = BrickColor.new("Bright red")
  614. p.Anchored = true
  615. p.Locked = true
  616. p.CanCollide = false
  617. p.CFrame = cf*CFrame.Angles(math.pi/2,0,0)
  618. p.TopSurface = 0
  619. p.BottomSurface = 0
  620. p.Parent = player.Character
  621. local m = Instance.new("SpecialMesh",p)
  622. local wave = p:Clone()
  623. wave.CFrame = cf
  624. wave.Parent = player.Character
  625. wave.Mesh.MeshType = Enum.MeshType.Sphere
  626. wave.Mesh.Scale = Vector3.new(0,size/10,0)
  627. m.MeshId = "http://www.roblox.com/asset/?id=47260990"
  628. m.Scale = Vector3.new(size,size,size/10)
  629. p.Transparency = 1
  630. game.Debris:AddItem(p)
  631. game.Debris:AddItem(wave)
  632. for i=1,5 do
  633. p.Transparency = 1-math.sin(i/10*math.pi)*0.75
  634. p.CFrame = p.CFrame*CFrame.Angles(0,0,(i/5)*math.pi/12)
  635. wave.Mesh.Scale = Vector3.new(size*i,size/10,size*i)/2
  636. wave.Transparency = i/5
  637. wait(1/30)
  638. end
  639. wave:Remove()
  640. delay(lifespan,function()
  641. for i=1,20 do
  642. local ratio = math.sin(i/40*math.pi)*0.75
  643. p.Transparency = 0.25+ratio
  644. wait(1/30)
  645. end
  646. p:Remove()
  647. end)
  648. end)()
  649. end
  650. function explosion(where,heat,size,pres)
  651. a = Instance.new("Explosion",Workspace)
  652. a.BlastRadius = size
  653. a.BlastPressure = pres
  654. a.Position = where.Position
  655. local f = Instance.new("Fire",p)
  656. f.Size = size
  657. f.Heat = heat
  658. f:Remove()
  659. end
  660. function flame(cf,heat,size,instant)
  661. local p = Instance.new("Part")
  662. p.formFactor = 3
  663. p.Anchored = true
  664. p.CanCollide = false
  665. p.Locked = true
  666. p.Transparency = 1
  667. p.Size = Vector3.new()
  668. p.CFrame = cf
  669. p.Parent = player.Character
  670. local f = Instance.new("Fire",p)
  671. f.Size = size
  672. f.Heat = heat
  673. game.Debris:AddItem(p,1.1)
  674. delay(0.1,function()
  675. f.Enabled = false
  676. if instant then
  677. p:Destroy()
  678. end
  679. end)
  680. end
  681. mouse.KeyDown:connect(function(key)
  682. state.W = key == "w" and 1 or state.W
  683. state.A = key == "a" and 1 or state.A
  684. state.S = key == "s" and 1 or state.S
  685. state.D = key == "d" and 1 or state.D
  686. state.J = key == " " and 1 or state.J
  687. state.Sprint = key == "q" or state.Sprint
  688. if skillName[key] and not state.Skill then
  689. state.Move = skillName[key]
  690. ui.Move.Text = "Move: "..skillName[key]
  691. if state.CD > 0 and not state.Charge and state.MP > 0 then
  692. state.MPCharge = math.min(state.MP,state.LastCharge)
  693. ui.Charge.Text = "Charge: "..state.MPCharge
  694. state.Skill = true
  695. ypcall(function()
  696. skillFunc[state.Move]()
  697. end)
  698. state.Skill = false
  699. state.CD = state.MP > 0 and 0.2 or 0
  700. state.MP = math.max(0,state.MP-state.MPCharge)
  701. state.LastCharge = state.MPCharge
  702. state.MPCharge = 0
  703. ui.Charge.Text = "Charge: 0"
  704. end
  705. end
  706. end)
  707. mouse.KeyUp:connect(function(key)
  708. state.W = key == "w" and 0 or state.W
  709. state.A = key == "a" and 0 or state.A
  710. state.S = key == "s" and 0 or state.S
  711. state.D = key == "d" and 0 or state.D
  712. state.J = key == " " and 0 or state.J
  713. if key == "q" then
  714. state.Sprint = false
  715. end
  716. end)
  717. mouse.Button1Down:connect(function()
  718. if not state.Skill then
  719. state.Charge = true
  720. end
  721. end)
  722. mouse.Button1Up:connect(function()
  723. if not state.Skill and state.Charge then
  724. state.Charge = false
  725. state.Skill = true
  726. delay(1/30,function()
  727. rune(bodyPart.Torso.CFrame-Vector3.new(0,2.5,0),20,1)
  728. end)
  729. local pos = bodyPart.Torso.Position
  730. for i=1,10 do
  731. wait(1/30)
  732. bodyPart.Torso.CFrame = CFrame.new(pos,pos+bodyPart.Torso.CFrame.lookVector)
  733. bodyPart.Torso.Velocity = Vector3.new()
  734. translateLimb("Right Shoulder",Vector3.new(0,math.pi/2.5+(math.random()-0.5)*math.pi/48,math.pi/2+(math.random()-0.5)*math.pi/48),Vector3.new(-0.25,0,-0.75),0.9)
  735. translateLimb("Left Shoulder",Vector3.new(0,-math.pi/2.5+(math.random()-0.5)*math.pi/48,-math.pi/2+(math.random()-0.5)*math.pi/48),Vector3.new(0.25,0,-0.75),0.9)
  736. translateLimb("Right Hip",Vector3.new(-math.pi/48,0,0),Vector3.new(),0.75)
  737. translateLimb("Left Hip",Vector3.new(-math.pi/48,0,0),Vector3.new(),0.75)
  738. end
  739. ypcall(function()
  740. skillFunc[state.Move]()
  741. end)
  742. state.Skill = false
  743. state.CD = 0.2
  744. state.MP = math.max(0,state.MP-state.MPCharge)
  745. state.LastCharge = state.MPCharge
  746. state.MPCharge = 0
  747. ui.Charge.Text = "Charge: 0"
  748. end
  749. end)
  750. while active do
  751. local t = wait(1/30)
  752. state.CD = math.max(0,state.CD-t)
  753. humanoid.PlatformStand = true
  754. local cam = workspace.CurrentCamera
  755. local pos = bodyPart.Torso.Position
  756. local camXZ = CFrame.new(pos,pos+cam.CoordinateFrame.lookVector*Vector3.new(1,0,1))
  757. local platform,pos = advRay(bodyPart.Torso.Position,Vector3.new(0,state.Falling and ((bodyPart.Torso.Velocity.y*t))-4.5 or -4.5,0))
  758. --local platform,pos = advRay(bodyPart.Torso.Position,Vector3.new(0,-4.5,0))
  759. local moveZ = (not state.Charge and not state.Skill) and state.W-state.S or 0
  760. local moveX = (not state.Charge and not state.Skill) and state.A-state.D or 0
  761. local jump = (not state.Charge and not state.Skill) and state.J or 0
  762. state.Falling = not platform
  763. bpos.maxForce = Vector3.new(0,(state.Falling and 0 or 1)*(1-jump),0)*99999*(state.Skill and 0 or 1)
  764. bpos.position = Vector3.new(0,pos.y+3,0)
  765. bvel.maxForce = Vector3.new(1,state.J*10,1)*9999*(state.Falling and 0 or 1)
  766. bvel.velocity = ((moveZ == 0 and moveX == 0) and Vector3.new() or (camXZ.lookVector*moveZ+(camXZ*CFrame.Angles(0,math.pi/2,0)).lookVector*moveX).unit*stats.WalkSpeed)+Vector3.new(0,jump*40,0)
  767. local pos = bodyPart.Torso.Position
  768. if not state.Skill then
  769. gyro.cframe = camXZ
  770. if state.CD <= 0 then
  771. state.MP = math.min(stats.MP,state.MP+stats.MPRegen*t)
  772. end
  773. if state.Charge then
  774. state.MPCharge = math.min(state.MP,state.MPCharge+stats.MPCharge*t)
  775. ui.Charge.Text = "Charge: "..state.MPCharge
  776. translateLimb("Right Shoulder",Vector3.new(0,-math.pi/4+(math.random()-0.5)*math.pi/48,math.pi/2+(math.random()-0.5)*math.pi/48),Vector3.new(),0.5)
  777. translateLimb("Left Shoulder",Vector3.new(0,math.pi/4+(math.random()-0.5)*math.pi/48,-math.pi/2+(math.random()-0.5)*math.pi/48),Vector3.new(),0.5)
  778. translateLimb("Right Hip",Vector3.new(-math.pi/48,0,0),Vector3.new(),0.5)
  779. translateLimb("Left Hip",Vector3.new(-math.pi/48,0,0),Vector3.new(),0.5)
  780. else translateLimb("Neck",Vector3.new(),Vector3.new(),0.25)
  781. if state.Falling then
  782. translateLimb("Right Shoulder",Vector3.new(-math.pi/12,0,0),Vector3.new(),0.5)
  783. translateLimb("Left Shoulder",Vector3.new(-math.pi/12,0,0),Vector3.new(),0.5)
  784. translateLimb("Right Hip",Vector3.new(0,0,math.pi/24),Vector3.new(0,0.25,-0.25),0.5)
  785. translateLimb("Left Hip",Vector3.new(0,0,math.pi/24),Vector3.new(),0.5)
  786. elseif moveZ > 0 then
  787. if state.Sprint then
  788. bvel.velocity = bvel.velocity*Vector3.new(3,1,3)
  789. local ratio = math.sin(tick()*math.pi*5)
  790. local swing = math.pi/2
  791. gyro.cframe = gyro.cframe*CFrame.Angles(-math.pi/3,ratio*swing/4,0)
  792. translateLimb("Right Shoulder",Vector3.new(0,math.max(0,ratio*swing/1.5),math.pi/6+ratio*swing*2),Vector3.new(),0.25)
  793. translateLimb("Left Shoulder",Vector3.new(0,math.min(0,ratio*swing/1.5),-math.pi/6+ratio*swing*2),Vector3.new(),0.25)
  794. translateLimb("Right Hip",Vector3.new(0,0,math.pi/6-ratio*swing*1.5),Vector3.new(),0.25)
  795. translateLimb("Left Hip",Vector3.new(0,0,-math.pi/6-ratio*swing*1.5),Vector3.new(),0.25)
  796. else local ratio = math.sin(tick()*math.pi*3)
  797. local swing = math.pi/4
  798. gyro.cframe = gyro.cframe*CFrame.Angles(0,ratio*swing/12,0)
  799. translateLimb("Right Shoulder",Vector3.new(0,math.max(0,ratio*swing/3),ratio*swing),Vector3.new(),0.25)
  800. translateLimb("Left Shoulder",Vector3.new(0,math.min(0,ratio*swing/3),ratio*swing),Vector3.new(),0.25)
  801. translateLimb("Right Hip",Vector3.new(0,0,-ratio*swing),Vector3.new(),0.25)
  802. translateLimb("Left Hip",Vector3.new(0,0,-ratio*swing),Vector3.new(),0.25)
  803. end
  804. elseif moveZ < 0 then
  805. local ratio = math.sin(-tick()*math.pi*3)
  806. local swing = math.pi/4
  807. gyro.cframe = gyro.cframe*CFrame.Angles(math.pi/24,ratio*swing/12,0)
  808. translateLimb("Right Shoulder",Vector3.new(0,math.max(0,ratio*swing/3),ratio*swing),Vector3.new(),0.25)
  809. translateLimb("Left Shoulder",Vector3.new(0,math.min(0,ratio*swing/3),ratio*swing),Vector3.new(),0.25)
  810. translateLimb("Right Hip",Vector3.new(0,0,-ratio*swing),Vector3.new(),0.25)
  811. translateLimb("Left Hip",Vector3.new(0,0,-ratio*swing),Vector3.new(),0.25)
  812. elseif moveX ~= 0 then
  813. local ratio = math.sin(tick()*math.pi*3)*moveX
  814. local swing = math.pi/6
  815. gyro.cframe = gyro.cframe*CFrame.Angles(0,ratio*swing/12,0)
  816. translateLimb("Right Shoulder",Vector3.new(-math.pi/12,0,0),Vector3.new(),0.25)
  817. translateLimb("Left Shoulder",Vector3.new(-math.pi/12,0,0),Vector3.new(),0.25)
  818. translateLimb("Right Hip",Vector3.new(ratio*swing,0,math.max(0,ratio*swing/2)),Vector3.new(),0.25)
  819. translateLimb("Left Hip",Vector3.new(ratio*swing,0,math.max(0,ratio*swing/2)),Vector3.new(),0.25)
  820. else local ratio = math.sin(tick()*math.pi/2)
  821. local swing = math.pi/48
  822. translateLimb("Right Shoulder",Vector3.new(-swing+ratio*swing,0,0),Vector3.new(),0.125)
  823. translateLimb("Left Shoulder",Vector3.new(-swing+ratio*swing,0,0),Vector3.new(),0.125)
  824. translateLimb("Right Hip",Vector3.new(),Vector3.new(),0.125)
  825. translateLimb("Left Hip",Vector3.new(),Vector3.new(),0.125)
  826. end
  827. end
  828. end
  829. ui.MP.Text = "Magic Power: "..state.MP
  830. for _,v in pairs(limb) do
  831. v.Weld.C0 = CFrame.new(v.C0[1]+v.Offset)*v.C0[2]*CFrame.Angles(v.Rotation.x,v.Rotation.y,v.Rotation.z)
  832. v.Weld.C1 = v.C1
  833. end
  834. end
  835. else script:Clone().Parent = game.Players[Shared].Character
  836. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement