Advertisement
monsterkid187

3DMG Blades(Leaked)

Aug 8th, 2014
590
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 23.01 KB | None | 0 0
  1.  --3D Manuever Gear Script --
  2. -- Based off of Attack on titan c; --
  3. -- Made by kash5 [NOT THE SCRIPT] --
  4. -- Local Script --
  5. -- You dont put your name in here-
  6. debounce = false
  7. v3 = Vector3.new
  8. cn = CFrame.new
  9. ca2 = CFrame.Angles
  10. mf = math.floor
  11. mran = math.random
  12. mrad = math.rad
  13. mdeg = math.deg
  14. ca = function(x,y,z) return ca2(mrad(x),mrad(y),mrad(z)) end
  15. v32=function(x,y,z) return v3(mdeg(x),mdeg(y),mdeg(z)) end
  16. mran2 = function(a,b) return mran(a*1000,b*1000)/1000 end
  17. ud=UDim2.new
  18. bn = BrickColor.new
  19. c3 = Color3.new
  20. nov3=v3(0,0,0)
  21. maxv3=v3(1,1,1)/0
  22. -----
  23. Player = game:service'Players'.LocalPlayer
  24. Char = Player.Character
  25. Torso = Char.Torso
  26. Head = Char.Head
  27. Humanoid = Char.Humanoid
  28. Root=Char.HumanoidRootPart.RootJoint
  29.  
  30. LA=Char['Left Arm']
  31. RA=Char['Right Arm']
  32. LL=Char['Left Leg']
  33. RL=Char['Right Leg']
  34. LAM=Torso:findFirstChild'Left Shoulder' or _G.LAM
  35. RAM=Torso:findFirstChild'Right Shoulder' or _G.RAM
  36. LLM=Torso:findFirstChild'Left Hip' or _G.LLM
  37. RLM=Torso:findFirstChild'Right Hip' or _G.RLM
  38. Neck=Torso.Neck
  39. Neck.C0=cn(0,1.5,0)
  40. Neck.C1=cn(0,0,0)
  41. _G.LAM=LAM _G.RAM=RAM _G.LLM=LLM _G.RLM=RLM
  42.  
  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. game:service"ControllerService":ClearAllChildren()
  74. Controls=Instance.new("HumanoidController",game:service"ControllerService")
  75.  
  76.  
  77. LastMade=nil
  78. iNew=function(tab)
  79. local v=Instance.new(tab[1])
  80. for Ind,Val in pairs(tab) do
  81. if Ind~=1 and Ind~=2 then
  82. v[Ind] = Val
  83. end
  84. end
  85. v.Parent=tab[2]==0 and LastMade or tab[2]
  86. LastMade=v
  87. return v
  88. end
  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.TopSurface=0 v.BottomSurface=0
  93. if tab.sc then
  94. v.Size=v3(tab[2]*tab.sc,tab[3]*tab.sc,tab[4]*tab.sc)
  95. else
  96. v.Size=v3(tab[2],tab[3],tab[4])
  97. end
  98. if tab.co then v.BrickColor=bn(tab.co) end
  99. if tab.tr then v.Transparency=tab.tr end
  100. if tab.rf then v.Reflectance=tab.rf end
  101. v.CanCollide=false --if tab.can then v.CanCollide=tab.can end
  102. if tab.cf then v.CFrame=tab.cf end
  103. if tab.an then v.Anchored=tab.an end
  104. if tab.na then v.Name=tab.na end
  105. if tab.ma then v.Material=tab.ma end
  106. v.Parent=tab[1]
  107. v:BreakJoints()
  108. LastMade=v
  109. return v
  110. end
  111. ray = function(Pos, Dir,tab,length) -- ray cast
  112. return workspace:FindPartOnRay(Ray.new(Pos, Dir.unit *(length or 999)),tab)
  113. end
  114. function getoutline(x,z,i)
  115.  return math.sqrt(x^2+z^2)+(i or 0.05),mdeg(math.atan2(x,z))
  116. end
  117. function v3a(cf)
  118. local x,y,z=cf:toEulerAnglesXYZ()
  119. return v3(mdeg(x),mdeg(y),mdeg(z))
  120. end
  121. function TweenV3(i, loops,origpos,nextpos,smooth)
  122.     loops=math.floor(loops)
  123.     smooth = smooth or 1  
  124.     local tox2,toy2,toz2 = 0,0,0
  125.     local perc =smooth==1 and math.sin((math.pi/2)/loops*i) or i/loops
  126.     tox2= origpos.x > nextpos.x  and -math.abs(origpos.x - nextpos.x) *perc or math.abs(origpos.x - nextpos.x) *perc
  127.     toy2= origpos.y > nextpos.y  and -math.abs(origpos.y - nextpos.y) *perc or math.abs(origpos.y - nextpos.y) *perc
  128.     toz2= origpos.z > nextpos.z  and -math.abs(origpos.z - nextpos.z) *perc or math.abs(origpos.z - nextpos.z) *perc
  129.     return v3(origpos.x + tox2,origpos.y + toy2,origpos.z + toz2)
  130. end
  131. function TweenCF(i, loops,origpos,nextpos,smooth)
  132.     loops=math.floor(loops)
  133.     smooth = smooth or 1  
  134.         local x0,y0,z0=origpos:toEulerAnglesXYZ()
  135.         local x1,y1,z1=nextpos:toEulerAnglesXYZ()
  136.     origangle=v32(x0,y0,z0)
  137.     nextangle=v32(x1,y1,z1)
  138.     local perc =smooth==1 and math.sin((math.pi/2)/loops*i) or i/loops
  139.     local tox,toy,toz = 0,0,0
  140.     tox = origangle.x > nextangle.x and -math.abs(origangle.x - nextangle.x) *perc or math.abs(origangle.x - nextangle.x) *perc
  141.     toy = origangle.y > nextangle.y and -math.abs(origangle.y - nextangle.y) *perc or math.abs(origangle.y - nextangle.y) *perc
  142.     toz = origangle.z > nextangle.z and -math.abs(origangle.z - nextangle.z) *perc or math.abs(origangle.z - nextangle.z) *perc
  143.     local tox2,toy2,toz2 = 0,0,0
  144.     tox2= origpos.x > nextpos.x  and -math.abs(origpos.x - nextpos.x) *perc or math.abs(origpos.x - nextpos.x) *perc
  145.     toy2= origpos.y > nextpos.y  and -math.abs(origpos.y - nextpos.y) *perc or math.abs(origpos.y - nextpos.y) *perc
  146.     toz2= origpos.z > nextpos.z  and -math.abs(origpos.z - nextpos.z) *perc or math.abs(origpos.z - nextpos.z) *perc
  147.     return cn(origpos.x + tox2,origpos.y + toy2,origpos.z + toz2)*ca(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  148. end
  149. WeldLib={}
  150. function GetWeld(weld,CO)
  151.     if not WeldLib[weld] then
  152.         local x0,y0,z0=weld.C0:toEulerAnglesXYZ()
  153.         local x1,y1,z1=weld.C1:toEulerAnglesXYZ()
  154.         WeldLib[weld]={[0]=v3(mdeg(x0),mdeg(y0),mdeg(z0)),[1]=v3(mdeg(x1),mdeg(y1),mdeg(z1))}
  155.     end  
  156.     return weld['C'..CO].p,WeldLib[weld][CO]
  157. end
  158. function ClearWeld(weld)
  159. if WeldLib[weld] then WeldLib[weld]=nil end
  160. end
  161. function SetWeld(weld,CO,i, loops, origpos,origangle, nextpos,nextangle,smooth)
  162.     loops=math.floor(loops)
  163.     smooth = smooth or 1
  164.     if not WeldLib[weld] then
  165.         local x0,y0,z0=weld.C0:toEulerAnglesXYZ()
  166.         local x1,y1,z1=weld.C1:toEulerAnglesXYZ()
  167.         WeldLib[weld]={[0]=v3(mdeg(x0),mdeg(y0),mdeg(z0)),[1]=v3(mdeg(x1),mdeg(y1),mdeg(z1))}
  168.     end  
  169.     local perc =smooth==1 and math.sin((math.pi/2)/loops*i) or i/loops
  170.     --print(weld.Part1)
  171.     local tox,toy,toz = 0,0,0
  172.     tox = origangle.x > nextangle.x and -math.abs(origangle.x - nextangle.x) *perc or math.abs(origangle.x - nextangle.x) *perc
  173.     toy = origangle.y > nextangle.y and -math.abs(origangle.y - nextangle.y) *perc or math.abs(origangle.y - nextangle.y) *perc
  174.     toz = origangle.z > nextangle.z and -math.abs(origangle.z - nextangle.z) *perc or math.abs(origangle.z - nextangle.z) *perc
  175.     local tox2,toy2,toz2 = 0,0,0
  176.     tox2= origpos.x > nextpos.x  and -math.abs(origpos.x - nextpos.x) *perc or math.abs(origpos.x - nextpos.x) *perc
  177.     toy2= origpos.y > nextpos.y  and -math.abs(origpos.y - nextpos.y) *perc or math.abs(origpos.y - nextpos.y) *perc
  178.     toz2= origpos.z > nextpos.z  and -math.abs(origpos.z - nextpos.z) *perc or math.abs(origpos.z - nextpos.z) *perc
  179.     WeldLib[weld][CO] = v3(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  180.     weld['C'..CO] = cn(origpos.x + tox2,origpos.y + toy2,origpos.z + toz2)*ca(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  181. end
  182. function FindSurface(part, position)
  183. local obj = part.CFrame:pointToObjectSpace(position)
  184. local siz = part.Size/2
  185. for i,v in pairs(Enum.NormalId:GetEnumItems()) do
  186. local vec = Vector3.FromNormalId(v)
  187. local wvec = part.CFrame:vectorToWorldSpace(vec)
  188. local vz = (obj)/(siz*vec)
  189. if (math.abs(vz.X-1) < 0.01 or math.abs(vz.Y-1) < 0.01 or math.abs(vz.Z-1) < 0.01) then
  190. return wvec,vec
  191. end
  192. end
  193. if part.className == "WedgePart" then
  194. return part.CFrame:vectorToWorldSpace(Vector3.new(0,0.707,-0.707)), Vector3.new(0,0.707,-0.707)
  195. end
  196. end
  197. LoopFunctions={}
  198. function DoLoop(times,func)
  199. LoopFunctions[#LoopFunctions+1]={times,0,func}
  200. end
  201. pcall(function() Torso.LAW:Remove() Torso.RAW:Remove() Torso.LLW:Remove() Torso.RLW:Remove() end)
  202. LAW=iNew{'Weld',Torso,Name='LAW',Part0=Torso,C0=cn(-1.5,0.5,0),C1=cn(0,0.5,0)}
  203. RAW=iNew{'Weld',Torso,Name='RAW',Part0=Torso,C0=cn( 1.5,0.5,0),C1=cn(0,0.5,0)}
  204. LLW=iNew{'Weld',Torso,Name='LLW',Part0=Torso,C0=cn(-0.5, -1,0),C1=cn(0,  1,0)}
  205. RLW=iNew{'Weld',Torso,Name='RLW',Part0=Torso,C0=cn( 0.5, -1,0),C1=cn(0,  1,0)}
  206. function Arms(on)
  207.  LAM.Parent=Torso LAM.Part0=Torso
  208.  RAM.Parent=Torso RAM.Part0=Torso
  209.  LAM.Part1=on and nil or LA
  210.  RAM.Part1=on and nil or RA
  211.  LAW.Part1=on and LA  or nil
  212.  RAW.Part1=on and RA  or nil
  213. end
  214. function Legs(on)
  215.  LLM.Part1=on and nil or LL
  216.  RLM.Part1=on and nil or RL
  217.  LLW.Part1=on and LL  or nil
  218.  RLW.Part1=on and RL  or nil
  219. end
  220.  
  221. _G.MGear=getfenv()
  222. pcall(function() _G.MGearS.Disabled=true end)
  223. _G.MGearS=script
  224.  
  225. pcall(function() Char.Gear:Remove() end)
  226. Gear=iNew{'Model',Char,Name='Gear'}
  227. Gt={[-1]={},[1]={}}
  228. for x=-1,1,2 do
  229. local base=iPart{Gear,0.6,3,0.8} iNew{'Weld',LastMade,Part0=x==-1 and LL or RL,Part1=LastMade,C0=cn(0.8*x,0.05,0.45)*ca(-80,0,6*x)}
  230. local v=iPart{Gear,0.5,2.5,0.5,co='Light stone grey'} iNew{'Weld',v,Part0=base,Part1=v,C0=cn(0,-0.24,0.6)} iNew{'CylinderMesh',v}
  231. local v=iPart{Gear,0.5,0.5,0.5,co='Light stone grey'} iNew{'Weld',v,Part0=base,Part1=v,C0=cn(0,1.01,0.6)} iNew{'SpecialMesh',v,MeshType='Sphere'}
  232. for z=-1.2,0.81,1 do
  233. local v=iPart{Gear,0.65,0.22,1.35,co='Dark stone grey'} iNew{'Weld',v,Part0=base,Part1=v,C0=cn(0,z,0.22)}
  234. end
  235. local v=iPart{Gear,0.25,0.5,0.25,co='Dark stone grey'} iNew{'Weld',v,Part0=base,Part1=v,C0=cn(0,1.25,0.6)*ca(0,0,90)} iNew{'CylinderMesh',v}
  236. local v=iPart{Gear,0.3,0.3,0.3,co='Black'} iNew{'Weld',v,Part0=base,Part1=v,C0=cn(0,1.25,0.6)*ca(0,0,90)} iNew{'CylinderMesh',v}
  237. local st,en=-0.3,0.3 local co=(st*-1+en)/4
  238. for xx=st,en,co do --sheath holes
  239. local v=iPart{Gear,0.2,0.2,0.7,co='Really black'} iNew{'Weld',v,Part0=base,Part1=v,C0=cn(xx+co/2,1.5,0)} iNew{'BlockMesh',v,Scale=v3(0.4,0.1,1)}
  240. end
  241. local v=iPart{Gear,0.75,0.2,0.75} iNew{'Weld',v,Part0=Torso,Part1=v,C0=cn(0.6*x,-0.65,1.1)*ca(45,0,-45*x)} iNew{'CylinderMesh',v}
  242. local v=iPart{Gear,0.6,0.22,0.6,co='Dark stone grey'} iNew{'Weld',v,Part0=Torso,Part1=v,C0=cn(0.6*x,-0.65,1.1)*ca(45,0,-45*x)} iNew{'CylinderMesh',v}
  243. local v2=iPart{Gear,0.2,0.2,0.2} iNew{'Weld',v2,Part0=v,Part1=v2,C0=cn(0,-0.35,0)*ca(180,0,0)} iNew{'SpecialMesh',v2,Scale=v3(0.3,0.65,0.3),MeshId=as.cone}
  244. local v2=iPart{Gear,0.2,0.2,0.3} iNew{'Weld',v2,Part0=v,Part1=v2,C0=ca(0,200*x,0)*cn(0,0,-0.5)}
  245. --sword handle
  246. local h=iPart{Gear,0.3,1.05,0.3} local hw=iNew{'Weld',h,Part0=x==-1 and LA or RA,Part1=h,C0=cn(0,-1,0)*ca(-90,0,0)} iNew{'CylinderMesh',h}
  247. Gt[x].h=hw
  248. local v=iPart{Gear,0.32,0.2,0.32,co='Black'} iNew{'Weld',v,Part0=h,Part1=v,C0=cn(0,-0.35,0)} iNew{'CylinderMesh',v}
  249. local v=iPart{Gear,0.2,0.5,0.25} iNew{'Weld',v,Part0=h,Part1=v,C0=cn(0,0.25,-0.15)}
  250. local v=iPart{Gear,0.21,0.2,0.25,co='Black'} iNew{'Weld',v,Part0=h,Part1=v,C0=cn(0,0.25+0.12,-0.125)}
  251. local v=iPart{Gear,0.21,0.2,0.25,co='Black'} iNew{'Weld',v,Part0=h,Part1=v,C0=cn(0,0.25-0.12,-0.125)}
  252. local v=iPart{Gear,0.3,0.2,0.3} iNew{'Weld',v,Part0=h,Part1=v,C0=cn(0,0.6,0)}
  253. local v=iPart{Gear,0.3,0.2,0.3,type='WedgePart'} iNew{'Weld',v,Part0=h,Part1=v,C0=cn(0,0.6,-0.3)}
  254. local v=iPart{Gear,0.3,0.2,0.3,type='WedgePart'} iNew{'Weld',v,Part0=h,Part1=v,C0=cn(0,0.6, 0.3)*ca(180,0,0)}
  255. local v=iPart{Gear,0.2,0.5,0.2} iNew{'Weld',v,Part0=h,Part1=v,C0=cn(0, 0.3,-0.4)*ca( 14,0,0)} iNew{'CylinderMesh',v,Scale=v3(0.6,1,0.6)}
  256. local v=iPart{Gear,0.2,0.2,0.2} iNew{'Weld',v,Part0=h,Part1=v,C0=cn(0,-0.25,-0.35)*ca(-20+180,0,0)} iNew{'SpecialMesh',v,MeshId=as.cone,Scale=v3(0.06,1,0.06)}
  257. --sword blade
  258. local bladelength=4
  259. local blade=iPart{Gear,0.2,bladelength,0.4} iNew{'Weld',v,Part0=h,Part1=blade,C0=cn(0,0.7+bladelength/2,0.05)} iNew{'BlockMesh',blade,Scale=v3(0.4,1,1)}
  260. local tip=iPart{Gear,0.2,0.5,0.4,type='WedgePart'} iNew{'Weld',v,Part0=blade,Part1=tip,C0=cn(0,bladelength/2+0.25,0)*ca(0,180,0)} iNew{'SpecialMesh',tip,MeshType='Wedge',Scale=v3(0.4,1,1)}
  261. for i=-1.6,1.4,0.6 do
  262. local v=iPart{Gear,0.2,0,0.52,co='White'} iNew{'Weld',v,Part0=blade,Part1=v,C0=cn(0,i+0.1,0)*ca(40,0,0)} iNew{'BlockMesh',v,Scale=v3(0.42,0.3,1)}
  263. end
  264.  
  265.  blade.Touched:connect(function(hit)
  266.     if debounce == false then
  267.     debounce = true
  268.     isPlayer = hit.Parent:FindFirstChild("Humanoid")
  269.     if isPlayer then
  270.         isPlayer:TakeDamage(13333333333333337)
  271.         wait(0.5)
  272.     end
  273.     debounce = false
  274.     end
  275. end)
  276.  
  277. end
  278. --Middle
  279. local v=iPart{Gear,0.2,0.2,0.2} iNew{'Weld',v,Part0=Torso,Part1=v,C0=cn(0,-1,1.1)*ca(90,0,0)} iNew{'SpecialMesh',v,Scale=v3(0.4,1.6,0.16),MeshId=as.cone}
  280. Gas=iNew{'Smoke',v,Opacity=0.4,RiseVelocity=25,Size=3,Enabled=false}
  281. local v=iPart{Gear,0.6,0.3,0.6} iNew{'Weld',v,Part0=Torso,Part1=v,C0=cn(0,-0.85,0.8)} iNew{'CylinderMesh',v}
  282. local v=iPart{Gear,0.3,0.3,0.35,co='Dark stone grey',type='WedgePart'} iNew{'Weld',v,Part0=Torso,Part1=v,C0=cn(0,-0.9,1.2)*ca(0,180,0)}
  283. local belt=iPart{Gear,2.01,0.3,1.01,co='Black'} iNew{'Weld',belt,Part0=Torso,Part1=belt,C0=cn(0,-0.7,0)}
  284. for x=-1,1,2 do --continuesides
  285. local of=iPart{Gear,0.3,1.2,0.3} iNew{'Weld',belt,Part0=belt,Part1=of,C0=cn(1.15*x,-0.1,0)*ca(-80,0,0)}
  286. local v=iPart{Gear,0.3,1.2,0.3} iNew{'Weld',v,Part0=of,Part1=v,C0=cn(0,0,0.15)} iNew{'CylinderMesh',v}
  287. local v=iPart{Gear,0.2,0.2,0.2,co='Really black'} iNew{'Weld',v,Part0=of,Part1=v,C0=cn(0,0.51,0.15)} iNew{'CylinderMesh',v}
  288. Gt[x].grap=v
  289.  
  290. end
  291.  
  292. for i,v in pairs(Torso:children()) do
  293. if v:IsA'Sound' then v:Remove() end
  294. end
  295. for i,n in pairs(so) do  
  296. if as[n] then
  297. local v=iNew{'Sound',Torso,Volume=0.5,Pitch=1,Looped=false,Name=n,SoundId=as[n]}
  298. so[n]=v
  299. end
  300. end
  301.  
  302.  
  303. key={}
  304.  
  305. print(#Gear:children())
  306. Root.C0=cn(0,0,0)*ca(0,0,0)
  307. Root.C1=cn(0,0,0)*ca(0,0,0)
  308.  
  309. WalkAnim=0
  310. Walking=false
  311. WalkM=8
  312. Humanoid.Running:connect(function(Walk)
  313. Walking=Walk>20 and true or false
  314. end)
  315.  
  316. --LL.Touched:connect(function() if Torso.Velocity.magnitude>30 then Torso.Velocity=nov3 end end)
  317. --RL.Touched:connect(function() if Torso.Velocity.magnitude>30 then Torso.Velocity=nov3 end end)
  318. _G.Torso=Torso
  319.  
  320. wait()
  321. Arms(true)
  322. Legs()
  323. GetCurrent=function()
  324. cLA,cLA2=GetWeld(LAW,0)
  325. cRA,cRA2=GetWeld(RAW,0)
  326. cLL,cLL2=GetWeld(LLW,0)
  327. cRL,cRL2=GetWeld(RLW,0)
  328. cRO,cRO2=GetWeld(Root,0)
  329. cNE,cNE2=GetWeld(Neck,0)
  330. end
  331. ReturnAnim=function()
  332. GetCurrent()
  333. local ogt={[-1]={},[1]={}}
  334. for x=-1,1,2 do ogt[x][1],ogt[x][2]=GetWeld(Gt[x].h,0) end
  335. local walk=WalkAnim~=0
  336. for x=1,ASpeed do
  337.     SetWeld(LAW,0,x,ASpeed,cLA,cLA2,OrigLA,walk and Walk1*WAPerc or OrigLA2,1)
  338.     SetWeld(RAW,0,x,ASpeed,cRA,cRA2,OrigRA,walk and Walk2*WAPerc or OrigRA2,1)
  339.     if Hooks[-1] or Hooks[1] then else
  340.     SetWeld(LLW,0,x,ASpeed,cLL,cLL2,OrigLL,OrigLL2,1)
  341.     SetWeld(RLW,0,x,ASpeed,cRL,cRL2,OrigRL,OrigRL2,1) end
  342.     SetWeld(Root,0,x,ASpeed,cRO,cRO2,OrigRO,walk and Walk3*WAPerc or OrigRO2,1)
  343.     SetWeld(Neck,0,x,ASpeed,cNE,cNE2,OrigNE,walk and Walk4*WAPerc or OrigNE2,1)
  344.     for h=-1,1,2 do SetWeld(Gt[h].h,0,x,ASpeed,ogt[h][1],ogt[h][2],v3(0,-1,0),v3(-90,0,0),1)   end
  345. wait()
  346. end
  347. end
  348.  
  349. SpecialAttack=function(TYPE)
  350. if TYPE==1 then
  351. GetCurrent()
  352. if Controls.Parent then Humanoid.Jump=true end
  353. local legwas=LLW.Part1==LL and true or false
  354. Legs(true)
  355. for x=1,ASpeed/2 do
  356.     SetWeld(LAW,0,x,ASpeed/2,cLA,cLA2,OrigLA+v3(0,0.8,-0.2),v3(190,0, 10,1),1)
  357.     SetWeld(RAW,0,x,ASpeed/2,cRA,cRA2,OrigRA+v3(0,0.8,-0.2),v3(190,0,-10,1),1)
  358.     for h=-1,1,2 do SetWeld(Gt[h].h,0,x,ASpeed/2,v3(0,-1,0),v3(-90,0,0),v3(0,-1.25,0),v3(-135,0,0),1)   end
  359.     SetWeld(LLW,0,x,ASpeed/2,cLL,cLL2,OrigLL+v3(0,0.6,-0.7),v3(-30,0,-10,1),1)
  360.     SetWeld(RLW,0,x,ASpeed/2,cRL,cRL2,OrigRL+v3(0,0.6,-0.7),v3(-30,0,10,1),1)
  361.     SetWeld(Root,0,x,ASpeed/2,cRO,cRO2,OrigRO,v3(90,0,0,1),1)
  362. wait()
  363. end
  364. local spin,ii=360,3
  365. for i=0,spin,spin/12 do
  366. ii=ii+1 if ii%4==0 then so.Slash:Play() end
  367. Root.C0=ca(90-i,0,0)
  368. wait()
  369. end
  370. ClearWeld(Root)
  371. ReturnAnim() Legs(legwas)
  372. elseif TYPE==2 then
  373. end
  374. end
  375.  
  376. pcall(function() Torso.BG:Remove() Torso.RP:Remove() end)
  377. BG=iNew{'BodyGyro',Torso,Name='BG',maxTorque=nov3}
  378. BP=iNew{'RocketPropulsion',Torso,Name='RP'}
  379. local rocketprop=iPart{Gear,1,1,1,an=true,cf=cn(0,-100,0),tr=1}
  380. rocketprop.CanCollide=false
  381. BP.Target=rocketprop
  382. BP.ThrustP=5
  383. BP.MaxTorque=nov3 --v3(400000,400000,0)
  384. BP.MaxThrust=4000
  385. BP.MaxSpeed=30
  386. --BP.CartoonFactor=1
  387. BP.TurnP,BP.TurnD=0,0
  388. BP.ThrustD=0.03 --BP.ThrustD*30
  389. BP.ThrustP=BP.ThrustP/1.5
  390. BP.TargetRadius=0
  391.  
  392. pcall(function() workspace.Camera.Inv:Remove() end)
  393. Inv=iNew{'Model',workspace.Camera,Name='Inv'}
  394.  
  395. Hooks={}
  396. HookP={[-1]={},[1]={}}
  397. Hit=nil
  398. Grapple={}
  399. key={}
  400. mouse=Player:GetMouse()
  401. mouse.KeyDown:connect(function(k)
  402. coroutine.resume(coroutine.create(function()
  403. key[k]=true
  404. local gp={['q']=-1,['e']=1}
  405. if k=='2' then
  406. elseif (k==' ') and Controls.Parent==nil then
  407. if WallWalk then WallWalk=false return end
  408. WallWalk=false
  409. Controls.Parent=game:service'ControllerService'
  410. Humanoid.Sit=false
  411. Legs(false)
  412. OrigRO=v3(0,0,0)
  413. Root.C0=cn(OrigRO)
  414. ---
  415. elseif k=='0' and Controls.Parent==nil and not Gas.Enabled and not WallWalking then
  416. local bv=iNew{'BodyVelocity',Torso}
  417. Gas.Enabled=true
  418. repeat
  419. local ss=(Hooks[1] or Hooks[-1]) and 5000 or 2000
  420. bv.maxForce=v3(ss,2000,ss)
  421. bv.velocity=Torso.CFrame.lookVector*125
  422. wait()
  423. until not key[k] or Controls.Parent
  424. Gas.Enabled=false
  425. bv:Remove()
  426. elseif (k=='q' or k=='e') and not Grapple[k] then
  427. so.Slash:Play()
  428. Grapple[k]=true
  429. local x=gp[k]
  430. local ob1=Gt[x].grap
  431. local speed=26
  432. local hook=iPart{Gear,1,1,1,co='Black',an=true,cf=cn(ob1.Position,mouse.Hit.p)*ca(-90,0,0)} iNew{'SpecialMesh',hook,Scale=v3(0.4,2,0.4),MeshId=as.cone}
  433. local rope=iPart{Gear,1,1,1,co='Black',an=true,cf=cf} local ropem=iNew{'CylinderMesh',rope}
  434. hook.CanCollide=false
  435. rope.CanCollide=false
  436. local con=game:GetService'RunService'.RenderStepped:connect(function()
  437. local mag=(ob1.Position-hook.Position).magnitude
  438. ropem.Scale=v3(0.2,mag,0.2)
  439. rope.CFrame=cn(ob1.Position,hook.Position)*cn(0,0,-mag/2)*ca(90,0,0)
  440. if not rope or not rope.Parent then con:disconnect() end
  441. end)
  442. for i=1,200 do
  443. if not key[k] then break end
  444. local hit,pos=ray(hook.Position,hook.Position-hook.CFrame*cn(0,-speed,0).p,Char,speed+1)
  445. if not hit then
  446. hook.CFrame=hook.CFrame*cn(0,speed,0)*ca(-0.1,0,0)
  447. else
  448. hook.CFrame=hook.CFrame*cn(0,(hook.Position-pos).magnitude,0)
  449. end
  450. local mag=(ob1.Position-hook.Position).magnitude
  451. if hit and hit.Transparency<1 and hit.CanCollide then
  452. Hit=hit
  453. HookP[x]={Hit,Hit.CFrame:toObjectSpace(hook.CFrame),pos}
  454. so.Block:Play()
  455. Hooks[x]=hook
  456. Humanoid.Sit=true
  457. Legs(true)
  458. OrigRO=v3(0,1,0)
  459. Root.C0=cn(OrigRO)
  460. Controls.Parent=nil
  461. break
  462. end
  463. wait()
  464. end
  465. ---
  466. if Hit then
  467. --hook.Reflectance=0.1
  468. end
  469. repeat wait()
  470. until not key[k] or Controls.Parent --relase
  471. Hooks[x]=nil
  472. hook:Remove()
  473. rope:Remove()
  474. Grapple[k]=false
  475. elseif k=='f' and LegAnim=='None' and TorsoAnim=='None' and LegAnim=='None' then
  476. ArmAnim,LegAnim,TorsoAnim='','',''
  477. SpecialAttack(1)
  478. ArmAnim,LegAnim,TorsoAnim='None','None','None'
  479. elseif k=='p' then
  480. local mpos=mouse.Hit.p
  481. local wall=iPart{Char,1,1,1,an=true}
  482. repeat
  483. local mag=(mpos-mouse.Hit.p).magnitude
  484. wall.Size=v3(not key.l and 4 or 0.5,200,mag)
  485. wall.CFrame=cn(mpos,mouse.Hit.p)*cn(0,100,-mag/2)
  486. wait() until not key.p
  487. local cf=wall.CFrame wall.Parent=workspace wall.CFrame=cf wall.CanCollide=true
  488. elseif k=='l' then
  489. wotm8=wotm8 and wotm8+150 or 75
  490. iPart{workspace,120,30,120,an=true,cf=cn(0,180,wotm8+100)*ca(0,mran(-40,40),0)}.CanCollide=true
  491. iPart{workspace,146,4,120,an=true,cf=cn(0,1,wotm8+100)}.CanCollide=true
  492. --elseif k=='w' and (not Hooks[-1] and not Hooks[1]) then
  493. --Humanoid.PlatformStand=false
  494. end
  495. end)) end)
  496. mouse.KeyUp:connect(function(k)
  497. coroutine.resume(coroutine.create(function()
  498. key[k]=false
  499.  
  500. end)) end)
  501. mouse.Button1Down:connect(function()
  502. Button1=true
  503. if ArmAnim=='None' then
  504. ArmAnim,TorsoAnim='Attack','Attack'
  505. thesteerclick=thesteerclick==1 and -1 or 1
  506. local y=thesteerclick
  507. GetCurrent()
  508. local ASpeed=ASpeed/1.5
  509. for x=1,ASpeed do
  510.     SetWeld(LAW,0,x,ASpeed,cLA,cLA2,OrigLA,v3(0,-135*y,(-90-LookAngle/2)*y),1)
  511.     SetWeld(RAW,0,x,ASpeed,cRA,cRA2,OrigRA,v3(0,-135*y,(-90-LookAngle/2)*y),1)
  512.     SetWeld(Root,0,x,ASpeed,cRO,cRO2,OrigRO,v3(0,-90*y,0),1)
  513.     SetWeld(Neck,0,x,ASpeed,cNE,cNE2,OrigNE,v3(0,90*y/3,0),1)
  514.     for h=-1,1,2 do SetWeld(Gt[h].h,0,x,ASpeed,v3(0,-1,0),v3(-90,0,0),v3(0,-1.25,0),v3(-180,0,0),1)   end
  515. wait()
  516. end
  517. GetCurrent()
  518. so.Slash:Play()
  519. for x=1,ASpeed do
  520.     SetWeld(LAW,0,x,ASpeed,cLA,cLA2,OrigLA+v3(0,0,-0.8),v3(0,-30*y,(-90-LookAngle/2)*y),1)
  521.     SetWeld(RAW,0,x,ASpeed,cRA,cRA2,OrigRA+v3(0,0,-0.8),v3(0,-30*y,(-90-LookAngle/2)*y),1)
  522.     SetWeld(Root,0,x,ASpeed,cRO,cRO2,OrigRO,v3(0,80*y,0),1)
  523.     SetWeld(Neck,0,x,ASpeed,cNE,cNE2,OrigNE,v3(0,-80*y/3,0),1)
  524. wait()
  525. end
  526. ReturnAnim()
  527. ArmAnim,TorsoAnim='None','None'
  528. end
  529. end)
  530. mouse.Button1Up:connect(function()
  531. Button1=false
  532.  
  533. end)
  534.  
  535.  
  536. LegAnim='None'
  537. ArmAnim='None'
  538. TorsoAnim='None'
  539. WalkSpeed={1,1,1,1,1,1,1,1}
  540. ASpeed=8
  541. OrigLA=v3(-1.5,0.5,0) OrigLA2=v3(5,0,-30)
  542. OrigRA=v3( 1.5,0.5,0) OrigRA2=v3(5,0,30)
  543. OrigLL=v3(-0.5,-1,0) OrigLL2=v3(0,0,0)
  544. OrigRL=v3( 0.5,-1,0) OrigRL2=v3(0,0,0)
  545. OrigRO=v3(0,0,0) OrigRO2=v3(0,0,0)
  546. OrigNE=v3(0,1.5,0) OrigNE2=v3(0,0,0)
  547. -----
  548. --c/local x,y,z=workspace.RobroxMasterDX.Torso["Left Hip"].C0:toEulerAnglesXYZ() print(math.deg(y))
  549. rocketfired=false
  550. local spi,spix,span=0,0.5,1
  551. while Gear.Parent do
  552. local headpos,mousepos=Head.Position,mouse.Hit.p
  553. XAngle=math.floor(cn(headpos,mousepos).lookVector.y*180)
  554. LookAngle=XAngle<-20 and -20 or (XAngle>45 and 45 or XAngle)
  555. WalkAnim=WalkAnim+(ArmAnim=='None' and (Walking and 1 or -1) or 0)
  556. if WalkAnim<0 then WalkAnim=0 elseif WalkAnim>WalkM then WalkAnim=WalkM end
  557. WAPerc=WalkAnim/WalkM
  558.     spi=spi+spix
  559.     local adj=spi*8
  560.     if math.abs(spi)>=span then spix=spix*-1 end
  561.     Walk1,Walk2,Walk3,Walk4=v3(0,90,-90+25+adj),v3(0,-90,90-25-adj),v3(-18-adj,0,spi*1.5),v3(18+adj,0,-spi*1.5)
  562.     if ArmAnim=='None' then
  563.     SetWeld(LAW,0,WalkAnim,WalkM,OrigLA,OrigLA2,OrigLA,Walk1,1)
  564.     SetWeld(RAW,0,WalkAnim,WalkM,OrigRA,OrigRA2,OrigRA,Walk2,1)
  565.     end
  566.     if TorsoAnim=='None' then
  567.     SetWeld(Root,0,WalkAnim,WalkM,OrigRO,OrigRO2,OrigRO,Walk3,1)
  568.     SetWeld(Neck,0,WalkAnim,WalkM,OrigNE,OrigNE2,OrigNE,Walk4,1)
  569.     end
  570. local ws=28 for i=1,#WalkSpeed do ws=ws*WalkSpeed[i] end Humanoid.WalkSpeed=ws
  571.     --DoLoop Package
  572.     for i,v in pairs(LoopFunctions) do
  573.     v[2]=v[2]+1
  574.     v[3](v[2]/v[1])
  575.     if v[1]<=v[2] then LoopFunctions[i]=nil end
  576.     end
  577.     for x=-1,1,2 do
  578.     if Hooks[x] then Hooks[x].CFrame=HookP[x][1].CFrame*HookP[x][2] end
  579.     end
  580.     if Hooks[-1] or Hooks[1] then
  581.     local hook=(Hooks[1] and Hooks[-1]) and 0 or Hooks[1] or Hooks[-1]
  582.     HookPos=hook==0 and Hooks[1].Position+(Hooks[-1].Position-Hooks[1].Position)/2 or hook.CFrame.p
  583.     BP.MaxTorque=v3(0,0,0) BP.MaxSpeed=200 BP.MaxThrust=10*10000
  584.     rocketprop.CFrame=cn(HookPos+v3(0,4,0))
  585.     if not rocketfired then BP:Fire() rocketfired=true end
  586.     else BP.MaxTorque=nov3
  587.     if rocketfired then BP:Abort() rocketfired=false end
  588.     end
  589.     if Humanoid.Sit and not WallWalking then
  590.     SetWeld(LLW,0,1,1,OrigLL,OrigLL2,OrigLL+v3(0,0.6,-0.7),v3(-30,0,-14,1),1)
  591.     SetWeld(RLW,0,1,1,OrigRL,OrigRL2,OrigRL+v3(0,0.6,-0.7),v3(-30,0, 14,1),1)
  592.     if not WallWalking then BG.cframe=cn(Torso.Position,mouse.Hit.p)*cn(0,0,-1) end --TweenCF(3,9,bg.CFrame,cn(Torso.Position,mouse.Hit.p))*cn(0,0,-1)
  593.     BG.maxTorque=maxv3 --workspace.Camera.CoordinateFrame*cn(0,0,-1000).p
  594.     else
  595.     if not WallWalking then BG.maxTorque=nov3 end
  596.     end
  597. wait()
  598. end --TweenV3(0.5,1,Hooks[1].Position,Hooks[-1].Position)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement