Advertisement
Guest User

Untitled

a guest
Jul 20th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 61.85 KB | None | 0 0
  1. ---script made by foxy13200
  2.  
  3. v3 = Vector3.new
  4. cn = CFrame.new
  5. ca2 = CFrame.Angles
  6. mceil = math.ceil mc = mceil
  7. mran = math.random rn=mran
  8. mrad = math.rad rd=mrad
  9. mdeg = math.deg dg=mdeg
  10. mabs = math.abs abs=mabs
  11. ud = UDim2.new
  12. ca = function(x,y,z) return ca2(mrad(x),mrad(y),mrad(z)) end
  13. mran2 = function(a,b) return mran(a*1000,b*1000)/1000 end
  14. bn = BrickColor.new bc=bn
  15. c3 = Color3.new
  16. deb = game:GetService("Debris")
  17. -----
  18. Player = game:service("Players").LocalPlayer
  19. Char = Player.Character
  20. Torso = Char.Torso
  21. Head = Char.Head
  22. Humanoid = Char.Humanoid
  23. RootPart = Char.HumanoidRootPart
  24. Root = RootPart.RootJoint
  25.  
  26. LA=Char["Left Arm"]
  27. RA=Char["Right Arm"]
  28. LL=Char["Left Leg"]
  29. RL=Char["Right Leg"]
  30. LAM=Torso["Left Shoulder"]
  31. RAM=Torso["Right Shoulder"]
  32. LLM=Torso["Left Hip"]
  33. RLM=Torso["Right Hip"]
  34. Neck=Torso.Neck
  35. Neck.C0=cn(0,1.5,0)
  36. Neck.C1=cn(0,0,0)
  37.  
  38. name="3DMG"
  39.  
  40. pcall(function() Char["Pack"]:Destroy() end)
  41. pcall(function() Player.PlayerGui[name]:Destroy() end)
  42. pcall(function() Char[name]:Destroy() end)
  43. pcall(function() Char.Block:Destroy() end)
  44. pcall(function() Char.Animate:Destroy() end)
  45.  
  46. script.Name = name
  47.  
  48. as = {}
  49. so = {"Block","QuickSlash","Slash1","Slash2","Hit","Shoot","Footstep1","Footstep2","Footstep3","Disconnect"}
  50. as.Cone = "1033714"
  51. as.Bevel = "rbxasset://fonts/leftarm.mesh"
  52. as.Block = "rbxasset://sounds\\metal.ogg"
  53. as.QuickSlash = "161006221" -- quick succession
  54. as.Slash1 = "161006195" -- high pitched
  55. as.Slash2 = "161006212" -- low pitched
  56. as.Hit = "10209583"
  57. as.Shoot = "130849509"
  58. as.Footstep1 = "142548001"
  59. as.Footstep2 = "142548009"
  60. as.Footstep3 = "142548015"
  61. as.Disconnect = "10209268"
  62. as.Draw = "130785405"
  63. as.Somersault = "161006221"
  64. as.HealthBar = "35238053" -- decal
  65. as.Wedge = "146643893" -- decal
  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. game:GetService("ContentProvider"):Preload(as[i])
  71. end
  72. end
  73.  
  74. Slashes = {as.Slash1,as.Slash2}
  75.  
  76.  
  77. iNew=function(tab)
  78. local v=Instance.new(tab[1])
  79. for Ind,Val in pairs(tab) do
  80. if Ind~=1 and Ind~=2 then
  81. v[Ind] = Val
  82. end
  83. end
  84. v.Parent=tab[2]==0 and LastMade or tab[2]
  85. LastMade=v
  86. return v
  87. end
  88.  
  89. iPart=function(tab)
  90. local v=Instance.new(tab.type or "Part")
  91. if tab.type~="CornerWedgePart" then v.formFactor="Custom" end
  92. v.CanCollide=false
  93. v.TopSurface=10 v.BottomSurface=10 v.RightSurface=10 v.LeftSurface=10 v.FrontSurface=10 v.BackSurface=10
  94. v.Size=v3(tab[2],tab[3],tab[4])
  95. --v.Material="SmoothPlastic"
  96. if tab.co then v.BrickColor=bn(tab.co) end
  97. if tab.tr then v.Transparency=tab.tr end
  98. if tab.rf then v.Reflectance=tab.rf end
  99. if tab.cf then v.CFrame=tab.cf end
  100. if tab.an then v.Anchored=tab.an end
  101. if tab.mt then v.Material=tab.mt end
  102. if tab.ca then v.CanCollide=tab.ca end
  103. v.Parent=tab[1]
  104. LastMade=v
  105. return v
  106. end
  107.  
  108. function Raycast(Pos,Dir,Dist,tab)
  109. return workspace:FindPartOnRay(Ray.new(Pos, Dir.unit *Dist),tab)
  110. end
  111.  
  112. Block=iNew{"NumberValue",Char,Name="Block",Value=0}
  113.  
  114. Root.C0=cn(0,0,0)
  115. Root.C1=cn(0,0,0)
  116.  
  117. for _,mesh in pairs(Char:GetChildren()) do if mesh:IsA("CharacterMesh") then mesh:Destroy() end end
  118. for _,force in pairs(Torso:GetChildren()) do if force:IsA("BodyForce") or force:IsA("BodyGyro") or force:IsA("RocketPropulsion") then force:Destroy() end end
  119.  
  120. pcall(function() Torso.LAW:Remove() Torso.RAW:Remove() Torso.LLW:Remove() Torso.RLW:Remove() end)
  121. LAW=iNew{"Weld",Torso,Name="LAW",Part0=Torso,C0=cn(-1.5,0.5,0),C1=cn(0,0.5,0)}
  122. RAW=iNew{"Weld",Torso,Name="RAW",Part0=Torso,C0=cn( 1.5,0.5,0),C1=cn(0,0.5,0)}
  123. LLW=iNew{"Weld",Torso,Name="LLW",Part0=Torso,C0=cn(-0.5, -1,0),C1=cn(0, 1,0)}
  124. RLW=iNew{"Weld",Torso,Name="RLW",Part0=Torso,C0=cn( 0.5, -1,0),C1=cn(0, 1,0)}
  125.  
  126. function Arms(on)
  127. LAM.Parent=Torso LAM.Part0=Torso
  128. RAM.Parent=Torso RAM.Part0=Torso
  129. LAM.Part1=on and nil or LA
  130. RAM.Part1=on and nil or RA
  131. LAW.Part1=on and LA or nil
  132. RAW.Part1=on and RA or nil
  133. end
  134.  
  135. function Legs(on)
  136. LLM.Parent=Torso LLM.Part0=Torso
  137. RLM.Parent=Torso RLM.Part0=Torso
  138. LLM.Part1=on and nil or LL
  139. RLM.Part1=on and nil or RL
  140. LLW.Part1=on and LL or nil
  141. RLW.Part1=on and RL or nil
  142. end
  143.  
  144. function GetWeld(weld)
  145. if not weld:FindFirstChild("Angle") then
  146. local a = Instance.new("Vector3Value", weld)
  147. a.Name = "Angle"
  148. local x,y,z=weld.C0:toEulerAnglesXYZ()
  149. a.Value=v3(mdeg(x),mdeg(y),mdeg(z))
  150. end
  151. return weld.C0.p,weld.Angle.Value
  152. end
  153.  
  154. function ClearWeld(weld)
  155. if weld:FindFirstChild"Angle" then
  156. weld.Angle:Remove()
  157. end
  158. end
  159.  
  160. function SetWeld(weld,CC,i, loops, origpos,origangle, nextpos,nextangle,smooth)
  161. local CO="C"..CC
  162. smooth = smooth or 1
  163. if not weld:FindFirstChild("Angle") then
  164. local a = Instance.new("Vector3Value", weld)
  165. a.Name = "Angle"
  166. local x,y,z=weld.C0:toEulerAnglesXYZ()
  167. a.Value=v3(mdeg(x),mdeg(y),mdeg(z))
  168. end
  169.  
  170. local perc
  171. if smooth == 1 then
  172. perc = math.sin((math.pi/2)/loops*i)
  173. else
  174. perc = i/loops
  175. end
  176.  
  177. local tox,toy,toz = 0,0,0
  178. if origangle.x > nextangle.x then
  179. tox = -mabs(origangle.x - nextangle.x) *perc
  180. else
  181. tox = mabs(origangle.x - nextangle.x) *perc
  182. end
  183. if origangle.y > nextangle.y then
  184. toy = -mabs(origangle.y - nextangle.y) *perc
  185. else
  186. toy = mabs(origangle.y - nextangle.y) *perc
  187. end
  188. if origangle.z > nextangle.z then
  189. toz = -mabs(origangle.z - nextangle.z) *perc
  190. else
  191. toz = mabs(origangle.z - nextangle.z) *perc
  192. end
  193.  
  194. local tox2,toy2,toz2 = 0,0,0
  195. if origpos.x > nextpos.x then
  196. tox2 = -mabs(origpos.x - nextpos.x) *perc
  197. else
  198. tox2 = mabs(origpos.x - nextpos.x) *perc
  199. end
  200. if origpos.y > nextpos.y then
  201. toy2 = -mabs(origpos.y - nextpos.y) *perc
  202. else
  203. toy2 = mabs(origpos.y - nextpos.y) *perc
  204. end
  205. if origpos.z > nextpos.z then
  206. toz2 = -mabs(origpos.z - nextpos.z) *perc
  207. else
  208. toz2 = mabs(origpos.z - nextpos.z) *perc
  209. end
  210. weld.Angle.Value = v3(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  211. weld[CO] = cn(origpos.x + tox2,origpos.y + toy2,origpos.z + toz2)*ca(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  212. end
  213.  
  214.  
  215. function PlaySound(sound,pitch,volume,parent)
  216. local newSound = iNew{"Sound",parent or Torso,Pitch=pitch,Volume=volume,Name=sound,SoundId=sound}
  217. newSound:Play()
  218. deb:AddItem(newSound,6)
  219. return newSound
  220. end
  221.  
  222. function MeshEffect(par,cf,x,y,z,inc,col,sha,adj)
  223. local adj = adj or cn(0,0,0)
  224. local mp=iPart{par,1,1,1,co=col,tr=0.3,ca=false,an=true} mp.CFrame=cf mp.Name="unray"
  225. local ms
  226. if sha:sub(1,4)=="http" then
  227. ms=iNew{"SpecialMesh",mp,MeshId=sha}
  228. elseif sha=="Block" then
  229. ms=iNew{"BlockMesh",mp}
  230. elseif sha=="Cylinder" then
  231. ms=iNew{"CylinderMesh",mp}
  232. elseif sha=="Head" or sha=="Sphere" then
  233. ms=iNew{"SpecialMesh",mp,MeshType=sha}
  234. end
  235. deb:AddItem(mp,0.7)
  236. Spawn(function()
  237. for i=0,1,inc do
  238. mp.Transparency=0.3+(1*i)
  239. mp.CFrame=mp.CFrame*adj
  240. ms.Scale=v3(x,y,z)*(0.3+(1*i))
  241. if i>=1 or mp.Transparency >= 1 then mp:Destroy() end
  242. wait(0)
  243. end
  244. end)
  245. end
  246.  
  247.  
  248. Dmg=false
  249. Dmgv={12,18}
  250. HitDebounce={}
  251. Debounce = 0.4
  252. CritChance = 5
  253. Sharpness = 1
  254. Gas = 1
  255. Damage=function(Hum,Mult)
  256. if not Hum.Parent:findFirstChild("Torso") then return end
  257. local HName = Hum.Parent.Name
  258. if HitDebounce[HName] and HitDebounce[HName]>tick() then return end
  259. HitDebounce[HName] = tick()+Debounce
  260. local Dealt = mceil(((mran(Dmgv[1],Dmgv[2])+(Torso.Velocity.magnitude/4))*Sharpness)*Mult)
  261. local col = ""
  262.  
  263. local Crit = false
  264. local RNG = mran(1,100)
  265. if RNG<=CritChance then Crit=true Dealt=Dealt*1.75 end
  266.  
  267. if Hum.Parent:findFirstChild("Block") and Hum.Parent.Block.Value>0 then
  268. Hum.Parent.Block.Value=Hum.Parent.Block.Value-1
  269. col="Bright blue"
  270. PlaySound(as.Block,1,1,Torso)
  271. else
  272.  
  273. Hum:TakeDamage(Dealt)
  274. col=not Crit and "Bright red" or "Really red"
  275. PlaySound(as.Hit,1,1,Torso)
  276. end
  277. Sharpness = Sharpness - 0.02
  278.  
  279. local dmgTxt = iNew{"TextLabel",Gui,Name="dmgText",BackgroundTransparency=1,TextStrokeTransparency=0,Rotation=mran(-35,35)}
  280.  
  281. if col == "Bright blue" then
  282. dmgTxt.Text = "Block!"
  283. elseif col == "Bright red" then
  284. dmgTxt.Text = Dealt.."!"
  285. elseif col == "Really red" then
  286. dmgTxt.Text = Dealt.."!!!"
  287. end
  288. dmgTxt.TextColor3 = bn(col).Color
  289. dmgTxt.TextStrokeColor3 = col == "Really red" and bn("Really red").Color or bn("White").Color
  290. dmgTxt.FontSize = col == "Bright blue" and "Size24" or col == "Bright red" and "Size36" or col == "Really red" and "Size48"
  291. dmgTxt.Position = ud(mran(4,6)/10,0,mran(40,60)/100,0)
  292. dmgTxt:TweenPosition(ud(dmgTxt.Position.X.Scale,0,dmgTxt.Position.Y.Scale,-250),"Out","Quad",1.5,false)
  293. deb:AddItem(dmgTxt,1.5)
  294. end
  295.  
  296.  
  297.  
  298. -- weapon
  299. Pack = iNew{"Model",Char,Name="Pack"}
  300. p=Pack
  301.  
  302.  
  303. -- blade func
  304. function newBlade(part0,c0,wName,half)
  305. local Blade = iPart{p,0.2,3.3,0.2,co="Dark stone grey"} Blade.Name = "Blade"..wName
  306. local wBlade = iNew{"Weld",p,Part0=part0,Part1=Blade,C0=c0,Name = wName}
  307. iNew{"BlockMesh",Blade,Scale=v3(0.25,1,1)}
  308.  
  309. local bpx = iPart{p,0.2,3.5,0.2} bpx.Name = "Blade"..wName
  310. iNew{"Weld",p,Part0=Blade,Part1=bpx,C0=cn(0,0.1,-0.15)}
  311. iNew{"BlockMesh",bpx,Scale=v3(0.25,1,0.5)}
  312.  
  313. if not half then
  314. local bp = iPart{p,0.2,0.2,0.2,co="Dark stone grey"} bp.Name = "Blade"..wName
  315. iNew{"Weld",p,Part0=Blade,Part1=bp,C0=cn(0,3.5/2,0)*ca(0,180,0)}
  316. iNew{"SpecialMesh",bp,MeshType="Wedge",Scale=v3(0.25,1,1)}
  317.  
  318. local tp = iPart{p,0.2,0.2,0.2} bp.Name = "Blade"..wName
  319. iNew{"Weld",p,Part0=bpx,Part1=tp,C0=cn(0,3.6/2,0)*ca(0,180,0)}
  320. iNew{"SpecialMesh",tp,MeshType="Wedge",Scale=v3(0.25,0.5,0.5)}
  321.  
  322. for i=1,5 do
  323. local bp = iPart{p,0.2,1,0.45,co="Really black"} bp.Name = "Blade"..wName
  324. iNew{"Weld",p,Part0=Blade,Part1=bp,C0=cn(0,-3.7/2+0.6*i,-0.05)*ca(45,0,0)}
  325. iNew{"BlockMesh",bp,Scale=v3(0.3,0.02,1)}
  326. end
  327. end
  328.  
  329. for i=-1,1,2 do
  330. local ba = iPart{p,0.2,0.2,0.2,co="Dark stone grey"} ba.Name="Blade"..wName
  331. iNew{"Weld",p,Part0=Blade,Part1=ba,C0=cn(0,-3.5/2,-0.05-0.075*i)}
  332. iNew{"BlockMesh",ba,Scale=v3(0.25,1,0.25)}
  333. end
  334. return Blade,wBlade,tp
  335. end
  336.  
  337. --belt
  338. belt = iPart{p,2.1,0.2,1.05,co="Black"}
  339. iNew{"Weld",p,Part0=Torso,Part1=belt,C0=cn(0,-0.65,0)}
  340. --[[bp = iPart{p,0.4,0.2,1,co="Dark stone grey"} -- idk why i do this with the unneccessary details :Q
  341. iNew{"Weld",p,Part0=belt,Part1=bp,C0=cn(0,0,-1.05/2)}
  342. iNew{"BlockMesh",bp,Scale=v3(1,1,0.01)}
  343. bp = iPart{p,1,1,1,co="Black"}
  344. iNew{"Weld",p,Part0=belt,Part1=bp,C0=cn(0,0,-1.06/2)}
  345. iNew{"BlockMesh",bp,Scale=v3(0.35,0.15,0.01)}
  346. bp = iPart{p,0.2,0.2,1,co="Dark stone grey"}
  347. iNew{"Weld",p,Part0=belt,Part1=bp,C0=cn(0.425,0,-1.05/2)}
  348. iNew{"BlockMesh",bp,Scale=v3(1,1,0.01)}
  349. bp = iPart{p,1,1,1,co="Black"}
  350. iNew{"Weld",p,Part0=belt,Part1=bp,C0=cn(0.425,0,-1.06/2)}
  351. iNew{"BlockMesh",bp,Scale=v3(0.15,0.15,0.01)}
  352. bp = iPart{p,0.2,0.2,1,co="Dark stone grey"}
  353. iNew{"Weld",p,Part0=belt,Part1=bp,C0=cn(-0.425,0,-1.05/2)}
  354. iNew{"BlockMesh",bp,Scale=v3(1,1,0.01)}
  355. bp = iPart{p,1,1,1,co="Black"}
  356. iNew{"Weld",p,Part0=belt,Part1=bp,C0=cn(-0.425,0,-1.06/2)}
  357. iNew{"BlockMesh",bp,Scale=v3(0.15,0.15,0.01)}]]
  358.  
  359. qBarrel = iPart{p,0.3,1.5,0.3}
  360. iNew{"Weld",p,Part0=belt,Part1=qBarrel,C0=cn(-1.15,0.1,0)*ca(100,0,0)}
  361. iNew{"CylinderMesh",qBarrel}
  362. bb = iPart{p,0.3,1.5,0.3}
  363. iNew{"Weld",p,Part0=qBarrel,Part1=bb,C0=cn(0,0,0.15)}
  364. qbb = iPart{p,0.2,1,0.2,co="Really black"}
  365. iNew{"Weld",p,Part0=qBarrel,Part1=qbb,C0=cn(0,-0.75,0)}
  366. iNew{"CylinderMesh",qbb,Scale=v3(1,0.01,1)}
  367.  
  368. eBarrel = iPart{p,0.3,1.5,0.3}
  369. iNew{"Weld",p,Part0=belt,Part1=eBarrel,C0=cn(1.15,0.1,0)*ca(100,0,0)}
  370. iNew{"CylinderMesh",eBarrel}
  371. bb = iPart{p,0.3,1.5,0.3}
  372. iNew{"Weld",p,Part0=eBarrel,Part1=bb,C0=cn(0,0,0.15)}
  373. ebb = iPart{p,0.2,1,0.2,co="Really black"}
  374. iNew{"Weld",p,Part0=eBarrel,Part1=ebb,C0=cn(0,-0.75,0)}
  375. iNew{"CylinderMesh",ebb,Scale=v3(1,0.01,1)}
  376.  
  377. -- leg bandages
  378. for i=0,1 do
  379. lb = iPart{p,1,1,1,co="Black"}
  380. iNew{"Weld",p,Part0=LL,Part1=lb,C0=cn(0,0.5+0.125*i,0)}
  381. iNew{"SpecialMesh",lb,MeshId=as.Bevel,Scale=v3(1.1,0.03,1.1)}
  382. end
  383. for i=0,1 do
  384. lb = iPart{p,1,1,1,co="Black"}
  385. iNew{"Weld",p,Part0=RL,Part1=lb,C0=cn(0,0.5+0.125*i,0)}
  386. iNew{"SpecialMesh",lb,MeshId=as.Bevel,Scale=v3(1.1,0.03,1.1)}
  387. end
  388.  
  389. -- left sheath
  390. qSheath = iPart{p,0,0,0,tr=0}
  391. wqSheath = iNew{"Weld",p,Part0=LL,Part1=qSheath,C0=cn(-0.5,0.4,0)*ca(10,0,0)}
  392. qBody = iPart{p,0.45,0.7,3.5,co="Brown",mt="Wood"}
  393. iNew{"Weld",p,Part0=qSheath,Part1=qBody,C0=cn(-qBody.Size.X/2,0,0.75)}
  394. for i=1,7,2 do
  395. sp = iPart{p,1,0.6,1,co="Really black"}
  396. iNew{"Weld",p,Part0=qBody,Part1=sp,C0=cn(-qBody.Size.X/2+(qBody.Size.X/9)/2+((qBody.Size.X/9)*i),0,-1.75)}
  397. iNew{"BlockMesh",sp,Scale=v3((qBody.Size.X/9),1,0.01)}
  398. newBlade(sp,cn(0,0,1.5)*ca(90,0,0),"LeftBlade"..i,false) -- blade is 1
  399. end
  400. tank = iPart{p,0.4,2.8,0.4}
  401. iNew{"Weld",p,Part0=qBody,Part1=tank,C0=cn(0,0.55,0.15)*ca(-90,0,0)}
  402. iNew{"CylinderMesh",tank}
  403. for i=0,2,1 do
  404. sp = iPart{p,qBody.Size.X*1.1,1.1*1.1,0.3,co="Dark stone grey"}
  405. iNew{"Weld",p,Part0=qBody,Part1=sp,C0=cn(0,0.2,3.5/2-0.5-i)}
  406. end
  407. for i=-1,1,2 do
  408. bl = iPart{p,0.4,0.4,0.4}
  409. iNew{"Weld",p,Part0=tank,Part1=bl,C0=cn(0,1.4*i,0)}
  410. iNew{"SpecialMesh",bl,MeshType="Sphere"}
  411. end
  412. blp = iPart{p,0.2,0.3,0.2}
  413. iNew{"Weld",p,Part0=bl,Part1=blp,C0=cn(0,0.2,0)}
  414. iNew{"CylinderMesh",blp}
  415. blap = iPart{p,0.25,0.5,0.25,co="Black"}
  416. iNew{"Weld",p,Part0=blp,Part1=blap,C0=cn(0,0.2,0)*ca(0,0,90)}
  417. iNew{"CylinderMesh",blap}
  418. blp = iPart{p,0.3,0.2,0.3}
  419. iNew{"Weld",p,Part0=blap,Part1=blp}
  420. iNew{"CylinderMesh",blp}
  421.  
  422. -- right sheath
  423. eSheath = iPart{p,0,0,0,tr=0}
  424. weSheath = iNew{"Weld",p,Part0=RL,Part1=eSheath,C0=cn(0.5,0.4,0)*ca(10,0,0)}
  425. eBody = iPart{p,0.45,0.7,3.5,co="Brown",mt="Wood"}
  426. iNew{"Weld",p,Part0=eSheath,Part1=eBody,C0=cn(eBody.Size.X/2,0,0.75)}
  427. for i=1,7,2 do
  428. sp = iPart{p,1,0.6,1,co="Really black"}
  429. iNew{"Weld",p,Part0=eBody,Part1=sp,C0=cn(-eBody.Size.X/2+(eBody.Size.X/9)/2+((eBody.Size.X/9)*i),0,-1.75)}
  430. iNew{"BlockMesh",sp,Scale=v3((eBody.Size.X/9),1,0.01)}
  431. newBlade(sp,cn(0,0,1.5)*ca(90,0,0),"RightBlade"..i,false) -- blade is 7
  432. end
  433. tank = iPart{p,0.4,2.8,0.4}
  434. iNew{"Weld",p,Part0=eBody,Part1=tank,C0=cn(0,0.55,0.15)*ca(-90,0,0)}
  435. iNew{"CylinderMesh",tank}
  436. for i=0,2,1 do
  437. sp = iPart{p,eBody.Size.X*1.1,1.1*1.1,0.3,co="Dark stone grey"}
  438. iNew{"Weld",p,Part0=eBody,Part1=sp,C0=cn(0,0.2,3.5/2-0.5-i)}
  439. end
  440. for i=-1,1,2 do
  441. bl = iPart{p,0.4,0.4,0.4}
  442. iNew{"Weld",p,Part0=tank,Part1=bl,C0=cn(0,1.4*i,0)}
  443. iNew{"SpecialMesh",bl,MeshType="Sphere"}
  444. end
  445. blp = iPart{p,0.2,0.3,0.2}
  446. iNew{"Weld",p,Part0=bl,Part1=blp,C0=cn(0,0.2,0)}
  447. iNew{"CylinderMesh",blp}
  448. blap = iPart{p,0.25,0.5,0.25,co="Black"}
  449. iNew{"Weld",p,Part0=blp,Part1=blap,C0=cn(0,0.2,0)*ca(0,0,90)}
  450. iNew{"CylinderMesh",blap}
  451. blp = iPart{p,0.3,0.2,0.3}
  452. iNew{"Weld",p,Part0=blap,Part1=blp}
  453. iNew{"CylinderMesh",blp}
  454.  
  455. -- air compression
  456. hpart = iPart{p,0.8,0.4,0.8}
  457. iNew{"Weld",p,Part0=belt,Part1=hpart,C0=cn(0,-0.1,0.9)*ca(15,0,0)}
  458. iNew{"CylinderMesh",hpart}
  459. hp = iPart{p,0.3,0.2,0.4}
  460. iNew{"Weld",p,Part0=hpart,Part1=hp,C0=cn(0,-0.1,0.6)}
  461. for i=-1,1,2 do
  462. wp = iPart{p,0.2,0.2,0.8}
  463. iNew{"Weld",p,Part0=hp,Part1=wp,C0=cn(0.25*i,0,-0.2)*ca(0,180,90*i)}
  464. iNew{"SpecialMesh",wp,MeshType="Wedge"}
  465. end
  466. hp2 = iPart{p,0.3,0.2,0.3}
  467. iNew{"Weld",p,Part0=hpart,Part1=hp2,C0=cn(0,0.1,0.5)}
  468. iNew{"BlockMesh",hp2,Scale=v3(0.5,0.5,1)}
  469. for i=-1,1,2 do
  470. wp = iPart{p,0.2,0.2,0.8}
  471. iNew{"Weld",p,Part0=hp2,Part1=wp,C0=cn(0.175*i,0,-0.25)*ca(0,180,90*i)}
  472. iNew{"SpecialMesh",wp,MeshType="Wedge",Scale=v3(0.5,1,1)}
  473. end
  474. for i=-1,1,2 do
  475. cy = iPart{p,0.2,0.2,0.2}
  476. iNew{"Weld",p,Part0=hpart,Part1=cy,C0=cn(-0.35*i,-0.075,0.175)*ca(0,0,-90*i)*ca(-25,0,-30*i)}
  477. iNew{"CylinderMesh",cy}
  478. spi = iPart{p,0,0,0}
  479. iNew{"Weld",p,Part0=cy,Part1=spi,C0=cn(0,-0.2,0)}
  480. iNew{"SpecialMesh",spi,MeshId=as.Cone,Scale=v3(0.3,0.5,0.3)}
  481. cyl = iPart{p,0.7,0.2,0.7}
  482. iNew{"Weld",p,Part0=spi,Part1=cyl,C0=cn(0,-0.3,0)}
  483. iNew{"CylinderMesh",cyl}
  484. for i=-1,1,2 do
  485. cylp = iPart{p,0.75,1,0.75,co="Dark stone grey"}
  486. iNew{"Weld",p,Part0=cyl,Part1=cylp,C0=cn(0,0.1*i,0)}
  487. iNew{"CylinderMesh",cylp,Scale=v3(1,0.01,1)}
  488. end
  489. for i=360/10,360,360/10 do
  490. cylp = iPart{p,1,0.2,1,co="Dark stone grey"}
  491. iNew{"Weld",p,Part0=cyl,Part1=cylp,C0=ca(0,i,0)*cn(0,0,-0.35)}
  492. iNew{"BlockMesh",cylp,Scale=v3(0.025,1,0.05)}
  493. end
  494. end
  495.  
  496. -- right sword
  497. RSword = iPart{p,0.2,0.5,0.35,co="Dark stone grey"}
  498. wRSword = iNew{"Weld",p,Part0=RA,Part1=RSword,C0=cn(0,-0.95,-0.25)*ca(-90,0,0)}
  499. iNew{"BlockMesh",RSword,Scale=v3(0.5,1,1)}
  500. sp = iPart{p,0.2,0.5,0.35,co="Dark stone grey"}
  501. iNew{"Weld",p,Part0=RSword,Part1=sp,C0=cn(0,-0.25,-0.35/2)*ca(-10,0,0)*cn(0,-0.25,0.35/2)}
  502. iNew{"BlockMesh",sp,Scale=v3(0.5,1,1)}
  503. sp2 = iPart{p,0.2,0.2,0.35,co="Dark stone grey"}
  504. iNew{"Weld",p,Part0=sp,Part1=sp2,C0=cn(0,-0.35,0)}
  505. iNew{"BlockMesh",sp2,Scale=v3(1,1,1)}
  506. sp3 = iPart{p,0.2,0.5,0.3,co="Reddish brown"}
  507. iNew{"Weld",p,Part0=RSword,Part1=sp3,C0=cn(0,0,0)}
  508. iNew{"BlockMesh",sp3,Scale=v3(0.75,1,1)}
  509. sp4 = iPart{p,0.2,0.5,0.3,co="Reddish brown"}
  510. iNew{"Weld",p,Part0=sp,Part1=sp4,C0=cn(0,0,0)}
  511. iNew{"BlockMesh",sp4,Scale=v3(0.75,1,1)}
  512. sp5 = iPart{p,0.2,0.2,0.6,co="Dark stone grey"}
  513. iNew{"Weld",p,Part0=RSword,Part1=sp5,C0=cn(0,0.35,-0.3+0.35/2)}
  514. trg = iPart{p,0.2,1,0.2,co="Dark stone grey"}
  515. iNew{"Weld",p,Part0=RSword,Part1=trg,C0=cn(0,0.05,-0.35/2-0.1)}
  516. iNew{"BlockMesh",trg,Scale=v3(0.5,0.05,1)}
  517. trg2 = iPart{p,0.2,1,0.2,co="Dark stone grey"}
  518. iNew{"Weld",p,Part0=trg,Part1=trg2,C0=cn(0,0.1,-0.1+0.025)*ca(-90,0,0)}
  519. iNew{"BlockMesh",trg2,Scale=v3(0.5,0.05,1)}
  520. trg3 = iPart{p,0.2,1,1,co="Dark stone grey"}
  521. iNew{"Weld",p,Part0=RSword,Part1=trg3,C0=cn(0,-0.15,-0.35/2-0.09)}
  522. iNew{"BlockMesh",trg3,Scale=v3(0.5,0.05,0.18)}
  523. trg4 = iPart{p,0.2,1,0.2,co="Dark stone grey"}
  524. iNew{"Weld",p,Part0=trg3,Part1=trg4,C0=cn(0,0.1,-0.09+0.025)*ca(-90,0,0)}
  525. iNew{"BlockMesh",trg4,Scale=v3(0.5,0.05,1)}
  526. sp6 = iPart{p,0.2,0.3,0.2,co="Dark stone grey"}
  527. iNew{"Weld",p,Part0=sp5,Part1=sp6,C0=cn(0,0,0.45)*ca(90,180,0)}
  528. iNew{"SpecialMesh",sp6,MeshType="Wedge",Scale=v3(1,1,1)}
  529. sp7 = iPart{p,0.2,0.2,0.2,co="Dark stone grey"}
  530. iNew{"Weld",p,Part0=sp5,Part1=sp7,C0=cn(0,0,-0.4)}
  531. iNew{"SpecialMesh",sp7,MeshType="Wedge",Scale=v3(1,1,1)}
  532. sp8 = iPart{p,0.2,0.5,0.2,co="Dark stone grey"}
  533. iNew{"Weld",p,Part0=sp7,Part1=sp8,C0=cn(0,-0.1,-0.1)*ca(-5,0,0)*cn(0,-0.25,0.05)}
  534. iNew{"BlockMesh",sp8,Scale=v3(1,1,0.5)}
  535. sp9 = iPart{p,0.2,0.7,0.2,co="Dark stone grey"}
  536. iNew{"Weld",p,Part0=sp8,Part1=sp9,C0=cn(0,-0.3,-0.1)*ca(-10,0,0)*cn(0,-0.3,0.1)*ca(0,0,180)}
  537. iNew{"SpecialMesh",sp9,MeshType="Wedge",Scale=v3(1,1,0.5)}
  538. RConnect = iPart{p,0.2,0.2,0.3,co="Dark stone grey"} RConnect.Name="RConnect"
  539. iNew{"Weld",p,Part0=sp5,Part1=RConnect,C0=cn(0,0.2,0.1)}
  540. iNew{"BlockMesh",RConnect,Scale=v3(0.75,1,1)}
  541.  
  542. -- left sword
  543. LSword = iPart{p,0.2,0.5,0.35,co="Dark stone grey"}
  544. wLSword = iNew{"Weld",p,Part0=LA,Part1=LSword,C0=cn(0,-0.95,-0.25)*ca(-90,0,0)}
  545. iNew{"BlockMesh",LSword,Scale=v3(0.5,1,1)}
  546. sp = iPart{p,0.2,0.5,0.35,co="Dark stone grey"}
  547. iNew{"Weld",p,Part0=LSword,Part1=sp,C0=cn(0,-0.25,-0.35/2)*ca(-10,0,0)*cn(0,-0.25,0.35/2)}
  548. iNew{"BlockMesh",sp,Scale=v3(0.5,1,1)}
  549. sp2 = iPart{p,0.2,0.2,0.35,co="Dark stone grey"}
  550. iNew{"Weld",p,Part0=sp,Part1=sp2,C0=cn(0,-0.35,0)}
  551. iNew{"BlockMesh",sp2,Scale=v3(1,1,1)}
  552. sp3 = iPart{p,0.2,0.5,0.3,co="Reddish brown"}
  553. iNew{"Weld",p,Part0=LSword,Part1=sp3,C0=cn(0,0,0)}
  554. iNew{"BlockMesh",sp3,Scale=v3(0.75,1,1)}
  555. sp4 = iPart{p,0.2,0.5,0.3,co="Reddish brown"}
  556. iNew{"Weld",p,Part0=sp,Part1=sp4,C0=cn(0,0,0)}
  557. iNew{"BlockMesh",sp4,Scale=v3(0.75,1,1)}
  558. sp5 = iPart{p,0.2,0.2,0.6,co="Dark stone grey"}
  559. iNew{"Weld",p,Part0=LSword,Part1=sp5,C0=cn(0,0.35,-0.3+0.35/2)}
  560. trg = iPart{p,0.2,1,0.2,co="Dark stone grey"}
  561. iNew{"Weld",p,Part0=LSword,Part1=trg,C0=cn(0,0.05,-0.35/2-0.1)}
  562. iNew{"BlockMesh",trg,Scale=v3(0.5,0.05,1)}
  563. trg2 = iPart{p,0.2,1,0.2,co="Dark stone grey"}
  564. iNew{"Weld",p,Part0=trg,Part1=trg2,C0=cn(0,0.1,-0.1+0.025)*ca(-90,0,0)}
  565. iNew{"BlockMesh",trg2,Scale=v3(0.5,0.05,1)}
  566. trg3 = iPart{p,0.2,1,1,co="Dark stone grey"}
  567. iNew{"Weld",p,Part0=LSword,Part1=trg3,C0=cn(0,-0.15,-0.35/2-0.09)}
  568. iNew{"BlockMesh",trg3,Scale=v3(0.5,0.05,0.18)}
  569. trg4 = iPart{p,0.2,1,0.2,co="Dark stone grey"}
  570. iNew{"Weld",p,Part0=trg3,Part1=trg4,C0=cn(0,0.1,-0.09+0.025)*ca(-90,0,0)}
  571. iNew{"BlockMesh",trg4,Scale=v3(0.5,0.05,1)}
  572. sp6 = iPart{p,0.2,0.3,0.2,co="Dark stone grey"}
  573. iNew{"Weld",p,Part0=sp5,Part1=sp6,C0=cn(0,0,0.45)*ca(90,180,0)}
  574. iNew{"SpecialMesh",sp6,MeshType="Wedge",Scale=v3(1,1,1)}
  575. sp7 = iPart{p,0.2,0.2,0.2,co="Dark stone grey"}
  576. iNew{"Weld",p,Part0=sp5,Part1=sp7,C0=cn(0,0,-0.4)}
  577. iNew{"SpecialMesh",sp7,MeshType="Wedge",Scale=v3(1,1,1)}
  578. sp8 = iPart{p,0.2,0.5,0.2,co="Dark stone grey"}
  579. iNew{"Weld",p,Part0=sp7,Part1=sp8,C0=cn(0,-0.1,-0.1)*ca(-5,0,0)*cn(0,-0.25,0.05)}
  580. iNew{"BlockMesh",sp8,Scale=v3(1,1,0.5)}
  581. sp9 = iPart{p,0.2,0.7,0.2,co="Dark stone grey"}
  582. iNew{"Weld",p,Part0=sp8,Part1=sp9,C0=cn(0,-0.3,-0.1)*ca(-10,0,0)*cn(0,-0.3,0.1)*ca(0,0,180)}
  583. iNew{"SpecialMesh",sp9,MeshType="Wedge",Scale=v3(1,1,0.5)}
  584. LConnect = iPart{p,0.2,0.2,0.3,co="Dark stone grey"} LConnect.Name="LConnect"
  585. iNew{"Weld",p,Part0=sp5,Part1=LConnect,C0=cn(0,0.2,0.1)}
  586. iNew{"BlockMesh",LConnect,Scale=v3(0.75,1,1)}
  587.  
  588. -- gui
  589. Gui = iNew{"ScreenGui",Player.PlayerGui,Name=name}
  590. SwordFrame = iNew{"Frame",Gui,BackgroundColor3=bn("Really black").Color,BorderColor3=bn("Really black").Color,Size=ud(0,170,0,18),Position=ud(0.5,85+8,1,-22),ClipsDescendants=true,Name="SwordFrame"}
  591. SwordBar = iNew{"ImageLabel",SwordFrame,Image=as.HealthBar,BackgroundTransparency=1,Size=ud(1,0,1,0),Name="SwordBar"}
  592. SwordLabel = iNew{"TextLabel",SwordFrame,BackgroundTransparency=1,Text="Sharpness ",Size=ud(1,0,1,0),Font="SourceSansBold",FontSize="Size14",TextColor3=bn("White").Color,TextStrokeColor3=bn("Really black").Color,TextStrokeTransparency=0,TextXAlignment="Right",Name="SwordLabel"}
  593.  
  594. GasFrame = iNew{"Frame",Gui,BackgroundColor3=bn("Really black").Color,BorderColor3=bn("Really black").Color,Size=ud(0,170,0,18),Position=ud(0.5,85*3+16,1,-22),ClipsDescendants=true,Name="GasFrame"}
  595. GasBar = iNew{"ImageLabel",GasFrame,Image=as.HealthBar,BackgroundTransparency=1,Size=ud(1,0,1,0),Name="GasBar"}
  596. GasLabel = iNew{"TextLabel",GasFrame,BackgroundTransparency=1,Text="Gas ",Size=ud(1,0,1,0),Font="SourceSansBold",FontSize="Size14",TextColor3=bn("White").Color,TextStrokeColor3=bn("Really black").Color,TextStrokeTransparency=0,TextXAlignment="Right",Name="GasLabel"}
  597.  
  598. function Touched(hit)
  599. if not Dmg then return end
  600. if hit.Parent:IsDescendantOf(Char) then return end
  601. if not hit.Parent then return end
  602. if not hit.Parent:findFirstChild("Torso") then return end
  603. if not CurrentBlades[1] and not CurrentBlades[2] then return end
  604. if hit.Parent:findFirstChild("Humanoid") then
  605. local Hum=hit.Parent.Humanoid
  606. Damage(Hum,1)
  607. local HMT=Hum.Parent:findFirstChild("Torso")
  608. if HMT then
  609. local bodyVelo = iNew{"BodyVelocity",HMT,P=1250,maxForce=v3(1,1,1)/0,velocity=RootPart.CFrame.lookVector*Torso.Velocity.magnitude}
  610. deb:AddItem(bodyVelo,0.15)
  611. end
  612. end
  613. end
  614.  
  615. for i,v in pairs(Pack:GetChildren()) do
  616. if v:IsA("BasePart") and v.Name:find("Blade") then
  617. v.Touched:connect(Touched)
  618. end
  619. end
  620.  
  621. for i,v in pairs(Torso:children()) do
  622. if v:IsA("Sound") then
  623. v:Destroy()
  624. end
  625. end
  626. for i,v in pairs(Head:children()) do
  627. if v:IsA("Sound") then
  628. v:Destroy()
  629. end
  630. end
  631.  
  632.  
  633.  
  634. function ReturnPose(legs)
  635. RePose()
  636. for i=1,ASpeed do
  637. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,PoseLA,PoseLA2,1)
  638. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,PoseRA,PoseRA2,1)
  639. if legs then
  640. SetWeld(LLW,0,i,ASpeed,wLL,wLL2,PoseLL,PoseLL2,1)
  641. SetWeld(RLW,0,i,ASpeed,wRL,wRL2,PoseRL,PoseRL2,1)
  642. end
  643. SetWeld(Root,0,i,ASpeed,wRT,wRT2,PoseRT,PoseRT2,1)
  644. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,PoseNE,PoseNE2,1)
  645. SetWeld(wLSword,0,i,ASpeed,wLS,wLS2,PoseLS,PoseLS2,1)
  646. SetWeld(wRSword,0,i,ASpeed,wRS,wRS2,PoseRS,PoseRS2,1)
  647. wait(0)
  648. end
  649. end
  650.  
  651. function RePose()
  652. local a,b=GetWeld(LAW)
  653. local c,d=GetWeld(RAW)
  654. local e,f=GetWeld(LLW)
  655. local g,h=GetWeld(RLW)
  656. local i,j=GetWeld(Root)
  657. local k,l=GetWeld(Neck)
  658. local m,n=GetWeld(wLSword)
  659. local o,p=GetWeld(wRSword)
  660. wLA=a wLA2=b
  661. wRA=c wRA2=d
  662. wLL=e wLL2=f
  663. wRL=g wRL2=h
  664. wRT=i wRT2=j
  665. wNE=k wNE2=l
  666. wLS=m wLS2=n
  667. wRS=o wRS2=p
  668. end
  669.  
  670.  
  671.  
  672. Force = iNew{"BodyForce",Torso} -- force
  673. keys={}
  674.  
  675. WalkMode = "Walk"
  676.  
  677. CanGrapple = true
  678.  
  679. qProp=nil
  680. qPart=nil
  681. qRope=nil
  682. qOffset=nil
  683. qHit = nil
  684. qLastGrapple = tick()
  685.  
  686. eProp=nil
  687. ePart=nil
  688. eRope=nil
  689. eOffset=nil
  690. eHit=nil
  691. eLastGrapple = tick()
  692.  
  693. qePart=nil
  694. qeProp=nil
  695.  
  696. function GrappleStance()
  697. Humanoid.PlatformStand=true
  698. SetWeld(LLW,0,1,1,v3(0,0,0),v3(0,0,0),v3(-0.5,-1,-1),v3(-25,12,-12),0)
  699. SetWeld(RLW,0,1,1,v3(0,0,0),v3(0,0,0),v3(0.5,-1,-1),v3(-25,-12,12),0)
  700. end
  701.  
  702. MaxSpeed = 300
  703. ThrustP = 5
  704. MaxThrust1 = 16000
  705. MaxThrust2 = 21000
  706. function AddRP(target,name,maxThrust)
  707. local newProp = iNew{"RocketPropulsion",RootPart}
  708. newProp.Name = target.Name:gsub("Part","Prop")
  709. newProp.Target = target
  710. newProp.CartoonFactor = 0.5
  711. newProp.MaxSpeed = MaxSpeed
  712. newProp.MaxThrust = maxThrust
  713. newProp.MaxTorque = v3(1/0,1/0,1/0)
  714. newProp.TurnD = 0
  715. newProp.TurnP = 0
  716. newProp.ThrustD = 0.001
  717. newProp.ThrustP = ThrustP
  718. newProp.TargetRadius = 8
  719. newProp.ReachedTarget:connect(function()
  720. end)
  721. return newProp
  722. end
  723.  
  724. function UpdatePropulsions()
  725. for i,v in pairs(RootPart:GetChildren()) do
  726. if v:IsA("RocketPropulsion") then
  727. v.MaxSpeed = MaxSpeed
  728. v.ThrustP = ThrustP
  729. end
  730. end
  731. end
  732.  
  733. function Grapple(side,to,spd)
  734. if not CanGrapple then return end
  735.  
  736. PlaySound(as.Shoot,mran2(4.5,5.5),1,Torso)
  737. local MouseCF = to
  738. local hit,hitpos
  739. local Drop = 0.1
  740.  
  741. if side == "q" then
  742. if qPart then qPart:Destroy() qPart=nil end
  743. if qProp then qProp:Destroy() qProp=nil end
  744.  
  745. qPart = iPart{Pack,1,2,1,an=true,co="Black",cf=cn(qbb.CFrame.p,MouseCF.p)*ca(-90,0,0)} qPart.Name = "qPart"
  746. iNew{"SpecialMesh",qPart,MeshId=as.Cone,Scale=v3(0.4,2,0.4)}
  747. qRope = iPart{qPart,1,1,1,an=true,co="Black"}
  748. iNew{"CylinderMesh",qRope}
  749.  
  750. for i=1,10000 do
  751. if not qPart then return end
  752. hit,hitpos = Raycast(qPart.Position,qPart.Position - (qPart.CFrame *cn(0,-1,0)).p,spd,Char)
  753. qPart.CFrame=qPart.CFrame*cn(0,spd,0)*ca(-Drop,0,0)
  754. if hit and hitpos and hit.Name~="unray" then
  755. PlaySound(as.Block,1,1,Torso)
  756. local pa,pb,pc=qPart.CFrame:toEulerAnglesXYZ()
  757. qPart.CFrame=cn(hitpos)*ca2(pa,pb,pc)
  758. qHit = hit
  759. qOffset = hit.CFrame:toObjectSpace(qPart.CFrame)
  760. if ePart and eHit then
  761. if qePart then qePart:Destroy() qePart=nil end
  762. if eProp then eProp:Destroy() eProp=nil end
  763. if qProp then qProp:Destroy() qProp=nil end
  764. if qeProp then qeProp:Destroy() qeProp=nil end
  765. qePart=iPart{Pack,1,1,1,tr=1,an=true,cf=cn(qPart.CFrame.p:Lerp(ePart.CFrame.p,0.5))}
  766. qeProp = AddRP(qePart,"qeProp",MaxThrust2)
  767. qeProp:Fire()
  768. elseif (ePart or not ePart) and not eHit then -- fixed glitch where trying to grapple and firing one
  769. qProp=AddRP(qPart,"qProp",MaxThrust1)
  770. qProp:Fire()
  771. end
  772. end
  773. if hit and hitpos then break end
  774. wait(0)
  775. end
  776.  
  777. elseif side == "e" then
  778. if ePart then ePart:Destroy() ePart=nil end
  779. if eProp then eProp:Destroy() eProp=nil end
  780.  
  781. ePart = iPart{Pack,1,2,1,an=true,co="Black",cf=cn(ebb.CFrame.p,MouseCF.p)*ca(-90,0,0)} ePart.Name = "ePart"
  782. iNew{"SpecialMesh",ePart,MeshId=as.Cone,Scale=v3(0.4,2,0.4)}
  783. eRope = iPart{ePart,1,1,1,an=true,co="Black"}
  784. iNew{"CylinderMesh",eRope}
  785.  
  786. for i=1,10000 do
  787. if not ePart then return end
  788. hit,hitpos = Raycast(ePart.Position,ePart.Position - (ePart.CFrame *cn(0,-1,0)).p,spd,Char)
  789. ePart.CFrame=ePart.CFrame*cn(0,spd,0)*ca(-Drop,0,0)
  790. if hit and hitpos and hit.Name~="unray" then
  791. PlaySound(as.Block,1,1,Torso,Torso)
  792. local pa,pb,pc=ePart.CFrame:toEulerAnglesXYZ()
  793. ePart.CFrame=cn(hitpos)*ca2(pa,pb,pc)
  794. eHit = hit
  795. eOffset = hit.CFrame:toObjectSpace(ePart.CFrame)
  796. if qPart and qHit then
  797. if qePart then qePart:Destroy() qePart=nil end
  798. if eProp then eProp:Destroy() eProp=nil end
  799. if qProp then qProp:Destroy() qProp=nil end
  800. if qeProp then qeProp:Destroy() qeProp=nil end
  801. qePart=iPart{Pack,1,1,1,tr=1,an=true,cf=cn(ePart.CFrame.p:Lerp(qPart.CFrame.p,0.5))}
  802. qeProp = AddRP(qePart,"qeProp",MaxThrust2)
  803. qeProp:Fire()
  804. elseif (qPart or not qPart) and not qHit then
  805. eProp=AddRP(ePart,"eProp",MaxThrust1)
  806. eProp:Fire()
  807. end
  808. end
  809. if hit and hitpos then break end
  810. wait(0)
  811. end
  812. end
  813. Humanoid.Jump=true
  814. Grappling=true
  815. ReturnPose()
  816. GrappleStance()
  817. end
  818.  
  819. function ThrowBlade(index)
  820. local pos = Mouse.Hit.p
  821. local weld = CurrentBlades[index]
  822. local sword = weld.Part1
  823. local hitted = false
  824. local dist = (sword.Position-pos).magnitude
  825. local dir = cn(sword.Position,pos)
  826.  
  827. local hit,hitpos = Raycast(sword.CFrame.p,(pos-sword.CFrame.p),999,Char)
  828. bodyPart = iPart{Pack,1,1,1,tr=1,an=true,ca=false,cf=not hit and dir*cn(0,0,-200) or cn(hitpos)}
  829.  
  830. PlaySound(as.Disconnect,1,0.5,Torso)
  831. PlaySound(as.QuickSlash,1,1,Torso)
  832. sword.CanCollide = true
  833. CurrentBlades[index].Part0 = nil
  834. CurrentBlades[index] = nil
  835.  
  836. local bodyPos = iNew{"BodyPosition",sword,maxForce=v3(1,1,1)/0,D=15*(sword.Position-bodyPart.Position).magnitude,P=3500}
  837. local bodyGyro = iNew{"BodyGyro",sword,cframe=dir*ca(-90,0,0),D=15,maxTorque=v3(1,1,1)/0}
  838. bodyPos.position=bodyPart.CFrame.p
  839.  
  840. sword.Touched:connect(function(hit)
  841. if not hit:IsDescendantOf(Char) and not hitted then
  842. hitted = true
  843. if bodyPos then bodyPos:Destroy() end
  844. if bodyGyro then bodyGyro:Destroy() end
  845. local hum = hit.Parent:FindFirstChild("Humanoid")
  846. if hum then
  847. Damage(hum,2)
  848. end
  849. end
  850. end)
  851. Spawn(function()
  852. times = 0
  853. repeat wait(0) times = times+1 until (sword.Position-Mouse.Hit.p).magnitude<8 or times>=200 or hitted
  854. if bodyPos then bodyPos:Destroy() end
  855. if bodyGyro then bodyGyro:Destroy() end
  856. for i,v in pairs(Pack:GetChildren()) do
  857. if v.Name == "Blade"..weld.Name then
  858. deb:AddItem(v,3)
  859. end
  860. end
  861. end)
  862. end
  863.  
  864.  
  865. do
  866. Mouse=Player:GetMouse()
  867. Mouse.KeyDown:connect(function(key)
  868. keys[key]=true
  869. if Mouse and Mouse.Hit then
  870. -- Grapple
  871. if key == "q" then
  872. if not keys["g"] then
  873. Grapple("q",Mouse.Hit,18)
  874. end
  875. end
  876. if key == "e" then
  877. if not keys["g"] then
  878. Grapple("e",Mouse.Hit,18)
  879. end
  880. end
  881.  
  882. -- Jump
  883. if key == " " then
  884. Humanoid.PlatformStand=false
  885. Grappling=false
  886. if qPart then qPart:Destroy() qPart=nil qRope=nil qHit=nil end
  887. if ePart then ePart:Destroy() ePart=nil eRope=nil eHit=nil end
  888. if qePart then qePart:Destroy() qePart=nil end
  889. if qProp then qProp:Destroy() qProp=nil end
  890. if eProp then eProp:Destroy() eProp=nil end
  891. if qeProp then qeProp:Destroy() qeProp=nil end
  892. end
  893.  
  894. -- Toggle Walk/Run
  895. if key == "0" then
  896. if WalkMode == "Walk" then
  897. WalkMode = "Run"
  898. elseif WalkMode == "Run" then
  899. WalkMode = "Walk"
  900. end
  901. end
  902.  
  903. -- Blade Reload
  904. if key == "r" then
  905. if Anim == "" and not Grappling and not Humanoid.PlatformStand and not Humanoid.Jump and WalkMode == "Walk" then
  906. Anim = "Blade Switch"
  907. CanGrapple = false
  908. Humanoid.WalkSpeed = 20
  909. if not CurrentBlades[1] and not CurrentBlades[2] then
  910. local newRBlade,newLBlade
  911. if Pack["RightBlade1"].Part0 and Pack["LeftBlade7"].Part0 then
  912. newRBlade = Pack["RightBlade1"]
  913. newLBlade = Pack["LeftBlade7"]
  914. elseif Pack["RightBlade3"].Part0 and Pack["LeftBlade5"].Part0 then
  915. newRBlade = Pack["RightBlade3"]
  916. newLBlade = Pack["LeftBlade5"]
  917. elseif Pack["RightBlade5"].Part0 and Pack["LeftBlade3"].Part0 then
  918. newRBlade = Pack["RightBlade5"]
  919. newLBlade = Pack["LeftBlade3"]
  920. elseif Pack["RightBlade7"].Part0 and Pack["LeftBlade1"].Part0 then
  921. newRBlade = Pack["RightBlade7"]
  922. newLBlade = Pack["LeftBlade1"]
  923. else
  924. print("No more Blades in stock")
  925. CanGrapple = true
  926. Anim = ""
  927. return
  928. end
  929. Sharpness = 1
  930. -- anims
  931. local num = 3
  932. RePose()
  933. for i=1,ASpeed*num do
  934. SetWeld(LAW,0,i,ASpeed*num,wLA,wLA2,v3(0,-0.5,-0.8),v3(0,-180,-60),1)
  935. SetWeld(RAW,0,i,ASpeed*num,wRA,wRA2,v3(0,-0.5,-0.8),v3(15,180,60),1)
  936. SetWeld(Neck,0,i,ASpeed*num,wNE,wNE2,v3(0,1.5,-0.2),v3(-30,0,0),1)
  937. SetWeld(Root,0,i,ASpeed*num,wRT,wRT2,v3(0,-0.2,0),v3(-15,0,0),1)
  938. SetWeld(LLW,0,i,ASpeed*num,wLL,wLL2,v3(-0.5,-0.8,0),v3(15,0,-5),1)
  939. SetWeld(RLW,0,i,ASpeed*num,wRL,wRL2,v3(0.5,-0.8,0),v3(15,0,5),1)
  940. SetWeld(wLSword,0,i,ASpeed*num,wLS,wLS2,v3(0,-0.95,0),v3(-90,-60,0),1)
  941. SetWeld(wRSword,0,i,ASpeed*num,wRS,wRS2,v3(0,-0.95,0),v3(-90,60,0),1)
  942. wait(0)
  943. end
  944.  
  945. newRBlade.Part0 = RConnect
  946. newRBlade.C0 = cn(0,3.5/2,0.05)
  947. CurrentBlades[1] = newRBlade
  948.  
  949. newLBlade.Part0 = LConnect
  950. newLBlade.C0 = cn(0,3.5/2,0.05)
  951. CurrentBlades[2] = newLBlade
  952.  
  953. PlaySound(as.Draw,1,1,Torso)
  954. local num = 1.5
  955. RePose()
  956. for i=1,ASpeed*num do
  957. SetWeld(LAW,0,i,ASpeed*num,wLA,wLA2,v3(0,0.1,-1.5),v3(70,-180,-60),1)
  958. SetWeld(RAW,0,i,ASpeed*num,wRA,wRA2,v3(0,0.1,-1.5),v3(85,180,60),1)
  959. SetWeld(Neck,0,i,ASpeed*num,wNE,wNE2,v3(0,1.5,0),v3(15,0,0),1)
  960. SetWeld(Root,0,i,ASpeed*num,wRT,wRT2,v3(0,0,0),v3(0,0,0),1)
  961. SetWeld(LLW,0,i,ASpeed*num,wLL,wLL2,PoseLL,PoseLL2,1)
  962. SetWeld(RLW,0,i,ASpeed*num,wRL,wRL2,PoseRL,PoseRL2,1)
  963. SetWeld(wLSword,0,i,ASpeed*num,wLS,wLS2,v3(0,-0.95,0),v3(-90,-60,0),1)
  964. SetWeld(wLSword,1,i,ASpeed*num,v3(0,0,0),v3(0,0,0),v3(0,0,0),v3(-50,0,0),1)
  965. SetWeld(wRSword,0,i,ASpeed*num,wRS,wRS2,v3(0,-0.95,0),v3(-90,60,0),1)
  966. SetWeld(wRSword,1,i,ASpeed*num,v3(0,0,0),v3(0,0,0),v3(0,0,0),v3(-50,0,0),1)
  967. wait(0)
  968. end
  969. RePose()
  970. for i=1,ASpeed*num do
  971. SetWeld(LAW,0,i,ASpeed*num,wLA,wLA2,PoseLA,PoseLA2,1)
  972. SetWeld(RAW,0,i,ASpeed*num,wRA,wRA2,PoseRA,PoseRA2,1)
  973. SetWeld(Neck,0,i,ASpeed*num,wNE,wNE2,PoseNE,PoseNE2,1)
  974. SetWeld(wLSword,0,i,ASpeed*num,wLS,wLS2,PoseLS,PoseLS2,1)
  975. SetWeld(wLSword,1,i,ASpeed*num,v3(0,0,0),v3(0,0,0),v3(0,0,0),v3(0,0,0),1)
  976. SetWeld(wRSword,0,i,ASpeed*num,wRS,wRS2,PoseRS,PoseRS2,1)
  977. SetWeld(wRSword,1,i,ASpeed*num,v3(0,0,0),v3(0,0,0),v3(0,0,0),v3(0,0,0),1)
  978. wait(0)
  979. end
  980. Anim = ""
  981. CanGrapple = true
  982.  
  983. elseif CurrentBlades[1] and CurrentBlades[2] then
  984. PlaySound(as.Disconnect,1,1,Torso)
  985. CurrentBlades[1].Part0 = nil
  986. CurrentBlades[1].Part1.CanCollide = true
  987. CurrentBlades[1] = nil
  988.  
  989. CurrentBlades[2].Part0 = nil
  990. CurrentBlades[2].Part1.CanCollide = true
  991. CurrentBlades[2] = nil
  992. end
  993. Anim = ""
  994. CanGrapple = true
  995. Humanoid.WalkSpeed = WalkMode == "Walk" and 10 or WalkMode == "Run" and 28
  996. end
  997. end
  998.  
  999. -- Spin Attack
  1000. if key == "t" then
  1001. if not CurrentBlades[1] and not CurrentBlades[2] then return end
  1002. if Anim == "" then
  1003. Anim = "Spin"
  1004. RePose()
  1005. for i=1,ASpeed do
  1006. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.5,0.5,0),v3(180,0,-90),1)
  1007. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.5,0.5,0),v3(0,0,90),1)
  1008. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(0,80,5),1)
  1009. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1.5,0),v3(0,0,0),1)
  1010. SetWeld(wLSword,0,i,ASpeed,wLS,wLS2,v3(0,-0.95,0),v3(-180,0,0),1)
  1011. SetWeld(wRSword,0,i,ASpeed,wRS,wRS2,v3(0,-0.95,0),v3(-180,0,0),1)
  1012. wait(0)
  1013. end
  1014. Dmg=true
  1015. RePose()
  1016. local num = 2
  1017. PlaySound(as.QuickSlash,0.95,1,Torso)
  1018. for i=1,ASpeed*num do
  1019. if i%4==0 then
  1020. MeshEffect(Pack,Torso.CFrame*cn(0,0.5,0),16,0.5,16,0.07,"Dark grey","Cylinder")
  1021. end
  1022. SetWeld(Root,0,i,ASpeed*num,wRT,wRT2,v3(0,0,0),v3(-15,-360-270,0),1)
  1023. SetWeld(LAW,0,i,ASpeed*num,wLA,wLA2,v3(-1.5,0.5,0),v3(180,0,-90),1)
  1024. SetWeld(RAW,0,i,ASpeed*num,wRA,wRA2,v3(1.5,0.5,0),v3(0,0,90),1)
  1025. SetWeld(wLSword,0,i,ASpeed*num,wLS,wLS2,v3(0,-0.95,0),v3(-180,0,0),1)
  1026. SetWeld(wRSword,0,i,ASpeed*num,wRS,wRS2,v3(0,-0.95,0),v3(-180,0,0),1)
  1027. wait(0)
  1028. end
  1029. Dmg=false
  1030. ClearWeld(Root)
  1031. ReturnPose()
  1032. Anim=""
  1033. end
  1034. end
  1035.  
  1036. -- Block
  1037. if key == "f" then
  1038. if WalkMode == "Run" then return end
  1039. if not CurrentBlades[1] and not CurrentBlades[2] then return end
  1040. if Anim == "" then
  1041. Anim = "Blocking"
  1042. Block.Value = 1
  1043. RePose()
  1044. for i=1,ASpeed do
  1045. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.5,0.5,0),v3(73,-45,0),1)
  1046. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.5,0.5,0),v3(65,38,0),1)
  1047. SetWeld(wLSword,0,i,ASpeed,wLS,wLS2,v3(0,-0.95,0),v3(-90,0,0),1)
  1048. SetWeld(wRSword,0,i,ASpeed,wRS,wRS2,v3(0,-0.95,0),v3(-90,0,0),1)
  1049. wait(0)
  1050. end
  1051. PlaySound(as.Block,1,1,Torso)
  1052. Anim = "Block"
  1053. repeat wait() until Block.Value<=0 or not keys["f"] or Anim ~= "Block"
  1054. if Anim == "Block" then
  1055. Anim = "Unblocking"
  1056. Block.Value = 0
  1057. ReturnPose(not Walking)
  1058. Anim = ""
  1059. end
  1060. end
  1061. end
  1062.  
  1063. -- Double Grapple
  1064. if key == "g" then
  1065. if not keys["q"] and not keys["e"] then
  1066. Spawn(function() Grapple("q",Mouse.Hit*cn(-(RootPart.Position-Mouse.Hit.p).magnitude/5,0,0),18) end)
  1067. Spawn(function() Grapple("e",Mouse.Hit*cn((RootPart.Position-Mouse.Hit.p).magnitude/5,0,0),18) end)
  1068. end
  1069. end
  1070.  
  1071. -- Choke Kill
  1072. if key == "z" then
  1073. if not CurrentBlades[1] and not CurrentBlades[2] then return end
  1074. if Anim == "" and not Grappling and not Humanoid.PlatformStand and WalkMode == "Walk" then
  1075. hit,hitpos = Raycast(RootPart.Position-v3(0,1,0),RootPart.Position-v3(0,1,0) - (RootPart.CFrame *cn(0,0,5)).p,10,Char)
  1076.  
  1077. if not hit or not hitpos then return end
  1078. if not hit.Parent:findFirstChild("Humanoid") and not hit.Parent.Parent:findFirstChild("Humanoid") then return end
  1079. if not hit.Parent:findFirstChild("Torso") and not hit.Parent.Parent:findFirstChild("Torso") then return end
  1080.  
  1081. hitHum = not hit.Parent:findFirstChild("Humanoid") and (not hit.Parent.Parent:findFirstChild("Humanoid")and nil or hit.Parent.Parent:findFirstChild("Humanoid")) or hit.Parent:findFirstChild("Humanoid")
  1082. hitTorso = not hit.Parent:findFirstChild("Torso") and (not hit.Parent.Parent:findFirstChild("Torso") and nil or hit.Parent.Parent:findFirstChild("Torso")) or hit.Parent:findFirstChild("Torso")
  1083.  
  1084. -- Check for titans
  1085. if hitTorso:GetMass() > 4 then print("OMG U TRIED TO CHOKE A TITAN") return end
  1086.  
  1087. if hitHum and hitTorso then
  1088. Anim = "Choke"
  1089. hitHum.PlatformStand=false
  1090. RootPart.CFrame=hitTorso.CFrame*cn(0,0,1)
  1091. wHitTorso = iNew{"Weld",Pack,Part0=RootPart,Part1=hitTorso,C0=cn(0,-0.2,-1)*ca(-10,0,0)}
  1092. RePose()
  1093. for i=1,ASpeed do
  1094. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.5,0.5,0),v3(0,-75,-100),1)
  1095. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.5,0.5,0),v3(0,75,100),1)
  1096. wait(0)
  1097. end
  1098. end
  1099.  
  1100. local prevSpeed = Humanoid.WalkSpeed
  1101. repeat wait(0.3)
  1102. if hitHum then
  1103. Humanoid.WalkSpeed = prevSpeed / 5
  1104. pcall(function()
  1105. hitHum.PlatformStand=true
  1106. end)
  1107. end
  1108. until not keys["z"] or not hitHum or not hitTorso or hitHum.Health <= 0 or Grappling or Humanoid.PlatformStand or Humanoid.Sit or WalkMode~="Walk" or Humanoid.Jump or Anim~="Choke"
  1109. if Anim == "Choke" then
  1110. Humanoid.WalkSpeed=prevSpeed
  1111. pcall(function() wHitTorso:Destroy() end)
  1112. ReturnPose()
  1113. Anim = ""
  1114. else
  1115. PlaySound(Slashes.Slash2,1,1,Torso)
  1116. RePose()
  1117. for i=1,ASpeed do
  1118. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.5,0.5,0),v3(0,-25,-100),1)
  1119. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.5,0.5,0),v3(0,25,100),1)
  1120. SetWeld(wLSword,0,i,ASpeed,wLS,wLS2,v3(0,-0.95,0),v3(-90+50,0,0),1)
  1121. SetWeld(wRSword,0,i,ASpeed,wRS,wRS2,v3(0,-0.95,0),v3(-90+50,0,0),1)
  1122. wait(0)
  1123. end
  1124. pcall(function() wHitTorso:Destroy() end)
  1125. pcall(function() Damage(hitHum,3) end)
  1126. wait(0.3)
  1127. Humanoid.WalkSpeed=prevSpeed
  1128. ReturnPose()
  1129. Anim = ""
  1130. end
  1131. end
  1132. end
  1133.  
  1134. -- Flip Slash
  1135. if key == "x" then
  1136. if not CurrentBlades[1] and not CurrentBlades[2] then return end
  1137. if Anim == "" then
  1138. Anim = "Flip Slash"
  1139. if not Humanoid.PlatformStand then Force.force = v3(0,16000,0) end
  1140. Legs(0)
  1141. RePose()
  1142. for i=1,ASpeed do
  1143. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.5,0.5,0),v3(210,0,20),1)
  1144. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.5,0.5,0),v3(210,0,-20),1)
  1145. SetWeld(LLW,0,i,ASpeed,wLL,wLL2,v3(-0.5,-1,0),v3(-60,0,-15),0)
  1146. SetWeld(RLW,0,i,ASpeed,wRL,wRL2,v3(0.5,-1,0),v3(-60,0,15),0)
  1147. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(55,0,0),1)
  1148. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1.5,0),v3(30,0,0),1)
  1149. wait(0)
  1150. end
  1151. Force.force = v3(0,0,0)
  1152. PlaySound(as.QuickSlash,1,1,Torso)
  1153. Dmg=true
  1154. RePose()
  1155. Spawn(function()
  1156. for i=1,ASpeed/1.2 do
  1157. SetWeld(LLW,0,i,ASpeed/1.2,wLL,wLL2,v3(-0.5,-1,0),v3(-15,0,-15),0)
  1158. SetWeld(RLW,0,i,ASpeed/1.2,wRL,wRL2,v3(0.5,-1,0),v3(-15,0,15),0)
  1159. SetWeld(Neck,0,i,ASpeed/1.2,wNE,wNE2,v3(0,1.5,0),v3(30,0,0),1)
  1160. SetWeld(wLSword,0,i,ASpeed/1.2,wLS,wLS2,PoseLS,v3(-130,0,0),1)
  1161. SetWeld(wRSword,0,i,ASpeed/1.2,wRS,wRS2,PoseRS,v3(-130,0,0),1)
  1162. wait(0)
  1163. end
  1164. end)
  1165. for i=1,ASpeed/0.6 do
  1166. SetWeld(LAW,0,i,ASpeed/0.6,wLA,wLA2,v3(-1.5,0.5,0),v3(20,0,20),1)
  1167. SetWeld(RAW,0,i,ASpeed/0.6,wRA,wRA2,v3(1.5,0.5,0),v3(20,0,-20),1)
  1168. SetWeld(Root,0,i,ASpeed/0.6,wRT,wRT2,v3(0,0,0),v3(-360-30,0,0),1)
  1169. wait(0)
  1170. end
  1171. RePose()
  1172. ClearWeld(Root)
  1173. SetWeld(Root,0,1,1,wRT,wRT2,v3(0,0,0),v3(-30,0,0),0)
  1174. Dmg=false
  1175. ReturnPose()
  1176. Anim = ""
  1177. end
  1178. end
  1179.  
  1180. -- Blade Throw
  1181. if key == "c" then
  1182. if Anim == "" and CurrentBlades[1] and CurrentBlades[2] then
  1183. Anim = "Blade Throw"
  1184. RePose()
  1185. for i=1,ASpeed do
  1186. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,PoseLA,PoseLA2,1)
  1187. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.5,0.5,0),v3(200,-15,20),1)
  1188. SetWeld(Neck,0,i,ASpeed,wNE,wNE,v3(0,1.5,0),v3(15,-20,0),1)
  1189. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(0,-15,0),1)
  1190. wait(0)
  1191. end
  1192. ThrowBlade(1)
  1193. RePose()
  1194. for i=1,ASpeed do
  1195. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,PoseLA,PoseLA2,1)
  1196. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,PoseRA,PoseRA2,1)
  1197. SetWeld(Neck,0,i,ASpeed,wNE,wNE,v3(0,1.5,0),v3(5,0,0),1)
  1198. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(0,0,0),1)
  1199. wait(0)
  1200. end
  1201.  
  1202.  
  1203. RePose()
  1204. for i=1,ASpeed do
  1205. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.5,0.5,0),v3(200,15,-20),1)
  1206. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,PoseRA,PoseRA2,1)
  1207. SetWeld(Neck,0,i,ASpeed,wNE,wNE,v3(0,1.5,0),v3(15,20,0),1)
  1208. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(0,15,0),1)
  1209. wait(0)
  1210. end
  1211. ThrowBlade(2)
  1212. RePose()
  1213. for i=1,ASpeed do
  1214. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,PoseLA,PoseLA2,1)
  1215. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,PoseRA,PoseRA2,1)
  1216. SetWeld(Neck,0,i,ASpeed,wNE,wNE,v3(0,1.5,0),v3(5,0,0),1)
  1217. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(0,0,0),1)
  1218. wait(0)
  1219. end
  1220. Anim = ""
  1221. end
  1222. end
  1223. end
  1224. end)
  1225.  
  1226. Mouse.KeyUp:connect(function(key)
  1227. keys[key]=false
  1228. if key == "q" then
  1229. if keys["g"] then return end
  1230. if not keys["e"] then Grappling=false end
  1231. if qPart then qPart:Destroy() qPart=nil qRope = nil qHit=nil end
  1232. if qePart then qePart:Destroy() qePart=nil end
  1233. if qProp then qProp:Destroy() qProp=nil end
  1234. if qeProp then qeProp:Destroy() qeProp=nil end
  1235.  
  1236. if keys["e"] then
  1237. if ePart and not eProp and eHit then
  1238. eProp=AddRP(ePart,"eProp",MaxThrust1)
  1239. eProp:Fire()
  1240. end
  1241. end
  1242. end
  1243. if key == "e" then
  1244. if keys["g"] then return end
  1245. if not keys["q"] then Grappling=false end
  1246. if ePart then ePart:Destroy() ePart=nil eRope = nil eHit=nil end
  1247. if qePart then qePart:Destroy() qePart=nil end
  1248. if eProp then eProp:Destroy() eProp=nil end
  1249. if qeProp then qeProp:Destroy() qeProp=nil end
  1250.  
  1251. if keys["q"] then
  1252. if qPart and not qProp and qHit then
  1253. qProp=AddRP(qPart,"qProp",MaxThrust1)
  1254. qProp:Fire()
  1255. end
  1256. end
  1257. end
  1258. if key == "g" then
  1259. if keys["q"] or keys["e"] then return end
  1260. Grappling=false
  1261. if qPart then qPart:Destroy() qPart=nil qRope = nil qHit=nil end
  1262. if ePart then ePart:Destroy() ePart=nil eRope = nil eHit=nil end
  1263. if qePart then qePart:Destroy() qePart=nil end
  1264. if qProp then qProp:Destroy() qProp=nil end
  1265. if eProp then eProp:Destroy() eProp=nil end
  1266. if qeProp then qeProp:Destroy() qeProp=nil end
  1267. end
  1268. end)
  1269.  
  1270. Mouse.Button1Down:connect(function()
  1271. if Anim == "" then
  1272. if not CurrentBlades[1] and not CurrentBlades[2] then return end
  1273. if Attack == 1 then
  1274. Anim = "Attack1"
  1275. RePose()
  1276. local torsoA,torsoB,torsoC = Root.C0:toEulerAnglesXYZ()
  1277. for i=1,ASpeed do
  1278. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.3,0.5,-0.25),v3(90,0,20),1)
  1279. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.3,0.5,-0.25),v3(90,0,20),1)
  1280. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(math.deg(torsoA),50,0),1)
  1281. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1.5,0),v3(0,0,0),1)
  1282. SetWeld(wLSword,0,i,ASpeed,wLS,wLS2,PoseLS,v3(-90,0,90),1)
  1283. SetWeld(wRSword,0,i,ASpeed,wRS,wRS2,PoseRS,v3(-90,0,90),1)
  1284. wait(0)
  1285. end
  1286. Dmg=true
  1287. PlaySound(Slashes[mran(1,#Slashes)],1,1,Torso)
  1288. RePose()
  1289. for i=1,ASpeed/1.3 do
  1290. SetWeld(LAW,0,i,ASpeed/1.3,wLA,wLA2,v3(-1.3,0.5,-0.25),v3(90,0,70),1)
  1291. SetWeld(RAW,0,i,ASpeed/1.3,wRA,wRA2,v3(1.3,0.5,-0.25),v3(90,0,70),1)
  1292. SetWeld(Root,0,i,ASpeed/1.3,wRT,wRT2,v3(0,0,0),v3(math.deg(torsoA),-70,0),1)
  1293. SetWeld(Neck,0,i,ASpeed/1.3,wNE,wNE2,v3(0,1.5,0),v3(0,0,0),1)
  1294. SetWeld(wLSword,0,i,ASpeed/1.3,wLS,wLS2,PoseLS,v3(-90,-60,90),1)
  1295. SetWeld(wRSword,0,i,ASpeed/1.3,wRS,wRS2,PoseRS,v3(-90,-60,90),1)
  1296. wait(0)
  1297. end
  1298. Dmg=false
  1299. ReturnPose(not Walking)
  1300. Anim = ""
  1301. Attack = 2
  1302. elseif Attack == 2 then
  1303. Anim = "Attack2"
  1304. RePose()
  1305. local torsoA,torsoB,torsoC = Root.C0:toEulerAnglesXYZ()
  1306. for i=1,ASpeed do
  1307. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.3,0.5,-0.25),v3(90,0,-20),1)
  1308. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.3,0.5,-0.25),v3(90,0,-20),1)
  1309. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(math.deg(torsoA),-50,0),1)
  1310. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1.5,0),v3(0,0,0),1)
  1311. SetWeld(wLSword,0,i,ASpeed,wLS,wLS2,PoseLS,v3(-90,0,-90),1)
  1312. SetWeld(wRSword,0,i,ASpeed,wRS,wRS2,PoseRS,v3(-90,0,-90),1)
  1313. wait(0)
  1314. end
  1315. Dmg=true
  1316. PlaySound(Slashes[mran(1,#Slashes)],1,1,Torso)
  1317. RePose()
  1318. for i=1,ASpeed/1.3 do
  1319. SetWeld(LAW,0,i,ASpeed/1.3,wLA,wLA2,v3(-1.3,0.5,-0.25),v3(90,0,-70),1)
  1320. SetWeld(RAW,0,i,ASpeed/1.3,wRA,wRA2,v3(1.3,0.5,-0.25),v3(90,0,-70),1)
  1321. SetWeld(Root,0,i,ASpeed/1.3,wRT,wRT2,v3(0,0,0),v3(math.deg(torsoA),70,0),1)
  1322. SetWeld(Neck,0,i,ASpeed/1.3,wNE,wNE2,v3(0,1.5,0),v3(0,0,0),1)
  1323. SetWeld(wLSword,0,i,ASpeed/1.3,wLS,wLS2,PoseLS,v3(-90,60,-90),1)
  1324. SetWeld(wRSword,0,i,ASpeed/1.3,wRS,wRS2,PoseRS,v3(-90,60,-90),1)
  1325. wait(0)
  1326. end
  1327. Dmg=false
  1328. ReturnPose(not Walking)
  1329. Anim = ""
  1330. Attack = 3
  1331.  
  1332. elseif Attack == 3 then
  1333. if not CurrentBlades[1] and not CurrentBlades[2] then return end
  1334. if Anim == "" then
  1335. Anim = "Dual Plunge"
  1336. RePose()
  1337. for i=1,ASpeed do
  1338. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.4,0.5,0),v3(0,-105,-75),1)
  1339. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.4,0.5,0),v3(0,105,75),1)
  1340. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1.5,0),v3(-15,0,0),1)
  1341. SetWeld(wLSword,0,i,ASpeed,wLS,wLS2,v3(0,-0.95,0),v3(-180,0,0),1)
  1342. SetWeld(wRSword,0,i,ASpeed,wRS,wRS2,v3(0,-0.95,0),v3(-180,0,0),1)
  1343. wait(0)
  1344. end
  1345. Dmg=true
  1346. wait(0.1)
  1347. PlaySound(Slashes[mran(1,#Slashes)],1,1,Torso)
  1348. RePose()
  1349. for i=1,ASpeed/1.3 do
  1350. SetWeld(LAW,0,i,ASpeed/1.3,wLA,wLA2,v3(-1.4,0.5,0),v3(0,25,-75),1)
  1351. SetWeld(RAW,0,i,ASpeed/1.3,wRA,wRA2,v3(1.4,0.5,0),v3(0,-25,75),1)
  1352. SetWeld(Neck,0,i,ASpeed/1.3,wNE,wNE2,v3(0,1.5,0),v3(-15,0,0),1)
  1353. SetWeld(wLSword,0,i,ASpeed/1.3,wLS,wLS2,v3(0,-0.95,0),v3(-180,0,0),1)
  1354. SetWeld(wRSword,0,i,ASpeed/1.3,wRS,wRS2,v3(0,-0.95,0),v3(-180,0,0),1)
  1355. wait(0)
  1356. end
  1357. Dmg=false
  1358. ReturnPose()
  1359. Anim=""
  1360. end
  1361. Attack = 1
  1362. end
  1363. end
  1364.  
  1365. if Anim == "Block" and keys["f"] then
  1366. if not CurrentBlades[1] and not CurrentBlades[2] then return end
  1367. Anim = "Block Counter"
  1368. Block.Value = 0
  1369. RePose()
  1370. for i=1,ASpeed do
  1371. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.5,0.5,0),v3(103,-40,15),1)
  1372. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.5,0.5,0),v3(95,40,-15),1)
  1373. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(0,0,0),1)
  1374. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1.5,0),v3(5,0,0),1)
  1375. SetWeld(wLSword,0,i,ASpeed,wLS,wLS2,v3(0,-0.95,0),v3(-90,0,0),1)
  1376. SetWeld(wRSword,0,i,ASpeed,wRS,wRS2,v3(0,-0.95,0),v3(-90,0,0),1)
  1377. wait(0)
  1378. end
  1379. PlaySound(Slashes[mran(1,#Slashes)],1,1,Torso)
  1380. Dmg = true
  1381. RePose()
  1382. for i=1,ASpeed/1.3 do
  1383. SetWeld(LAW,0,i,ASpeed/1.3,wLA,wLA2,v3(-1.5,0.5,0),v3(-88,-25,-40),1)
  1384. SetWeld(RAW,0,i,ASpeed/1.3,wRA,wRA2,v3(1.5,0.5,0),v3(-80,25,40),1)
  1385. SetWeld(Root,0,i,ASpeed/1.3,wRT,wRT2,v3(0,0,0),v3(0,0,0),1)
  1386. SetWeld(Neck,0,i,ASpeed/1.3,wNE,wNE2,v3(0,1.5,0),v3(-20,0,0),1)
  1387. SetWeld(wLSword,0,i,ASpeed/1.3,wLS,wLS2,v3(0,-0.95,0),v3(-130,0,0),1)
  1388. SetWeld(wRSword,0,i,ASpeed/1.3,wRS,wRS2,v3(0,-0.95,0),v3(-130,0,0),1)
  1389. wait(0)
  1390. end
  1391. Dmg = false
  1392. ReturnPose(not Walking)
  1393. Anim = ""
  1394. end
  1395.  
  1396. if Anim == "Choke" and keys["z"] then
  1397. if not CurrentBlades[1] and not CurrentBlades[2] then return end
  1398. Anim = "Assassinate"
  1399. end
  1400. end)
  1401. end
  1402.  
  1403.  
  1404. Anim = ""
  1405. Footsteps = {as.Footstep1,as.Footstep2,as.Footstep3}
  1406. Grappling = false
  1407. ASpeed = 9
  1408. Attack = 1
  1409. CurrentBlades = {nil,nil}
  1410.  
  1411. PoseLA=v3(-1.5,0.5,0) PoseLA2=v3(-10,15,-20)
  1412. PoseRA=v3(1.5,0.5,0) PoseRA2=v3(-10,-15,20)
  1413. PoseLL=v3(-0.5,-1,0) PoseLL2=v3(0,12,-12)
  1414. PoseRL=v3(0.5,-1,0) PoseRL2=v3(0,-12,12)
  1415. PoseRT=v3(0,0,0) PoseRT2=v3(0,0,0)
  1416. PoseNE=v3(0,1.5,0) PoseNE2=v3(0,0,0)
  1417. PoseLS=v3(0,-0.95,-0.25) PoseLS2=v3(-90,0,0)
  1418. PoseRS=v3(0,-0.95,-0.25) PoseRS2=v3(-90,0,0)
  1419. Arms() Legs()
  1420. ReturnPose()
  1421. Arms(0) Legs(0)
  1422.  
  1423.  
  1424. Walking=false
  1425. Humanoid.Running:connect(function(Walk) Walking=Walk>0 and true or false end)
  1426. Humanoid.Changed:connect(function() if Anim ~= "" then Humanoid.Jump = false end end)
  1427. Humanoid.Jumping:connect(function()
  1428. if Anim == "" then
  1429. if WalkMode == "Run" then
  1430. if not qPart and not ePart then
  1431. Anim = "Jump"
  1432. local torsoVector = RootPart.CFrame.lookVector
  1433. local forz = v3(torsoVector.x,0,torsoVector.z)
  1434. RePose()
  1435. Force.force=forz*12000
  1436. CanGrapple = false
  1437. for i=1,ASpeed do
  1438. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.5,0.5,0),v3(205,-15,15),0)
  1439. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.5,0.5,0),v3(205,15,-15),0)
  1440. SetWeld(LLW,0,i,ASpeed,wLL,wLL2,v3(-0.5,-1,0),v3(15,0,-5),0)
  1441. SetWeld(RLW,0,i,ASpeed,wRL,wRL2,v3(0.5,-1,0),v3(15,0,5),0)
  1442. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1.5,0),v3(10,0,0),0)
  1443. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(-65,0,0),0)
  1444. SetWeld(wLSword,0,i,ASpeed,wLS,wLS2,v3(0,-0.95,0),v3(-270,40,0),0)
  1445. SetWeld(wRSword,0,i,ASpeed,wRS,wRS2,v3(0,-0.95,0),v3(-270,-40,0),0)
  1446. wait(0)
  1447. end
  1448. Dmg=true
  1449. RePose()
  1450. for i=1,ASpeed*1.8 do
  1451. SetWeld(LAW,0,i,ASpeed*1.8,wLA,wLA2,v3(-1.5,0.5,0),v3(155,-15,15),1)
  1452. SetWeld(RAW,0,i,ASpeed*1.8,wRA,wRA2,v3(1.5,0.5,0),v3(155,15,-15),1)
  1453. SetWeld(Neck,0,i,ASpeed*1.8,wNE,wNE2,v3(0,1.5,0),v3(10,0,0),1)
  1454. SetWeld(Root,0,i,ASpeed*1.8,wRT,wRT2,v3(0,-1.5,0),v3(-360-75,0,0),1)
  1455. wait(0)
  1456. end
  1457. RePose()
  1458. ClearWeld(Root)
  1459. SetWeld(Root,0,1,1,wRT,wRT2,v3(0,-1.5,0),v3(-75,0,0),0)
  1460. Humanoid.WalkSpeed = 0
  1461.  
  1462. repeat wait(0)
  1463. hit,hitpos = Raycast(Torso.Position,Torso.Position - (Torso.CFrame*cn(0,0,1)).p,6,Char)
  1464. until (hit and hitpos) or Grappling
  1465. Force.force=v3(0,0,0)
  1466. wait(0.2)
  1467. Dmg=false
  1468. ReturnPose()
  1469. CanGrapple = true
  1470. Humanoid.WalkSpeed = 28
  1471. Anim = ""
  1472. end
  1473.  
  1474. elseif WalkMode == "Walk" then
  1475. if not qPart and not ePart then
  1476. Anim = "Jump"
  1477. RePose()
  1478. for i=1,ASpeed do
  1479. SetWeld(LAW,0,i,ASpeed,wLA,wLA2,v3(-1.5,0.5,0),v3(135,-15,-15),1)
  1480. SetWeld(RAW,0,i,ASpeed,wRA,wRA2,v3(1.5,0.5,0),v3(135,15,15),1)
  1481. SetWeld(LLW,0,i,ASpeed,wLL,wLL2,v3(-0.5,-1,0),v3(-15,0,-5),1)
  1482. SetWeld(RLW,0,i,ASpeed,wRL,wRL2,v3(0.5,-1,0),v3(-15,0,5),1)
  1483. SetWeld(Neck,0,i,ASpeed,wNE,wNE2,v3(0,1.5,0),v3(-5,0,0),1)
  1484. SetWeld(Root,0,i,ASpeed,wRT,wRT2,v3(0,0,0),v3(-15,0,0),1)
  1485. wait(0)
  1486. end
  1487.  
  1488. repeat wait()
  1489. hit,hitpos = Raycast(Torso.Position,Torso.Position - (Torso.CFrame*cn(0,3,0)).p,6,Char)
  1490. until hit and hitpos
  1491. PlaySound(Footsteps[mran(1,#Footsteps)],1,1,Torso)
  1492. ReturnPose()
  1493. Anim = ""
  1494. end
  1495. end
  1496. end
  1497. end)
  1498.  
  1499. Humanoid.Died:connect(function() Pack:Destroy() script:Destroy() end)
  1500.  
  1501.  
  1502. -- Walk / Run / Idle animations
  1503. Idling = true
  1504. Spawn(function()
  1505. while wait(0) do
  1506. if not Grappling and not Humanoid.PlatformStand and not Humanoid.Sit then
  1507. if Torso.Velocity.magnitude > 2 then
  1508. Idling = false
  1509. Arms(0)
  1510. Legs(0)
  1511. if WalkMode == "Walk" then -- walk anims
  1512. local num=1
  1513. if not Humanoid.Jump and Anim ~= "Flip Slash" and Anim ~= "Jump" then
  1514. PlaySound(Footsteps[mran(1,#Footsteps)],1,1,Torso)
  1515. end
  1516. RePose()
  1517. for i=1,ASpeed*num do
  1518. if Anim ~= "Flip Slash" and Anim ~= "Jump" then
  1519. SetWeld(LLW,0,i,ASpeed*num,wLL,wLL2,v3(-0.5,-1,0),v3(-20,0,-3),0)
  1520. SetWeld(RLW,0,i,ASpeed*num,wRL,wRL2,v3(0.5,-1,0),v3(20,0,3),0)
  1521. end
  1522. if Anim == "" then
  1523. SetWeld(LAW,0,i,ASpeed*num,wLA,wLA2,v3(-1.5,0.5,0),v3(20,-8,-10),0)
  1524. SetWeld(RAW,0,i,ASpeed*num,wRA,wRA2,v3(1.5,0.5,0),v3(-20,8,10),0)
  1525. SetWeld(Root,0,i,ASpeed*num,wRT,wRT2,v3(0,0,0),v3(0,0,0),0)
  1526. SetWeld(Neck,0,i,ASpeed*num,wNE,wNE2,v3(0,1.5,0),v3(-5,0,0),0)
  1527.  
  1528. end
  1529. wait(0)
  1530. if Torso.Velocity.magnitude<2 or Grappling then -- break
  1531. if Anim=="" then
  1532. Anim="Return"
  1533. ReturnPose()
  1534. Anim=""
  1535. end
  1536. break
  1537. end
  1538. end
  1539. if not Humanoid.Jump and Anim ~= "Flip Slash" and Anim ~= "Jump" then
  1540. PlaySound(Footsteps[mran(1,#Footsteps)],1,1,Torso)
  1541. end
  1542. RePose()
  1543. for i=1,ASpeed*num do
  1544. if Anim ~= "Flip Slash" and Anim ~= "Jump" then
  1545. SetWeld(LLW,0,i,ASpeed*num,wLL,wLL2,v3(-0.5,-1,0),v3(20,0,-3),0)
  1546. SetWeld(RLW,0,i,ASpeed*num,wRL,wRL2,v3(0.5,-1,0),v3(-20,0,3),0)
  1547. end
  1548. if Anim == "" then
  1549. SetWeld(LAW,0,i,ASpeed*num,wLA,wLA2,v3(-1.5,0.5,0),v3(-20,-8,-10),0)
  1550. SetWeld(RAW,0,i,ASpeed*num,wRA,wRA2,v3(1.5,0.5,0),v3(20,8,10),0)
  1551. SetWeld(Root,0,i,ASpeed*num,wRT,wRT2,v3(0,0,0),v3(0,0,0),0)
  1552. SetWeld(Neck,0,i,ASpeed*num,wNE,wNE2,v3(0,1.5,0),v3(-5,0,0),0)
  1553. end
  1554. wait(0)
  1555. if Torso.Velocity.magnitude<2 or Grappling or WalkMode~="Walk" then -- break
  1556. if Anim=="" then
  1557. Anim="Return"
  1558. ReturnPose()
  1559. Anim=""
  1560. end
  1561. break
  1562. end
  1563. end
  1564. elseif WalkMode == "Run" then -- run anims
  1565. local num = 0.8
  1566. local ang = 50
  1567. if not Humanoid.Jump and Anim ~= "Flip Slash" and Anim ~= "Jump" then
  1568. PlaySound(Footsteps[mran(1,#Footsteps)],1,1,Torso)
  1569. end
  1570. RePose()
  1571. for i=1,ASpeed*num do
  1572. if Anim ~= "Flip Slash" and Anim ~= "Jump" then
  1573. SetWeld(LLW,0,i,ASpeed*num,wLL,wLL2,v3(-0.5,-1,0),v3(-ang,0,-3),0)
  1574. SetWeld(RLW,0,i,ASpeed*num,wRL,wRL2,v3(0.5,-1,0),v3(ang,0,3),0)
  1575. end
  1576. if Anim == "" then
  1577. SetWeld(LAW,0,i,ASpeed*num,wLA,wLA2,v3(-1.5,0.5,0),v3(-90+15,90,0),0)
  1578. SetWeld(RAW,0,i,ASpeed*num,wRA,wRA2,v3(1.5,0.5,0),v3(-90+15,-90,0),0)
  1579. SetWeld(Root,0,i,ASpeed*num,wRT,wRT2,v3(0,0,0),v3(-15,0,0),0)
  1580. SetWeld(Neck,0,i,ASpeed*num,wNE,wNE2,v3(0,1.5,-0.2),v3(-15,0,0),0)
  1581. end
  1582. wait(0)
  1583. if Torso.Velocity.magnitude<2 or Grappling or WalkMode~="Run" then -- break
  1584. if Anim=="" then
  1585. Anim="Return"
  1586. ReturnPose()
  1587. Anim=""
  1588. end
  1589. break
  1590. end
  1591. end
  1592. if not Humanoid.Jump and Anim ~= "Flip Slash" and Anim ~= "Jump" then
  1593. PlaySound(Footsteps[mran(1,#Footsteps)],1,1,Torso)
  1594. end
  1595. RePose()
  1596. for i=1,ASpeed*num do
  1597. if Anim ~= "Flip Slash" and Anim ~= "Jump" then
  1598. SetWeld(LLW,0,i,ASpeed*num,wLL,wLL2,v3(-0.5,-1,0),v3(ang,0,-3),0)
  1599. SetWeld(RLW,0,i,ASpeed*num,wRL,wRL2,v3(0.5,-1,0),v3(-ang,0,-3),0)
  1600. end
  1601. if Anim == "" then
  1602. SetWeld(LAW,0,i,ASpeed*num,wLA,wLA2,v3(-1.5,0.5,0),v3(-90+25,90,0),0)
  1603. SetWeld(RAW,0,i,ASpeed*num,wRA,wRA2,v3(1.5,0.5,0),v3(-90+25,-90,0),0)
  1604. SetWeld(Root,0,i,ASpeed*num,wRT,wRT2,v3(0,0,0),v3(-25,0,0),0)
  1605. SetWeld(Neck,0,i,ASpeed*num,wNE,wNE2,v3(0,1.5,-0.2),v3(-25,0,0),0)
  1606. end
  1607. wait(0)
  1608. if Torso.Velocity.magnitude<2 or Grappling or WalkMode~="Run" then -- break
  1609. if Anim=="" then
  1610. Anim="Return"
  1611. ReturnPose()
  1612. Anim=""
  1613. end
  1614. break
  1615. end
  1616. end
  1617. end
  1618. elseif Torso.Velocity.magnitude < 2 then -- idle anims
  1619. Idling = true
  1620. if Anim == "" then
  1621. --ReturnPose()
  1622. local num=WalkMode=="Walk" and 6.5 or 5
  1623. RePose()
  1624. for i=1,ASpeed*num do
  1625. SetWeld(LAW,0,i,ASpeed*num,wLA,wLA2,v3(-1.5,0.5,0),v3(0,15,-20),1)
  1626. SetWeld(RAW,0,i,ASpeed*num,wRA,wRA2,v3(1.5,0.5,0),v3(0,-15,20),1)
  1627. SetWeld(LLW,0,i,ASpeed*num,wLL,wLL2,v3(-0.5,-1,0),v3(0,12,-12),1)
  1628. SetWeld(RLW,0,i,ASpeed*num,wRL,wRL2,v3(0.5,-1,0),v3(0,-12,12),1)
  1629. SetWeld(Root,0,i,ASpeed*num,wRT,wRT2,v3(0,0,0),v3(0,0,0),1)
  1630. SetWeld(Neck,0,i,ASpeed*num,wNE,wNE2,v3(0,1.5,-0.1),v3(3,0,0),1)
  1631. if Torso.Velocity.magnitude>2 or Anim~="" or Grappling then -- break
  1632. break
  1633. end
  1634. wait(0)
  1635. end
  1636. RePose()
  1637. for i=1,ASpeed*(num-1.5) do
  1638. SetWeld(LAW,0,i,ASpeed*(num-1.5),wLA,wLA2,v3(-1.5,0.5,0),v3(0,-4,-15),1)
  1639. SetWeld(RAW,0,i,ASpeed*(num-1.5),wRA,wRA2,v3(1.5,0.5,0),v3(0,4,15),1)
  1640. SetWeld(LLW,0,i,ASpeed*(num-1.5),wLL,wLL2,v3(-0.5,-1,0),v3(0,4,-4),1)
  1641. SetWeld(RLW,0,i,ASpeed*(num-1.5),wRL,wRL2,v3(0.5,-1,0),v3(0,-4,4),1)
  1642. SetWeld(Root,0,i,ASpeed*(num-1.5),wRT,wRT2,v3(0,0,0),v3(0,0,0),1)
  1643. SetWeld(Neck,0,i,ASpeed*(num-1.5),wNE,wNE2,v3(0,1.5,-0.1),v3(-8,0,0),1)
  1644. if Torso.Velocity.magnitude>2 or Anim~="" or Grappling then -- break
  1645. break
  1646. end
  1647. wait(0)
  1648. end
  1649. end
  1650. end
  1651. end
  1652. end
  1653. end)
  1654.  
  1655.  
  1656. -- Main loop
  1657. Count = 0
  1658. game:GetService("RunService").RenderStepped:connect(function()
  1659. Count = Count + 1
  1660. if Pack.Parent then
  1661. -- Grapple sticking
  1662. if qOffset and qHit and qPart then
  1663. qPart.CFrame = qHit.CFrame * qOffset
  1664. end
  1665. if eOffset and eHit and ePart then
  1666. ePart.CFrame = eHit.CFrame * eOffset
  1667. end
  1668. if qPart and ePart and qePart then
  1669. qePart.CFrame = cn(qPart.CFrame.p,ePart.CFrame.p)*cn(0,0,-(qPart.CFrame.p-ePart.CFrame.p).magnitude/2)
  1670. end
  1671. -- Rope
  1672. if qRope then
  1673. qRope.Mesh.Scale = v3(0.25,(qbb.CFrame.p-qPart.CFrame.p).magnitude,0.25)
  1674. qRope.CFrame = cn(qbb.CFrame.p,qPart.CFrame.p)*ca(-90,0,0)*cn(0,(qbb.CFrame.p-qPart.CFrame.p).magnitude/2,0)
  1675. end
  1676. if eRope then
  1677. eRope.Mesh.Scale = v3(0.25,(ebb.CFrame.p-ePart.CFrame.p).magnitude,0.25)
  1678. eRope.CFrame = cn(ebb.CFrame.p,ePart.CFrame.p)*ca(-90,0,0)*cn(0,(ebb.CFrame.p-ePart.CFrame.p).magnitude/2,0)
  1679. end
  1680. -- Mouse gyro, force, and boosting
  1681. if (qHit and qProp) or (eHit and eProp) or (qePart and qeProp) then
  1682. if qProp then qProp:Fire() end
  1683. if eProp then eProp:Fire() end
  1684. if qeProp then qeProp:Fire() end
  1685. RootPart.CFrame = cn(RootPart.CFrame.p,Mouse.Hit.p)
  1686. if keys["4"] and Gas>0 then
  1687. if Count%10==0 then
  1688. iNew{"Smoke",hp2,Color=bc("Medium stone grey").Color,Opacity=0.5,RiseVelocity=7,Size=2}
  1689. deb:AddItem(LastMade,1)
  1690. Gas = Gas - 0.005
  1691. end
  1692. Force.force=RootPart.CFrame.lookVector*3000
  1693. MaxSpeed = 400
  1694. ThrustP = 5
  1695. UpdatePropulsions()
  1696. elseif not keys["4"] then
  1697. Force.force=RootPart.CFrame.lookVector*0
  1698. MaxSpeed = 300
  1699. ThrustP = 5
  1700. UpdatePropulsions()
  1701. end
  1702. elseif not qProp and not eProp and not qeProp then
  1703. if not Anim == "Jump" and not Anim == "Flip Slash" then
  1704. Force.force = v3(0,0,0)
  1705. end
  1706. end
  1707. -- Walkspeed
  1708. if WalkMode == "Walk" and Anim == "" then
  1709. Humanoid.WalkSpeed = 25
  1710. elseif WalkMode == "Run" and Anim == "" then
  1711. Humanoid.WalkSpeed = 40
  1712. end
  1713. -- PlatformStand
  1714. if Grappling and not Humanoid.PlatformStand then
  1715. GrappleStance()
  1716. end
  1717. -- Sharpness and Gas
  1718. if Sharpness <= 0 then
  1719. Sharpness = 0
  1720. if CurrentBlades[1] and CurrentBlades[2] then
  1721. PlaySound(as.Disconnect,1,1,Torso)
  1722. CurrentBlades[1].Part0 = nil
  1723. CurrentBlades[1].Part1.CanCollide = true
  1724. CurrentBlades[1] = nil
  1725.  
  1726. CurrentBlades[2].Part0 = nil
  1727. CurrentBlades[2].Part1.CanCollide = true
  1728. CurrentBlades[2] = nil
  1729. end
  1730. end
  1731. if Gas <= 0 then
  1732. Gas = 0
  1733. end
  1734. if Gui then
  1735. SwordBar.Size = ud(Sharpness,0,1,0)
  1736. GasBar.Size = ud(Gas,0,1,0)
  1737. end
  1738. end
  1739. end)
  1740. --[[
  1741. -- props (only really useful for when there is no map)
  1742. for _,prop in pairs(workspace:GetChildren()) do
  1743. if prop.Name=="prop" and prop:IsA("BasePart") then
  1744. prop:Destroy()
  1745. end
  1746. end
  1747. tp=iPart{workspace,80,5,700,cf=cn(0,200,600)*ca(15,0,0),an=true,ca=true} tp.Name="prop"
  1748. for i=1,10 do
  1749. local sizeY = mran(25,250)
  1750. tp=iPart{workspace,15,sizeY,15,cf=cn(mran(-300,300),sizeY/2.5,mran(-300,300))*ca(mran(-15,15),0,mran(-15,15)),an=true,ca=true} tp.Name="prop"
  1751. end
  1752. for i=1,100 do
  1753. local tp = iPart{workspace,i==100 and 80 or mran(40,60),6,i==100 and 80 or mran(15,30),an=true,ca=true,co=i==100 and "Black" or "Medium stone grey",
  1754. cf=cn(mran(-150,150),250+(i*mran(80,120)),mran(-100,100))*ca(mran(-15,15),mran(-360,360),mran(-15,15))
  1755. }
  1756. tp.Name="prop"
  1757. end]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement