Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --https://github.com/Mokiros/roblox-FE-compatibility
- if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
- local Player,Mouse,mouse,UserInputService,ContextActionService = owner
- local RealPlayer = Player
- do print("FE Compatibility code by Mokiros")local a=RealPlayer;script.Parent=a.Character;local b=Instance.new("RemoteEvent")b.Name="UserInput_Event"local function c()local d={_fakeEvent=true,Functions={},Connect=function(self,e)table.insert(self.Functions,e)end}d.connect=d.Connect;return d end;local f={Target=nil,Hit=CFrame.new(),KeyUp=c(),KeyDown=c(),Button1Up=c(),Button1Down=c(),Button2Up=c(),Button2Down=c()}local g={InputBegan=c(),InputEnded=c()}local CAS={Actions={},BindAction=function(self,h,i,j,...)CAS.Actions[h]=i and{Name=h,Function=i,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function k(self,l,...)local d=f[l]if d and d._fakeEvent then for m,e in pairs(d.Functions)do e(...)end end end;f.TrigEvent=k;g.TrigEvent=k;b.OnServerEvent:Connect(function(n,o)if n~=a then return end;f.Target=o.Target;f.Hit=o.Hit;if not o.isMouse then local p=o.UserInputState==Enum.UserInputState.Begin;if o.UserInputType==Enum.UserInputType.MouseButton1 then return f:TrigEvent(p and"Button1Down"or"Button1Up")end;if o.UserInputType==Enum.UserInputType.MouseButton2 then return f:TrigEvent(p and"Button2Down"or"Button2Up")end;for m,d in pairs(CAS.Actions)do for m,q in pairs(d.Keys)do if q==o.KeyCode then d.Function(d.Name,o.UserInputState,o)end end end;f:TrigEvent(p and"KeyDown"or"KeyUp",o.KeyCode.Name:lower())g:TrigEvent(p and"InputBegan"or"InputEnded",o,false)end end)b.Parent=NLS([==[local a=game:GetService("Players").LocalPlayer;local b=script:WaitForChild("UserInput_Event")local c=a:GetMouse()local d=game:GetService("UserInputService")local e=function(f,g)if g then return end;b:FireServer({KeyCode=f.KeyCode,UserInputType=f.UserInputType,UserInputState=f.UserInputState,Hit=c.Hit,Target=c.Target})end;d.InputBegan:Connect(e)d.InputEnded:Connect(e)local h,i;while wait(1/30)do if h~=c.Hit or i~=c.Target then h,i=c.Hit,c.Target;b:FireServer({isMouse=true,Target=i,Hit=h})end end]==],Player.Character)local r=game;local s={__index=function(self,q)local t=rawget(self,"_RealService")if t then return typeof(t[q])=="function"and function(m,...)return t[q](t,...)end or t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u end end}local function v(d,w)d._RealService=typeof(w)=="string"and r:GetService(w)or w;return setmetatable(d,s)end;local x={GetService=function(self,t)return rawget(self,t)or r:GetService(t)end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService"),RunService=v({_btrs={},RenderStepped=r:GetService("RunService").Heartbeat,BindToRenderStep=function(self,h,m,i)self._btrs[h]=self.Heartbeat:Connect(i)end,UnbindFromRenderStep=function(self,h)self._btrs[h]:Disconnect()end},"RunService")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;v(x,game)game,owner=x,x.Players.LocalPlayer end --[[
- This script is made by
- _ __ ___ _ _ __ _ _____ __
- | '_ ` _ \| | | |/ _` |/ _ \ \/ /
- | | | | | | |_| | (_| | __/> <
- |_| |_| |_|\__,_|\__, |\___/_/\_\
- |___/
- ]]
- DEBRIS = game:GetService("Debris")
- PLAYERS = game:GetService("Players")
- INPUT = game:GetService("UserInputService")
- RS = game:GetService("RunService")
- PI = math.pi
- md=math.rad
- bcol=BrickColor.new
- numkp=NumberSequenceKeypoint.new
- mr=math.random
- base_damage=10
- damage=base_damage
- cfn,v3n=CFrame.new,Vector3.new
- ang=function(x,y,z)return CFrame.Angles(x or 0,y or 0,z or 0)end
- player = PLAYERS.LocalPlayer
- character = player.Character
- pcall(function()Workspace:FindFirstChild('riimu',true).sidos:Invoke()end)
- torso = character.Torso
- -- shoulder_r = torso['Right Shoulder']
- -- shoulder_l = torso['Right Shoulder']
- arm_r = character['Right Arm']
- arm_l = character['Left Arm']
- leg_r = character['Right Leg']
- leg_l = character['Left Leg']
- root = character['HumanoidRootPart']
- root_p=root
- root_j = character['HumanoidRootPart']['RootJoint']
- neck = torso['Neck']
- chum = character:FindFirstChild'Humanoid' or character:FindFirstChild'Nue_was_here'
- head=character.Head
- function isIn(what,tab)
- local res=false
- for i,v in next,tab do
- if v==what then
- res = true
- break
- end
- end
- return res
- end
- function l(a1,x,y,z,rx,ry,rz)
- local cf
- if tostring(a1):find(',') == nil then
- cf=a1.CFrame
- else cf=a1 end
- return cf*CFrame.new(x or 0,y or 0,z or 0)*CFrame.Angles(
- rx or 0,ry or 0,yz or 0)
- end
- _1,_2,_3,_4,_5,_6=nil,nil,nil,nil,nil,nil
- New = function(what)
- local obj
- if type(what) ~= 'string' then
- obj=what:Clone()
- else
- obj=Instance.new(what)
- end
- return function(bar)
- for arg,val in pairs(bar) do
- if arg == "_P" then
- obj.Parent = val
- elseif arg=="_PP" then
- obj.Part0=val[1]
- obj.Part1=val[2]
- elseif arg=='_F'then
- val(obj)
- else
- if pcall(function()return obj[arg] end) then
- obj[arg]=val
- end
- end
- end _4=obj
- return obj
- end
- end
- Edit = function(what)
- return function(args)
- for ind,obj in next,what do
- for arg,val in next,args do
- local child,argu = arg:match"(.+)%.(.+)"
- if child and argu then
- if pcall(function()return obj[child][argu] end) then
- -- print'a'
- obj[child][argu]=val
- end
- else
- if arg=='_F'then
- val(ind,obj)
- elseif pcall(function()return obj[arg]end) then
- obj[arg]=val
- end
- end
- end
- end
- end
- end
- function recurseHum(what)
- local res
- local p=what
- if what:IsA'Humanoid'then
- res=what
- else
- repeat
- p=p.Parent
- if p then
- local hum=p:FindFirstChild'Humanoid'
- if hum then
- res=hum
- break
- end
- end
- until p==nil
- end
- return res
- end
- set_parent,set_material=nil,nil
- set_maxvel,set_anchor=nil,nil
- set_parent,set_color_set_anchor=nil,nil,nil
- Part = function(x,y,z,col,tr)
- local p = New"Part"{
- _P=set_parent or ears or Main;
- BrickColor = bcol(col or set_color or "White");
- CanCollide = false;
- Transparency = tr or 0;
- Size = Vector3.new(x or 0,y or 0,z or 0);
- Material = set_material or 'SmoothPlastic';
- Anchored = (set_anchor~=nil and set_anchor or false)
- }
- for _,sur in next,Enum.NormalId:GetEnumItems() do
- p[sur.Name..'Surface'] = 10
- end
- _1 = p
- return p
- end
- Weld = function(part0,part1,c0,c1,...) --over-engineered welding function which accepts many things
- local ar = {...}
- local cframe0,cframe1
- local function checkf()local res=true
- for i,v in pairs(ar)do
- if type(v) ~= 'number' then
- res=false
- end
- end
- return res
- end
- if type(c0) == 'table' then
- cframe0 = CFrame.new(c0[1] or 0, c0[2] or 0, c0[3] or 0) * CFrame.Angles(
- c0[4] or 0, c0[5] or 0, c0[6] or 0)
- elseif type(c0) == 'userdata' then
- cframe0 = c0
- elseif type(c0) == 'number' and checkf() then
- cframe0 = CFrame.new(c0 or 0,c1 or 0,ar[1] or 0) * CFrame.Angles(ar[2] or 0, ar[3] or 0, ar[4] or 0)
- end
- if type(c1) == 'table' then
- cframe1 = CFrame.new(c1[1] or 0, c1[2] or 0, c1[3] or 0) * CFrame.Angles(
- c1[4] or 0, c1[5] or 0, c1[6] or 0)
- elseif type(c1) == 'userdata' then
- cframe1 = c1
- elseif type(c1) == 'number' and (not c0 or (c0 and type(c0) == 'table')) then
- cframe1 = CFrame.new(c1 or 0, ar[1] or 0, ar[2] or 0) * CFrame.Angles(ar[3] or 0, ar[4] or 0, ar[5] or 0)
- end
- for i,v in pairs(ar)do
- if type(v) == 'table' then
- cframe1 = CFrame.new(v[1] or 0, v[2] or 0, v[3] or 0) * CFrame.new(v[4] or 0, v[5] or 0, v[6] or 0)
- elseif type(v) == 'userdata' then
- cframe1 = v
- end
- end
- cframe0,cframe1 = cframe1,cframe0
- part0.Position=part1.Position
- local weld = Instance.new("Motor")
- weld.Part0 = part0
- weld.Part1 = part1
- weld.C0 = cframe0 or CFrame.new()
- weld.C1 = cframe1 or CFrame.new()
- weld.MaxVelocity = set_maxvel or .1
- weld.Parent = part0
- _2=weld
- return weld
- end
- mesh_ids = {
- spikeball = "rbxassetid://24388358";
- spike = "rbxassetid://1033714";
- ring = "rbxassetid://3270017";
- coil = 'rbxassetid://16606212';
- diamond = 'rbxassetid://9756362';
- rock = 'rbxassetid://1290033';
- gear = 'rbxassetid://156292343';
- crown = 'rbxassetid://20329976';
- orb = 'rbxassetid://34795798';
- }
- mesh_texs = {
- rock = 'rbxassetid://1290030';
- }
- mesh_scales={
- diamond = v3n(0.75, 0.75, 0.75);
- spikeball = v3n(1.05, 1.05, 1.05);
- spike = v3n(0.5, 1.5, 0.5);
- gear = v3n(1.25,1.25,18);
- ring = v3n(1, 1, 0.6);
- coil = v3n(0.5, 0.5, 0.3);
- crown = v3n(0.6, 0.6, 0.6);
- orb = v3n(1, 1, 1);
- }
- mesh_offsets={
- crown = v3n(0,.15,0);
- }
- function bindMesh(mesh,Size)
- local mesh_name
- local size=Size or mesh.Parent.Size
- for name,id in next,mesh_ids do
- if mesh.MeshId==id then
- mesh_name=name
- end
- end
- if not mesh_name then return end
- local mesh=mesh
- local con
- con=mesh.Parent.Changed:connect(function()
- local siz=mesh.Parent.Size
- mesh.Scale=siz*mesh_scales[mesh_name]
- if mesh_offsets[mesh_name] then
- mesh.Offset=siz*mesh_offsets[mesh_name]
- end
- end)
- return con
- end
- Mesh = function(parent,id,sx,sy,sz)
- local name = ( (id == 'cyl' and 'CylinderMesh') or (id == 'bl' and 'BlockMesh') or 'SpecialMesh')
- local mesh = Instance.new(name)
- if id == 's' then
- mesh.MeshType = Enum.MeshType.Sphere
- elseif id == 'w' then
- mesh.MeshType = Enum.MeshType.Wedge
- elseif string.find(id,"://") ~= nil then
- mesh.MeshId = id
- end
- mesh.Scale = Vector3.new(sx or 1, sy or 1, sz or 1)
- mesh.Parent = parent
- _3=mesh
- return mesh
- end
- splat_bg = {
- normal='rbxassetid://35376649';
- bleed='rbxassetid://151907072';
- sleep='rbxassetid://69247215';
- wind='rbxassetid://442325811';
- }
- udim=function(a,b,c,d)
- if type(a)=='string'then
- x,y=tostring(a):match('([%+%d%.%-%/%*]+),([%+%d%.%-%/%*]+)')
- return UDim2.new(x or 0,x2 or 0,y or 0,y2 or 0)
- else
- return UDim2.new(a or 0,c or 0,b or 0,d or 0)
- end end
- pcall(function()character.Mace:Destroy()end)
- Main=New"Model"{_P=character;Name='Mace'}
- boolt=.5
- addition_func = nil
- hit_snd = New"Sound"{_P=hdl;SoundId='rbxassetid://166423137'}
- function findHum(pos,rad,hum2)
- local hums={}
- function check(a)
- local res=false
- for i,ho in pairs(hums)do
- if a==ho then res=true end
- end
- return res
- end
- for i,v in pairs(Workspace:children())do
- if v:IsA'Model'and v~=Char and v~=(hum2 or Char) then
- for i,q in pairs(v:children())do
- if q:IsA'Humanoid' and q.Parent:FindFirstChild'Torso'and(q.Torso.Position-pos).magnitude < rad then
- if not check(q)then
- table.insert(hums,q)
- end
- end
- end
- end
- end
- return hums
- end
- function checkY(p1,p2,range,range2)
- local function checko()
- return ( (l(p1).X>l(p2).X-range2 and l(p1).X<l(p2).X+range2) and (l(p1).Z>l(p2).Z-range2 and l(p1).Z<l(p2).Z+range2) )
- end
- if range2 then
- return (l(p1).Y > l(p2).Y-range and l(p2).Y < l(p2).Y+range) and checko()
- else
- return (l(p1).Y > l(p2).Y-range and l(p2).Y < l(p2).Y+range)
- end
- end
- function display_splat(human,text,bgimg,style,speed,height)
- local bbg = New"BillboardGui"{_P=Main;Adornee=human.Torso;
- Size=udim'2,2';ExtentsOffset=v3n(0,3,0)}
- local mfr = New"Frame"{_P=bbg;Size=udim'1,1'}
- local image_lab = New"ImageLabel"{_P=mfr;Size=udim'1,1';Image=(bgimg or splat_bg.normal)}
- local text_lab = New"TextLabel"{_P=mfr;Size=udim'1,1';Text=text;TextScaled=true;
- TextColor3=Color3.new(1,1,1);
- }
- Edit{mfr,text_lab,image_lab}{BackgroundTransparency=1}
- Spawn(function()
- if style=='expand' then
- mfr:TweenSizeAndPosition(udim'4,4',udim'-2,-3','Out','Quad',speed or 1,false,function()
- mfr:Destroy()
- end)
- else
- mfr:TweenPosition(udim(mr(-.25,.25),mr(-.75,-1.25)-(height or 0)),'Out','Quad',speed or 1,false,function()
- mfr:Destroy()
- end)
- end
- for i=0,speed or 1,.1 do
- Edit{image_lab;text_lab}{ImageTransparency=i;TextTransparency=i}
- wait()
- end
- end)
- end
- function dodam(hum,amount,...)
- hum:TakeDamage(amount)
- display_splat(hum,amount,...)
- end
- set_splat_img=nil
- function blow(hit,dam,dur,dis_snd,callback,hoo,...)
- local damage=dam or damage
- local f1,f2=tostring(damage):match("(%d+)_(.+)")
- damage=f1 or damage
- local callback = callback or addition_func or nil
- -- if not hit.Parent then return end
- local human = hit.Parent:FindFirstChild'Humanoid'
- if human and human.Health > 0 and human.Parent~=character and attacking then
- local found_tag = human:FindFirstChild'damage_tag'
- if not found_tag then
- if not dis_snd then
- local s=New(hit_snd){_P=human.Torso}s:Play()
- end
- DEBRIS:AddItem(s,1)
- local tag = New"NumberValue"{_P=human;Name='damage_tag';Value=damage}
- display_splat(human,f2 or damage,hoo or set_splat_img,...)
- if callback ~= nil then callback(human,hit) end
- DEBRIS:AddItem(tag,(dur or boolt))
- if type(damage)~='string'then human:TakeDamage(damage)end
- end
- end
- end
- function hideAllParts(wut,an)
- local parts={}
- local function hide(object,anchor)
- if object:IsA("BasePart") or object:IsA("Decal") then
- local tr=object.Transparency
- local t={o=object,t=tr}
- object.Transparency = 1
- if object:IsA'BasePart' then
- t.a=object.Anchored
- if anchor==nil then
- object.Anchored=true
- else
- if anchor == 1 then
- object.Anchored=true
- else
- object.Anchored=false
- end
- end
- t.c=object.CanCollide
- object.CanCollide=false
- end
- table.insert(parts,t)
- end
- for _, child in ipairs(object:GetChildren()) do
- hide(child,an)
- end
- end
- hide(wut,an)
- -- for i,v in pairs(Char:children())do
- -- pcall(function()print(v.Anchored)end)end
- return function()
- for i,v in ipairs(parts) do
- v.o.Transparency = v.t
- if v.o:IsA'BasePart'then
- if v.a~=nil then
- v.o.Anchored=v.a
- end
- if v.c~=nil then
- v.o.CanCollide=v.c
- end
- end
- end
- end
- end
- function addJoint(name,weld,c0,c1)
- local t= {}
- t.w=weld
- t.n_c0 = c0 or weld.C0
- t.n_c1 = c1 or weld.C1
- t._desired=weld.C0
- t._old=cfn()
- t.spd=.1
- t.l=0
- local active=false
- function t:get()
- return setmetatable({},{__newindex=function(t,i,v)
- if i=='d' and self.l == 0 then
- self.d = v
- elseif i == 's' then self.spd=v end end})
- end
- function t:activate()
- local s=shldrs[name]
- s.Parent=nil
- self.w.Parent=torso
- end
- function t:deactivate()
- local s=shldrs[name]
- s.Parent=torso
- s.Part0=torso
- s.Part1=torso
- self.w.Parent=nil
- end
- function t:update()
- self.w.C0 = self.w.C0:lerp(self._desired,self.spd)
- end
- setmetatable(t,{__newindex=function(ta,i,v)
- if i=='d' then
- ta._desired = ta.n_c0 * v
- ta._old = v
- end end})
- Joints[name]=t
- getfenv(0)[name]=Joints[name]
- end
- Joints={}
- addJoint('rw',New"Weld"{_P = torso;_PP={torso;arm_r};
- C0=cfn(1,0.5,0); C1=cfn(-.5,0.5,0)})
- rw.spd=.3
- --Build--
- set_color='Steel blue'
- hdl=Part(.5,1.75,.5)Mesh(hdl,'cyl')
- hw=Weld(hdl,arm_r,0,-1,-.25,-PI/2)
- spring=Part(.5,1.75,.5,'Black')
- Weld(spring,hdl,cfn()*ang(PI/2))
- Mesh(spring,mesh_ids.coil).Scale=mesh_scales.coil*v3n(.6,.6,1.75)
- spring=Part(.5,1.75,.5,'Black')
- Weld(spring,hdl,cfn()*ang(PI/2,PI))
- Mesh(spring,mesh_ids.coil).Scale=mesh_scales.coil*v3n(.6,.6,1.75)
- spike=Part(.5,.5,.5)
- Weld(spike,hdl,0,1.75/2+.275)
- Mesh(spike,mesh_ids.spike).Scale=mesh_scales.spike*spike.Size
- ball=Part(2,2,2,'Black')
- Weld(ball,spike,0,1)
- ball_msh=Mesh(ball,mesh_ids.spikeball)
- ball_msh.Scale=mesh_scales.spikeball*ball.Size
- ball2=Part(.1,.1,.1,'Cyan',.5)
- Weld(ball2,spike,0,1)
- Mesh(ball2,mesh_ids.spikeball).Scale=ball_msh.Scale*1.01
- dia=Part(.5,2,.5,'Storm blue')
- Weld(dia,hdl,0,-1.75/2)
- Mesh(dia,mesh_ids.diamond).Scale=mesh_scales.diamond*dia.Size
- -- New"SelectionBox"{_P=_1;Adornee=_1}
- dia2=Part(1,1,1,'Black')_1.Size=dia.Size
- Weld(_1,hdl,0,-1.75/2,0,0,md'45')
- Mesh(_1,mesh_ids.diamond).Scale=mesh_scales.diamond*dia.Size
- ball_dmg_con = ball.Touched:connect(blow)
- dia_dmg_con = dia.Touched:connect(blow)
- --/Build--
- addJoint('hw',hw)
- hw.spd=.3
- anim_con=RS.Stepped:connect(function()
- for i,v in pairs(Joints) do
- v.w.C0 = v.w.C0:lerp(v._desired,v.spd)
- end
- end)
- rw.d=ang(PI/2)
- function freeze(a)local orig,orig2=a.WalkSpeed,a.JumpPower
- a.WalkSpeed=0 a.JumpPower=0
- return function()a.WalkSpeed=orig
- a.JumpPower=orig2 end end
- --Moves--
- slash_snd = New"Sound"{_P=hdl;SoundId='rbxasset://sounds/swordslash.wav';
- Pitch=1.25}
- slash2_snd = New"Sound"{_P=hdl;SoundId='rbxasset://sounds/swordlunge.wav'}
- spin_snd = New"Sound"{_P=hdl;SoundId='rbxassetid://158475221'}
- lunge_snd = New"Sound"{_P=hdl;SoundId='rbxassetid://231731980';Pitch=.5}
- spike_snd = New"Sound"{_P=hdl;SoundId='rbxassetid://158037267'}
- spike_snd_cl = New(spike_snd){_P=hdl}
- beam_snd = New"Sound"{_P=hdl;SoundId='rbxassetid://184742298';Pitch=1.15}
- slash3_snd = New"Sound"{_P=hdl;SoundId='rbxassetid://220833976'}
- Slash = function()
- rw.d=ang(md'-15')
- slash_snd:Play()
- wait'.25'
- rw.d=ang(md'90')
- end
- Slash2 = function()
- slash2_snd:Play()
- local a=ang(md'90',0,md'-35')*ang(0,PI/2-md'25')
- rw.d=a
- wait'.15'
- rw.d=a*ang(md'-170')
- wait'.25'
- rw.d=ang(md'90')
- end
- Slash3 = function()
- addition_func=function(hum)
- Spawn(function()
- local pt=tick()
- repeat
- pcall(function()hum.PlatformStand=true end)
- wait()
- until (tick()-pt)>2
- pcall(function()hum.PlatformStand=false end)
- end)
- end
- damage=base_damage*1.5
- rw.d=ang(md'130',md'15')
- hw.d=ang(0,0,-PI)wait'.25'
- slash3_snd:Play()
- rw.d=ang(md'80',md'-35')
- hw.d=ang(md'25',0,PI)
- wait'.4'
- addition_func=nil
- -- rw.d=ang(PI/2)
- -- hw.d=cfn()
- end
- Slash4 = function()
- -- Slash()
- addition_func=function(hum)
- Spawn(function()wait'.15'
- display_splat(hum,'BLEED',splat_bg.bleed,'expand',2,2)
- end)
- for i=1,30 do
- if hum then
- local blood=Part(.3,.1,.3,'Really red')
- blood.CFrame=l(hum.Torso)
- blood.Velocity=v3n(mr(-5,5),10,mr(-5,5))
- DEBRIS:AddItem(blood,.5)
- pcall(function()hum.Health=hum.Health-base_damage*.01 end) end
- wait()
- end
- end
- damage=base_damage*2
- rw.d=rw._old*ang(md'120')
- local o=ang(md'80',md'-35')
- -- for a=0,1,.1 do
- -- hw.d=o*ang(0,0,PI*3*a)
- -- wait()
- -- end
- rw.d=o*ang(md'75')
- hw.d=cfn()wait'.25'
- slash3_snd:Play()
- rw.d=ang(md'85',md'-35',0)
- hw.d=cfn(0,1,0)*ang(md'-25',0,md'-15')
- wait'1'
- addition_func=nil
- end
- wind_snd=New"Sound"{_P=hdl;SoundId='rbxassetid://224339308';Pitch=3}
- Spin = function()
- addition_func=function(hum)
- pcall(function()hum.PlatformStand=true wait(.1)hum.PlatformStand=false end)
- hum.Torso.Velocity=cfn(l(torso).p,v3n(l(hum.Torso).X,l(torso).Y,l(hum.Torso).Z)).lookVector*100
- end
- rw.d=ang(0,0,md'75')
- hw.d=cfn(0,-.5,0)*ang(PI/2)*ang(md'65')
- local bv=New"BodyAngularVelocity"{_P=root_p;maxTorque=v3n(1,1,1)*9e+009;
- angularvelocity=v3n(0,1,0)*PI*4}
- --Trailing--
- local pt=tick()
- local rot=0
- local r=Part(10,3,10,'Cyan',.75)r.Anchored=true
- local mesh=Mesh(r,mesh_ids.crown)_3.Scale=mesh_scales.crown*r.Size
- _3.Offset=mesh_offsets.crown*r.Size
- local r2=New(r){_P=Main;Transparency=.85}_4.Mesh.Scale=mesh.Scale*1.1
- local r3=New(r){_P=Main;Transparency=.95}_4.Mesh.Scale=mesh.Scale*1.25
- local function onHit(hit)
- blow(hit,'GUST',0.1,true,function(hum)
- New"BodyAngularVelocity"{_P=hum.Torso;MaxTorque=v3n(0,1,0)*9e+009;P=100;
- angularvelocity=v3n(0,1,0)*(PI*10)}
- DEBRIS:AddItem(_4,1)
- New(wind_snd){_P=hum.Torso}:Play()
- DEBRIS:AddItem(_4,1)
- end,splat_bg.wind,'expand')
- end
- -- r.Touched:connect(onHit)
- -- r2.Touched:connect(onHit)
- -- r3.Touched:connect(onHit)
- Edit{r,r2,r3}{CFrame=l(torso,0,-2)}
- local pt=tick()
- Spawn(function()
- while bv.Parent~=nil do
- ---Spin em around---
- if (tick()-pt)>.1 then
- for _,hum in next,findHum(torso.Position,10) do
- if checkY(hum.Torso,torso,2) then
- onHit(hum.Torso)
- end
- end pt=tick()
- end
- rot=rot+md'10'
- local st_cf=l(ball)
- RS.Stepped:wait()
- local en_cf=l(ball)
- local mag=(st_cf.p-en_cf.p).magnitude
- local cyl=Part(1,1,1)_1.Anchored=true _1.Material='Neon'
- local msh=Mesh(cyl,'cyl',1,mag,1)
- msh.Scale=v3n(1,mag,1)
- local bsca=msh.Scale
- cyl.CFrame=(cfn(st_cf.p,en_cf.p)*cfn(0,0,-mag/2))*ang(PI/2)
- r.CFrame=l(cfn(torso.Position),0,-2,0,0,rot)
- r2.CFrame=l(cfn(torso.Position),0,-2,0,0,-rot)
- r3.CFrame=l(cfn(torso.Position),0,-2,0,0,rot)
- Spawn(function()
- for i=0,1,.25 do
- cyl.Transparency=.5+i*.5
- msh.Scale=bsca+(v3n(1,0,1)*i)
- wait()
- end cyl:destroy()
- end)
- end
- for i,v in next,{r,r2,r3}do v:Destroy()end
- end)
- ---------------
- spin_snd:Play()
- wait(1.5)
- bv:Destroy()
- hw.d=cfn()
- rw.d=ang(PI/2)
- addition_func=nil
- end
- Lunge = function()
- addition_func=function(hum,hit)
- local cr1=Part(1,1,1,'New Yeller',.5)
- local cr2=Part(1,1,1,'New Yeller',.5)
- Edit{cr1,cr2}{Material='Neon';Anchored=true}
- local msh=Mesh(cr1,'s')
- local msh2=Mesh(cr2,'s')
- local contactp=ball.CFrame:toObjectSpace(hit.CFrame)
- contactp=ball.CFrame*contactp
- local cc=cfn(contactp.p,v3n(l(ball).X,contactp.Y,l(ball).Z))
- -- local cc=contactp
- cr1.CFrame=cc*ang(PI/2,md'45')
- cr2.CFrame=cc*ang(PI/2,md'-45')
- Spawn(function()
- for i=0,1,.1 do
- Edit{cr1,cr2,msh,msh2}{Scale=v3n(1,1,30)*i;
- Transparency=.5+i*.5}
- wait()
- end
- cr1:Destroy() cr2:Destroy()
- end)
- local stopper=New"BodyPosition"{_P=hum.Torso;
- MaxForce=v3n(1,1,1)*9e+009;position=hum.Torso.Position}
- DEBRIS:AddItem(stopper,.25)
- end
- lunge_snd:Play()
- --Effect--
- local bv=New"BodyVelocity"{_P=torso;velocity=torso.CFrame.lookVector*50;
- MaxForce=v3n(1,1,1)*9e+009}
- rw.d=ang(md'-45')
- hw.d=ang(md'-45')
- local pt=tick()
- repeat --Circle effects
- local ring=Part(1,1,1,'White',.5)_1.Anchored=true
- local msh=Mesh(_1,mesh_ids.ring)_3.Scale=v3n(0,0,0)
- local crown=Part(1,1,1,'White',.5)_1.Anchored=true
- local msh2=Mesh(_1,mesh_ids.crown)_3.Scale=v3n(0,0,0)
- local cf=l(torso,0,0,-3)
- local cf2=l(torso,0,0,-7,PI/2)
- ring.CFrame=cf crown.CFrame=cf2
- Spawn(function()
- for i=0,1,.1 do
- Edit{ring,crown}{Transparency=.5+i*.5}
- Edit{msh}{Scale=v3n(i*10,i*10,1)}
- Edit{msh2}{Scale=v3n(i*11,i*11,i*11);Offset=v3n(0,.15*(i*11),0)}
- wait()
- end ring:Destroy()crown:Destroy()
- end)
- wait()
- until (tick()-pt)>.25
- rw.d=ang(md'45')*ang(0,md'25')
- hw.d=ang(md'45')
- bv:Destroy()
- addition_func=nil
- wait'.35'
- hw.d=cfn()rw.d=ang(PI/2)
- end
- inject_snd = New"Sound"{_P=hdl;SoundId='rbxassetid://214755019';Volume=1;}
- Spike = function()
- local behind=false
- rw.d=cfn(0,.65,0)*ang(md'170',0,md'45')*ang(0,md'-25')
- spike_snd:Play()
- dia_dmg_con:disconnect()
- ball_dmg_con:disconnect()
- wait'.5'
- --Make victim fall--
- local con
- set_splat_img=splat_bg.sleep
- slp_con=dia.Touched:connect(function(hit)
- blow(hit,'5_IMMOB',nil,true,function(hum)
- if not hum.Parent:FindFirstChild'Torso'then return end
- local chead=hum.Parent:FindFirstChild'Head'
- if chead then
- vec1=chead.CFrame.lookVector
- vec2=head.CFrame.lookVector
- dot=vec1:Dot(vec2)
- if dot>0 then
- hum:TakeDamage(base_damage*2)
- -- dodam(hum,base_damage*2,set_splat_img,'expand')
- end
- end
- -- display_splat(hum,'SLEEP',splat_bg.sleep)
- local found_poison = hum.Torso:FindFirstChild'Sleep'
- if not found_sleep then
- inject_snd:Play() hit_snd:Stop()
- local sleep = New"BodyGyro"{_P=hum.Torso;
- Name='Sleep';MaxTorque=v3n(1,1,1)*9e+009;P=10000;
- cframe=cfn(l(hum.Torso).p)*ang(PI/2,0,PI/2)}
- DEBRIS:AddItem(sleep,3)
- end
- end)
- end)
- ----------------------
- spike_snd_cl:Play()
- rw.d=rw._old*ang(md'-85')
- hw.d=cfn(0,.5,0)*ang(md'-15')
- wait'.5'
- set_splat_img=sleep
- slp_con:disconnect()
- dia_dmg_con=dia.Touched:connect(blow)
- ball_dmg_con = ball.Touched:connect(blow)
- -- damage=base_damage
- hw.d=cfn()
- rw.d=ang(PI/2)
- end
- Beam = function()
- local dismis={}
- local obj,pos=Workspace:FindPartOnRayWithIgnoreList(Ray.new(l(torso,0,0,-4).p,v3n(0,-5,0)),dismis)
- local hummi=nil
- repeat
- obj,pos=Workspace:FindPartOnRayWithIgnoreList(Ray.new(l(torso,0,0,-4).p,v3n(0,-5,0)),dismis)
- if obj and pos then
- hummi=recurseHum(obj)
- if hummi then
- table.insert(dismis,obj)
- end end
- until hummi==nil
- if not obj and pos then return end
- beam_snd:Play()
- rw.d=ang(md'140')
- hw.d=cfn(0,0,.25)*ang(md'35')
- local thaw=freeze(chum)
- local rings={}
- for i=1,0,-.05 do
- local ring = Part(i*5,i*5,4,'New Yeller')_1.Anchored=true
- ring.CFrame=cfn(pos)*ang(PI/2)
- -- ring.Touched:connect(function(hit)end)
- Mesh(ring,mesh_ids.ring)
- _3.Scale=mesh_scales.ring*_1.Size
- table.insert(rings,ring)
- end
- for o=0,1,.1 do
- for i,v in pairs(rings)do
- v.CFrame=cfn(pos+v3n(0,-.4+o*(i),0))*ang(PI/2)
- end
- ---Make em suffer...
- for _,hum in next,findHum(l(torso,0,0,-4).p,30) do
- if checkY(hum.Torso,torso,10,4) then
- blow(hum.Torso,base_damage*.25,.1,false)
- end
- end
- wait()
- end
- for o=1,0,-.1 do
- for i,v in pairs(rings)do
- v.CFrame=cfn(pos+v3n(0,-.4+o*(i),0))*ang(PI/2)
- end
- ---Make em suffer...
- for _,hum in next,findHum(l(torso,0,0,-4).p,30) do
- if checkY(hum.Torso,torso,10,4) then
- blow(hum.Torso,base_damage*.25,.1,false)
- end
- end
- wait()
- end thaw()
- for _,v in pairs(rings)do v:Destroy()end
- hw.d=cfn()
- rw.d=ang(PI/2)
- end
- unhide=nil
- prtem=New"ParticleEmitter"{_P=nil;
- Size=NumberSequence.new{numkp(0,1);numkp(1,7)};
- Transparency=NumberSequence.new{numkp(0,0);numkp(1,1)};
- Color=ColorSequence.new(bcol'Cyan'.Color,bcol'White'.Color);
- Lifetime=NumberRange.new(3);
- VelocitySpread=180;
- Rate=150;
- Texture='rbxassetid://133619974';
- }
- hide_snd = New"Sound"{_P=hdl;SoundId='http://www.roblox.com/Asset/?id=16433289'}
- Hide = function()
- if unhide == nil then
- hide_snd:Play()
- unhide = hideAllParts(character,false)
- local p=Part(1,1,1,'',1)p.Anchored=true
- p.CFrame=l(torso)
- local prt=New(prtem){_P=p}
- prt:Emit(10)wait(.1)prt.Rate=0
- DEBRIS:AddItem(p,2)
- else
- unhide()
- unhide=nil
- end
- end
- -- Lunge()
- Mouse=player:GetMouse()
- pt=0
- double=false
- mouse_con1=Mouse.KeyDown:connect(function(key)
- if isIn(key,{'f','q','e','c','z'}) then
- if attacking then return end
- attacking=true
- if unhide == nil then
- if key=='f'then
- Spin()
- elseif key=='q' then
- Lunge()
- elseif key=='e' then
- Spike()
- elseif key=='z' then
- Beam()
- elseif key=='r'then
- Slash4()
- end
- end
- if key=='c' then
- Hide()
- end
- attacking=false
- end
- end)
- local combo=0
- mouse_con2=Mouse.Button1Down:connect(function()
- if attacking or unhide~=nil then return end
- attacking=true
- if (tick()-pt) <.2 then
- combo=combo+1
- else combo=0 end
- if combo==1 then
- Slash2()
- elseif combo==2 then
- Slash3()
- elseif combo==3 then
- Slash4()
- combo=0
- else
- Slash()
- end
- hw.d=cfn()rw.d=ang(PI/2)
- damage=base_damage
- attacking=false
- pt=tick()
- end)
- --Maeking sure it wont go insane--
- New"BindableFunction"{_P=script;Name='sidos'}.OnInvoke=function()
- mouse_con1:disconnect()
- mouse_con2:disconnect()
- anim_con:disconnect()
- end
- script.Name='riimu'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement