Godofadmin1337

Hook & Cleaver

Sep 25th, 2017
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.32 KB | None | 0 0
  1. --[[ Hook & CLeaver - Created By Draconix ]]--
  2.  
  3. --- shortcuts
  4. v3 = Vector3.new
  5. cn = CFrame.new
  6. ca2 = CFrame.Angles
  7. mf = math.floor
  8. mran = math.random rn=mran
  9. mrad = math.rad rd=mran
  10. mdeg = math.deg
  11. ca = function(x,y,z) return ca2(mrad(x),mrad(y),mrad(z)) end
  12. mran2 = function(a,b) return mran(a*1000,b*1000)/1000 end
  13. ud=UDim2.new
  14. bn = BrickColor.new
  15. c3 = Color3.new
  16. -----
  17. -- Player = game:service'Players'.TigreBlood
  18. Player = game:service'Players'.LocalPlayer
  19. Char = Player.Character
  20. Torso = Char.Torso
  21. Head = Char.Head
  22. Humanoid = Char.Humanoid
  23. Root=Char.HumanoidRootPart.RootJoint
  24.  
  25. LA=Char['Left Arm']
  26. RA=Char['Right Arm']
  27. LL=Char['Left Leg']
  28. RL=Char['Right Leg']
  29. LAM=Torso['Left Shoulder']
  30. RAM=Torso['Right Shoulder']
  31. LLM=Torso['Left Hip']
  32. RLM=Torso['Right Hip']
  33. Neck=Torso.Neck
  34. Neck.C0=cn(0,1.5,0)
  35. Neck.C1=cn(0,0,0)
  36.  
  37. name='Hook and Cleaver'
  38. Range = 100
  39. pcall(function() Player.Backpack[name]:Remove() end)
  40. pcall(function() Char[name]:Remove() end)
  41. pcall(function() Char.Block:Remove() end)
  42. pcall(function() Root.Parent.BodyGyro:Destroy() end)
  43.  
  44. as,so={},{'metal','Block','Slash','Slash2','Hit','Kick'}
  45. as.corner='11294911'
  46. as.cone='1033714'
  47. as.ring="3270017"
  48. as.Chakram='47260990'
  49. as.ring2='18430887'
  50. as.blast='20329976'
  51. as.missile='10207677'
  52. as.fire='2693346'
  53. as.boom='3264793'
  54. as.slash='10209645'
  55. as.abscond='2767090'
  56. as.firelaser='13775494'
  57. as.diamond='9756362'
  58. as.metal='rbxasset://sounds\\unsheath.wav'
  59. as.Block = 'rbxasset://sounds\\metal.ogg'
  60. as.Slash = '10209645'
  61. as.Slash2 = '46760716'
  62. as.Hit='10209583'
  63. as.Kick='46153268'
  64. as.cast='2101137'
  65.  
  66.  
  67. for i,v in pairs(as) do
  68. if type(tonumber(v:sub(1,3)))=="number" then
  69. as[i]="http://www.roblox.com/asset/?id="..v
  70. end
  71. end
  72.  
  73.  
  74. iNew=function(tab)
  75. local v=Instance.new(tab[1])
  76. for Ind,Val in pairs(tab) do
  77. if Ind~=1 and Ind~=2 then
  78. v[Ind] = Val
  79. end
  80. end
  81. v.Parent=tab[2]==0 and LastMade or tab[2]
  82. LastMade=v
  83. return v
  84. end
  85.  
  86. iPart=function(tab)
  87. local v=Instance.new(tab.type or 'Part')
  88. if tab.type~='CornerWedgePart' then v.formFactor='Custom' end
  89. v.CanCollide=false
  90. v.TopSurface=0 v.BottomSurface=0
  91. v.Size=v3(tab[2],tab[3],tab[4])
  92. if tab.co then v.BrickColor=bn(tab.co) end
  93. if tab.tr then v.Transparency=tab.tr end
  94. if tab.rf then v.Reflectance=tab.rf end
  95. if tab.cf then v.CFrame=tab.cf end
  96. if tab.an then v.Anchored=tab.an end
  97. v.Parent=tab[1]
  98. LastMade=v
  99. return v
  100. end
  101.  
  102. pcall(function() Torso.LAW:Remove() Torso.RAW:Remove() Torso.LLW:Remove() Torso.RLW:Remove() end)
  103. LAW=iNew{'Weld',Torso,Name='LAW',Part0=Torso,C0=cn(-1.5,0.5,0),C1=cn(0,0.5,0)}
  104. RAW=iNew{'Weld',Torso,Name='RAW',Part0=Torso,C0=cn( 1.5,0.5,0),C1=cn(0,0.5,0)}
  105. LLW=iNew{'Weld',Torso,Name='LLW',Part0=Torso,C0=cn(-0.5, -1,0),C1=cn(0, 1,0)}
  106. RLW=iNew{'Weld',Torso,Name='RLW',Part0=Torso,C0=cn( 0.5, -1,0),C1=cn(0, 1,0)}
  107.  
  108. function Arms(on)
  109. LAM.Parent=Torso LAM.Part0=Torso
  110. RAM.Parent=Torso RAM.Part0=Torso
  111. LAM.Part1=on and nil or LA
  112. RAM.Part1=on and nil or RA
  113. LAW.Part1=on and LA or nil
  114. RAW.Part1=on and RA or nil
  115. end
  116.  
  117. function Legs(on)
  118. LLM.Part1=on and nil or LL
  119. RLM.Part1=on and nil or RL
  120. LLW.Part1=on and LL or nil
  121. RLW.Part1=on and RL or nil
  122. end
  123.  
  124.  
  125. function GetWeld(weld)
  126. if not weld:findFirstChild("Angle") then
  127. local a = Instance.new("Vector3Value", weld)
  128. a.Name = "Angle"
  129. local x,y,z=weld.C0:toEulerAnglesXYZ()
  130. a.Value=v3(mdeg(x),mdeg(y),mdeg(z))
  131. end
  132. return weld.C0.p,weld.Angle.Value
  133. end
  134. function ClearWeld(weld)
  135. if weld:findFirstChild'Angle' then
  136. weld.Angle:Remove()
  137. end
  138. end
  139. function SetWeld(weld,CC,i, loops, origpos,origangle, nextpos,nextangle,smooth)
  140. local CO='C'..CC
  141. smooth = smooth or 1
  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.  
  149. local perc
  150. if smooth == 1 then
  151. perc = math.sin((math.pi/2)/loops*i)
  152. else
  153. perc = i/loops
  154. end
  155.  
  156. local tox,toy,toz = 0,0,0
  157. if origangle.x > nextangle.x then
  158. tox = -math.abs(origangle.x - nextangle.x) *perc
  159. else
  160. tox = math.abs(origangle.x - nextangle.x) *perc
  161. end
  162. if origangle.y > nextangle.y then
  163. toy = -math.abs(origangle.y - nextangle.y) *perc
  164. else
  165. toy = math.abs(origangle.y - nextangle.y) *perc
  166. end
  167. if origangle.z > nextangle.z then
  168. toz = -math.abs(origangle.z - nextangle.z) *perc
  169. else
  170. toz = math.abs(origangle.z - nextangle.z) *perc
  171. end
  172.  
  173. local tox2,toy2,toz2 = 0,0,0
  174. if origpos.x > nextpos.x then
  175. tox2 = -math.abs(origpos.x - nextpos.x) *perc
  176. else
  177. tox2 = math.abs(origpos.x - nextpos.x) *perc
  178. end
  179. if origpos.y > nextpos.y then
  180. toy2 = -math.abs(origpos.y - nextpos.y) *perc
  181. else
  182. toy2 = math.abs(origpos.y - nextpos.y) *perc
  183. end
  184. if origpos.z > nextpos.z then
  185. toz2 = -math.abs(origpos.z - nextpos.z) *perc
  186. else
  187. toz2 = math.abs(origpos.z - nextpos.z) *perc
  188. end
  189. weld.Angle.Value = Vector3.new(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  190. weld[CO] = CFrame.new(origpos.x + tox2,origpos.y + toy2,origpos.z + toz2)*ca(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  191. end
  192.  
  193. LoopFunctions={}
  194. function DoLoop(times,func)
  195. LoopFunctions[#LoopFunctions+1]={times,0,func}
  196. end
  197.  
  198. Combo = 0
  199. HookHit = false
  200. Dmg=false
  201. Dmg2=false
  202. Dmgv={17,23}
  203. HitDebounce={}
  204.  
  205. Damage=function(Hum,Mult,Sound)
  206. if not Hum.Parent:findFirstChild'Torso' then return end
  207. local HName=Hum.Parent.Name
  208. if HitDebounce[HName] and HitDebounce[HName]>tick() then return end
  209. HitDebounce[HName]=tick()+0.5
  210. local Mult=Mult or 1
  211. local Dealt=mran(Dmgv[1],Dmgv[2])*Mult
  212. local col=''
  213. if Hum.Parent:findFirstChild'Block' and Hum.Parent.Block.Value>0 then
  214. Hum.Parent.Block.Value=Hum.Parent.Block.Value-1
  215. col='Bright blue'
  216. else
  217. Hum.Health=Hum.Health-Dealt
  218. col='Bright red'
  219. end
  220. if Sound then
  221. so[col=='Bright blue' and 'Block' or 'Hit']:Play()
  222. end
  223. local DoH=iNew{'Model',Pack,Name=col=='Bright blue' and 'Block' or Dealt}
  224. iNew{'Humanoid',DoH,MaxHealth=0,Health=0,Name=''}
  225. local Doh=iPart{DoH,1,0.2,1,co=col,an=true}
  226. Doh.Name='Head'
  227. iNew{'BlockMesh',Doh}
  228. local dofs=Hum.Parent.Torso.CFrame*cn(mran2(-1.5,1.5),2.5,mran2(-1,1))
  229. Doh.CFrame=dofs
  230. DoLoop(40,function(i)
  231. Doh.CFrame=dofs*cn(0,i*2,0) Doh.Transparency=i-0.5
  232. if i==1 then
  233. DoH:Remove()
  234. end
  235. end)
  236. end
  237.  
  238. Trails={}
  239. TrailPack={}
  240. Traili={}
  241. function Trail(obj,ofs,col)
  242. Trails[obj]=true
  243. Traili[#Traili+1]={obj,ofs,col,obj.CFrame*ofs}
  244. end
  245.  
  246.  
  247. Gyro=iNew{"BodyGyro",Root.Parent,D=50,P=1500}
  248.  
  249. c={'Dark stone grey','Reddish brown','Light stone grey'}
  250. Tool=iNew{'HopperBin',Player.Backpack,Name=name}
  251. Pack=iNew{'Model',Char,Name=name}
  252.  
  253. -- hook
  254. Hook = iPart{Pack,0.25,1,0.25,co=c[1]}
  255. wHook= iNew{"Weld",Pack,Part0=RL,Part1=Hook,C0=cn(0.625,1,0)*ca(210,0,0)} iNew{"CylinderMesh",Hook}
  256.  
  257. hpb = iPart{Pack,0.2,0.2,0.2,co=c[1]}
  258. iNew{"Weld",Pack,Part0=Hook,Part1=hpb,C0=cn(0,-0.55,0)}
  259. iNew{"CylinderMesh",hpb,Scale=v3(0.5,0.5,0.5)}
  260.  
  261. hpr = iPart{Pack,1,1,1,co=c[1]}
  262. iNew{"Weld",Pack,Part0=hpb,Part1=hpr,C0=cn(0,-0.25,0)*ca(0,90,0)}
  263. iNew{"SpecialMesh",hpr,MeshId=as.ring,Scale=v3(0.4,0.4,0.6)}
  264.  
  265. hpr = iPart{Pack,0,0,0,tr=1}
  266. iNew{"Weld",Pack,Part0=hpb,Part1=hpr,C0=cn(0,-0.45,0)}
  267.  
  268. hb = iPart{Pack,0.25,0.25,0.25,co=c[1]}
  269. iNew{"Weld",Pack,Part0=Hook,Part1=hb,C0=cn(0,0.5,0)} iNew{"SpecialMesh",hb,MeshType="Sphere"}
  270.  
  271. h1 = iPart{Pack,0.25,0.5,0.25,co=c[1]}
  272. iNew{"Weld",Pack,Part0=hb,Part1=h1,C0=ca(60,0,0)*cn(0,0.25,0)} iNew{"CylinderMesh",h1}
  273.  
  274. h1b = iPart{Pack,0.25,0.25,0.25,co=c[1]} h1b.Name="Ball1"
  275. iNew{"Weld",Pack,Part0=h1,Part1=h1b,C0=cn(0,0.25,0)} iNew{"SpecialMesh",h1b,MeshType="Sphere"}
  276.  
  277. for i=1,4 do
  278. hpart = iPart{Pack,0.25,0.5,0.25,co=c[1]} iNew{"CylinderMesh",hpart}
  279. iNew{"Weld",Pack,Part0=Pack["Ball"..i],Part1=hpart,C0=ca(-45,0,0)*cn(0,0.25,0)}
  280. hball = iPart{Pack,0.25,0.25,0.25,co=c[1]} hball.Name="Ball"..(i+1) iNew{"SpecialMesh",hball,MeshType="Sphere"}
  281. if hball.Name ~= "Ball5" then
  282. iNew{"Weld",Pack,Part0=hpart,Part1=hball,C0=cn(0,0.25,0)}
  283. else
  284. iNew{"Weld",Pack,Part0=hpart,Part1=hball,C0=cn(0,0.25,0)*ca(-45,0,0)}
  285. end
  286. end
  287.  
  288. spi = iPart{Pack,0.25,0.5,0.25,co=c[1]}
  289. iNew{"Weld",Pack,Part0=Pack["Ball5"],Part1=spi,C0=cn(0,0.3,0)} iNew{"SpecialMesh",spi,MeshId=as.cone,Scale=v3(0.125,0.7,0.125)}
  290.  
  291. HookHitBox = iPart{Pack,0.4,1.25,1.25,tr=1}
  292. iNew{"Weld",Pack,Part0=Hook,Part1=HookHitBox,C0=cn(0,1.2,0)}
  293.  
  294. -- cleaver
  295. Cleaver = iPart{Pack,0.25,1,0.25,co=c[2]}
  296. wCleaver = iNew{"Weld",Pack,Part0=LL,Part1=Cleaver,C0=cn(-0.625,1,0)*ca(210,0,0)} Cleaver.Material="Wood"
  297.  
  298. hpb = iPart{Pack,0.2,0.2,0.2,co=c[1]}
  299. iNew{"Weld",Pack,Part0=Cleaver,Part1=hpb,C0=cn(0,-0.55,0)}
  300. iNew{"CylinderMesh",hpb,Scale=v3(0.5,0.5,0.5)}
  301.  
  302. cpr=iPart{Pack,0.3,0.3,0.3,co=c[1]}
  303. iNew{"Weld",Pack,Part0=hpb,Part1=cpr,C0=cn(0,-0.25,0)}
  304. iNew{"SpecialMesh",cpr,MeshId=as.ring,Scale=v3(0.4,0.4,0.6)}
  305.  
  306. hs1=iPart{Pack,1,1,1,co=c[3]}
  307. iNew{"Weld",Pack,Part0=Cleaver,Part1=hs1,C0=cn(0,-0.4,0)*ca(0,0,90)}
  308. iNew{"CylinderMesh",hs1,Scale=v3(0.1,0.3,0.1)}
  309.  
  310. hs2=iPart{Pack,1,1,1,co=c[3]}
  311. iNew{"Weld",Pack,Part0=Cleaver,Part1=hs2,C0=cn(0,0.4,0)*ca(0,0,90)}
  312. iNew{"CylinderMesh",hs2,Scale=v3(0.1,0.3,0.1)}
  313.  
  314. bl=iPart{Pack,1,1.5,0.6,co=c[1]}
  315. iNew{"Weld",Pack,Part0=Cleaver,Part1=bl,C0=cn(0,1.15,-0.3+0.135)}
  316. iNew{"BlockMesh",bl,Scale=v3(0.12,1,1)}
  317.  
  318. for i=-1,1,2 do
  319. bw=iPart{Pack,1.5,0.2,1,co=c[3]}
  320. iNew{"Weld",Pack,Part0=bl,Part1=bw,C0=cn(0.03*i,0,-0.4)*ca(0,-90*i,90*i)}
  321. iNew{"SpecialMesh",bw,MeshType="Wedge",Scale=v3(1,1,0.06)}
  322. end
  323.  
  324. for i=0,360,360/8 do
  325. prop = iPart{Pack,1,1,1,co=c[1]}
  326. iNew{"Weld",Pack,Part0=bl,Part1=prop,C0=cn(0,0.6,0.375)*ca(i,0,0)*cn(0,0,0.1)}
  327. iNew{"BlockMesh",prop,Scale=v3(0.12,0.12,0.075)}
  328. end
  329.  
  330. prop = iPart{Pack,1,1,0.25,co=c[1]}
  331. iNew{"Weld",Pack,Part0=bl,Part1=prop,C0=cn(0,0.72,0.425)}
  332. iNew{"BlockMesh",prop,Scale=v3(0.12,0.06,1)}
  333.  
  334. prop = iPart{Pack,1,0.25,1,co=c[1]}
  335. iNew{"Weld",Pack,Part0=bl,Part1=prop,C0=cn(0,0.6,0.52)}
  336. iNew{"BlockMesh",prop,Scale=v3(0.12,1,0.06)}
  337.  
  338. prop = iPart{Pack,1,0.2,0.75,co=c[1]}
  339. iNew{"Weld",Pack,Part0=bl,Part1=prop,C0=cn(0,0.125,0.45)*ca(90,180,0)}
  340. iNew{"SpecialMesh",prop,Scale=v3(0.12,1,1),MeshType="Wedge"}
  341.  
  342. propl = iPart{Pack,1,1,0.75,co=c[1]}
  343. iNew{"Weld",Pack,Part0=bl,Part1=propl,C0=cn(0,0.125,0.325)*ca(90,180,0)}
  344. iNew{"BlockMesh",propl,Scale=v3(0.12,0.05,1)}
  345.  
  346. prop = iPart{Pack,1,1,0.5,co=c[1]}
  347. iNew{"Weld",Pack,Part0=propl,Part1=prop,C0=cn(0,0,-1.25/2)}
  348. iNew{"SpecialMesh",prop,Scale=v3(0.12,0.05,1),MeshType="Wedge"}
  349.  
  350. CleaverHitBox = iPart{Pack,0.4,1.6,1.25,tr=1}
  351. iNew{"Weld",Pack,Part0=Cleaver,Part1=CleaverHitBox,C0=cn(0,1.15,-0.2)}
  352.  
  353. for i,v in pairs(Pack:GetChildren()) do if v:IsA("BasePart") then v.CanCollide=false v.Name="Ignore" end end
  354.  
  355. hTW=nil
  356. HookHitBox.Touched:connect(function(hit)
  357. if Anim == "Throwing Hook" and not HookHit then
  358. if hit.Parent~=Char and hit.Parent:FindFirstChild("Humanoid") then
  359. HookHit = true
  360. local hHum = hit.Parent:FindFirstChild("Humanoid")
  361. hHum.PlatformStand=true
  362. DoLoop(20,function(i)
  363. wait()
  364. if i==1 then
  365. hHum.PlatformStand=false
  366. end
  367. end)
  368. Spawn(function()
  369. while HookHit do
  370. hit.Parent.Torso.CFrame = HookHitBox.CFrame*ca(0,0,90)*ca(0,90,0)
  371. wait()
  372. end
  373. end)
  374. end
  375. end
  376. if not Dmg then return end
  377. if hit.Parent==Char then return end
  378. if hit.Parent:findFirstChild'Humanoid' then
  379. local h=hit.Parent.Humanoid
  380. Damage(h,1,true)
  381. end
  382. end)
  383.  
  384. CleaverHitBox.Touched:connect(function(hit)
  385. if not Dmg2 then return end
  386. if hit.Parent==Char then return end
  387. if hit.Parent:findFirstChild'Humanoid' then
  388. local h=hit.Parent.Humanoid
  389. Damage(h,1,true)
  390. end
  391. end)
  392.  
  393. for i,v in pairs(Torso:children()) do
  394. if v:IsA'Sound' then
  395. v:Remove()
  396. end
  397. end
  398. for i,n in pairs(so) do
  399. local v=iNew{'Sound',Torso,Volume=1,Pitch=1,Looped=false,Name=v,SoundId=as[n]}
  400. so[n]=v
  401. end
  402.  
  403. function RePose()
  404. local a,b=GetWeld(LAW)
  405. local c,d=GetWeld(RAW)
  406. local e,f=GetWeld(wHook)
  407. local g,h=GetWeld(wCleaver)
  408. local i,j=GetWeld(Root)
  409. local k,l=GetWeld(Neck)
  410. oPoseLA=a oPoseLA2=b
  411. oPoseRA=c oPoseRA2=d
  412. oPoseHook=e oPoseHook2=f
  413. oPoseCleaver=g oPoseCleaver2=h
  414. oPoseRT=i oPoseRT2=j
  415. oPoseNE=k oPoseNE2=l
  416. end
  417.  
  418. function ReturnPose()
  419. local wLA,wLA2=GetWeld(LAW)
  420. local wRA,wRA2=GetWeld(RAW)
  421. local wRT,wRT2=GetWeld(Root)
  422. local AA,AA2=GetWeld(wHook)
  423. local BB,BB2=GetWeld(wCleaver)
  424. local wNE,wNE2=GetWeld(Neck)
  425. for i=1,ASpeed do
  426. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,PoseLA,PoseLA2,1)
  427. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,PoseRA,PoseRA2,1)
  428. SetWeld(wHook,0,i,ASpeed,AA,AA2,PoseHook,PoseHook2,1)
  429. SetWeld(wCleaver,0,i,ASpeed,BB,BB2,PoseCleaver,PoseCleaver2,1)
  430. SetWeld(Root,0,i,ASpeed,wRT,wRT2,PoseRT,PoseRT2,1)
  431. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,PoseNE,PoseNE2,1)
  432. wait()
  433. end
  434. end
  435. function TorsoROT(i,rot,spid)
  436. SetWeld(Root,0,i,spid,oPoseRT,oPoseRT2,PoseRT,v3(0,rot,0),1)
  437. SetWeld(Neck,0,i,spid,oPoseNE,oPoseNE2,PoseNE,v3(0,-rot,0),1)
  438. end
  439.  
  440. Block=iNew{'NumberValue',Char,Name='Block',Value=0}
  441.  
  442.  
  443. key={}
  444. Tool.Selected:connect(function(mouse)
  445. print'Selected'
  446. Mouse=mouse
  447. if Anim=='None' then
  448. Anim='Equipping'
  449. Arms(0)
  450. for i=1,ASpeed do
  451. SetWeld(LAW,0,i,ASpeed,OrigLA,OrigLA2,OrigLA,v3(-25,0,5),1)
  452. SetWeld(RAW,0,i,ASpeed,OrigRA,OrigRA2,OrigRA,v3(-25,0,-5),1)
  453. wait()
  454. end
  455. local ofs = RA.CFrame:toObjectSpace(Hook.CFrame)
  456. wHook.Part0=RA wHook.C0=ofs ClearWeld(wHook)
  457. local AA,AA2=GetWeld(wHook)
  458. local ofs = LA.CFrame:toObjectSpace(Cleaver.CFrame)
  459. wCleaver.Part0=LA wCleaver.C0=ofs ClearWeld(wCleaver)
  460. local BB,BB2=GetWeld(wCleaver)
  461. for i=1,ASpeed do
  462. SetWeld(wHook,0,i,ASpeed,AA,AA2,PoseHook,PoseHook2,1)
  463. SetWeld(wCleaver,0,i,ASpeed,BB,BB2,PoseCleaver,PoseCleaver2,1)
  464. wait()
  465. end
  466. ReturnPose()
  467. Anim='Equipped'
  468. end
  469.  
  470. Mouse.KeyDown:connect(function(k)
  471. key[k]=true
  472. if k=="q" and Anim == "Equipped" and Combo == 0 then
  473. Anim = "Cleaver Slash"
  474. RePose()
  475. for i=1,ASpeed do
  476. SetWeld(LAW,0,i,ASpeed,PoseLA,PoseLA2,PoseLA,v3(200,0,-35),1)
  477. SetWeld(Neck,0,i,ASpeed,oPoseNE,oPoseNE2,PoseNE,v3(15,15,0),1)
  478. wait()
  479. end
  480. Trail(Cleaver,cn(0,1.75,-0.75),'White')
  481. Dmg2=true
  482. for i=1,ASpeed/2 do
  483. SetWeld(LAW,0,i,ASpeed/2,PoseLA,v3(200,0,-35),PoseLA,v3(20,0,20),1)
  484. SetWeld(Neck,0,i,ASpeed/2,oPoseNE,v3(15,15,0),PoseNE,v3(-5,-5,0),1)
  485. wait()
  486. end
  487. Trails[Cleaver]=false
  488. Dmg2=false
  489. ReturnPose()
  490. Anim="Equipped"
  491. elseif k=="e" and Anim=="Equipped" and Combo == 0 then
  492. Anim = "Hook Slash"
  493. RePose()
  494. for i=1,ASpeed do
  495. SetWeld(RAW,0,i,ASpeed,PoseRA,PoseRA2,PoseRA,v3(200,0,35),1)
  496. SetWeld(Neck,0,i,ASpeed,oPoseNE,oPoseNE2,PoseNE,v3(15,-15,0),1)
  497. wait()
  498. end
  499. Trail(Hook,cn(0,1,-0.75),'White')
  500. Dmg=true
  501. for i=1,ASpeed/2 do
  502. SetWeld(RAW,0,i,ASpeed/2,PoseRA,v3(200,0,35),PoseRA,v3(20,0,-20),1)
  503. SetWeld(Neck,0,i,ASpeed/2,oPoseNE,v3(15,-15,0),PoseNE,v3(-5,5,0),1)
  504. wait()
  505. end
  506. Trails[Hook]=false
  507. Dmg=false
  508. ReturnPose()
  509. Anim="Equipped"
  510. elseif k=="r" and Anim=="Equipped" then
  511. Anim = "Combo"
  512. local function Break() Combo=-0.5 ReturnPose() Anim="Equipped" Combo=0 end
  513. if Combo==0 then
  514. Combo=0.5
  515. Anim="Slash 1"
  516. RePose()
  517. for i=1,ASpeed do
  518. SetWeld(LAW,0,i,ASpeed,PoseLA,PoseRA2,v3(-1.2,0.5,0),v3(180,0,-10),1)
  519. SetWeld(RAW,0,i,ASpeed,PoseRA,PoseRA2,v3(1.2,0.5,0),v3(180,0,10),1)
  520. SetWeld(Neck,0,i,ASpeed,oPoseNE,oPoseNE2,PoseNE,v3(40,0,0),1)
  521. wait()
  522. end
  523. Anim="Equipped"
  524. Combo=1
  525. DoLoop(5,function(i)
  526. if i==1 and Combo==1 then
  527. Break()
  528. end
  529. wait()
  530. end)
  531. elseif Combo==1 then
  532. Combo=1.5
  533. anim="Slash 1"
  534. Dmg=true Dmg2=true
  535. so['Slash']:Play()
  536. Trail(Hook,cn(0,1,-0.75),'White')
  537. Trail(Cleaver,cn(0,1.75,-0.75),'White')
  538. RePose()
  539. local wLA,wLA2=GetWeld(LAW)
  540. local wRA,wRA2=GetWeld(RAW)
  541. local wNE,wNE2=GetWeld(Neck)
  542. for i=1,ASpeed/2 do
  543. SetWeld(LAW,0,i,ASpeed/2,wLA,wLA2,PoseLA,v3(-15,0,0),1)
  544. SetWeld(RAW,0,i,ASpeed/2,wRA,wRA2,PoseRA,v3(-15,0,0),1)
  545. SetWeld(Neck,0,i,ASpeed/2,wNE,wNE2,PoseNE,v3(-20,0,0),1)
  546. wait()
  547. end
  548. Dmg=false Dmg2=false
  549. Trails[Hook]=false Trails[Cleaver]=false
  550. Anim="Equipped"
  551. Combo=2
  552. DoLoop(5,function(i)
  553. if i==1 and Combo==2 then
  554. Break()
  555. end
  556. wait()
  557. end)
  558. elseif Combo==2 then
  559. Combo=2.5
  560. Anim="Slash 2"
  561. local wLA,wLA2=GetWeld(LAW)
  562. local wRA,wRA2=GetWeld(RAW)
  563. local wNE,wNE2=GetWeld(Neck)
  564. for i=1,ASpeed do
  565. SetWeld(LAW,0,i,ASpeed,wLA,wRA2,v3(-1.2,0.5,0),v3(110,0,30),1)
  566. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.2,0.5,0),v3(110,0,-30),1)
  567. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,PoseNE,v3(40,0,0),1)
  568. wait()
  569. end
  570. Anim="Equipped"
  571. Combo=3
  572. DoLoop(5,function(i)
  573. if i==1 and Combo==3 then
  574. Break()
  575. end
  576. wait()
  577. end)
  578. elseif Combo==3 then
  579. Combo=3.5
  580. Anim="Slash 2"
  581. Dmg=true Dmg2=true
  582. so['Slash']:Play()
  583. Trail(Hook,cn(0,1,-0.75),'White')
  584. Trail(Cleaver,cn(0,1.75,-0.75),'White')
  585. local wLA,wLA2=GetWeld(LAW)
  586. local wRA,wRA2=GetWeld(RAW)
  587. local wNE,wNE2=GetWeld(Neck)
  588. for i=1,ASpeed/2 do
  589. SetWeld(LAW,0,i,ASpeed/2,wLA,wLA2,PoseLA,v3(-40,0,-30),1)
  590. SetWeld(RAW,0,i,ASpeed/2,wRA,wRA2,PoseRA,v3(-40,0,30),1)
  591. SetWeld(Neck,0,i,ASpeed/2,wNE,wNE2,PoseNE,v3(-20,0,0),1)
  592. wait()
  593. end
  594. Dmg=false Dmg2=false
  595. Trails[Hook]=false Trails[Cleaver]=false
  596. Anim="Equipped"
  597. Combo=4
  598. DoLoop(5,function(i)
  599. if i==1 and Combo==4 then
  600. Break()
  601. end
  602. wait()
  603. end)
  604. end
  605. end
  606. end)--keys
  607.  
  608. Mouse.KeyUp:connect(function(k)
  609. key[k]=false
  610. end)
  611.  
  612. Mouse.Button1Down:connect(function()
  613. if Anim == "Equipped" and Combo == 0 then
  614. local Dist = nil
  615. Anim = "Getting Ready"
  616. Humanoid.WalkSpeed = 4
  617. RePose()
  618. for i=1,ASpeed do
  619. TorsoROT(i,80,ASpeed)
  620. SetWeld(RAW,0,i,ASpeed,PoseRA,PoseRA2,PoseRA,v3(0,190,-90),1)
  621. SetWeld(wHook,0,i,ASpeed,PoseHook,PoseHook2,v3(0,-2,0),v3(-180,0,0),1)
  622. wait()
  623. end
  624. Anim = "Throwing Hook"
  625. Rope=iPart{Pack,0.2,1,0.2,co="Reddish brown",an=true}
  626. iNew{"CylinderMesh",Rope}
  627. Dmg=true
  628. for i=1,ASpeed*3 do
  629. if HookHit then break end
  630. SetWeld(wHook,0,i,ASpeed*3,v3(0,-2,0),v3(-180,0,0),v3(0,-2-(Range),0),v3(-180,0,0),1)
  631. wait()
  632. end
  633. Dist = wHook.C0.Y
  634. Anim = "Retrieving Hook"
  635. Humanoid.WalkSpeed=16
  636. Dmg=false
  637. for i=1,ASpeed*(-Dist/20) do
  638. SetWeld(Root,0,i,ASpeed*(-Dist/20),oPoseRT,v3(0,80,0),PoseRT,v3(0,-60,0),1)
  639. SetWeld(Neck,0,i,ASpeed*(-Dist/20),oPoseNE,v3(0,-80,0),PoseNE,v3(0,60,0),1)
  640. SetWeld(RAW,0,i,ASpeed*(-Dist/20),PoseRA,v3(0,190,-90),PoseRA,v3(0,190+150,-90),1)
  641. SetWeld(wHook,0,i,ASpeed*(-Dist/20),v3(0,Dist,0),v3(-180,0,0),v3(0,-2,0),v3(-180,0,0),1)
  642. wait()
  643. end
  644. pcall(function() hTW:Destroy() end)
  645. HookHit=false
  646. ReturnPose()
  647. Anim = "Equipped"
  648. end
  649. end)
  650. end) -- select
  651.  
  652. Tool.Deselected:connect(function(mouse)
  653. print'Deselected'
  654. Mouse=nil
  655. if Anim=='Equipped' and Combo == 0 then
  656. Anim='Unequipping'
  657. RePose()
  658. for i=1,ASpeed do
  659. SetWeld(LAW,0,i,ASpeed,PoseLA,PoseLA2,OrigLA,v3(-25,0,5),1)
  660. SetWeld(RAW,0,i,ASpeed,PoseRA,PoseRA2,OrigRA,v3(-25,0,-5),1)
  661. wait()
  662. end
  663. local ofs = RL.CFrame:toObjectSpace(Hook.CFrame)
  664. wHook.Part0=RL wHook.C0=ofs ClearWeld(wHook)
  665. local AA,AA2=GetWeld(wHook)
  666. local ofs = LL.CFrame:toObjectSpace(Cleaver.CFrame)
  667. wCleaver.Part0=LL wCleaver.C0=ofs ClearWeld(wCleaver)
  668. local BB,BB2=GetWeld(wCleaver)
  669. for i=1,ASpeed do
  670. SetWeld(wHook,0,i,ASpeed,AA,AA2,v3(0.625,1,0),v3(210,0,0),1)
  671. SetWeld(wCleaver,0,i,ASpeed,BB,BB2,v3(-0.625,1,0),v3(210,0,0),1)
  672. wait()
  673. end
  674. for i=1,ASpeed do
  675. SetWeld(LAW,0,i,ASpeed,PoseLA,v3(-25,0,5),OrigLA,OrigLA2,1)
  676. SetWeld(RAW,0,i,ASpeed,PoseRA,v3(-25,0,-5),OrigRA,OrigRA2,1)
  677. wait()
  678. end
  679. Arms()
  680. Anim='None'
  681. end
  682. end) --deselect
  683.  
  684.  
  685. print(#Pack:children())
  686. Root.C0=cn(0,0,0)*ca(0,0,0)
  687. Root.C1=cn(0,0,0)*ca(0,0,0)
  688. Arms()
  689. Legs()
  690.  
  691. WalkAnim=0
  692. Walking=false
  693. Humanoid.Running:connect(function(Walk)
  694. Walking=Walk>0 and true or false
  695. end)
  696.  
  697. Anim='None'
  698. ASpeed=10
  699. OrigLA=v3(-1.5,0.5,0) OrigLA2=v3(0,0,0)
  700. OrigRA=v3( 1.5,0.5,0) OrigRA2=v3(0,0,0)
  701. --Pose
  702. PoseLA=v3(-1.5,0.5,0) PoseLA2=v3(0,0,-10)
  703. PoseRA=v3( 1.5,0.5,0) PoseRA2=v3(0,0,10)
  704. PoseHook=v3(0,-1,0) PoseHook2=v3(-90,0,0)
  705. PoseCleaver=v3(0,-1,0) PoseCleaver2=v3(-90,0,0)
  706. PoseRT=v3(0,0,0) PoseRT2=v3(0,0,0)
  707. PoseNE=v3(0,1.5,0) PoseNE2=v3(0,0,0)
  708.  
  709. while Pack.Parent do
  710. -- Rope
  711. if Anim == "Throwing Hook" or Anim == "Retrieving Hook" then
  712. Mag=(RA.Position-hpr.Position).magnitude
  713. Rope.Size=v3(0.2,Mag,0.2)
  714. Rope.CFrame=RA.CFrame*cn(0,-Mag/2,0)
  715. else
  716. pcall(function()
  717. Rope:Destroy()
  718. end)
  719. end
  720.  
  721. --Trailing Package
  722. for i,v in pairs(Traili) do
  723. if Trails[v[1]] then
  724. local obj,ofs,col,lastofs=v[1],v[2],v[3],v[4]
  725. local length=(obj.CFrame*ofs.p-lastofs.p).magnitude
  726. local ob=iPart{Pack,0.4,length,0.4,co=col,tr=0.5,an=true,cf=CFrame.new(obj.CFrame*ofs.p,lastofs.p)}
  727. iNew{'CylinderMesh',ob}
  728. Traili[i][4]=ob.CFrame
  729. ob.CFrame=ob.CFrame*cn(0,0,-length/2)*ca(90,0,0)
  730. TrailPack[#TrailPack+1]={ob,1,-0.1}
  731. else
  732. Traili[i]=nil
  733. end
  734. end
  735. for i,v in pairs(TrailPack) do
  736. v[2]=v[2]+v[3]
  737. if v[2]<=0 then
  738. v[1]:Remove()
  739. TrailPack[i]=nil
  740. else
  741. v[1].Transparency=0.5+(0.45-0.45*v[2])
  742. v[1].Mesh.Scale=v3(v[2],1,v[2])
  743. end
  744. end
  745. --DoLoop Package
  746. for i,v in pairs(LoopFunctions) do
  747. v[2]=v[2]+1
  748. v[3](v[2]/v[1])
  749. if v[1]<=v[2] then
  750. LoopFunctions[i]=nil
  751. end
  752. end
  753. --[[
  754. HookHitBox.CFrame=Hook.CFrame*cn(0,1.2,0)
  755. HookHitBox.Velocity=v3(0,0,0) HookHitBox.RotVelocity=v3(0,0,0)
  756. CleaverHitBox.CFrame=Cleaver.CFrame*cn(0,1.15,-0.2)
  757. CleaverHitBox.Velocity=v3(0,0,0) CleaverHitBox.RotVelocity=v3(0,0,0)
  758. ]]
  759. -- Gyro
  760. if Anim~="None" then
  761. Gyro.maxTorque=v3(1,1,1)/0
  762. Gyro.cframe = cn(Root.Parent.Position,v3(workspace.CurrentCamera.CoordinateFrame.p.x,Root.Parent.Position.y,workspace.CurrentCamera.CoordinateFrame.p.z))*ca(0,180,0)
  763. else
  764. Gyro.maxTorque = v3(0,0,0)
  765. end
  766. wait()
  767. end
Advertisement
Add Comment
Please, Sign In to add comment