KaiXGT

Magnum

Apr 8th, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 23.20 KB | None | 0 0
  1. -- I'm not sure who made this script, I definitely did not. If someone can tell me who made this script, I'll appreciate it.
  2.  
  3. if not Workspace:FindFirstChild'TheGamer101' then ---I sometimes test weapon in studio, so I use a dummy
  4.     ply=game.Players.LocalPlayer
  5.     char=ply.Character
  6.     Name = 'Magnam'
  7.     pcall(function() ply.Backpack[Name]:Destroy() end) --- Destroys Tool
  8.     hop = Instance.new("HopperBin",ply.Backpack)
  9.     hop.Name = Name
  10. else
  11.     char=Workspace.TheGamer101
  12. end
  13. torso=char.Torso
  14. local ccam = Workspace.CurrentCamera
  15. rarm=char['Right Arm']
  16. larm=char['Left Arm']
  17. bcol=BrickColor.new
  18. cfn,md,mr=CFrame.new,math.rad,math.random
  19. ang=function(x,y,z)return CFrame.Angles(x or 0,y or 0,z or 0)end
  20. Debris=game:service'Debris'
  21. m={}
  22. RS=game:service'RunService'
  23. m.tau=math.pi*2
  24. m.floatforce = 196.25
  25.  
  26. function genNew(ClassName, Parent, Properties)
  27.         local nObj = Instance.new(ClassName, Parent)
  28.         if Properties["FormFactor"] then
  29.                 nObj["FormFactor"] = Properties["FormFactor"]
  30.         end
  31.         for Prop, Value in pairs(Properties) do
  32.                 nObj[Prop] = Value
  33.         end
  34.         return nObj
  35. end
  36. rw,rw2,lw,lw2=nil,nil,nil,nil
  37.  
  38. function l(a,x,y,z,xx,yy,zz)
  39. if string.find(tostring(a),',') == nil then
  40. return (a.CFrame*CFrame.new(x or 0,y or 0,z or 0))*CFrame.Angles(xx or 0,yy or 0, zz or 0)
  41. else return (a * CFrame.new(x or 0,y or 0,z or 0))*CFrame.Angles(xx or 0,yy or 0,zz or 0)
  42. end
  43. end
  44.  
  45. tw = function(Weld, Stop, Step,a) --- TweenWeld function
  46. local func = function(w)
  47.         local Start = w.C1
  48.         local X1, Y1, Z1 = Start:toEulerAnglesXYZ()
  49.         local Stop = Stop
  50.         local X2, Y2, Z2 = Stop:toEulerAnglesXYZ()
  51.        
  52.         for i = 0, 1, Step or .1 do
  53.                 w.C1 = CFrame.new( (Start.p.X * (1 - i)) + (Stop.p.X * i),
  54.                                 (Start.p.Y * (1 - i)) + (Stop.p.Y * i),
  55.                                 (Start.p.Z * (1 - i)) + (Stop.p.Z * i)) * CFrame.fromEulerAnglesXYZ(
  56.                                 (X1 * (1 - i)) + (X2 * i), (Y1 * (1 - i)) + (Y2 * i),
  57.                                 (Z1 * (1 - i)) + (Z2 * i) )
  58.                 wait()
  59.         end
  60.        
  61.         w.C1 = Stop
  62. end
  63. if type(Weld)=='table'then
  64.     for i=1,#Weld do
  65.         if i < #Weld then
  66.             coroutine.wrap(function()func(Weld[i])end)()
  67.         else
  68.             func(Weld[i])
  69.         end
  70.     end
  71. else
  72. if a then coroutine.wrap(function() func(Weld) end)() else func(Weld) end
  73. end
  74. end
  75. tc = function(Part, Stop, Step,a) --- TweenCFrame function
  76. local func = function()
  77.         local Start = Part.CFrame
  78.         local X1, Y1, Z1 = Start:toEulerAnglesXYZ()
  79.         local Stop = Stop
  80.         local X2, Y2, Z2 = Stop:toEulerAnglesXYZ()
  81.        
  82.         for i = 0, 1, Step or .1 do
  83.                 Part.CFrame = CFrame.new( (Start.p.X * (1 - i)) + (Stop.p.X * i),
  84.                                 (Start.p.Y * (1 - i)) + (Stop.p.Y * i),
  85.                                 (Start.p.Z * (1 - i)) + (Stop.p.Z * i)) * CFrame.fromEulerAnglesXYZ(
  86.                                 (X1 * (1 - i)) + (X2 * i), (Y1 * (1 - i)) + (Y2 * i),
  87.                                 (Z1 * (1 - i)) + (Z2 * i) )
  88.                 wait()
  89.         end
  90.        
  91.         Part.CFrame = Stop
  92. end
  93. if a then coroutine.wrap(function() func() end)() else func() end
  94. end
  95. Lock = function(which) --- For using Animation
  96. local result = {rw=false,lw=false}
  97. if which == 'R' then
  98. if not rw then
  99.     rabr = Part(1,1,1,'White',0) rabr.Transparency = 1
  100.     rabr.Position = torso.Position
  101.     rw = Weld(rabr,torso,1.5,.5,0,0,0,0) rw.Parent = Weapon
  102.     w = Instance.new("Weld",Weapon)
  103.     w.Part0,w.Part1 = char['Right Arm'],rabr
  104.     w.C1 = CFrame.new(0,-.5,0)
  105. else
  106.     rabr:Destroy()
  107.     rw = nil
  108. end
  109. elseif which == 'L' then
  110. if not lw then
  111.     labr = Part(1,1,1,'White',0) labr.Transparency = 1
  112.     labr.Position = torso.Position
  113.     lw = Weld(labr,torso,-1.5,.5,0,0,0,0) lw.Parent = Weapon
  114.     w = Instance.new("Weld",Weapon)
  115.     w.Part0,w.Part1 = char['Left Arm'],labr
  116.     w.C1 = CFrame.new(0,-.5,0)
  117. else
  118.     labr:Destroy()
  119.     lw = nil
  120. end
  121. elseif which == 'RR' then
  122. if not rw2 then
  123.     rlbr = Part(1,1,1,'White',0) rlbr.Transparency = 1
  124.     rlbr.Position = torso.Position
  125.     rw2 = Weld(rlbr,torso,.5,-1.5,0,0,0,0) rw2.Parent = Weapon rw2.Name = 'rw2'
  126.     w = Instance.new("Weld",Weapon)
  127.     w.Part0,w.Part1 = char['Right Leg'],rlbr
  128.     w.C1 = CFrame.new(0,-.5,0)
  129. else
  130.     rlbr:Destroy()
  131.     rw2 = _
  132. end
  133. elseif which == 'LL' then
  134. if not lw2 then
  135.     llbr = Part(1,1,1,'White',0) llbr.Transparency = 1
  136.     llbr.Position = torso.Position
  137.     lw2 = Weld(llbr,torso,-.5,-1.5,0,0,0,0) lw2.Parent = Weapon lw2.Name = 'lw2'
  138.     w = Instance.new("Weld",Weapon)
  139.     w.Part0,w.Part1 = char['Left Leg'],llbr
  140.     w.C1 = CFrame.new(0,-.5,0)
  141. else
  142.     llbr:Destroy()
  143.     lw2 = _
  144. end
  145. elseif which == nil then
  146.     if rw then result.rw = true end
  147.     if lw then result.lw = true end
  148.     if rw2 then result.rw = true end
  149.     if lw2 then result.lw = true end
  150. end
  151. return result
  152. end
  153.  
  154. function findHum(a)local res=nil
  155.     for i,v in pairs(a:children())do
  156.         if v:IsA'Humanoid'and v.Parent~=char then
  157.             res=v
  158.         end
  159.     end
  160.     return res
  161. end
  162.  
  163. function udim(a,b,a2,b2)
  164.     if type(a)=='string'then
  165.         local x,y=a:match('(%d+%.*%d*)%,*(%d+%.*%d*)')
  166.         return UDim2.new(tonumber(x) or 0,0,tonumber(y) or 0,0)
  167.     else
  168.         return UDim2.new(a or 0,a2 or 0,b or 0,b2 or 0)
  169.     end
  170. end
  171.  
  172. function Damage(hum,amount,func,time)
  173.     local found=hum.Parent:FindFirstChild'M_D'
  174.     local h_head=hum.Parent:FindFirstChild'Head'
  175.     if not found then
  176.         local bbg=genNew('BillboardGui',hum.Parent,{
  177.             --Size=udim(0,0,100,50);
  178.             Size = UDim2.new(0,100,0,50);
  179.             Adornee=h_head;
  180.             StudsOffset=Vector3.new(0,5,0);
  181.             Name='M_D';
  182.  
  183.         })
  184.         local fr=genNew('Frame',bbg,{
  185.             Size=udim'1,1';
  186.             Position=udim'0,1';
  187.             BackgroundTransparency=1;
  188.         })
  189.         local img=genNew('ImageLabel',fr,{
  190.         Size=udim'1,1';
  191.         Image='http://www.roblox.com/asset/?id=185395810';
  192.         BackgroundTransparency=1;
  193.         })
  194.         local text=genNew('TextLabel',fr,{
  195.             TextScaled=true;
  196.             Text=amount;
  197.             Size=udim'1,1';
  198.             TextColor3=bcol'Bright red'.Color;
  199.             BackgroundTransparency=1;
  200.         })
  201.         hum:TakeDamage(amount)
  202.         fr:TweenPosition(udim'0,0','Out','Quad',time or 1,false)
  203.         if func then func()end
  204.         for i=0,time or 1,.1 do img.ImageTransparency=i text.TextTransparency=i wait()end bbg:Destroy()
  205.     end
  206. end
  207.  
  208.  
  209. pcall(function() char.Sole3:Destroy() end) --- Destroys Physical Tool
  210. Weapon = Instance.new("Model",char) Weapon.Name = 'Sole3'
  211.  
  212. Weld = function(p0,p1,x,y,z,rx,ry,rz,par)
  213. p0.Position = p1.Position
  214. local w = Instance.new('Motor',par or p0)
  215. w.Part0 = p1
  216. w.Part1 = p0
  217. w.C0 = CFrame.new(x or 0,y or 0,z or 0)*CFrame.Angles(rx or 0,ry or 0,rz or 0)
  218. -- w.MaxVelocity = .1
  219. return w
  220. end
  221. Cur_Parent=nil
  222. current_mat=nil
  223.  
  224. Part = function(x,y,z,color,tr,cc,an,parent)
  225. local p = Instance.new('Part',parent or cur_Parent or Weapon)
  226. p.formFactor = 'Custom'
  227. p.Locked = true
  228. p.Size = Vector3.new(x,y,z)
  229. p.BrickColor = BrickColor.new(color or 'White')
  230. p.CanCollide = cc or false
  231. p.Anchored = an or false
  232. p.Transparency = tr or 0
  233. p.Material=current_mat or'SmoothPlastic'
  234. for i,v in pairs{'TopSurface','BottomSurface','FrontSurface','BackSurface','LeftSurface','RightSurface'}do
  235.     p[v]=10
  236. end
  237. return p
  238. end
  239.  
  240. Wedge = function(x,y,z,color,tr,cc,an,parent)
  241. local p = Instance.new('WedgePart',parent or Weapon)
  242. p.formFactor = 'Custom'
  243. p.Size = Vector3.new(x,y,z)
  244. p.BrickColor = BrickColor.new(color or 'White')
  245. p.CanCollide = cc or false
  246. p.Anchored = an or false
  247. p.Transparency = tr or 0
  248. p.Material=current_mat or'SmoothPlastic'
  249. for i,v in pairs{'TopSurface','BottomSurface','FrontSurface','BackSurface','LeftSurface','RightSurface'}do
  250.     p[v]=10
  251. end
  252. return p
  253. end
  254. function l(a,x,y,z,xx,yy,zz)
  255. if string.find(tostring(a),',') == nil then
  256. return (a.CFrame*CFrame.new(x or 0,y or 0,z or 0))*CFrame.Angles(xx or 0,yy or 0, zz or 0)
  257. else return (a * CFrame.new(x or 0,y or 0,z or 0))*CFrame.Angles(xx or 0,yy or 0,zz or 0)
  258. end
  259. end
  260. function beam(a,b,s)
  261. local mag = (a-b).magnitude
  262. local laz = Part(s or 1,mag,s or 1)
  263. laz.CFrame = (cfn(a,b)*cfn(0,0,-mag/2))*ang(math.pi/2,0,0)
  264. end
  265.  
  266. Add ={ --- Array for handy functions
  267. BG = function(parent)
  268.     local bg = Instance.new("BodyGyro",parent)
  269.     bg.P = 20e+003
  270.     bg.maxTorque = Vector3.new(4e+005,4e+005,4e+005)*math.huge
  271.     return bg
  272. end;
  273. BP = function(parent,position)
  274.     local bp = Instance.new("BodyPosition",parent)
  275.     bp.maxForce = Vector3.new()*math.huge
  276.     bp.position = position or parent.Position
  277.     return bp
  278. end;
  279. BV = function(parent,force)
  280.     local bv = Instance.new("BodyVelocity",parent)
  281.     bv.maxForce = Vector3.new()*math.huge
  282.     bv.velocity = force or Vector3.new(0,0,0)
  283.     return bv
  284. end;
  285. Sound = function(id,pitch,loop,parent)
  286.     local tab = {}
  287.     local snd = Instance.new("Sound",parent or char.Head)
  288.     snd.Name = 'MugSound'
  289.     snd.SoundId = id
  290.     snd.Volume = 100
  291.     snd.Pitch = pitch or 1
  292.     snd.Looped=loop and true or false
  293.     tab.Sound = snd
  294.     function tab:Play()self.Sound:Play()end
  295.     function tab:Stop()self.Sound:Stop()end
  296.     function tab:Pitch(a)self.Sound.Pitch = a end
  297.     function tab:Volume(a)self.Sound.Volume = a end
  298.     setmetatable(tab,{
  299.          __call = function(t,param) local cl = t.Sound:Clone() cl.Parent = param return cl end;
  300.     })
  301.     return tab
  302. end;
  303. Fire = function(parent,size,heat,color,color2)
  304. local f = Instance.new("Fire",parent)
  305. f.Size = size
  306. f.Heat = heat
  307. f.Color = BrickColor.new(color).Color
  308. if color2 then
  309. f.SecondaryColor = BrickColor.new(color2).Color
  310. end
  311. return f
  312. end;
  313. }
  314.  
  315.  
  316. Meshes = {Diamond='rbxassetid://9756362';Spikeball='rbxassetid://9982590';Table='rbxassetid://111868131';---MeshIds
  317. Egg='rbxassetid://1527559';Ring='rbxassetid://3270017';Bullet='rbxassetid://2697549';Grass='rbxassetid://1080954';
  318. Shark='rbxassetid://82821384';Sword='rbxassetid://12221720';Crown='rbxassetid://10688643'}
  319. Mesh = function(par,num,x,y,z,tex)
  320.     local msh = _
  321.     if num == 1 then msh = Instance.new("CylinderMesh",par)
  322.     elseif num == 2 then msh = Instance.new("SpecialMesh",par) msh.MeshType = 3
  323.     elseif num == 3 then msh = Instance.new("BlockMesh",par)
  324.     elseif num == 4 then msh = Instance.new("SpecialMesh",par) msh.MeshType = 'Wedge'
  325.     elseif type(num) == 'string' then msh = Instance.new("SpecialMesh",par)
  326.     msh.MeshId = string.find(num,'://') == nil and Meshes[num] or num
  327.     msh.TextureId = tex and tex or ''
  328.     end
  329.     msh.Scale = Vector3.new(x or 1,y or 1,z or 1)
  330.     return msh
  331. end
  332.  
  333. hdl=Part(.25,2.5,.25)Mesh(hdl,1)
  334. hw=Weld(hdl,rarm,0,-1.05,0,math.pi/2)
  335.  
  336. function gZ(a)
  337.     obj,opt=a:match('(%w+)%,*(%w*)')
  338.     for i,v in pairs(getfenv())do
  339.         if i==obj then
  340.             obj=v
  341.         end
  342.     end
  343.     if opt~='' then
  344.         return obj.Size[opt]
  345.     else
  346.         return obj.Size.x,obj.Size.y,obj.Size.z
  347.     end
  348. end
  349. col='White'
  350. spinning_parts={}
  351. fires={}
  352. swords={}
  353. for _,ao in pairs{{gZ'hdl,y'/2+.1,0,0},{-(gZ'hdl,y'/2+.1),math.pi,math.pi}}do --- this loop makes curves
  354.     for angle=-math.pi/6,math.pi/6,math.pi/6 do
  355.         prev=Part(.2,.2,.2,'Cyan',.5)Mesh(prev,2,2,2,2)
  356.         Weld(prev,hdl,0,ao[1],0,angle,ao[2],ao[3])
  357.         for i=0,8 do
  358.             if i%2==0 then col='Black'else col='White'end
  359.             p=Part(.1,.2,.1,col)Mesh(p,1)
  360.            
  361.             Weld(p,prev,0,p.Size.y/2+prev.Size.y/2,0,md'5')
  362.             if i==8 then p.BrickColor=bcol'Bright red'Mesh(p,2).Scale=Vector3.new(3,3,3)table.insert(spinning_parts,p.Motor)
  363.                 local f=Add.Fire(p,0,0,'Cyan','White')f.Enabled=false table.insert(fires,f)
  364.                 prev=p
  365.                 cur=prev
  366.                 for o=0,m.tau,m.tau/10 do
  367.                     p2=Part(.1,.1,.1,'New Yeller',1)Mesh(p2,'Sword',.2,.2,.1)
  368.                     p2.Material='Ice'
  369.                     w=Weld(p2,cur,math.cos(o)*.5,0,math.sin(o)*.5,math.pi/2,0,math.pi/2+o)
  370.                     w.C1=w.C1*ang(-math.pi/2,0,md'80')
  371.                     table.insert(swords,p2)
  372.                 end
  373.             end
  374.             prev=p
  375.         end
  376.     end
  377. end
  378.  
  379. rwC0={eq=cfn()*ang(md'5',0,md'-25')}
  380. lwC0={eq=cfn(0,.6,0)*ang(md'-70',md'50')}
  381. hwC1={arm=cfn(0,-1.05,0)*ang(math.pi/2),torso=(cfn(0,0,.75)*ang(0,0,md'-135'))*ang(0,math.pi/2)}
  382.  
  383. metacross={
  384.         __call=function(tab,a)return tab[a]end;
  385. }
  386.  
  387. Keys={}
  388. for i,v in pairs{rwC0,lwC0,hwC1}do setmetatable(v,metacross)end
  389. hw.Part0,hw.Part1=torso,hdl
  390. hw.C0=hwC1'torso'
  391.  
  392. Equip=function()
  393.     hw.Part0=rarm
  394.     hw.C0=hwC1'arm'
  395.     Lock'R' tw(rw,rwC0'eq')
  396.     for i=1,#fires do fires[i].Enabled=true end
  397.     for i=1,.5,-.1 do
  398.         for _,v in pairs(swords)do
  399.             v.Transparency=i
  400.         end
  401.         wait()
  402.     end
  403. end
  404. Unequip=function()
  405.     tw(rw,cfn())for i=1,#fires do fires[i].Enabled=false end
  406.     for i=.5,1,.1 do
  407.         for _,v in pairs(swords)do
  408.             v.Transparency=i
  409.         end
  410.         wait()
  411.     end
  412.     Lock'R'
  413.     hw.Part0=torso
  414.     hw.C0=hwC1'torso'
  415. end
  416.  
  417. snd=Add.Sound("http://www.roblox.com/Asset/?id=16433289",1)
  418. ding_snd=Add.Sound("http://www.roblox.com/Asset/?id=19344667",1)
  419. damSnd=Add.Sound("http://www.roblox.com/Asset/?id=24902512",2)
  420. sword_wave=function() --shoots sword
  421.     tw(rw,cfn()*ang(md'-90',md'-45')) snd:Play()
  422.     tw(rw,cfn()*ang(md'20',0,md'-45'),.3)
  423.    
  424.     local function onTouch(hit)
  425.         local hum=findHum(hit.Parent)
  426.         if hum then
  427.             Damage(hum,10,function()
  428.             dsnd=damSnd(hum.Torso)dsnd:Play()Debris:AddItem(dsnd,1)end,.05)
  429.         end
  430.     end
  431.  
  432.     local function fade(a,msh)
  433.         local orig=msh.Scale
  434.         for i=0,1,.1 do
  435.             msh.Scale=orig-Vector3.new(i*orig.x,i*orig.y,i*orig.z)
  436.             a.Transparency=.5+(i/2)
  437.             wait()
  438.         end
  439.  
  440.     end
  441.     local function spread(obj)
  442.         for o=md'-45',md'45',md'90' do
  443.             local cl2=Part(2,2,3.8*2,'New Yeller',.5)cl2:BreakJoints()
  444.             local msh22=Mesh(cl2,'Sword',2,2,2)
  445.             Instance.new('Sparkles',cl2).SparkleColor=bcol'Bright red'.Color
  446.            
  447.             cl2.CFrame=l(obj,0,0,0,math.pi,o)*cfn(0,0,4)
  448.             cl2.Touched:connect(function(hit)onTouch(hit)end)
  449.             Add.BV(cl2,cl2.CFrame.lookVector*-100)
  450.             Debris:AddItem(cl2,1)
  451.             Delay(.5,function()coroutine.wrap(fade)(cl2,msh22)wait(.5)
  452.  
  453.            end)
  454.         end
  455.     end
  456.     for o=md'-45',md'45',md'45' do
  457.         local sword=Part(2,2,3.8*2,'New Yeller',.5)sword:BreakJoints()
  458.         local sfx=Part(1,1,1,'New Yeller')sfx.Anchored=true
  459.         sfx.CFrame=l(torso,0,0,-5)
  460.         local msh=Mesh(sfx,'Ring')---ring effect
  461.         Spawn(function()
  462.             for i=.1,1,.05 do
  463.                 msh.Scale=Vector3.new(i*10,i*10,1)
  464.                 sfx.Transparency=i
  465.                 wait()
  466.             end sfx:Destroy()
  467.         end)
  468.         sword.Touched:connect(onTouch)
  469.         local msh2=Mesh(sword,'Sword',2,2,2)
  470.         sword.CFrame=l(l(torso,0,0,0,0,o),0,0,-5)  
  471.         Add.BV(sword,sword.CFrame.lookVector*75)
  472.         local orig=msh2.Scale ---the starting size
  473.         -- Instance.new('SelectionBox',ball).Adornee=ball
  474.         Instance.new('Sparkles',sword).SparkleColor=bcol'Bright red'.Color
  475.        
  476.         Delay(1,function() ---trying to get the sword to shrink before disappearing
  477.             ding_snd:Play()
  478.             for o=md'-45',md'45',md'45' do
  479.                 local cl=Part(2,2,3.8*2,'New Yeller',.5)cl:BreakJoints()
  480.                 local msh2=Mesh(cl,'Sword',2,2,2)
  481.                 Instance.new('Sparkles',cl).SparkleColor=bcol'Bright red'.Color
  482.                
  483.                 cl.CFrame=l(sword,0,0,0,math.pi,o)*cfn(0,0,4)
  484.                 cl.Touched:connect(onTouch)
  485.                 Add.BV(cl,cl.CFrame.lookVector*100)
  486.                 Debris:AddItem(cl,1)
  487.                 Delay(.25,function()spread(cl)coroutine.wrap(fade)(cl,msh2)end)
  488.             end
  489.             for i=0,1,.1 do
  490.                 msh2.Scale=orig-Vector3.new(i*orig.x,i*orig.y,i*orig.z)
  491.                 sword.Transparency=.5+(i/2)
  492.                 wait()
  493.             end
  494.             sword:Destroy()
  495.         end)
  496.     end
  497.     tw(rw,rwC0'eq')
  498. end
  499.  
  500. sphere_boom=function()holding=true
  501.     tw(rw,cfn()*ang(md'-110',md'20',md'-70'))
  502.     while holding do
  503.         local wall=Part(20,20,10,'New Yeller',.5)wall.Anchored=true
  504.         wall.CFrame=l(torso,0,0,-10)
  505.  
  506.         orig=wall.CFrame
  507.         tc(wall,l(orig,0,0,-20),.1,'')
  508.         for i=0,1,.1 do
  509.             for _,v in pairs(Workspace:children())do
  510.                 local hum=findHum(v)
  511.                 if hum then
  512.                     if (wall.Position-hum.Torso.Position).magnitude<20 then
  513.                         hum.Sit=true hum.Torso.Velocity=cfn(orig.p,l(orig,0,5,-10).p).lookVector*50
  514.                     end
  515.                 end
  516.             end
  517.             wait()
  518.         end
  519.        
  520.         for i=.5,1,.05 do wall.Transparency=i wait()end wall:Destroy()
  521.     end
  522.     tw(rw,rwC0'eq')
  523. end
  524.  
  525. RS=game:service'RunService'
  526. float_bp=nil
  527. float_bg=nil
  528. last_t=0
  529.  
  530. function cHeight(obj,mag)
  531.     local res=false
  532.     local ray=Ray.new(obj.Position,Vector3.FromNormalId(Enum.NormalId.Bottom)*mag)
  533.     local obj,pos=Workspace:FindPartOnRay(ray,char)
  534.     if obj and pos then
  535.         res=true
  536.     end
  537.     return res
  538. end
  539.  
  540. music_snd=Add.Sound('rbxassetid://161099337',1)
  541. bpm=150*1.5
  542. twtoT = function(Weld, Stop) --- TweenWeld function
  543.     local ntab={}
  544.     local Start = Weld.C1
  545.     local X1, Y1, Z1 = Start:toEulerAnglesXYZ()
  546.     local Stop = Stop
  547.     local X2, Y2, Z2 = Stop:toEulerAnglesXYZ()
  548.    
  549.     for i = 0, 1, 1/3 do
  550.             C1 = CFrame.new( (Start.p.X * (1 - i)) + (Stop.p.X * i),
  551.                             (Start.p.Y * (1 - i)) + (Stop.p.Y * i),
  552.                             (Start.p.Z * (1 - i)) + (Stop.p.Z * i)) * CFrame.fromEulerAnglesXYZ(
  553.                             (X1 * (1 - i)) + (X2 * i), (Y1 * (1 - i)) + (Y2 * i),
  554.                             (Z1 * (1 - i)) + (Z2 * i) )
  555.             table.insert(ntab,C1)
  556.             wait()
  557.     end
  558.     table.insert(ntab,Stop)
  559.     return ntab
  560. end
  561.  
  562. wave_tab={
  563.     cfn()*ang(0,0,md'-45');
  564.     cfn();
  565.     cfn()*ang(md'-75',0,md'-75');
  566.     cfn();
  567. }
  568. wave_tab2={
  569.     cfn()*ang(0,0,md'45');
  570.     cfn();
  571.     cfn()*ang(md'-75',0,md'75');
  572.     cfn();
  573. }
  574.  
  575. function music()Lock'L'
  576.     tw(rw,cfn())
  577.     hw.C0=hwC1'torso'hw.Part0=torso
  578.     music_snd:Play()
  579.     local elapsed_time=0
  580.     local prev_tick=tick()
  581.     local Beat=RS.Heartbeat
  582.     local metronome=0
  583.     local frame=0
  584.     holding=true
  585.  
  586.     while holding do
  587.         Beat:wait()
  588.         local d_tick=tick()-prev_tick
  589.         elapsed_time=elapsed_time+d_tick
  590.         if elapsed_time > 1/(bpm/60)then
  591.             for i,v in pairs(Workspace:children())do
  592.                 local hum=findHum(v)
  593.                
  594.                 if hum then
  595.                     local mag=(torso.Position-hum.Torso.Position).magnitude
  596.                     if mag > 10 and mag < 60 then
  597.                         local lve=cfn(hum.Torso.Position,torso.Position).lookVector
  598.                         hum.Torso.Velocity=lve*20 hum.Sit=true
  599.                     end
  600.                 end
  601.             end
  602.             local metronome=metronome+1
  603.             frame=frame+(not inverse and 1 or -1)
  604.            
  605.             frame=frame>=#wave_tab and 1 or frame
  606.            
  607.             local sfp=Part(1,1,1,'Cyan')
  608.             local msh=Mesh(sfp,1)
  609.             Weld(sfp,torso,0,-2.5,0)
  610.             elapsed_time=elapsed_time+d_tick
  611.             Spawn(function()
  612.                 for i=0,1,.1 do
  613.                     msh.Scale=Vector3.new(1,1,1)+Vector3.new(i*10,0,i*10)
  614.                     sfp.Transparency=i
  615.                     wait()
  616.                 end
  617.                 sfp:Destroy()
  618.             end)
  619.             tw(rw,wave_tab[frame],1/(bpm/60),'')
  620.             tw(lw,wave_tab2[frame],1/(bpm/60),'')
  621.             elapsed_time=elapsed_time-1/(bpm/60)
  622.         end
  623.         prev_tick=tick()
  624.     end
  625.     music_snd:Stop()
  626.     hw.Part0=rarm
  627.     hw.C0=hwC1'arm'
  628.     tw(lw,cfn(),.1,'')tw(rw,rwC0'eq')Lock'L'
  629. end
  630. slash_snd=Add.Sound('rbxassetid://143858925',2)
  631. function slash()
  632.     tw(rw,cfn(0,1.4,.4)*ang(md'-120',0,md'-90'),.1,'')
  633.     tw(hw,cfn(0,.5,0)*ang(md'25'))
  634.     tw(rw,cfn(0,.4,-.4)*ang(md'45',0,md'-110'),.3)
  635.     slash_snd:Play()
  636.     tw(hw,cfn(),.3)
  637.     tw(rw,rwC0'eq')
  638. --  tw(hw,cfn()*ang(0,0,math.pi/2))
  639. end
  640.  
  641.  
  642. copter_snd=Add.Sound('rbxassetid://177784375',0)
  643. copter_snd.Sound.Looped=true    
  644.  
  645. float = function(mouse)
  646.     local t=RS.Stepped:wait()
  647.     if  ((t-last_t)<.5 and cHeight(torso,10))or(not cHeight(torso,30)) and not float_bp then
  648.         copter_snd:Play()
  649.         Spawn(function()for i=0,1,.1 do copter_snd:Pitch(i)wait()end end)
  650.         float_bp=Add.BP(torso,torso.Position)
  651.         float_bg=Add.BG(torso)
  652.         float_bg.cframe=cfn(torso.Position,Vector3.new(mouse.hit.p.x,l(torso).p.y,mouse.hit.p.z))
  653.         local sp=Part(1,1,1,nil,1)Instance.new('Sparkles',sp).SparkleColor=bcol'Magenta'.Color
  654.         sp.Anchored=true
  655.         tw(rw,cfn()*ang(md'180'),.3)
  656.         for i=0,1,.3 do
  657.             hw.C0=hwC1'arm'*cfn(0,0,2*i)*ang(0,math.pi/2*i)
  658.             wait()
  659.         end
  660.         hw.C0=hwC1'arm'*cfn(0,0,2)*ang(0,math.pi/2)
  661.         pipe=Part(.1,2,.1)Mesh(pipe,1)Weld(pipe,rarm,0,-gZ'rarm,y'/2-gZ'pipe,y'/2,0)
  662.         Spawn(function()
  663.             while float_bp do
  664.                 for i=0,1,.1 do
  665.                     if not float_bp then break end
  666.                     float_bp.position=float_bp.position+Vector3.new(0,.05,0)
  667.                     wait()
  668.                 end
  669.                 for i=0,1,.1 do
  670.                     if not float_bp then break end
  671.                     float_bp.position=float_bp.position-Vector3.new(0,.05,0)
  672.                     wait()
  673.                 end
  674.                 wait()
  675.             end
  676.         end)
  677.        
  678.         Spawn(function()
  679.             while float_bp do
  680.                 for i=0,m.tau,m.tau/40 do
  681.                     if not float_bp then break end
  682.                     sp.CFrame=l(torso,math.cos(i)*2,-2,math.sin(i)*2)
  683.                     hw.C1= cfn()*ang(i*3,0,0)
  684.                     wait()
  685.                 end
  686.                 wait()
  687.             end
  688.             sp:Destroy()
  689.         end)
  690.     elseif float_bp then
  691.         float_bp:Destroy()float_bp=nil
  692.         float_bg:Destroy()float_bg=nil
  693.         pipe:Destroy()
  694.         tw(rw,rwC0'eq',.3,'')tw(hw,cfn(),.3,'')
  695.        
  696.         for i=1,0,-.3 do
  697.             hw.C0=hwC1'arm'*cfn(0,0,2*i)*ang(0,math.pi/2*i)
  698.             wait()
  699.         end
  700.         hw.C0=hwC1'arm'
  701.         for i=1,0,-.1 do copter_snd:Pitch(i)wait()end copter_snd:Stop()
  702.        
  703.     end
  704.     last_t=t
  705. end
  706. speed=5
  707. fly=function(mouse)
  708.     copter_snd:Volume(100)
  709.     while m_down do
  710.         float_bp.position=(float_bp.position+(torso.Position-mouse.hit.p).unit*-speed)
  711.         float_bg.cframe=cfn(torso.Position,mouse.hit.p)
  712.         wait()
  713.     end
  714.     copter_snd:Volume(10)
  715.     float_bg.cframe=cfn(torso.Position,Vector3.new(mouse.hit.p.x,l(torso).p.y,mouse.hit.p.z))
  716. end
  717. exp_snd=Add.Sound('rbxassetid://165970126',1)
  718.        
  719.  
  720. onClick=function(mouse)
  721.     if float_bp then
  722.         fly(mouse)
  723.     else
  724.         slash()
  725.     end
  726. end
  727.  
  728. klist={ -- I bind attacks to keys using a table
  729. f=sword_wave;
  730. qq=sphere_boom;
  731. [string.char(32)] = float; --Spacebar
  732. eq=music;
  733. }
  734.  
  735. function onKey(key)
  736.     if Keys[key]then Keys[key]=nil
  737.         else Keys[key]=1
  738.     end
  739. end
  740. if not Workspace:FindFirstChild'TheGamer101' then
  741.     hop.Selected:connect(function(mouse)
  742.         Equip()
  743.         mouse.Button1Down:connect(function()m_down=true if attacking then return end attacking=true onClick(mouse) attacking=false end)
  744.         mouse.KeyUp:connect(function(key)onKey(key)for i,v in pairs(klist) do if key == i:sub(1,1) and i:sub(2,2) == 'q' then  holding = false end end end)
  745.         mouse.KeyDown:connect(function(key)onKey(key)
  746.             if attacking then return end
  747.                 for i,v in pairs(klist) do
  748.                     if key == i:sub(1,1) then attacking = true v(mouse) attacking = false
  749.                 end
  750.             end
  751.         end)
  752.         mouse.Button1Up:connect(function()m_down=false end)
  753.     end)
  754.  
  755.     hop.Deselected:connect(Unequip)
  756. else
  757. -- hw.Part0=rarm hw.C0=hwC1'arm'
  758. Equip()b_slash()Unequip()
  759. end
  760.  
  761. for i,v in pairs(torso:children()) do if v:IsA'BodyGyro' or v:IsA'BodyPosition' or v:IsA'BodyVelocity' then v:Destroy() end end
  762.  
  763. while wait() do
  764.     for i,v in pairs(spinning_parts)do
  765.         v.C0=v.C0*ang(0,md'2',0)
  766.     end
  767. end
Add Comment
Please, Sign In to add comment