mathmasterphil

Battle Axe

Feb 23rd, 2015
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.73 KB | None | 0 0
  1. --- shortcuts
  2. v3 = Vector3.new
  3. cn = CFrame.new
  4. ca2 = CFrame.Angles
  5. mf = math.floor
  6. mran = math.random rn=mran
  7. mrad = math.rad rd=mrad
  8. mdeg = math.deg dg=mdeg
  9. ca = function(x,y,z) return ca2(mrad(x),mrad(y),mrad(z)) end
  10. mran2 = function(a,b) return mran(a*1000,b*1000)/1000 end
  11. ud=UDim2.new
  12. bn = BrickColor.new
  13. c3 = Color3.new
  14. -----
  15. Player = game:service'Players'.LocalPlayer
  16. Char = Player.Character
  17. Torso = Char.Torso
  18. Head = Char.Head
  19. Humanoid = Char.Humanoid
  20. Root=Char.HumanoidRootPart.RootJoint
  21.  
  22. LA=Char['Left Arm']
  23. RA=Char['Right Arm']
  24. LL=Char['Left Leg']
  25. RL=Char['Right Leg']
  26. LAM=Torso['Left Shoulder']
  27. RAM=Torso['Right Shoulder']
  28. LLM=Torso['Left Hip']
  29. RLM=Torso['Right Hip']
  30. Neck=Torso.Neck
  31. Neck.C0=cn(0,1.5,0)
  32. Neck.C1=cn(0,0,0)
  33.  
  34. name='Axe'
  35.  
  36. pcall(function() Player.Backpack[name]:Remove() end)
  37. pcall(function() Char[name]:Remove() end)
  38. pcall(function() Char.Block:Remove() end)
  39. pcall(function() Root.Parent.BodyGyro:Destroy() end)
  40. pcall(function() game:GetService("Lighting").Outlines=false end)
  41.  
  42. as={}
  43. so={'metal','Block','Slash','Slash2','Hit','Kick','Hit2','Smash','SwordSlash','Hit3','Slash4','FireSlash','CounterHelix','FireSound','Chop1'}
  44. as.corner='11294911'
  45. as.cone='1033714'
  46. as.ring="3270017"
  47. as.Chakram='47260990'
  48. as.ring2='18430887'
  49. as.blast='20329976'
  50. as.missile='10207677'
  51. as.fire='2693346'
  52. as.Cloud='1095708'
  53. as.boom='3264793'
  54. as.abscond='2767090'
  55. as.firelaser='13775494'
  56. as.diamond='9756362'
  57. as.metal='rbxasset://sounds\\unsheath.wav'
  58. as.Block = 'rbxasset://sounds\\metal.ogg'
  59. as.SwordSlash = 'rbxasset://sounds//swordslash.wav'
  60. as.Slash = '10209645'
  61. as.Slash2 = '46760716'
  62. as.Slash4 = '109362710'
  63. as.Hit='10209583'
  64. as.Hit2='10209590'
  65. as.Kick='46153268'
  66. as.cast='2101137'
  67. as.Smash='2692806'
  68. as.Hit3='2801263'
  69. as.FireSlash='159218913'
  70. as.CounterHelix='160069154'
  71. as.FireSound='31760113'
  72. as.Crack='49173398'
  73. as.Chop1='159798328'
  74.  
  75. for i,v in pairs(as) do
  76. if type(tonumber(v:sub(1,3)))=="number" then
  77. as[i]="http://www.roblox.com/asset/?id="..v
  78. game:GetService("ContentProvider"):Preload(as[i])
  79. end
  80. end
  81.  
  82.  
  83. iNew=function(tab)
  84. local v=Instance.new(tab[1])
  85. for Ind,Val in pairs(tab) do
  86. if Ind~=1 and Ind~=2 then
  87. v[Ind] = Val
  88. end
  89. end
  90. v.Parent=tab[2]==0 and LastMade or tab[2]
  91. LastMade=v
  92. return v
  93. end
  94.  
  95. iPart=function(tab)
  96. local v=Instance.new(tab.type or 'Part')
  97. if tab.type~='CornerWedgePart' then v.formFactor='Custom' end
  98. v.CanCollide=false
  99. v.TopSurface=0 v.BottomSurface=0
  100. v.Size=v3(tab[2],tab[3],tab[4])
  101. if tab.co then v.BrickColor=bn(tab.co) end
  102. if tab.tr then v.Transparency=tab.tr end
  103. if tab.rf then v.Reflectance=tab.rf end
  104. if tab.cf then v.CFrame=tab.cf end
  105. if tab.an then v.Anchored=tab.an end
  106. v.Parent=tab[1]
  107. LastMade=v
  108. return v
  109. end
  110.  
  111. Block=iNew{'NumberValue',Char,Name='Block',Value=0}
  112. Gyro=iNew{"BodyGyro",Root.Parent,D=50,P=1500}
  113.  
  114. Root.C0=cn(0,0,0)
  115. Root.C1=cn(0,0,0)
  116.  
  117. pcall(function() Torso.LAW:Remove() Torso.RAW:Remove() Torso.LLW:Remove() Torso.RLW:Remove() end)
  118. LAW=iNew{'Weld',Torso,Name='LAW',Part0=Torso,C0=cn(-1.5,0.5,0),C1=cn(0,0.5,0)}
  119. RAW=iNew{'Weld',Torso,Name='RAW',Part0=Torso,C0=cn( 1.5,0.5,0),C1=cn(0,0.5,0)}
  120. LLW=iNew{'Weld',Torso,Name='LLW',Part0=Torso,C0=cn(-0.5, -1,0),C1=cn(0, 1,0)}
  121. RLW=iNew{'Weld',Torso,Name='RLW',Part0=Torso,C0=cn( 0.5, -1,0),C1=cn(0, 1,0)}
  122.  
  123. function Arms(on)
  124. LAM.Parent=Torso LAM.Part0=Torso
  125. RAM.Parent=Torso RAM.Part0=Torso
  126. LAM.Part1=on and nil or LA
  127. RAM.Part1=on and nil or RA
  128. LAW.Part1=on and LA or nil
  129. RAW.Part1=on and RA or nil
  130. end
  131.  
  132. function Legs(on)
  133. LLM.Parent=Torso LLM.Part0=Torso
  134. RLM.Parent=Torso RLM.Part0=Torso
  135. LLM.Part1=on and nil or LL
  136. RLM.Part1=on and nil or RL
  137. LLW.Part1=on and LL or nil
  138. RLW.Part1=on and RL or nil
  139. end
  140.  
  141. function GetWeld(weld)
  142. if not weld:findFirstChild("Angle") then
  143. local a = Instance.new("Vector3Value", weld)
  144. a.Name = "Angle"
  145. local x,y,z=weld.C0:toEulerAnglesXYZ()
  146. a.Value=v3(mdeg(x),mdeg(y),mdeg(z))
  147. end
  148. return weld.C0.p,weld.Angle.Value
  149. end
  150. function ClearWeld(weld)
  151. if weld:findFirstChild'Angle' then
  152. weld.Angle:Remove()
  153. end
  154. end
  155. function SetWeld(weld,CC,i, loops, origpos,origangle, nextpos,nextangle,smooth)
  156. local CO='C'..CC
  157. smooth = smooth or 1
  158. if not weld:findFirstChild("Angle") then
  159. local a = Instance.new("Vector3Value", weld)
  160. a.Name = "Angle"
  161. local x,y,z=weld.C0:toEulerAnglesXYZ()
  162. a.Value=v3(mdeg(x),mdeg(y),mdeg(z))
  163. end
  164.  
  165. local perc
  166. if smooth == 1 then
  167. perc = math.sin((math.pi/2)/loops*i)
  168. else
  169. perc = i/loops
  170. end
  171.  
  172. local tox,toy,toz = 0,0,0
  173. if origangle.x > nextangle.x then
  174. tox = -math.abs(origangle.x - nextangle.x) *perc
  175. else
  176. tox = math.abs(origangle.x - nextangle.x) *perc
  177. end
  178. if origangle.y > nextangle.y then
  179. toy = -math.abs(origangle.y - nextangle.y) *perc
  180. else
  181. toy = math.abs(origangle.y - nextangle.y) *perc
  182. end
  183. if origangle.z > nextangle.z then
  184. toz = -math.abs(origangle.z - nextangle.z) *perc
  185. else
  186. toz = math.abs(origangle.z - nextangle.z) *perc
  187. end
  188.  
  189. local tox2,toy2,toz2 = 0,0,0
  190. if origpos.x > nextpos.x then
  191. tox2 = -math.abs(origpos.x - nextpos.x) *perc
  192. else
  193. tox2 = math.abs(origpos.x - nextpos.x) *perc
  194. end
  195. if origpos.y > nextpos.y then
  196. toy2 = -math.abs(origpos.y - nextpos.y) *perc
  197. else
  198. toy2 = math.abs(origpos.y - nextpos.y) *perc
  199. end
  200. if origpos.z > nextpos.z then
  201. toz2 = -math.abs(origpos.z - nextpos.z) *perc
  202. else
  203. toz2 = math.abs(origpos.z - nextpos.z) *perc
  204. end
  205. weld.Angle.Value = Vector3.new(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  206. weld[CO] = CFrame.new(origpos.x + tox2,origpos.y + toy2,origpos.z + toz2)*ca(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  207. end
  208.  
  209.  
  210. -- Antiboomz0r's functions -----------------------------------------------------------------
  211. TrailOn = false
  212. local ppart = iPart{nil,0.2,0.2,0.2}
  213. ppart.Material = "SmoothPlastic"
  214. ppart.TopSurface = "SmoothNoOutlines"
  215. ppart.BottomSurface = "SmoothNoOutlines"
  216. ppart.RightSurface = "SmoothNoOutlines"
  217. ppart.LeftSurface = "SmoothNoOutlines"
  218.  
  219. local function CFrameFromTopBack(at, top, back)
  220. local right = top:Cross(back)
  221. return CFrame.new(at.x, at.y, at.z,
  222. right.x, top.x, back.x,
  223. right.y, top.y, back.y,
  224. right.z, top.z, back.z)
  225. end
  226.  
  227. function Triangle(a, b, c)
  228. local edg1 = (c-a):Dot((b-a).unit)
  229. local edg2 = (a-b):Dot((c-b).unit)
  230. local edg3 = (b-c):Dot((a-c).unit)
  231. if edg1 <= (b-a).magnitude and edg1 >= 0 then
  232. a, b, c = a, b, c
  233. elseif edg2 <= (c-b).magnitude and edg2 >= 0 then
  234. a, b, c = b, c, a
  235. elseif edg3 <= (a-c).magnitude and edg3 >= 0 then
  236. a, b, c = c, a, b
  237. else
  238. print("unreachable")
  239. end
  240. local len1 = (c-a):Dot((b-a).unit)
  241. local len2 = (b-a).magnitude - len1
  242. local width = (a + (b-a).unit*len1 - c).magnitude
  243. local maincf = CFrameFromTopBack(a, (b-a):Cross(c-b).unit, -(b-a).unit)
  244. local list = {}
  245. if len1 > 0.01 then
  246. local w1 = iNew{
  247. "WedgePart",
  248. Pack,
  249. FormFactor="Custom",
  250. BrickColor=ppart.BrickColor,
  251. Transparency=ppart.Transparency,
  252. Reflectance=ppart.Reflectance,
  253. Material=ppart.Material,
  254. CanCollide=ppart.CanCollide
  255. }
  256. local sz = v3(0.2, width, len1)
  257. w1.Size = sz
  258. local sp = iNew{"SpecialMesh",w1,MeshType="Wedge",Scale=v3(0,1,1)*sz/w1.Size}
  259. w1:BreakJoints()
  260. w1.Anchored = true
  261. w1.Transparency = 0.7
  262. Spawn(function()
  263. for i=0,1,0.1 do
  264. wait()
  265. w1.Transparency=w1.Transparency+0.03
  266. end
  267. end)
  268. w1.CFrame = maincf*ca2(math.pi,0,math.pi/2)*cn(0,width/2,len1/2)
  269. table.insert(list,w1)
  270. end
  271. if len2 > 0.01 then
  272. local w2 = iNew{
  273. "WedgePart",
  274. Pack,
  275. FormFactor="Custom",
  276. BrickColor=ppart.BrickColor,
  277. Transparency=ppart.Transparency,
  278. Reflectance=ppart.Reflectance,
  279. Material=ppart.Material,
  280. CanCollide=ppart.CanCollide
  281. }
  282. local sz = v3(0.2, width, len2)
  283. w2.Size = sz
  284. local sp = iNew{"SpecialMesh",w2,MeshType="Wedge",Scale=v3(0,1,1)*sz/w2.Size}
  285. w2:BreakJoints()
  286. w2.Anchored = true
  287. w2.Transparency = 0.7
  288. Spawn(function()
  289. for i=0,1,0.1 do
  290. wait()
  291. w2.Transparency=w2.Transparency+0.03
  292. end
  293. end)
  294. w2.CFrame = maincf*ca2(math.pi,math.pi,-math.pi/2)*cn(0,width/2,-len1 - len2/2)
  295. table.insert(list,w2)
  296. end
  297. return unpack(list)
  298. end
  299. -- Antiboomz0r's functions -----------------------------------------------------------------
  300.  
  301.  
  302. LoopFunctions={}
  303. function DoLoop(times,func)
  304. LoopFunctions[#LoopFunctions+1]={times,0,func}
  305. end
  306.  
  307. function PlaySound(sound,pitch,volume)
  308. local S0und = tostring(sound)
  309. so[S0und].Pitch=pitch
  310. so[S0und].Volume=volume
  311. so[S0und]:Play()
  312. return S0und
  313. end
  314.  
  315. function Raycast(Pos,Dir,Ign)
  316. return workspace:FindPartOnRay(Ray.new(Pos,Dir.unit*300),Ign)
  317. end
  318.  
  319. function FindGround(cf,ig)
  320. local ax,ay,az = cf:toEulerAnglesXYZ()
  321. local bhit,bpos=Raycast(cf.p,cf.p-(cf.p+v3(0,200,0)),ig)
  322. if bhit and bpos then
  323. return bhit,cn(bpos)*ca(ax,ay,az)
  324. end
  325. end
  326.  
  327. function AddBV(str,cfr,par,debt)
  328. if not par then return end
  329. if par:findFirstChild'LibBV' then
  330. par.LibBV:Remove()
  331. end
  332. BodyVelocity = iNew{'BodyVelocity',par,velocity=cfr.lookVector*str,maxForce=v3(1,1,1)/0,Name='LibBV'}
  333. game:GetService("Debris"):AddItem(BodyVelocity,debt)
  334. end
  335.  
  336. function AddBG(str,par,debt)
  337. if not par then return end
  338. if par:findFirstChild'LibBG' then
  339. par.LibBG:Remove()
  340. end
  341. BodyGyro=iNew{'BodyGyro',par,maxTorque=v3(1,1,1)/0,P=100000,cframe=str,Name='LibBG'}
  342. game:GetService("Debris"):AddItem(BodyGyro,debt)
  343. end
  344.  
  345. function MakeCrack(pos,sc,tim,par,ig)
  346. Spawn(function()
  347. if not tim then
  348. tim = 5
  349. end
  350. local bhit,bpos=Raycast(pos,pos-(pos + v3(0,10,0)),ig)
  351. if bhit and bpos then
  352. local Crack = iPart{par or workspace,sc,0.2,sc,ca=false,an=true,tr=1,co=bhit.BrickColor.Name} Crack.CFrame=cn(bpos)*ca(0,rn(-360,360),0)
  353. local Image = iNew({"Decal",Crack,Face="Top",Texture=as.Crack}) game:GetService("Debris"):AddItem(Crack,tim)
  354. end
  355. end)
  356. end
  357.  
  358. function MeshEffect(par,cf,x,y,z,inc,col,sha,adj)
  359. local adj = adj or cn(0,0,0)
  360. local mp=iPart{par,1,1,1,co=col,tr=0.3,ca=false,an=true} mp.CFrame=cf mp.Name="unray"
  361. local ms
  362. if sha:sub(1,4)=='http' then
  363. ms=iNew{'SpecialMesh',mp,MeshId=sha}
  364. elseif sha=='Block' then
  365. ms=iNew{'BlockMesh',mp}
  366. elseif sha=='Cylinder' then
  367. ms=iNew{'CylinderMesh',mp}
  368. elseif sha=='Head' or sha=='Sphere' then
  369. ms=iNew{'SpecialMesh',mp,MeshType=sha}
  370. end
  371. Spawn(function()
  372. for i=0,1,inc do
  373. mp.Transparency=0.2+(0.7*i)
  374. mp.CFrame=mp.CFrame*adj
  375. ms.Scale=v3(x,y,z)*(0.3+(0.7*i))
  376. wait(0)
  377. end
  378. mp:Destroy()
  379. end)
  380. end
  381.  
  382.  
  383. Dmg=false
  384. Dmgv={17,23}
  385. SpikeDmg=false
  386. HitDebounce={}
  387. Multiplier = 1
  388. Damage=function(Hum,Mult,Sound)
  389. if not Hum.Parent:findFirstChild'Torso' then return end
  390. local HName=Hum.Parent.Name
  391. if HitDebounce[HName] and HitDebounce[HName]>tick() then return end
  392. HitDebounce[HName]=tick()+0.3
  393. local Mult=Mult or 1
  394. local Dealt=mran(Dmgv[1],Dmgv[2])*Mult
  395. local col=''
  396. if Hum.Parent:findFirstChild'Block' and Hum.Parent.Block.Value>0 then
  397. Hum.Parent.Block.Value=Hum.Parent.Block.Value-1
  398. col='Bright blue'
  399. if Sound then
  400. PlaySound("Block",1,1)
  401. PlaySound("Hit3",0.8,0.4)
  402. end
  403. else
  404. Hum:TakeDamage(Dealt)
  405. col='Bright red'
  406. if Sound then
  407. PlaySound("Hit3",0.8,0.4)
  408. end
  409. if Anim == "HEAD SMASH!" and Hum.Parent:FindFirstChild("Head") then
  410. for i=1,mran(5,9) do
  411. local blood = iPart{workspace,0.5,0.5,0.5,co="Bright red"} blood.CanCollide=true
  412. game:GetService("Debris"):AddItem(blood,2)
  413. blood.CFrame = Hum.Parent.Head.CFrame
  414. blood.Velocity = v3(rn(-2,2),rn(-2,2),rn(-2,2))
  415. blood.RotVelocity = v3(rn(-2,2),rn(-2,2),rn(-2,2))
  416. end
  417. end
  418. end
  419. local DoH=iNew{'Model',Pack,Name=col=='Bright blue' and 'Block' or Dealt}
  420. iNew{'Humanoid',DoH,MaxHealth=0,Health=0,Name=''}
  421. local Doh=iPart{DoH,1,0.2,1,co=col,an=true}
  422. Doh.Name='Head'
  423. iNew{'BlockMesh',Doh}
  424. local dofs=Hum.Parent.Torso.CFrame*cn(mran2(-1.5,1.5),2.5,mran2(-1,1))
  425. Doh.CFrame=dofs
  426. game:GetService("Debris"):AddItem(Doh,1)
  427. end
  428.  
  429.  
  430. -- Weapon
  431. len=8
  432. c={"Dark stone grey","Brown","Medium stone grey","Brick yellow","Reddish brown","Really black"}
  433.  
  434. Pack=iNew{'Model',Char,Name=name}
  435.  
  436. Axe = iPart{Pack,0.35,len,0.35,co=c[2]} Axe.Material="Wood"
  437. wAxe = iNew{"Weld",Pack,Part0=LA,Part1=Axe,C0=cn(0,-1,0)*ca(-90,0,0)}
  438.  
  439. Top = iPart{Pack,0.4,1.1,0.4,co=c[1]}
  440. iNew{"Weld",Pack,Part0=Axe,Part1=Top,C0=cn(0,len/2-0.8,0)*ca(0,90,0)}
  441.  
  442. AxeHitBox = iPart{Pack,1,4,4,tr=1}
  443. iNew{"Weld",Pack,Part0=Top,Part1=AxeHitBox,C0=ca(0,90,0)}
  444.  
  445. Bottom = iPart{Pack,0.36,1.1,0.36,co=c[1]}
  446. iNew{"Weld",Pack,Part0=Axe,Part1=Bottom,C0=cn(0,-len/2+0.45,0)}
  447.  
  448. Part = iPart{Pack,0.2,0.2,0.2,co=c[2]} Part.Material="Wood"
  449. iNew{"Weld",Pack,Part0=Bottom,Part1=Part,C0=cn(0,-0.65,0)}
  450.  
  451. Ring = iPart{Pack,1,1,1,co=c[1]}
  452. iNew{"Weld",Pack,Part0=Part,Part1=Ring,C0=cn(0,-0.4,0)*ca(0,90,0)}
  453. iNew{"SpecialMesh",Ring,MeshId=as.ring,Scale=v3(0.6,0.6,1.3)}
  454.  
  455. RingHitBox = iPart{Pack,2,2,1,tr=1}
  456. iNew{"Weld",Pack,Part0=Ring,Part1=RingHitBox}
  457.  
  458. Grip = iPart{Pack,0.37,1.2,0.37,co=c[4]} Grip.Material="Fabric"
  459. iNew{"Weld",Pack,Part0=Axe,Part1=Grip,C0=cn(0,0.5,0)}
  460.  
  461. for i=-1,1,2 do
  462. gp = iPart{Pack,0.42,1,0.42,co=c[6]} Grip.Material="Plastic"
  463. iNew{"Weld",Pack,Part0=Grip,Part1=gp,C0=cn(0,0.6*i,0)}
  464. iNew{"BlockMesh",gp,Scale=v3(1,0.05,1)}
  465. end
  466.  
  467. Grip = iPart{Pack,0.37,1.2,0.37,co=c[4]} Grip.Material="Fabric"
  468. iNew{"Weld",Pack,Part0=Axe,Part1=Grip,C0=cn(0,-2.5,0)}
  469.  
  470. for i=-1,1,2 do
  471. gp = iPart{Pack,0.42,1,0.42,co=c[6]} Grip.Material="Plastic"
  472. iNew{"Weld",Pack,Part0=Grip,Part1=gp,C0=cn(0,0.6*i,0)}
  473. iNew{"BlockMesh",gp,Scale=v3(1,0.05,1)}
  474. end
  475.  
  476. for i=-1,1,2 do
  477. p1 = iPart{Pack,0.6,0.9,0.2,co=c[1]}
  478. iNew{"Weld",Pack,Part0=Top,Part1=p1,C0=cn(-0.4*i,0,0)}
  479.  
  480. p2 = iPart{Pack,0.7,2.25,0.2,co=c[1]}
  481. iNew{"Weld",Pack,Part0=p1,Part1=p2,C0=cn(-0.65*i,0,0)}
  482.  
  483. p3 = iPart{Pack,0.35,0.9,0.2,co=c[1]}
  484. iNew{"Weld",Pack,Part0=p2,Part1=p3,C0=cn(-0.525*i,0,0)}
  485.  
  486. b = iPart{Pack,1,1,0.9,co=c[3]}
  487. iNew{"Weld",Pack,Part0=p3,Part1=b,C0=cn(-0.2*i,0,0)*ca(90,0,0)*ca(0,0,90)}
  488. iNew{"BlockMesh",b,Scale=v3(0.1,0.05,1)}
  489.  
  490. p4 = iPart{Pack,0.2,0.675,0.35,co=c[1]}
  491. iNew{"Weld",Pack,Part0=p3,Part1=p4,C0=cn(0,0.7875,0)*ca(0,90*i,0)}
  492. iNew{"SpecialMesh",p4,MeshType="Wedge"}
  493.  
  494. b = iPart{Pack,1,1,(0.675^2+0.35^2)^0.5,co=c[3]}
  495. iNew{"Weld",Pack,Part0=p4,Part1=b,C0=ca2(-math.atan(0.675/0.35),0,0)*cn(0,0.025,0)}
  496. iNew{"BlockMesh",b,Scale=v3(0.1,0.05,1)}
  497.  
  498. p5 = iPart{Pack,0.2,0.675,0.35,co=c[1]}
  499. iNew{"Weld",Pack,Part0=p3,Part1=p5,C0=cn(0,-0.7875,0)*ca(180,90*i,0)}
  500. iNew{"SpecialMesh",p5,MeshType="Wedge"}
  501.  
  502. b = iPart{Pack,1,1,(0.675^2+0.35^2)^0.5,co=c[3]}
  503. iNew{"Weld",Pack,Part0=p5,Part1=b,C0=ca2(-math.atan(0.675/0.35),0,0)*cn(0,0.025,0)}
  504. iNew{"BlockMesh",b,Scale=v3(0.1,0.05,1)}
  505.  
  506. p6 = iPart{Pack,0.2,0.8,0.7,co=c[1]} --
  507. iNew{"Weld",Pack,Part0=p2,Part1=p6,C0=cn(0,1.525,0)*ca(0,90*i,0)}
  508. iNew{"SpecialMesh",p6,MeshType="Wedge"}
  509.  
  510. b = iPart{Pack,1,1,(0.8^2+0.7^2)^0.5,co=c[3]}
  511. iNew{"Weld",Pack,Part0=p6,Part1=b,C0=ca2(-math.atan(0.8/0.7),0,0)*cn(0,0.025,0)}
  512. iNew{"BlockMesh",b,Scale=v3(0.1,0.05,1)}
  513.  
  514. p7 = iPart{Pack,0.2,0.8,0.7,co=c[1]}
  515. iNew{"Weld",Pack,Part0=p2,Part1=p7,C0=cn(0,-1.525,0)*ca(180,90*i,0)}
  516. iNew{"SpecialMesh",p7,MeshType="Wedge"}
  517.  
  518. b = iPart{Pack,1,1,(0.8^2+0.7^2)^0.5,co=c[3]}
  519. iNew{"Weld",Pack,Part0=p7,Part1=b,C0=ca2(-math.atan(0.8/0.7),0,0)*cn(0,0.025,0)}
  520. iNew{"BlockMesh",b,Scale=v3(0.1,0.05,1)}
  521.  
  522. p8 = iPart{Pack,0.2,0.675,0.6,co=c[1]}
  523. iNew{"Weld",Pack,Part0=p1,Part1=p8,C0=cn(0,0.7875,0)*ca(0,-90*i,0)}
  524. iNew{"SpecialMesh",p8,MeshType="Wedge"}
  525.  
  526. p9 = iPart{Pack,0.2,0.675,0.6,co=c[1]}
  527. iNew{"Weld",Pack,Part0=p1,Part1=p9,C0=cn(0,-0.7875,0)*ca(180,-90*i,0)}
  528. iNew{"SpecialMesh",p9,MeshType="Wedge"}
  529. end
  530. for i,v in pairs(Pack:GetChildren()) do if v:IsA("BasePart") then v.CanCollide=false v.Name="Ignore" end end
  531.  
  532.  
  533. function Touched(hit)
  534. if not Dmg and not SpikeDmg then return end
  535. if hit.Parent==Char then return end
  536. if not hit.Parent then return end
  537. if hit.Parent:findFirstChild'Humanoid' then
  538. local Hum=hit.Parent.Humanoid
  539. Damage(Hum,Multiplier,true)
  540. local HMT=Hum.Parent:findFirstChild'Torso'
  541. if HMT then
  542. if Anim~="SPIKEZ" then
  543. AddBV(20,cn(Torso.Position,HMT.Position),HMT,0.15)
  544. end
  545. end
  546. end
  547. end
  548. AxeHitBox.Touched:connect(Touched)
  549.  
  550.  
  551. for i,v in pairs(Torso:children()) do
  552. if v:IsA'Sound' then
  553. v:Destroy()
  554. end
  555. end
  556.  
  557. for i,n in pairs(so) do
  558. local v=iNew{'Sound',Torso,Volume=1,Pitch=1,Looped=false,Name=v,SoundId=as[n]}
  559. so[n]=v
  560. end
  561.  
  562. function ReturnPose()
  563. RePose()
  564. for i=1,ASpeed do
  565. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,PoseLA,PoseLA2,1)
  566. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,PoseRA,PoseRA2,1)
  567. SetWeld(LLW,0,i,ASpeed,wLL,wLL2,PoseLL,PoseLL2,1)
  568. SetWeld(RLW,0,i,ASpeed,wRL,wRL2,PoseRL,PoseRL2,1)
  569. SetWeld(Root,0,i,ASpeed,wRT,wRT2,PoseRT,PoseRT2,1)
  570. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,PoseNE,PoseNE2,1)
  571. SetWeld(wAxe,0,i,ASpeed,wAX,wAX2,PoseAX,PoseAX2,1)
  572. wait(0)
  573. end
  574. end
  575.  
  576. function RePose()
  577. local a,b=GetWeld(LAW)
  578. local c,d=GetWeld(RAW)
  579. local e,f=GetWeld(LLW)
  580. local g,h=GetWeld(RLW)
  581. local i,j=GetWeld(wAxe)
  582. local k,l=GetWeld(Root)
  583. local m,n=GetWeld(Neck)
  584. wLA=a wLA2=b
  585. wRA=c wRA2=d
  586. wLL=e wLL2=f
  587. wRL=g wRL2=h
  588. wAX=i wAX2=j
  589. wRT=k wRT2=l
  590. wNE=m wNE2=n
  591. end
  592.  
  593.  
  594. Mouse = Player:GetMouse()
  595. keys={}
  596. Combo = 0
  597. ComboTime = 20
  598. Mouse.Button1Down:connect(function()
  599. if Anim == "" or string.find(Anim,"Combo") then
  600. local function Break()
  601. Combo=-0.5
  602. Humanoid.WalkSpeed = 16
  603. ReturnPose()
  604. Anim=""
  605. Combo=0
  606. end
  607. if Combo == 0 then
  608. Combo = 0.5
  609. Anim = "Combo1"
  610. wait(0.1)
  611. RePose()
  612. for i=1,ASpeed do
  613. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.5,0.5,0),v3(75,-90+190,0),1)
  614. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.4,0.5,0),v3(100,-90+90,-25),1)
  615. SetWeld(LLW,0,i,ASpeed,wLL,wLL2,v3(-0.5,-1,0),v3(0,0,-10),1)
  616. SetWeld(RLW,0,i,ASpeed,wRL,wRL2,v3(0.5,-1,0),v3(0,0,10),1)
  617. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(0,70,0),1)
  618. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1.5,0),v3(0,20,0),1)
  619. SetWeld(wAxe,0,i,ASpeed,wAX,wAX2,v3(0,-1,-2.5),v3(-90,0,0),1)
  620. wait(0)
  621. end
  622. Combo = 1
  623. DoLoop(ComboTime,function(i)
  624. if i==1 and Combo==1 then
  625. Break()
  626. end
  627. wait()
  628. end)
  629. elseif Combo == 1 then
  630. Combo = 1.5
  631. Anim="Combo2"
  632. wait(0.1)
  633. RePose()
  634. Dmg=true
  635. PlaySound("FireSlash",1,1)
  636. TrailOn = true
  637. for i=1,ASpeed/1.5 do
  638. SetWeld(LAW,0,i,ASpeed/1.5,wLA,wLA2,v3(-1.5,0.5,0),v3(75,-90+190,0),1)
  639. SetWeld(RAW,0,i,ASpeed/1.5,wRA,wRA2,v3(1.4,0.5,0),v3(100,-90+90,-25),1)
  640. SetWeld(LLW,0,i,ASpeed/1.5,wLL,wLL2,v3(-0.5,-1,0),v3(0,0,-10),1)
  641. SetWeld(RLW,0,i,ASpeed/1.5,wRL,wRL2,v3(0.5,-1,0),v3(0,0,10),1)
  642. SetWeld(Root,0,i,ASpeed/1.5,wRT,wRT2,v3(0,0,0),v3(0,-150,0),1)
  643. SetWeld(Neck,0,i,ASpeed/1.5,wNE,wNE2,v3(0,1.5,0),v3(0,30,0),1)
  644. SetWeld(wAxe,0,i,ASpeed/1.5,wAX,wAX2,v3(0,-1,-2.5),v3(-90,0,0),1)
  645. wait(0)
  646. end
  647. Dmg=false
  648. TrailOn = false
  649. Combo = 2
  650. DoLoop(ComboTime,function(i)
  651. if i==1 and Combo==2 then
  652. Break()
  653. end
  654. wait()
  655. end)
  656. end
  657. end
  658. end)
  659.  
  660. Mouse.KeyDown:connect(function(key)
  661. keys[key]=true
  662. if keys["q"] then
  663. if Anim == "" and Combo==0 then
  664. Anim = "Frontal Ground Smash"
  665. wait(0.1)
  666. Legs(0)
  667. RePose()
  668. Humanoid.WalkSpeed = 2
  669. for i=1,ASpeed do
  670. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.2,0,0.2),v3(75,-90+60,20),1)
  671. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.5,0.5,-0.7),v3(120,-80+30,-25),1)
  672. SetWeld(LLW,0,i,ASpeed,wLL,wLL2,v3(-0.5,-1,0),v3(-20,0,-10),1)
  673. SetWeld(RLW,0,i,ASpeed,wRL,wRL2,v3(0.5,0,-1),v3(0,0,10),1)
  674. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(20,0,0),1)
  675. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1.5,0),v3(30,0,0),1)
  676. SetWeld(wAxe,0,i,ASpeed,wAX,wAX2,PoseAX,v3(-90,45,0),1)
  677. wait(0)
  678. end
  679. wait(0.15)
  680. PlaySound("FireSlash",1.2,1)
  681. Dmg=true
  682. Multiplier = 2
  683. RePose()
  684. TrailOn = true
  685. for i=1,ASpeed/2 do
  686. SetWeld(LAW,0,i,ASpeed/2,wLA,wLA2,v3(-1.3,0.5,0.2),v3(-10,-90+80,0),1)
  687. SetWeld(RAW,0,i,ASpeed/2,wRA,wRA2,v3(1.5,0.5,-0.7),v3(40,-80+30,-40),1)
  688. SetWeld(LLW,0,i,ASpeed/2,wLL,wLL2,v3(-0.5,-1,0),v3(0,0,-10),1)
  689. SetWeld(RLW,0,i,ASpeed/2,wRL,wRL2,v3(0.5,-1,0),v3(0,0,10),1)
  690. SetWeld(Root,0,i,ASpeed/2,wRT,wRT2,v3(0,0,0),v3(0,0,0),1)
  691. SetWeld(Neck,0,i,ASpeed/2,wNE,wNE2,v3(0,1.5,0),v3(-15,8,0),1)
  692. SetWeld(wAxe,0,i,ASpeed/2,wAX,wAX2,PoseAX,v3(-90,0,0),1)
  693. wait(0)
  694. end
  695. PlaySound("Smash",0.35,1)
  696. Dmg=false
  697. Multiplier = 1
  698. TrailOn = false
  699. ReturnPose()
  700. Humanoid.WalkSpeed = 16
  701. Legs(Walking and nil or 0)
  702. Anim=""
  703. end
  704. elseif keys["e"] then
  705. if Anim == "" and Combo==0 then
  706. Anim = "Counter Helix"
  707. wait(0.1)
  708. RePose()
  709. for i=1,ASpeed do
  710. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.5,0.5,0),v3(75,-90+190,0),1)
  711. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.4,0.5,0),v3(100,-90+90,-25),1)
  712. SetWeld(LLW,0,i,ASpeed,wLL,wLL2,v3(-0.5,-1,0),v3(0,0,-10),1)
  713. SetWeld(RLW,0,i,ASpeed,wRL,wRL2,v3(0.5,-1,0),v3(0,0,10),1)
  714. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(0,70,0),1)
  715. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1.5,0),v3(0,20,0),1)
  716. SetWeld(wAxe,0,i,ASpeed,wAX,wAX2,v3(0,-1,-2.5),v3(-90,0,0),1)
  717. wait(0)
  718. end
  719. PlaySound("CounterHelix",1,1)
  720. Dmg=true
  721. RePose()
  722. TrailOn = true
  723. Spawn(function()
  724. for i=1,ASpeed/1.5 do
  725. SetWeld(LAW,0,i,ASpeed/1.5,wLA,wLA2,v3(-1.5,0.5,0),v3(75,-90+190,0),1)
  726. SetWeld(RAW,0,i,ASpeed/1.5,wRA,wRA2,v3(1.4,0.5,0),v3(100,-90+90,-25),1)
  727. SetWeld(LLW,0,i,ASpeed/1.5,wLL,wLL2,v3(-0.5,-1,0),v3(0,0,-10),1)
  728. SetWeld(RLW,0,i,ASpeed/1.5,wRL,wRL2,v3(0.5,-1,0),v3(0,0,10),1)
  729. SetWeld(Neck,0,i,ASpeed/1.5,wNE,wNE2,v3(0,1.5,0),v3(0,30,0),1)
  730. SetWeld(wAxe,0,i,ASpeed/1.5,wAX,wAX2,v3(0,-1,-2.5),v3(-90,0,0),1)
  731. wait(0)
  732. end
  733. end)
  734. local lolrandom=rn(60,90)
  735. for i=1,ASpeed*2 do
  736. SetWeld(Root,0,i,ASpeed*2,wRT,wRT2,v3(0,0,0),v3(0,-360-lolrandom,0),1)
  737. wait()
  738. if i==(ASpeed*2) then
  739. ClearWeld(Root)
  740. for i=1,1 do
  741. SetWeld(Root,0,i,1,v3(0,0,0),v3(0,0,0),v3(0,0,0),v3(0,-lolrandom,0),1)
  742. end
  743. end
  744. end
  745. TrailOn = false
  746. Dmg=false
  747. ReturnPose()
  748. Legs(Walking and nil or 0)
  749. Anim=""
  750. end
  751. elseif keys["r"] then
  752. if Anim == "" and Combo == 0 then
  753. Anim = "Spike Upheaval"
  754. wait(0.1)
  755. RePose()
  756. Legs(0)
  757. for i=1,ASpeed do
  758. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.2,0.8,0),v3(180,-90+90,45),1)
  759. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.2,0.8,0),v3(180,-90+90,-45),1)
  760. SetWeld(LLW,0,i,ASpeed,wLL,wLL2,v3(-0.5,-1,0),v3(-30,0,-10),1)
  761. SetWeld(RLW,0,i,ASpeed,wRL,wRL2,v3(0.5,-1,0),v3(-30,0,10),1)
  762. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(30,0,0),1)
  763. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1,-0.5),v3(-60,0,0),1)
  764. SetWeld(wAxe,0,i,ASpeed,wAX,wAX2,v3(0,-1,-2.5),v3(-90,45,0),1)
  765. wait(0)
  766. end
  767. wait(0.1)
  768. Dmg=true
  769. RePose()
  770. TrailOn = true
  771. for i=1,ASpeed/1.3 do
  772. SetWeld(LAW,0,i,ASpeed/1.3,wLA,wLA2,v3(-1.2,0.8,0),v3(30,-90+90,35),1)
  773. SetWeld(RAW,0,i,ASpeed/1.3,wRA,wRA2,v3(1.2,0.8,0),v3(30,-90+90,-35),1)
  774. SetWeld(LLW,0,i,ASpeed/1.3,wLL,wLL2,v3(-0.5,-1,0),v3(40,0,-10),1)
  775. SetWeld(RLW,0,i,ASpeed/1.3,wRL,wRL2,v3(0.5,-1,0),v3(40,0,10),1)
  776. SetWeld(Root,0,i,ASpeed/1.3,wRT,wRT2,v3(0,0,0),v3(-40,0,0),1)
  777. SetWeld(Neck,0,i,ASpeed/1.3,wNE,wNE2,v3(0,1.5,0),v3(20,0,0),1)
  778. SetWeld(wAxe,0,i,ASpeed/1.3,wAX,wAX2,v3(0,-1,-2.5),v3(-90,45,0),1)
  779. wait(0)
  780. end
  781. TrailOn = false
  782. Dmg=false
  783. Anim = "SPIKEZ"
  784. Spawn(function()
  785. local BHit,BPos=FindGround(cn(Top.CFrame.p),Char)
  786. if BHit then
  787. MeshEffect(Pack,BPos*cn(0,1,0),6,4,6,0.1,BHit.BrickColor.Name,as.blast,cn(0,0,0))
  788. end
  789. SpikeDmg=true
  790. local RootCF = Root.Parent.CFrame
  791. for i=1,7 do
  792. local Spike = iPart{nil,3,5,3,an=true,ca=true} Spike.Name="Spike"
  793. game:GetService("Debris"):AddItem(Spike,2)
  794. Spike.Touched:connect(Touched)
  795. local BHit,BPos=FindGround(RootCF*cn(0,0,-i*6.5),Char)
  796. if BHit then
  797. Spike.BrickColor=BHit.BrickColor
  798. MakeCrack(BPos.p+v3(0,10,0),6,2,Pack,Char)
  799. MeshEffect(Pack,cn(BPos.X,BPos.Y,BPos.Z),6,1,6,0.1,BHit.BrickColor.Name,"Sphere",cn(0,0,0))
  800. end
  801. iNew{"SpecialMesh",Spike,MeshId=as.cone,Scale=v3(1,8,1)}
  802. Spawn(function()
  803. local LOL3,LOL4=mran(-10,10),mran(-10,10)
  804. for x=-1,1,2 do
  805. local LOL,LOL2
  806. if x==-1 then LOL=1 LOL2=8 elseif x==1 then LOL=8 LOL2=1 end
  807. for i = LOL,LOL2,(x*-0.5) do
  808. if not BPos then break end
  809. if x==-1 and i==(LOL+1) then
  810. PlaySound("Hit3",0.8,0.2)
  811. end
  812. Spike.Parent=workspace
  813. Spike.CFrame = BPos*ca(LOL3,0,LOL4)*cn(0,-5.5+i,0)
  814. wait(0)
  815. end
  816. wait(0.7)
  817. end
  818. end)
  819. wait(0.07)
  820. end
  821. repeat wait(0.5) until not workspace:FindFirstChild("Spike")
  822. SpikeDmg=false
  823. end)
  824. wait(0.5)
  825. ReturnPose()
  826. Legs()
  827. Anim = ""
  828. end
  829. elseif keys["t"] then
  830. if Anim == "" and Combo == 0 then
  831. local Bashing = false
  832. local FoundChar = nil
  833. local connection = nil
  834. Anim = "Bash"
  835. wait(0.1)
  836. RePose()
  837. for i=1,ASpeed do
  838. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.3,0.3,-0.2),v3(45,12,20),1)
  839. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.5,0.6,0.5),v3(70,20,15),1)
  840. SetWeld(Root,0,i,ASpeed,wRT,wRT2,PoseRT,v3(0,-70,0),1)
  841. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,PoseNE,v3(0,40,0),1)
  842. SetWeld(wAxe,0,i,ASpeed,wAX,wAX2,v3(2.5,-1,0),v3(-90,0,-90),1)
  843. wait(0)
  844. end
  845. wait(0.1)
  846. RePose()
  847. local AnimSpeed = ASpeed/0.8
  848. for i=1,AnimSpeed do
  849. SetWeld(LAW,0,i,AnimSpeed,wLA,wLA2,v3(-1.3,0.3,-0.4),v3(45,12,30),1)
  850. SetWeld(RAW,0,i,AnimSpeed,wRA,wRA2,v3(1.5,0.6,0.7),v3(100,20,25),1)
  851. SetWeld(Root,0,i,AnimSpeed,wRT,wRT2,v3(0,0,1),v3(0,-100,0),1)
  852. SetWeld(Neck,0,i,AnimSpeed,wNE,wNE2,PoseNE,v3(0,40,0),1)
  853. SetWeld(wAxe,0,i,AnimSpeed,wAX,wAX2,v3(3,-1,0),v3(-90,0,-90),1)
  854. wait(0)
  855. end
  856. wait(0.1)
  857. Bashing = true
  858. local function RingTouched(hit)
  859. if not Bashing then return end
  860. if hit.Parent==Char then return end
  861. if not hit.Parent then return end
  862. if hit.Parent:findFirstChild'Humanoid' then
  863. local Hum=hit.Parent.Humanoid
  864. local HMT=Hum.Parent:findFirstChild'Torso'
  865. local HMH=Hum.Parent:findFirstChild'Head'
  866. if not HMT or not HMH then return end
  867. AddBV(10,cn(Torso.Position,HMT.Position),HMT,0.15)
  868. PlaySound("Hit3",0.8,0.4)
  869. Bashing = false
  870. FoundChar = Hum.Parent
  871. MeshEffect(Pack,RingHitBox.CFrame,3,3,3,0.07,"Black",as.blast,cn(0,0,0))
  872. MeshEffect(Pack,RingHitBox.CFrame*ca(90,0,0),7,7,3,0.07,"Black",as.ring,cn(0,0,0))
  873. Hum.PlatformStand=true
  874. repeat wait(0) until Anim == "Ready to HEAD SMASH!"
  875. Anim = "HEAD SMASH!"
  876. Humanoid.WalkSpeed = 0
  877. RePose()
  878. Legs(0)
  879. UseGyro = false
  880. Spawn(function()
  881. while Anim == "HEAD SMASH!" do
  882. if FoundChar and FoundChar.Torso and Anim == "HEAD SMASH!" then
  883. wait(0)
  884. Hum.PlatformStand=true
  885. Gyro.maxTorque = v3(1,1,1)/0
  886. pcall(function()
  887. Gyro.cframe = cn(Root.Parent.Position,v3(FoundChar.Torso.Position.x,Torso.Position.y,FoundChar.Torso.Position.z))
  888. end)
  889. else
  890. break
  891. end
  892. end
  893. UseGyro = true
  894. end)
  895. for i=1,ASpeed do
  896. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.2,0.8,0),v3(180,-90+90,45),1)
  897. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.2,0.8,0),v3(180,-90+90,-45),1)
  898. SetWeld(LLW,0,i,ASpeed,wLL,wLL2,v3(-0.5,-1,0),v3(-30,0,-10),1)
  899. SetWeld(RLW,0,i,ASpeed,wRL,wRL2,v3(0.5,-1,0),v3(-30,0,10),1)
  900. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(30,0,0),1)
  901. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1,-0.5),v3(-60,0,0),1)
  902. SetWeld(wAxe,0,i,ASpeed,wAX,wAX2,v3(0,-1,-2.5),v3(-90,45,0),1)
  903. wait(0)
  904. end
  905. wait(0.1)
  906. Dmg=true
  907. Multiplier = 999
  908. RePose()
  909. TrailOn = true
  910. PlaySound("FireSlash",1.2,1)
  911. for i=1,ASpeed/1.3 do
  912. SetWeld(LAW,0,i,ASpeed/1.3,wLA,wLA2,v3(-1.2,0.8,0),v3(30,-90+90,35),1)
  913. SetWeld(RAW,0,i,ASpeed/1.3,wRA,wRA2,v3(1.2,0.8,0),v3(30,-90+90,-35),1)
  914. SetWeld(LLW,0,i,ASpeed/1.3,wLL,wLL2,v3(-0.5,-1,0),v3(40,0,-10),1)
  915. SetWeld(RLW,0,i,ASpeed/1.3,wRL,wRL2,v3(0.5,-1,0),v3(40,0,10),1)
  916. SetWeld(Root,0,i,ASpeed/1.3,wRT,wRT2,v3(0,0,0),v3(-40,0,0),1)
  917. SetWeld(Neck,0,i,ASpeed/1.3,wNE,wNE2,v3(0,1.5,0),v3(20,0,0),1)
  918. SetWeld(wAxe,0,i,ASpeed/1.3,wAX,wAX2,v3(0,-1,-2.5),v3(-90,45,0),1)
  919. wait(0)
  920. end
  921. local BHit,BPos=FindGround(cn(Top.CFrame.p),Char)
  922. if BHit and BPos then
  923. MeshEffect(Pack,BPos*cn(0,1,0),5,3,5,0.1,BHit.BrickColor.Name,as.blast,cn(0,0,0))
  924. end
  925. TrailOn = false
  926. Multiplier = 1
  927. Dmg=false
  928. Humanoid.WalkSpeed = 16
  929. ReturnPose()
  930. Legs()
  931. connection:disconnect()
  932. Anim = ""
  933. FoundChar = nil
  934. end
  935. end
  936. connection = RingHitBox.Touched:connect(RingTouched)
  937. RePose()
  938. PlaySound("Slash",1,1)
  939. local AnimSpeed = ASpeed/1.4
  940. for i=1,AnimSpeed do
  941. SetWeld(LAW,0,i,AnimSpeed,wLA,wLA2,v3(-1.3,0.3,-0.2),v3(45,12,-20),1)
  942. SetWeld(RAW,0,i,AnimSpeed,wRA,wRA2,v3(1.5,0.6,0.5),v3(70,20,-15),1)
  943. SetWeld(Root,0,i,AnimSpeed,wRT,wRT2,PoseRT,v3(0,0,0),1)
  944. SetWeld(Neck,0,i,AnimSpeed,wNE,wNE2,PoseNE,v3(0,60,0),1)
  945. SetWeld(wAxe,0,i,AnimSpeed,wAX,wAX2,v3(2.3,-1,0),v3(-90,0,-90),1)
  946. wait(0)
  947. end
  948. if FoundChar then Humanoid.WalkSpeed = 0 end
  949. ReturnPose()
  950. Anim = FoundChar and "Ready to HEAD SMASH!" or ""
  951. if Anim == "" then Bashing = false FoundChar = nil connection = nil end
  952. end
  953. end
  954. end)
  955.  
  956.  
  957. Mouse.KeyUp:connect(function(key)
  958. keys[key]=false
  959. end)
  960.  
  961.  
  962. Anim = ""
  963. ASpeed=12
  964.  
  965. PoseLA=v3(-1.5,0.5,0) PoseLA2=v3(45,-90+12,0)
  966. PoseRA=v3(1.5,0.5,0) PoseRA2=v3(70,-80,0)
  967. PoseLL=v3(-0.5,-1,0) PoseLL2=v3(0,0,0)
  968. PoseRL=v3(0.5,-1,0) PoseRL2=v3(0,0,0)
  969. PoseRT=v3(0,0,0) PoseRT2=v3(0,0,0)
  970. PoseNE=v3(0,1.5,0) PoseNE2=v3(0,0,0)
  971. PoseAX=v3(0,-1,-2.5) PoseAX2=v3(-90,0,0)
  972. Arms(0) Legs()
  973. ReturnPose()
  974.  
  975. Walking=false
  976. Humanoid.Running:connect(function(Walk)
  977. Walking=Walk>0 and true or false
  978. end)
  979.  
  980.  
  981. Spawn(function()
  982. while wait(0) do
  983. if Anim=="" and Combo==0 then
  984. if Torso.Velocity.magnitude < 1 then -- IDLE ANIMS
  985. wait()
  986. Legs(0)
  987. RePose()
  988. for i=1,ASpeed*6.5 do
  989. if Torso.Velocity.magnitude>1 or Anim~="" then break end
  990. SetWeld(LAW,0,i,ASpeed*6.5,wLA,wLA2,v3(-1.5,0.5,0),v3(60,-90+15,0),1)
  991. SetWeld(RAW,0,i,ASpeed*6.5,wRA,wRA2,v3(1.5,0.5,0),v3(90,-80+5,0),1)
  992. SetWeld(LLW,0,i,ASpeed*6.5,wLL,wLL2,v3(-0.5,-1,0),v3(0,0,-15),1)
  993. SetWeld(RLW,0,i,ASpeed*6.5,wRL,wRL2,v3(0.5,-1,0),v3(0,0,15),1)
  994. SetWeld(Root,0,i,ASpeed*6.5,wRT,wRT2,v3(0,0,0),v3(0,0,0),1)
  995. SetWeld(Neck,0,i,ASpeed*6.5,wNE,wNE2,v3(0,1.5,0),v3(3,0,0),1)
  996. SetWeld(wAxe,0,i,ASpeed*6.5,wAX,wAX2,PoseAX,PoseAX2,1)
  997. if Torso.Velocity.magnitude>1 or Anim~="" then break end
  998. wait(0)
  999. end
  1000. wait()
  1001. RePose()
  1002. for i=1,ASpeed*5 do
  1003. if Torso.Velocity.magnitude>1 or Anim~="" then break end
  1004. SetWeld(LAW,0,i,ASpeed*5,wLA,wLA2,v3(-1.5,0.5,0),v3(55,-90+5,0),1)
  1005. SetWeld(RAW,0,i,ASpeed*5,wRA,wRA2,v3(1.5,0.5,0),v3(60,-80-5,0),1)
  1006. SetWeld(LLW,0,i,ASpeed*5,wLL,wLL2,v3(-0.5,-1,0),v3(0,0,-8),1)
  1007. SetWeld(RLW,0,i,ASpeed*5,wRL,wRL2,v3(0.5,-1,0),v3(0,0,8),1)
  1008. SetWeld(Root,0,i,ASpeed*5,wRT,wRT2,v3(0,0,0),v3(0,0,0),1)
  1009. SetWeld(Neck,0,i,ASpeed*5,wNE,wNE2,v3(0,1.5,0),v3(-8,0,0),1)
  1010. SetWeld(wAxe,0,i,ASpeed*5,wAX,wAX2,PoseAX,PoseAX2,1)
  1011. if Torso.Velocity.magnitude>1 or Anim~="" then break end
  1012. wait(0)
  1013. end
  1014. wait()
  1015. else -- RUN ANIMS
  1016. Legs()
  1017. RePose()
  1018. num = 0.5
  1019. for i=1,ASpeed*num do
  1020. if Torso.Velocity.magnitude<1 or Anim~="" then break end
  1021. SetWeld(LAW,0,i,ASpeed*num,wLA,wLA2,v3(-1.5+0.25,0.5,0),v3(60,-90+15,0),0)
  1022. SetWeld(RAW,0,i,ASpeed*num,wRA,wRA2,v3(1.5+0.25,0.5,0),v3(90,-80+5,0),0)
  1023. SetWeld(LLW,0,i,ASpeed*num,wLL,wLL2,v3(-0.5,-1,0),v3(0,0,-15),0)
  1024. SetWeld(RLW,0,i,ASpeed*num,wRL,wRL2,v3(0.5,-1,0),v3(0,0,15),0)
  1025. SetWeld(Root,0,i,ASpeed*num,wRT,wRT2,v3(0,0,0),v3(0,0,0),0)
  1026. SetWeld(Neck,0,i,ASpeed*num,wNE,wNE2,v3(0,1.5,0),v3(0,0,0),0)
  1027. SetWeld(wAxe,0,i,ASpeed*num,wAX,wAX2,PoseAX,PoseAX2,0)
  1028. if Torso.Velocity.magnitude<1 or Anim~="" then break end
  1029. wait(0)
  1030. end
  1031. wait()
  1032. RePose()
  1033. for i=1,ASpeed*num do
  1034. if Torso.Velocity.magnitude<1 or Anim~="" then break end
  1035. SetWeld(LAW,0,i,ASpeed*num,wLA,wLA2,v3(-1.5,0.5,0),v3(55,-90+5,0),0)
  1036. SetWeld(RAW,0,i,ASpeed*num,wRA,wRA2,v3(1.5,0.5,0),v3(60,-80-5,0),0)
  1037. SetWeld(LLW,0,i,ASpeed*num,wLL,wLL2,v3(-0.5,-1,0),v3(0,0,-8),0)
  1038. SetWeld(RLW,0,i,ASpeed*num,wRL,wRL2,v3(0.5,-1,0),v3(0,0,8),0)
  1039. SetWeld(Root,0,i,ASpeed*num,wRT,wRT2,v3(0,0,0),v3(0,0,0),0)
  1040. SetWeld(Neck,0,i,ASpeed*num,wNE,wNE2,v3(0,1.5,0),v3(0,0,0),0)
  1041. SetWeld(wAxe,0,i,ASpeed*num,wAX,wAX2,PoseAX,PoseAX2,1)
  1042. if Torso.Velocity.magnitude<1 or Anim~="" then break end
  1043. wait(0)
  1044. end
  1045. wait()
  1046. end
  1047. end
  1048. end
  1049. end)
  1050.  
  1051.  
  1052. UseGyro = true
  1053. Count = 0
  1054. game:GetService("RunService").RenderStepped:connect(function()
  1055. Count = Count + 1
  1056. if Pack.Parent then
  1057. -- Hitbox ---------------------------------------------------------------------------------
  1058. AxeHitBox.Transparency=1
  1059. RingHitBox.Transparency=1
  1060. -- Trails ---------------------------------------------------------------------------------
  1061. local blcf = AxeHitBox.CFrame*cn(0,0,-0.5)
  1062. if TrailOn then
  1063. if scfr and (AxeHitBox.Position-scfr.p).magnitude > .1 then
  1064. local h = 3.8
  1065. local a,b = Triangle((scfr*cn(0,h/2,0)).p,(scfr*cn(0,-h/2,0)).p,(blcf*cn(0,h/2,0)).p)
  1066. if a then game.Debris:AddItem(a,1) end
  1067. if b then game.Debris:AddItem(b,1) end
  1068. local a,b = Triangle((blcf*cn(0,h/2,0)).p,(blcf*cn(0,-h/2,0)).p,(scfr*cn(0,-h/2,0)).p)
  1069. if a then game.Debris:AddItem(a,1) end
  1070. if b then game.Debris:AddItem(b,1) end
  1071. scfr = blcf
  1072. elseif not scfr then
  1073. scfr = blcf
  1074. end
  1075. elseif not TrailsOn then
  1076. scfr = nil
  1077. end
  1078. -- DoLoop Package ---------------------------------------------------------------------------------
  1079. for i,v in pairs(LoopFunctions) do
  1080. v[2]=v[2]+1
  1081. v[3](v[2]/v[1])
  1082. if v[1]<=v[2] then
  1083. LoopFunctions[i]=nil
  1084. end
  1085. end
  1086. -- Gyro ---------------------------------------------------------------------------------
  1087. if UseGyro then
  1088. Gyro.maxTorque=v3(1,1,1)/0
  1089. Gyro.cframe = cn(Root.Parent.Position,v3(workspace.CurrentCamera.CoordinateFrame.p.x,Torso.Position.y,workspace.CurrentCamera.CoordinateFrame.p.z))*ca(0,180,0)
  1090. else
  1091. Gyro.maxTorque = v3(0,0,0)
  1092. end
  1093. ---------------------------------------------------------------------------------
  1094. end
  1095. end)
Add Comment
Please, Sign In to add comment