SHOW:
|
|
- or go back to the newest paste.
| 1 | --https://github.com/Mokiros/roblox-FE-compatibility | |
| 2 | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
| |
| 3 | local Player,Mouse,mouse,UserInputService,ContextActionService = owner | |
| 4 | local RealPlayer = Player | |
| 5 | 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={},Soundscape=r:GetService("RunService").Heartbeat,BindToSoundscape=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
| |
| 6 | ||
| 7 | -- Created by Nebula_Zorua -- | |
| 8 | -- Two invisible eyes.. | |
| 9 | -- Two, invisible, monsterous eyes.. | |
| 10 | -- Discord: Nebula the Zorua#6969 | |
| 11 | -- Youtube: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA | |
| 12 | -- Credit to makhail07 for the idea (lub u bby) | |
| 13 | wait(1) | |
| 14 | ||
| 15 | local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
| |
| 16 | ||
| 17 | local plr = S.Players.LocalPlayer | |
| 18 | local char = plr.Character | |
| 19 | local hum = char:FindFirstChildOfClass'Humanoid' | |
| 20 | local rarm = char["Right Arm"] | |
| 21 | local larm= char["Left Arm"] | |
| 22 | local rleg= char["Right Leg"] | |
| 23 | local lleg = char["Left Leg"] | |
| 24 | local root = char:FindFirstChild'HumanoidRootPart' | |
| 25 | local torso = char.Torso | |
| 26 | local head = char.Head | |
| 27 | local sine = 0; | |
| 28 | local combo = 1; | |
| 29 | local lastClick = time() | |
| 30 | local change = 1; | |
| 31 | local runService = S.RunService | |
| 32 | - | local PlayerSize = 2 |
| 32 | + | |
| 33 | local Attack = false | |
| 34 | local neutralAnims = true | |
| 35 | local GlitchTime = 0; | |
| 36 | local PaintBody = 'Black' | |
| 37 | local DeleteClothing = true | |
| 38 | local PlayerSize = 1 | |
| 39 | local Debounces = {Debounces={}}
| |
| 40 | local Hit = {}
| |
| 41 | local BloodPuddles = {}
| |
| 42 | local Teamed = {}
| |
| 43 | hum.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None | |
| 44 | hum.MaxHealth = 1e4 | |
| 45 | hum.Health = 1e4 | |
| 46 | hum.Name = '13' | |
| 47 | Instance.new("ForceField",char).Visible = false
| |
| 48 | function Debounces:New(name,cooldown) | |
| 49 | local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
| |
| 50 | setmetatable(aaaaa,{__index = Debounces})
| |
| 51 | Debounces.Debounces[name] = aaaaa | |
| 52 | return aaaaa | |
| 53 | end | |
| 54 | ||
| 55 | function Debounces:Use(overrideUsable) | |
| 56 | assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use") | |
| 57 | if(self.Usable or overrideUsable)then | |
| 58 | self.Usable = false | |
| 59 | self.CoolingDown = true | |
| 60 | local LastUse = time() | |
| 61 | self.LastUse = LastUse | |
| 62 | delay(self.Cooldown or 2,function() | |
| 63 | if(self.LastUse == LastUse)then | |
| 64 | self.CoolingDown = false | |
| 65 | self.Usable = true | |
| 66 | end | |
| 67 | end) | |
| 68 | end | |
| 69 | end | |
| 70 | ||
| 71 | function Debounces:Get(name) | |
| 72 | assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
| |
| 73 | for i,v in next, Debounces.Debounces do | |
| 74 | if(i == name)then | |
| 75 | return v; | |
| 76 | end | |
| 77 | end | |
| 78 | end | |
| 79 | ||
| 80 | function Debounces:GetProgressPercentage() | |
| 81 | assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use") | |
| 82 | if(self.CoolingDown and not self.Usable)then | |
| 83 | return math.max( | |
| 84 | math.floor( | |
| 85 | ( | |
| 86 | (time()-self.LastUse)/self.Cooldown or 2 | |
| 87 | )*100 | |
| 88 | ) | |
| 89 | ) | |
| 90 | else | |
| 91 | return 100 | |
| 92 | end | |
| 93 | end | |
| 94 | ||
| 95 | local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
| |
| 96 | local V3 = {N=Vector3.new}
| |
| 97 | local M = {C=math.cos,R=math.rad,S=math.sin,P=math.pi,RNG=math.random,MRS=math.randomseed,H=math.huge}
| |
| 98 | ||
| 99 | local Effects,Sounds = {},{};
| |
| 100 | --Stop animations | |
| 101 | for _,v in next, hum:GetPlayingAnimationTracks() do | |
| 102 | v:Stop(); | |
| 103 | end | |
| 104 | ||
| 105 | pcall(game.Destroy,char:FindFirstChild'Animate') | |
| 106 | pcall(game.Destroy,hum:FindFirstChild'Animator') | |
| 107 | ||
| 108 | -- Sounds | |
| 109 | Sounds['Wet'] = {Id=256738023,Loop=false,Pitch=1}
| |
| 110 | Sounds['Swoosh1'] = {Id=320557353,Loop=false,Pitch=1,Volume=6}
| |
| 111 | Sounds['Swoosh2'] = {Id=320557382,Loop=false,Pitch=1,Volume=6}
| |
| 112 | Sounds['Swoosh3'] = {Id=320557413,Loop=false,Pitch=1,Volume=6}
| |
| 113 | Sounds['Swoosh4'] = {Id=320557453,Loop=false,Pitch=1,Volume=6}
| |
| 114 | Sounds['Swoosh5'] = {Id=320557487,Loop=false,Pitch=1,Volume=6}
| |
| 115 | Sounds['Swoosh6'] = {Id=320557537,Loop=false,Pitch=1,Volume=6}
| |
| 116 | Sounds['Swoosh7'] = {Id=320557563,Loop=false,Pitch=1,Volume=6}
| |
| 117 | Sounds['Swoosh8'] = {Id=320557518,Loop=false,Pitch=1,Volume=6}
| |
| 118 | Sounds['SmallBoom'] = {Id=341336485,Loop=false,Volume=5,Pitch=1}
| |
| 119 | Sounds['ChaosBuster'] = {Id=333534812,Loop=false,Volume=5,Pitch=0.75}
| |
| 120 | Sounds['Magic'] = {Id=315743350,Loop=false,Volume=5,Pitch=1}
| |
| 121 | Sounds['ShrekRemix'] = {Id=163306929,Loop=true,Pitch=1,Volume = 4}
| |
| 122 | Sounds['CreoDimension'] = {Id=927529620,Loop=true,Pitch=1,Volume=4}
| |
| 123 | Sounds['BlackBlizzard'] = {Id=657626121,Loop=true,Pitch=1,Volume=4}
| |
| 124 | Sounds['ColbreakzFantasy'] = {Id=876981900,Loop=true,Pitch=1,Volume=4}
| |
| 125 | Sounds['NeflCrystals'] = {Id=340106355,Loop=true,Pitch=1,Volume=4}
| |
| 126 | Sounds['EvilMortyRemix'] = {Id=1057401232,Loop=true,Pitch=1,Volume=10}
| |
| 127 | Sounds['Astronaut13'] = {Id=723652641,Loop=true,Pitch=0.9,Volume=10}
| |
| 128 | -- Functions | |
| 129 | local NewInstance = function(instance,parent,properties) | |
| 130 | local inst = Instance.new(instance,parent) | |
| 131 | if(properties)then | |
| 132 | for i,v in next, properties do | |
| 133 | pcall(function() inst[i] = v end) | |
| 134 | end | |
| 135 | end | |
| 136 | return inst; | |
| 137 | end | |
| 138 | ||
| 139 | ||
| 140 | ArtificialHB = NewInstance("BindableEvent", script,{
| |
| 141 | Parent = script, | |
| 142 | Name = "Heartbeat", | |
| 143 | }) | |
| 144 | ||
| 145 | script:WaitForChild("Heartbeat")
| |
| 146 | ||
| 147 | frame = 1 / 60 | |
| 148 | tf = 0 | |
| 149 | allowframeloss = false | |
| 150 | tossremainder = false | |
| 151 | lastframe = tick() | |
| 152 | script.Heartbeat:Fire() | |
| 153 | ||
| 154 | game:GetService("RunService").Heartbeat:connect(function(s, p)
| |
| 155 | tf = tf + s | |
| 156 | if tf >= frame then | |
| 157 | if allowframeloss then | |
| 158 | script.Heartbeat:Fire() | |
| 159 | lastframe = tick() | |
| 160 | else | |
| 161 | for i = 1, math.floor(tf / frame) do | |
| 162 | script.Heartbeat:Fire() | |
| 163 | end | |
| 164 | lastframe = tick() | |
| 165 | end | |
| 166 | if tossremainder then | |
| 167 | tf = 0 | |
| 168 | else | |
| 169 | tf = tf - frame * math.floor(tf / frame) | |
| 170 | end | |
| 171 | end | |
| 172 | end) | |
| 173 | ||
| 174 | function swait(num) | |
| 175 | if num == 0 or num == nil then | |
| 176 | ArtificialHB.Event:wait() | |
| 177 | else | |
| 178 | for i = 0, num do | |
| 179 | ArtificialHB.Event:wait() | |
| 180 | end | |
| 181 | end | |
| 182 | end | |
| 183 | ||
| 184 | function ClearChildrenWithClass(where,class,recursive) | |
| 185 | local children = (recursive and where:GetDescendants() or where:GetChildren()) | |
| 186 | for _,v in next, children do | |
| 187 | if(v:IsA(class))then | |
| 188 | v:destroy() | |
| 189 | end | |
| 190 | end | |
| 191 | end | |
| 192 | function clerp(startCF,endCF,alpha) | |
| 193 | return startCF:lerp(endCF, alpha) | |
| 194 | end | |
| 195 | local sndFromData = function(data,parent) | |
| 196 | assert(typeof(data) == 'table',"sndFromData's first argument must be a table!") | |
| 197 | local snd = NewInstance("Sound",parent or char,{SoundId = "rbxassetid://"..data.Id,Looped=data.Loop or false,Pitch = data.Pitch or 1,Volume = data.Volume or 1})
| |
| 198 | if(not snd.Looped)then | |
| 199 | snd.Ended:connect(function() | |
| 200 | snd:Stop() | |
| 201 | snd:destroy() | |
| 202 | end) | |
| 203 | end | |
| 204 | return snd; | |
| 205 | end | |
| 206 | ||
| 207 | local FX = function(ID,vol,pitch,parent) | |
| 208 | local snd = NewInstance("Sound",parent or torso, {Pitch=pitch or 1, Volume = vol or 1,SoundId = "rbxassetid://"..ID})
| |
| 209 | snd:Play() | |
| 210 | repeat wait() until snd.IsLoaded and snd.IsPlaying | |
| 211 | delay(snd.TimePosition+.5,function() | |
| 212 | snd:Stop() | |
| 213 | snd:Destroy() | |
| 214 | end) | |
| 215 | end | |
| 216 | ||
| 217 | function Fragment(part,number,delayE) | |
| 218 | part.Anchored = true | |
| 219 | local Fragments = NewInstance("Folder",part.Parent,{Name='Fragmentation'})
| |
| 220 | local Size = V3.N(part.Size.X/number,part.Size.Y/number,part.Size.Z/number) | |
| 221 | local Start = CF.N((part.CFrame.X-part.Size.X/2) + Size.X/2,(part.CFrame.Y-part.Size.Y/2) + Size.Y/2,(part.CFrame.Z-part.Size.Z/2) + Size.Z/2) | |
| 222 | for x = 0, number-1 do | |
| 223 | for y = 0, number-1 do | |
| 224 | for z = 0, number-1 do | |
| 225 | local frag = NewInstance('Part',Fragments,{Anchored=true,Size=Size,BrickColor=part.BrickColor,Material=part.Material,Transparency=part.Transparency,Reflectance=part.Reflectance,CanCollide=true,CFrame=CF.N(Start.X+x*Size.X,Start.Y+y*Size.Y,Start.Z+z*Size.Z)})
| |
| 226 | if(delayE ~= false)then swait(delayE or nil) end | |
| 227 | end | |
| 228 | end | |
| 229 | end | |
| 230 | part:destroy() | |
| 231 | return Fragments | |
| 232 | end | |
| 233 | function halfit(v) | |
| 234 | v:ClearAllChildren() | |
| 235 | v.Size = Vector3.new(v.Size.x,v.Size.y,v.Size.z/2) | |
| 236 | v.Name = v.Name.."Half" | |
| 237 | ||
| 238 | local a = v:Clone() | |
| 239 | a.Parent = v.Parent | |
| 240 | a.CFrame = CF.N(1,1,-.5) * v.CFrame | |
| 241 | v.CFrame = CF.N(1,1,.5) * v.CFrame | |
| 242 | return a,v | |
| 243 | end | |
| 244 | ||
| 245 | function Fragment2(v) | |
| 246 | v:ClearAllChildren() | |
| 247 | local Fragments = NewInstance("Folder",v.Parent,{Name='Fragmentation'})
| |
| 248 | v.Archivable = true | |
| 249 | -- X | |
| 250 | v.Size = Vector3.new(v.Size.x/2,v.Size.y,v.Size.z) | |
| 251 | v.Name = v.Name.."Fragment" | |
| 252 | ||
| 253 | local a = v:Clone() | |
| 254 | a.Parent = Fragments | |
| 255 | a.CFrame = CF.N(-.5,1,1) * a.CFrame | |
| 256 | v.CFrame = CF.N(.5,1,1) * v.CFrame | |
| 257 | -- Y | |
| 258 | v.Size = Vector3.new(v.Size.x,v.Size.y/2,v.Size.z) | |
| 259 | ||
| 260 | local a = v:Clone() | |
| 261 | a.Parent = Fragments | |
| 262 | a.CFrame = CF.N(1,-.5,1) * a.CFrame | |
| 263 | v.CFrame = CF.N(1,.5,1) * v.CFrame | |
| 264 | -- Z | |
| 265 | v.Size = Vector3.new(v.Size.x,v.Size.y,v.Size.z/2) | |
| 266 | ||
| 267 | local a = v:Clone() | |
| 268 | a.Parent = Fragments | |
| 269 | a.CFrame = CF.N(1,1,-.5) * a.CFrame | |
| 270 | v.CFrame = CF.N(1,1,.5) * v.CFrame | |
| 271 | ||
| 272 | v.Parent = Fragments | |
| 273 | return Fragments | |
| 274 | end | |
| 275 | function UnbindLoops() | |
| 276 | pcall(runService.UnbindFromRenderStep,runService,"N_Effects") | |
| 277 | pcall(runService.UnbindFromRenderStep,runService,"N_Animations") | |
| 278 | end; | |
| 279 | ||
| 280 | UnbindLoops() -- Just so if the loops already exist from previously running a script using this template, there's no errors | |
| 281 | ||
| 282 | -- Model | |
| 283 | ||
| 284 | game:service'Lighting'.FogEnd = 100 | |
| 285 | game:service'Lighting'.FogStart = 0 | |
| 286 | game:service'Lighting'.FogColor = BrickColor.new'Black'.Color | |
| 287 | game:service'Lighting'.ClockTime = 22 | |
| 288 | ||
| 289 | local Sky = Instance.new("Sky",game:service'Lighting')
| |
| 290 | Sky.MoonAngularSize = 30 | |
| 291 | Sky.MoonTextureId = "http://www.roblox.com/asset/?id=156679858" | |
| 292 | ||
| 293 | ||
| 294 | local Music = sndFromData(Sounds.Astronaut13,torso) -- incase u want music | |
| 295 | Music.MaxDistance = 500 | |
| 296 | Music:Play() | |
| 297 | local Distorted = NewInstance("EqualizerSoundEffect",Music,{MidGain=0,HighGain=0,LowGain=0})
| |
| 298 | ClearChildrenWithClass(char,"Decal",true) | |
| 299 | ClearChildrenWithClass(char,"Clothing",true) | |
| 300 | ||
| 301 | -- Joints, etc | |
| 302 | if(PaintBody)then | |
| 303 | char['Body Colors'].LeftArmColor = BrickColor.new(PaintBody) | |
| 304 | char['Body Colors'].RightArmColor = BrickColor.new(PaintBody) | |
| 305 | char['Body Colors'].LeftLegColor = BrickColor.new(PaintBody) | |
| 306 | char['Body Colors'].RightLegColor = BrickColor.new(PaintBody) | |
| 307 | char['Body Colors'].TorsoColor = BrickColor.new(PaintBody) | |
| 308 | char['Body Colors'].HeadColor = BrickColor.new(PaintBody) | |
| 309 | end | |
| 310 | ||
| 311 | local FT,RA,LA,RL,LL = Instance.new("SpecialMesh"),Instance.new("SpecialMesh"),Instance.new("SpecialMesh"),Instance.new("SpecialMesh"),Instance.new("SpecialMesh")
| |
| 312 | FT.MeshId,FT.Scale = "rbxasset://fonts/torso.mesh",V3.N(PlayerSize,PlayerSize,PlayerSize) | |
| 313 | RA.MeshId,RA.Scale = "rbxasset://fonts/rightarm.mesh",V3.N(PlayerSize,PlayerSize,PlayerSize) | |
| 314 | LA.MeshId,LA.Scale = "rbxasset://fonts/leftarm.mesh",V3.N(PlayerSize,PlayerSize,PlayerSize) | |
| 315 | RL.MeshId,RL.Scale = "rbxasset://fonts/rightleg.mesh",V3.N(PlayerSize,PlayerSize,PlayerSize) | |
| 316 | LL.MeshId,LL.Scale = "rbxasset://fonts/leftleg.mesh",V3.N(PlayerSize,PlayerSize,PlayerSize) | |
| 317 | ||
| 318 | if(PlayerSize ~= 1)then | |
| 319 | for _,v in next, char:GetDescendants() do | |
| 320 | if(v:IsA'BasePart')then | |
| 321 | v.Size = v.Size * PlayerSize | |
| 322 | end | |
| 323 | end | |
| 324 | end | |
| 325 | ||
| 326 | local LS = NewInstance('Motor',char,{Part0=torso,Part1=larm,C0 = CF.N(-1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)})
| |
| 327 | local RS = NewInstance('Motor',char,{Part0=torso,Part1=rarm,C0 = CF.N(1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)})
| |
| 328 | local NK = NewInstance('Motor',char,{Part0=torso,Part1=head,C0 = CF.N(0,1.5 * PlayerSize,0)})
| |
| 329 | local LH = NewInstance('Motor',char,{Part0=torso,Part1=lleg,C0 = CF.N(-.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
| |
| 330 | local RH = NewInstance('Motor',char,{Part0=torso,Part1=rleg,C0 = CF.N(.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
| |
| 331 | local RJ = NewInstance('Motor',char,{Part0=root,Part1=torso})
| |
| 332 | --local HW = NewInstance('Motor',char,{Part0=rarm,Part1=Handle,C0 = CF.N(0,.5,0)})
| |
| 333 | -- watevr | |
| 334 | ||
| 335 | -- Default C0s | |
| 336 | local LSD=LS.C0 | |
| 337 | local RSD=RS.C0 | |
| 338 | local HD=NK.C0 | |
| 339 | local TD=RJ.C0 | |
| 340 | local LHD=LH.C0 | |
| 341 | local RHD=RH.C0 | |
| 342 | ||
| 343 | -- Check State | |
| 344 | function CheckState(rPart) | |
| 345 | if(math.abs(rPart.Velocity.x) > 2 or math.abs(rPart.Velocity.z) > 2)then | |
| 346 | return 'Walk'; | |
| 347 | end | |
| 348 | return 'Idle'; | |
| 349 | end | |
| 350 | ||
| 351 | -- Effect Functions | |
| 352 | function SphereFX(duration,color,scale,pos,endScale) | |
| 353 | local rng = Instance.new("Part", char)
| |
| 354 | rng.Anchored = true | |
| 355 | rng.BrickColor = color | |
| 356 | rng.CanCollide = false | |
| 357 | rng.FormFactor = 3 | |
| 358 | rng.Name = "Ring" | |
| 359 | rng.Size = Vector3.new(1,1,1) | |
| 360 | rng.Transparency = 0 | |
| 361 | rng.TopSurface = 0 | |
| 362 | rng.BottomSurface = 0 | |
| 363 | rng.CFrame = pos | |
| 364 | local rngm = Instance.new("SpecialMesh", rng)
| |
| 365 | rngm.MeshType = "Sphere" | |
| 366 | rngm.Scale = scale | |
| 367 | table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
| |
| 368 | return rng | |
| 369 | end | |
| 370 | ||
| 371 | function BlastFX(duration,color,scale,pos,endScale) | |
| 372 | local rng = Instance.new("Part", char)
| |
| 373 | rng.Anchored = true | |
| 374 | rng.BrickColor = color | |
| 375 | rng.CanCollide = false | |
| 376 | rng.FormFactor = 3 | |
| 377 | rng.Name = "Ring" | |
| 378 | rng.Size = Vector3.new(1,1,1) | |
| 379 | rng.Transparency = 0 | |
| 380 | rng.TopSurface = 0 | |
| 381 | rng.BottomSurface = 0 | |
| 382 | rng.CFrame = pos | |
| 383 | local rngm = Instance.new("SpecialMesh", rng)
| |
| 384 | rngm.MeshType = "FileMesh" | |
| 385 | rngm.MeshId = 'rbxassetid://20329976' | |
| 386 | rngm.Scale = scale | |
| 387 | table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
| |
| 388 | return rng | |
| 389 | end | |
| 390 | ||
| 391 | function BlockFX(duration,color,scale,pos,endScale) | |
| 392 | local rng = Instance.new("Part", char)
| |
| 393 | rng.Anchored = true | |
| 394 | rng.BrickColor = color | |
| 395 | rng.CanCollide = false | |
| 396 | rng.FormFactor = 3 | |
| 397 | rng.Name = "Ring" | |
| 398 | rng.Size = Vector3.new(1,1,1) | |
| 399 | rng.Transparency = 0 | |
| 400 | rng.TopSurface = 0 | |
| 401 | rng.BottomSurface = 0 | |
| 402 | rng.CFrame = pos | |
| 403 | local rngm = Instance.new("BlockMesh", rng)
| |
| 404 | rngm.Scale = scale | |
| 405 | table.insert(Effects, {Frame = 0, Effect="Block", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
| |
| 406 | return rng | |
| 407 | end | |
| 408 | ||
| 409 | function LaserFX(duration,color,cframe,scale,endScale) | |
| 410 | local rng = Instance.new("Part", char)
| |
| 411 | rng.Anchored = true | |
| 412 | rng.BrickColor = color | |
| 413 | rng.CanCollide = false | |
| 414 | rng.FormFactor = 3 | |
| 415 | rng.Material = Enum.Material.Neon | |
| 416 | rng.Name = "Laser" | |
| 417 | rng.Size = Vector3.new(.5,.5,.5) | |
| 418 | rng.Transparency = 0 | |
| 419 | rng.TopSurface = 0 | |
| 420 | rng.BottomSurface = 0 | |
| 421 | rng.CFrame = cframe | |
| 422 | local rngm = Instance.new("CylinderMesh", rng)
| |
| 423 | rngm.Scale = scale | |
| 424 | table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = cframe})
| |
| 425 | return rng | |
| 426 | end | |
| 427 | ||
| 428 | ||
| 429 | function BloodDrop(pos,dir,maxsize) | |
| 430 | local owo = NewInstance("Part",char,{Material=BloodMaterial,BrickColor=BloodColor,Shape=Enum.PartType.Ball,Size=V3.N(.25,.25,.25), CanCollide = false})
| |
| 431 | owo.CFrame=CF.N(pos,dir) | |
| 432 | local bv = Instance.new("BodyVelocity",owo)
| |
| 433 | bv.maxForce = Vector3.new(1e9, 1e9, 1e9) | |
| 434 | bv.velocity = CF.N(pos,dir+V3.N(M.RNG(-3,3)/30,M.RNG(-3,3)/30,M.RNG(-3,3)/30)).lookVector*15 | |
| 435 | bv.Name = "MOVE" | |
| 436 | game:service'Debris':AddItem(bv,0.05) | |
| 437 | local touch | |
| 438 | touch = owo.Touched:connect(function(hit) | |
| 439 | if(hit.Anchored==true)then | |
| 440 | touch:disconnect() | |
| 441 | BloodPuddle(owo.Position+V3.N(0,1,0),10,maxsize,owo) | |
| 442 | owo:destroy() | |
| 443 | end | |
| 444 | end) | |
| 445 | end | |
| 446 | function BloodPuddle(position,range,maxSize,where) | |
| 447 | local hit, pos, norm = workspace:FindPartOnRayWithIgnoreList(Ray.new( | |
| 448 | position,CF.N(position,position+V3.N(0,-1,0)).lookVector * range | |
| 449 | ),{where,char},false,true)
| |
| 450 | if(hit)then | |
| 451 | if(BloodPuddles[hit])then | |
| 452 | BloodPuddles[hit].Frame = 0 | |
| 453 | if(hit:FindFirstChild'CylinderMesh' and hit.CylinderMesh.Scale.Z < BloodPuddles[hit].MaxSize)then | |
| 454 | hit.CylinderMesh.Scale = hit.CylinderMesh.Scale + V3.N(.1,0,.1) | |
| 455 | end | |
| 456 | else | |
| 457 | local Puddle = NewInstance('Part',workspace,{Material=BloodMaterial,BrickColor=BloodColor,Size=V3.N(1,.1,1),CFrame=CF.N(pos,pos+norm)*CF.A(90*M.P/180,0,0),Anchored=true,CanCollide=false,Archivable=false,Locked=true,Name='BloodPuddle'})
| |
| 458 | local Cyl = NewInstance('CylinderMesh',Puddle,{Name='CylinderMesh'})
| |
| 459 | BloodPuddles[Puddle] = {MaxSize=maxSize or 7,Frame=0}
| |
| 460 | end | |
| 461 | end | |
| 462 | end | |
| 463 | ||
| 464 | ||
| 465 | function ShatterFX(duration,color,scale,cframe) | |
| 466 | local rng = Instance.new("Part", char)
| |
| 467 | rng.Anchored = true | |
| 468 | rng.BrickColor = color | |
| 469 | rng.CanCollide = false | |
| 470 | rng.FormFactor = 3 | |
| 471 | rng.Name = "Ring" | |
| 472 | rng.Size = Vector3.new(1,1,1) | |
| 473 | rng.Transparency = 0 | |
| 474 | rng.TopSurface = 0 | |
| 475 | rng.BottomSurface = 0 | |
| 476 | rng.CFrame = cframe * CF.fEA(M.RNG(-50, 50), M.RNG(-50, 50), M.RNG(-50, 50)) | |
| 477 | local rngm = Instance.new("SpecialMesh", rng)
| |
| 478 | rngm.Scale = scale | |
| 479 | rngm.MeshType = "Sphere" | |
| 480 | table.insert(Effects, {Frame = 0, Effect="Shatter", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale,Position=rng.CFrame})
| |
| 481 | end | |
| 482 | ||
| 483 | function RingFX(duration,color,scale,pos,endScale) | |
| 484 | local type = type | |
| 485 | local rng = Instance.new("Part", char)
| |
| 486 | rng.Anchored = true | |
| 487 | rng.BrickColor = color | |
| 488 | rng.CanCollide = false | |
| 489 | rng.FormFactor = 3 | |
| 490 | rng.Name = "Ring" | |
| 491 | rng.Size = Vector3.new(1,1,1) | |
| 492 | rng.Transparency = 0 | |
| 493 | rng.TopSurface = 0 | |
| 494 | rng.BottomSurface = 0 | |
| 495 | rng.CFrame = pos | |
| 496 | local rngm = Instance.new("SpecialMesh", rng)
| |
| 497 | rngm.MeshId = "rbxassetid://3270017" | |
| 498 | rngm.Scale = scale | |
| 499 | table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
| |
| 500 | return rng | |
| 501 | end | |
| 502 | ||
| 503 | function Shoot(StartCF,EndCF,Spread,Speed,Num,Color,Drop,MinDamage,MaxDamage) | |
| 504 | local Spread = V3.N(M.RNG(-Spread,Spread),M.RNG(-Spread,Spread),M.RNG(-Spread,Spread)) | |
| 505 | local Start = StartCF.p | |
| 506 | local End = EndCF.p | |
| 507 | local SpreadPos = End + Spread | |
| 508 | local Look = CF.N((Start + SpreadPos) / 2, SpreadPos) | |
| 509 | local Count = Num | |
| 510 | spawn(function() | |
| 511 | repeat | |
| 512 | wait() | |
| 513 | local hit, pos = workspace:findPartOnRay(Ray.new( | |
| 514 | Start,(Look.lookVector).unit * Speed | |
| 515 | ),char,false,true) | |
| 516 | local dist = (Start-pos).magnitude | |
| 517 | local yScale = dist * (Speed / (Speed/2)) | |
| 518 | local aa = CF.N((Start + pos) / 2, pos) * CFrame.Angles(1.57, 0, 0) | |
| 519 | LaserFX(25,Color,aa,Vector3.new(1,yScale,1),Vector3.new(-1,yScale,-1)) | |
| 520 | Start = Start + Look.lookVector * Speed | |
| 521 | Look = Look * CF.A(M.R(Drop or -1),0,0) | |
| 522 | Count = Count - 1 | |
| 523 | ||
| 524 | if(hit)then | |
| 525 | Count = 0 | |
| 526 | MagniDamage(pos,10,MinDamage,MaxDamage,0,'Normal') | |
| 527 | end | |
| 528 | if(Count <= 0)then | |
| 529 | local sphere = SphereFX(25,Color,Vector3.new(5,5,5),CF.N(pos),Vector3.new(15,15,15)) | |
| 530 | local ring = RingFX(25,Color,Vector3.new(6,6,6),CF.N(pos) * CF.A(0,M.R(90),0) * CF.A(M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360))),Vector3.new(16,16,16)) | |
| 531 | end | |
| 532 | until Count <= 0 | |
| 533 | end) | |
| 534 | end | |
| 535 | ||
| 536 | -- Effect Loop | |
| 537 | ||
| 538 | runService:BindToRenderStep("N_Effects",Enum.RenderPriority.Character.Value + 2,function()
| |
| 539 | for _,data in next, Effects do | |
| 540 | local frame,effect,duration = data.Frame,data.Effect,data.Duration | |
| 541 | local transparency = (frame / duration) | |
| 542 | local opacity = 1 - transparency | |
| 543 | if(frame > duration)then | |
| 544 | Effects[_] = nil | |
| 545 | end | |
| 546 | frame = frame + 1 | |
| 547 | data.Frame = frame | |
| 548 | if(effect == 'Sphere')then | |
| 549 | local Part,Mesh,Scale,CF,eScale = data.Part,data.Mesh,data.Scale,data.Position,data.EndScale | |
| 550 | Mesh.Scale = Mesh.Scale:lerp(eScale, transparency/6) | |
| 551 | Part.Transparency = transparency | |
| 552 | if(frame > duration)then | |
| 553 | Part:destroy() | |
| 554 | end | |
| 555 | elseif(effect == 'Shatter')then | |
| 556 | local Part,Mesh,Scale,Position,Thingie,Thingie2,Inc = data.Part, | |
| 557 | data.Mesh, | |
| 558 | data.Scale, | |
| 559 | data.Position, | |
| 560 | (data.Thingie or 0), | |
| 561 | (data.Thingie2 or M.RNG(50, 100) / 100), | |
| 562 | (data.Inc or M.RNG() - M.RNG()) | |
| 563 | Part.Transparency = transparency | |
| 564 | Position = Position * CF.N(0,Thingie2,0) | |
| 565 | Part.CFrame = Position * CF.fEA(Thingie,0,0) | |
| 566 | Thingie = Thingie + Inc | |
| 567 | ||
| 568 | data.Position = Position | |
| 569 | data.Thingie = Thingie | |
| 570 | data.Thingie2 = Thingie2 | |
| 571 | data.Inc = Inc | |
| 572 | elseif(effect == 'Block')then | |
| 573 | local Part,Mesh,Scale,CF,eScale = data.Part,data.Mesh,data.Scale,data.Position,data.EndScale | |
| 574 | Mesh.Scale = Mesh.Scale:lerp(eScale, transparency/6) | |
| 575 | Part.Transparency = transparency | |
| 576 | Part.CFrame = CF * CFrame.Angles(M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360))) | |
| 577 | if(frame > duration)then | |
| 578 | Part:destroy() | |
| 579 | end | |
| 580 | end | |
| 581 | end | |
| 582 | for puddle,data in next, BloodPuddles do | |
| 583 | if(puddle.Transparency > 0.9)then | |
| 584 | BloodPuddles[puddle] = nil | |
| 585 | puddle:destroy() | |
| 586 | end | |
| 587 | data.Frame = data.Frame + 1 | |
| 588 | if(data.Frame > 105)then | |
| 589 | local trans = (data.Frame-105)/30 | |
| 590 | puddle.Transparency = trans | |
| 591 | if(puddle:FindFirstChild'CylinderMesh' and puddle.CylinderMesh.Scale.Z > 0)then | |
| 592 | puddle.CylinderMesh.Scale = puddle.CylinderMesh.Scale-V3.N(.1,0,.1) | |
| 593 | end | |
| 594 | else | |
| 595 | puddle.Transparency = 0 | |
| 596 | end | |
| 597 | end | |
| 598 | end) | |
| 599 | ||
| 600 | ||
| 601 | ||
| 602 | -- Nametag | |
| 603 | local naeeym2 = Instance.new("BillboardGui",char)
| |
| 604 | naeeym2.AlwaysOnTop = true | |
| 605 | naeeym2.Size = UDim2.new(5,35,2,35) | |
| 606 | naeeym2.StudsOffset = Vector3.new(0,1,0) | |
| 607 | naeeym2.Adornee = head | |
| 608 | naeeym2.Name = "Name" | |
| 609 | naeeym2.PlayerToHideFrom = plr | |
| 610 | local tecks2 = Instance.new("TextLabel",naeeym2)
| |
| 611 | tecks2.BackgroundTransparency = 1 | |
| 612 | tecks2.TextScaled = true | |
| 613 | tecks2.BorderSizePixel = 0 | |
| 614 | tecks2.Text = "13" | |
| 615 | tecks2.Font = "Antique" | |
| 616 | tecks2.TextSize = 30 | |
| 617 | tecks2.TextStrokeTransparency = 0 | |
| 618 | tecks2.TextColor3 = Color3.new(0,0,0) | |
| 619 | tecks2.TextStrokeColor3 = Color3.new(0.4,0.4,0.4) | |
| 620 | tecks2.Size = UDim2.new(1,0,0.5,0) | |
| 621 | tecks2.Parent = naeeym2 | |
| 622 | ||
| 623 | coroutine.wrap(function() | |
| 624 | while true do | |
| 625 | swait(15) | |
| 626 | hum.Health = hum.Health + 15 | |
| 627 | local name = M.RNG(1,40) | |
| 628 | if(name == 1)then | |
| 629 | tecks2.Text = "Th1rdt3EM" | |
| 630 | elseif(name == 2)then | |
| 631 | tecks2.Text = "Three" | |
| 632 | elseif(name == 3)then | |
| 633 | tecks2.Text = "furdtean" | |
| 634 | elseif(name > 3 and name <= 6)then | |
| 635 | tecks2.Text = 'Astronaut' | |
| 636 | else | |
| 637 | tecks2.Text = "13" | |
| 638 | end | |
| 639 | if(time()-GlitchTime < .5)then | |
| 640 | tecks2.Text = tecks2.Text:gsub("",string.char(M.RNG(1,127)))
| |
| 641 | end | |
| 642 | end | |
| 643 | end)() | |
| 644 | ||
| 645 | -- Animation Loop | |
| 646 | runService:BindToRenderStep("N_Animations",Enum.RenderPriority.Character.Value + 1,function()
| |
| 647 | sine=sine+change | |
| 648 | local GlitchEffect = M.RNG(1,500) | |
| 649 | hum.WalkSpeed = 8 | |
| 650 | if(Music.TimePosition > 2.7 and Music.TimePosition < 2.75 or Music.TimePosition > 6.8 and Music.TimePosition < 6.9)then GlitchTime = time()+.45 elseif(Music.TimePosition > 7.6)then | |
| 651 | if(GlitchEffect == 1 and time()-GlitchTime >= .5)then | |
| 652 | GlitchTime = time() | |
| 653 | end | |
| 654 | end | |
| 655 | if(time()-GlitchTime < .5)then | |
| 656 | Distorted.MidGain = -25 | |
| 657 | Distorted.LowGain = 10 | |
| 658 | Distorted.HighGain = -25 | |
| 659 | FT.Parent = torso | |
| 660 | RA.Parent = rarm | |
| 661 | LA.Parent = larm | |
| 662 | RL.Parent = rleg | |
| 663 | LL.Parent = lleg | |
| 664 | for _,v in next, char:GetDescendants() do | |
| 665 | if(v:IsA'DataModelMesh')then | |
| 666 | v.Offset = V3.N(M.RNG(-200,200)/100,M.RNG(-200,200)/100,M.RNG(-200,200)/100) | |
| 667 | end | |
| 668 | end | |
| 669 | else | |
| 670 | Distorted.MidGain = 0 | |
| 671 | Distorted.LowGain = 0 | |
| 672 | Distorted.HighGain = 0 | |
| 673 | FT.Parent = nil | |
| 674 | RA.Parent = nil | |
| 675 | LA.Parent = nil | |
| 676 | RL.Parent = nil | |
| 677 | LL.Parent = nil | |
| 678 | for _,v in next, char:GetDescendants() do | |
| 679 | if(v:IsA'DataModelMesh')then | |
| 680 | v.Offset = V3.N(0,0,0) | |
| 681 | end | |
| 682 | end | |
| 683 | end | |
| 684 | if(neutralAnims)then | |
| 685 | if(CheckState(root) == 'Idle')then | |
| 686 | -- Idle anim | |
| 687 | RJ.C0 = RJ.C0:lerp(CF.N(0,.2*M.S(time()*16),0)*CF.A(.2*M.S(time()*16),0,0),.2) | |
| 688 | NK.C0 = NK.C0:lerp(HD*CF.A(-.2*M.S(time()*16),0,0),.2) | |
| 689 | RH.C0 = RH.C0:lerp(RHD*CF.N(0,.2*-M.S(time()*16),.2*M.S(time()*16))*CF.A(-.2*M.S(time()*16),0,0),.2) | |
| 690 | LH.C0 = LH.C0:lerp(LHD*CF.N(0,.2*-M.S(time()*16),.2*M.S(time()*16))*CF.A(-.2*M.S(time()*16),0,0),.2) | |
| 691 | RS.C0 = RS.C0:lerp(RSD*CF.A(0,0,.4*M.C(time()*16)),.2) | |
| 692 | LS.C0 = LS.C0:lerp(LSD*CF.A(0,0,.4*-M.C(time()*16)),.2) | |
| 693 | elseif(CheckState(root) == 'Walk')then | |
| 694 | -- Walk anim | |
| 695 | RH.C0 = RH.C0:lerp(RHD*CF.A(-M.R(35+45*M.C(time()*hum.WalkSpeed)),0,0)*CF.A(M.R(-25),0,0)*CF.N(0,-M.S(time()*hum.WalkSpeed/2)/2,0),.2) | |
| 696 | LH.C0 = LH.C0:lerp(LHD*CF.A(M.R(35+45*M.C(time()*hum.WalkSpeed)),0,0)*CF.A(M.R(-25),0,0)*CF.N(0,-M.S(time()*hum.WalkSpeed/2)/2,0),.2) | |
| 697 | RS.C0 = RS.C0:lerp(RSD*CF.A(-M.R(35+45*M.C(time()*hum.WalkSpeed)),0,0)*CF.A(M.R(-25),0,0),.2) | |
| 698 | LS.C0 = LS.C0:lerp(LSD*CF.A(M.R(35+45*M.C(time()*hum.WalkSpeed)),0,0)*CF.A(M.R(-25),0,0),.2) | |
| 699 | RJ.C0 = RJ.C0:lerp(CF.N(0,M.S(time()*hum.WalkSpeed/2)/2,0)*CF.A(M.R(25),0,0),.2) | |
| 700 | end | |
| 701 | end | |
| 702 | end) | |
| 703 | ||
| 704 | -- Died event | |
| 705 | ||
| 706 | hum.Died:connect(function() -- When the player dies | |
| 707 | UnbindLoops() -- Unbind all of the loops used | |
| 708 | end) | |
| 709 | ||
| 710 | ||
| 711 | -- Everything else | |
| 712 | ||
| 713 | function GetTorso(char) | |
| 714 | return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart' | |
| 715 | end | |
| 716 | ||
| 717 | function DealDamage(who,minDam,maxDam,Knock,Type) | |
| 718 | if(who)then | |
| 719 | local hum = who:FindFirstChildOfClass'Humanoid' | |
| 720 | local Damage = M.RNG(minDam,maxDam) | |
| 721 | local canHit = true | |
| 722 | if(hum)then | |
| 723 | for _, p in pairs(Hit) do | |
| 724 | if p[1] == hum then | |
| 725 | if(time() - p[2] < 0.1) then | |
| 726 | canHit = false | |
| 727 | else | |
| 728 | Hit[_] = nil | |
| 729 | end | |
| 730 | end | |
| 731 | end | |
| 732 | if(canHit)then | |
| 733 | if(hum.Health >= math.huge)then | |
| 734 | who:BreakJoints() | |
| 735 | else | |
| 736 | local player = S.Players:GetPlayerFromCharacter(who) | |
| 737 | if(not player or not Teamed[player])then | |
| 738 | if(Type == "Fire")then | |
| 739 | --idk.. | |
| 740 | else | |
| 741 | local c = Instance.new("ObjectValue",hum)
| |
| 742 | c.Name = "creator" | |
| 743 | c.Value = plr | |
| 744 | game:service'Debris':AddItem(c,0.35) | |
| 745 | hum.Health = hum.Health - Damage | |
| 746 | if(Type == 'Knockback' and GetTorso(who))then | |
| 747 | local angle = GetTorso(who).Position - root.Position + Vector3.new(0, 0, 0).unit | |
| 748 | local body = NewInstance('BodyVelocity',GetTorso(who),{
| |
| 749 | P = 500, | |
| 750 | maxForce = V3.N(math.huge,0,math.huge), | |
| 751 | velocity = root.CFrame.lookVector * Knock + root.Velocity / 1.05 | |
| 752 | }) | |
| 753 | game:service'Debris':AddItem(body,.5) | |
| 754 | elseif(Type == 'Knockdown' and GetTorso(who))then | |
| 755 | local rek = GetTorso(who) | |
| 756 | print(rek) | |
| 757 | hum.PlatformStand = true | |
| 758 | delay(1,function() | |
| 759 | hum.PlatformStand = false | |
| 760 | end) | |
| 761 | local angle = (GetTorso(who).Position - (root.Position + Vector3.new(0, 0, 0))).unit | |
| 762 | local bodvol = NewInstance("BodyVelocity",rek,{
| |
| 763 | velocity = angle * Knock, | |
| 764 | P = 5000, | |
| 765 | maxForce = Vector3.new(8e+003, 8e+003, 8e+003), | |
| 766 | }) | |
| 767 | local rl = NewInstance("BodyAngularVelocity",rek,{
| |
| 768 | P = 3000, | |
| 769 | maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000, | |
| 770 | angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)), | |
| 771 | }) | |
| 772 | game:GetService("Debris"):AddItem(bodvol, .5)
| |
| 773 | game:GetService("Debris"):AddItem(rl, .5)
| |
| 774 | end | |
| 775 | end | |
| 776 | end | |
| 777 | end | |
| 778 | table.insert(Hit,{hum,time()})
| |
| 779 | end | |
| 780 | end | |
| 781 | end | |
| 782 | end | |
| 783 | ||
| 784 | function MagniDamage(pos,radius,mindamage,maxdamage,knockback,damagetype) | |
| 785 | local Recursive | |
| 786 | Recursive = function(whom) | |
| 787 | for _,c in next, whom:children() do | |
| 788 | local hum = c:FindFirstChildOfClass'Humanoid' | |
| 789 | local hed = c:FindFirstChild'Torso' or c:FindFirstChild'UpperTorso' or c:FindFirstChild'LowerTorso' | |
| 790 | if(hum and hed)then | |
| 791 | local mag = (hed.CFrame.p - pos).magnitude | |
| 792 | if(mag <= radius and c ~= char)then | |
| 793 | DealDamage(c,mindamage,maxdamage,knockback,damagetype) | |
| 794 | end | |
| 795 | end | |
| 796 | Recursive(c) | |
| 797 | end | |
| 798 | end | |
| 799 | Recursive(workspace) | |
| 800 | end | |
| 801 | ||
| 802 | function MagniHeal(pos,radius,heal,needsTeamed) | |
| 803 | for _,v in next, workspace:GetDescendants() do | |
| 804 | local player = S.Players:GetPlayerFromCharacter(v) | |
| 805 | local hum = v:FindFirstChildOfClass'Humanoid' | |
| 806 | if(hum and v:IsA'Model')then | |
| 807 | if(not needsTeamed or player and (not plr.Neutral and player.TeamColor == plr.TeamColor))then | |
| 808 | local pp = v.PrimaryPart or v:FindFirstChild'Torso' or v:FindFirstChild'UpperTorso' or v:FindFirstChild'LowerTorso' | |
| 809 | if(pp and (pp.CFrame.p-pos).magnitude <= radius)then | |
| 810 | hum.Health = hum.Health + heal | |
| 811 | end | |
| 812 | end | |
| 813 | end | |
| 814 | end | |
| 815 | end | |
| 816 | ||
| 817 | --[[ | |
| 818 | for _,v in next, workspace:GetDescendants() do | |
| 819 | if(v ~= char and v:FindFirstChildOfClass'Humanoid' and GetTorso(v) and plr:DistanceFromCharacter(GetTorso(v).CFrame.p) < 15)then | |
| 820 | for _,c in next, v:children() do | |
| 821 | coroutine.wrap(function() | |
| 822 | if(c:IsA'BasePart')then | |
| 823 | local a = halfit(c) | |
| 824 | a.Anchored = false | |
| 825 | c.Anchored = false | |
| 826 | local bodpos = Instance.new("BodyPosition",a)
| |
| 827 | bodpos.D = 1e4 | |
| 828 | bodpos.Position = a.Position + V3.N(M.RNG(-100,100),M.RNG(100,200),M.RNG(-100,100)) | |
| 829 | local bodpos = Instance.new("BodyPosition",c)
| |
| 830 | bodpos.D = 1e4 | |
| 831 | bodpos.Position = c.Position + V3.N(M.RNG(-100,100),M.RNG(100,200),M.RNG(-100,100)) | |
| 832 | end | |
| 833 | end)() | |
| 834 | end | |
| 835 | end | |
| 836 | end | |
| 837 | ]] | |
| 838 | function SpaceExplode(pos) | |
| 839 | local explode = NewInstance("Explosion",workspace,{Visible=false,DestroyJointRadiusPercent = 0,Position=pos,BlastPressure=10000,ExplosionType=Enum.ExplosionType.CratersAndDebris,BlastRadius=30})
| |
| 840 | local explodeP = NewInstance("Part",workspace,{Anchored=true,CanCollide=false,CFrame=CF.N(pos),Transparency=1})
| |
| 841 | local particles = NewInstance("ParticleEmitter",explodeP,{Enabled=false,Texture='rbxasset://textures/particles/sparkles_main.dds',Size=NumberSequence.new(3),LightInfluence=.5,Lifetime=NumberRange.new(1),Rate=250,RotSpeed=NumberRange.new(25),SpreadAngle=Vector2.new(360,360),Color=ColorSequence.new(Color3.new(0,0,0),Color3.new(.3,.3,.3)),Transparency=NumberSequence.new(0,1),Speed=NumberRange.new(50)})
| |
| 842 | particles:Emit(2500) | |
| 843 | explode.Hit:connect(function(t,d) | |
| 844 | if(d <= explode.BlastRadius and t ~= explodeP and not char:IsAncestorOf(t))then | |
| 845 | local a = Fragment2(t) | |
| 846 | t.Anchored = false | |
| 847 | local bodpos = Instance.new("BodyPosition",t)
| |
| 848 | bodpos.D = 1e4 | |
| 849 | bodpos.Position = t.Position + V3.N(M.RNG(-100,100),M.RNG(100,200),M.RNG(-100,100)) | |
| 850 | for _,a in next, a:children() do | |
| 851 | a.Anchored = false | |
| 852 | local bodpos = Instance.new("BodyPosition",a)
| |
| 853 | bodpos.D = 1e4 | |
| 854 | bodpos.Position = a.Position + V3.N(M.RNG(-100,100),M.RNG(100,200),M.RNG(-100,100)) | |
| 855 | end | |
| 856 | end | |
| 857 | end) | |
| 858 | delay(1, function() | |
| 859 | explodeP:destroy() | |
| 860 | end) | |
| 861 | end | |
| 862 | ||
| 863 | function Explode(pos) | |
| 864 | local explode = NewInstance("Explosion",workspace,{Visible=false,DestroyJointRadiusPercent = 0,Position=pos,BlastPressure=10000,ExplosionType=Enum.ExplosionType.CratersAndDebris,BlastRadius=30})
| |
| 865 | local explodeP = NewInstance("Part",workspace,{Anchored=true,CanCollide=false,CFrame=CF.N(pos),Transparency=1})
| |
| 866 | local particles = NewInstance("ParticleEmitter",explodeP,{Enabled=false,Texture='rbxasset://textures/particles/sparkles_main.dds',Size=NumberSequence.new(3),LightInfluence=.5,Lifetime=NumberRange.new(1),Rate=250,RotSpeed=NumberRange.new(25),SpreadAngle=Vector2.new(360,360),Color=ColorSequence.new(Color3.new(0,0,0),Color3.new(.3,.3,.3)),Transparency=NumberSequence.new(0,1),Speed=NumberRange.new(50)})
| |
| 867 | particles:Emit(2500) | |
| 868 | explode.Hit:connect(function(t,d) | |
| 869 | if(d <= explode.BlastRadius and t ~= explodeP and not char:IsAncestorOf(t))then | |
| 870 | t:BreakJoints() | |
| 871 | end | |
| 872 | end) | |
| 873 | delay(1, function() | |
| 874 | explodeP:destroy() | |
| 875 | end) | |
| 876 | end | |
| 877 | function FragmentedSmash() | |
| 878 | Attack = true | |
| 879 | neutralAnims = false | |
| 880 | for i = 0, 1, 0.1 do | |
| 881 | swait() | |
| 882 | RJ.C0 = clerp(RJ.C0,CFrame.new(0.0124750687, 0.0806899369, 0.797527909, 0.999973536, 0.00707971025, -0.00174606312, -0.00709000183, 0.888056755, -0.459679216, -0.00170379225, 0.459679425, 0.888083458),0.3) | |
| 883 | LH.C0 = clerp(LH.C0,CFrame.new(-0.992911518, -2.19722176, 0.263476431, 0.999878228, -0.00709000183, 0.0139080146, -9.7673139e-05, 0.888056755, 0.459733874, -0.0156106194, -0.459679216, 0.887947857),0.3) | |
| 884 | RH.C0 = clerp(RH.C0,CFrame.new(1.00195694, -2.19321394, 0.240732491, 0.999878228, -0.00709000183, 0.0139080146, -9.7673139e-05, 0.888056755, 0.459733874, -0.0156106194, -0.459679216, 0.887947857),0.3) | |
| 885 | LS.C0 = clerp(LS.C0,CFrame.new(-2.9985857, 1.23600769, 0.359443754, 0.999878228, -0.00421095407, -0.0150323557, -9.77925229e-05, -0.964603186, 0.26370576, -0.0156107098, -0.263672143, -0.964486003),0.3) | |
| 886 | RS.C0 = clerp(RS.C0,CFrame.new(3.00798082, 1.02948105, 0.236942679, 0.999878228, -0.00421202509, -0.0150319505, -9.76680021e-05, -0.964581847, 0.263783902, -0.0156106092, -0.263750285, -0.964464784),0.3) | |
| 887 | NK.C0 = clerp(NK.C0,CFrame.new(-4.57763526e-05, 2.99385953, -0.167541847, 1.00000012, 0, 9.31322575e-10, 0, 0.997965097, 0.0637644231, 9.31322575e-10, -0.0637643933, 0.997965038),0.3) | |
| 888 | end | |
| 889 | wait(.25) | |
| 890 | for i = 0, 1, 0.1 do | |
| 891 | swait() | |
| 892 | RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0162220523, -3.28057575, -1.04076338, 0.999646187, -0.0140592707, -0.0225835219, 0.0139190033, -0.447028011, 0.894411683, -0.0226702448, -0.894409537, -0.446674198),0.3) | |
| 893 | LH.C0 = clerp(LH.C0,CFrame.new(-0.995434463, -2.54280162, 0.103460789, 0.999878228, -0.0153137166, 0.00301438384, -9.40344544e-05, 0.187221676, 0.982317746, -0.0156072918, -0.982198358, 0.187197477),0.3) | |
| 894 | RH.C0 = clerp(RH.C0,CFrame.new(0.999332726, -2.53378367, 0.0742077827, 0.999878228, -0.0153137166, 0.00301438384, -9.40344544e-05, 0.187221676, 0.982317746, -0.0156072918, -0.982198358, 0.187197477),0.3) | |
| 895 | LS.C0 = clerp(LS.C0,CFrame.new(-3.00734401, 1.78636146, -0.204609811, 0.999878228, 0.0048848032, -0.0148234647, -9.40344544e-05, -0.947858274, -0.318692297, -0.0156072918, 0.318654835, -0.947742343),0.3) | |
| 896 | RS.C0 = clerp(RS.C0,CFrame.new(3.00109315, 1.59880495, -0.207441658, 0.999878228, 0.00488352403, -0.0148238856, -9.40344544e-05, -0.947885811, -0.318610489, -0.0156072918, 0.318573087, -0.94776988),0.3) | |
| 897 | NK.C0 = clerp(NK.C0,CFrame.new(-6.10337302e-05, 2.99385333, -0.167541668, 1, 4.65661287e-10, 1.16415322e-09, 0, 0.997965038, 0.0637648106, 4.65661287e-10, -0.0637647808, 0.997964978),0.3) | |
| 898 | end | |
| 899 | SpaceExplode(torso.CFrame.p) | |
| 900 | ||
| 901 | neutralAnims = true | |
| 902 | Attack = false | |
| 903 | end | |
| 904 | function Boom() | |
| 905 | neutralAnims = false | |
| 906 | Attack = true | |
| 907 | for i = 0, 1, 0.1 do | |
| 908 | swait() | |
| 909 | RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0267966501, 0.00628957665, 0.118403517, 0.888822019, -0.00288028526, -0.458243728, 1.83618964e-09, 0.99998033, -0.00628535915, 0.458252817, 0.00558656547, 0.888804436),0.3) | |
| 910 | LH.C0 = clerp(LH.C0,CFrame.new(-1.13602376, -1.9913373, -0.0583203211, 0.881559432, 1.97843608e-09, 0.472073227, -0.00296715181, 0.99998033, 0.00554091716, -0.472063869, -0.00628535915, 0.881541908),0.3) | |
| 911 | RH.C0 = clerp(RH.C0,CFrame.new(1.13044202, -1.99142766, -0.0518710092, 0.881559432, 1.97843608e-09, 0.472073227, -0.00296715181, 0.99998033, 0.00554091716, -0.472063869, -0.00628535915, 0.881541908),0.3) | |
| 912 | LS.C0 = clerp(LS.C0,CFrame.new(-2.87729907, 0.999060631, 0.0152502041, 0.991834939, 0.126569927, 0.0156156719, -0.126680851, 0.991923511, 0.00632756483, -0.0146886408, -0.00825411081, 0.999858022),0.3) | |
| 913 | RS.C0 = clerp(RS.C0,CFrame.new(2.85624766, 0.825717211, -0.0160068981, -0.879796147, -0.475095063, 0.0156087577, 0.47522983, -0.879839301, 0.00628530141, 0.0107470751, 0.0129475296, 0.999858439),0.3) | |
| 914 | NK.C0 = clerp(NK.C0,CFrame.new(-0.0986121893, 2.99323964, -0.268526018, 0.888822138, -0.026346216, 0.457494676, -0.00288064196, 0.998005033, 0.0630696788, -0.458243549, -0.0573755801, 0.886972964),0.3) | |
| 915 | end | |
| 916 | wait(.5) | |
| 917 | for i = 0, .65, 0.1 do | |
| 918 | swait() | |
| 919 | RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0267966501, 0.00628957665, 0.118403517, 0.888822019, -0.00288028526, -0.458243728, 1.83618964e-09, 0.99998033, -0.00628535915, 0.458252817, 0.00558656547, 0.888804436),0.3) | |
| 920 | LH.C0 = clerp(LH.C0,CFrame.new(-1.13602376, -1.9913373, -0.0583203211, 0.881559432, 1.97843608e-09, 0.472073227, -0.00296715181, 0.99998033, 0.00554091716, -0.472063869, -0.00628535915, 0.881541908),0.3) | |
| 921 | RH.C0 = clerp(RH.C0,CFrame.new(1.13044202, -1.99142766, -0.0518710092, 0.881559432, 1.97843608e-09, 0.472073227, -0.00296715181, 0.99998033, 0.00554091716, -0.472063869, -0.00628535915, 0.881541908),0.3) | |
| 922 | LS.C0 = clerp(LS.C0,CFrame.new(-2.87729907, 0.999060631, 0.0152502041, 0.991834939, 0.126569927, 0.0156156719, -0.126680851, 0.991923511, 0.00632756483, -0.0146886408, -0.00825411081, 0.999858022),0.3) | |
| 923 | RS.C0 = clerp(RS.C0,CFrame.new(2.64173985, 0.428497076, -0.0101612248, -0.879796147, -0.475095063, 0.0156087577, 0.47522983, -0.879839301, 0.00628530141, 0.0107470751, 0.0129475296, 0.999858439),0.3) | |
| 924 | NK.C0 = clerp(NK.C0,CFrame.new(-0.0986121893, 2.99323964, -0.268526018, 0.888822138, -0.026346216, 0.457494676, -0.00288064196, 0.998005033, 0.0630696788, -0.458243549, -0.0573755801, 0.886972964),0.3) | |
| 925 | end | |
| 926 | --BlockFX(duration,color,scale,pos,endScale) | |
| 927 | local p = mouse.Hit.p | |
| 928 | local start = time() | |
| 929 | delay(0, function() | |
| 930 | repeat wait() BlockFX(15,BrickColor.new'Black',V3.N(3,3,3),CF.N(p),V3.N(4,4,4)) until time()-start > 1.25 | |
| 931 | Explode(p) | |
| 932 | end) | |
| 933 | BlockFX(45,BrickColor.new'Black',V3.N(3,3,3),rarm.CFrame*CF.N(0,-rarm.Size.Y/2,0),V3.N(9,9,9)) | |
| 934 | for i = 0, .65, 0.1 do | |
| 935 | swait() | |
| 936 | RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0267966501, 0.00628957665, 0.118403517, 0.888822019, -0.00288028526, -0.458243728, 1.83618964e-09, 0.99998033, -0.00628535915, 0.458252817, 0.00558656547, 0.888804436),0.3) | |
| 937 | LH.C0 = clerp(LH.C0,CFrame.new(-1.13602376, -1.9913373, -0.0583203211, 0.881559432, 1.97843608e-09, 0.472073227, -0.00296715181, 0.99998033, 0.00554091716, -0.472063869, -0.00628535915, 0.881541908),0.3) | |
| 938 | RH.C0 = clerp(RH.C0,CFrame.new(1.13044202, -1.99142766, -0.0518710092, 0.881559432, 1.97843608e-09, 0.472073227, -0.00296715181, 0.99998033, 0.00554091716, -0.472063869, -0.00628535915, 0.881541908),0.3) | |
| 939 | LS.C0 = clerp(LS.C0,CFrame.new(-2.87729907, 0.999060631, 0.0152502041, 0.991834939, 0.126569927, 0.0156156719, -0.126680851, 0.991923511, 0.00632756483, -0.0146886408, -0.00825411081, 0.999858022),0.3) | |
| 940 | RS.C0 = clerp(RS.C0,CFrame.new(2.85624766, 0.825717211, -0.0160068981, -0.879796147, -0.475095063, 0.0156087577, 0.47522983, -0.879839301, 0.00628530141, 0.0107470751, 0.0129475296, 0.999858439),0.3) | |
| 941 | NK.C0 = clerp(NK.C0,CFrame.new(-0.0986121893, 2.99323964, -0.268526018, 0.888822138, -0.026346216, 0.457494676, -0.00288064196, 0.998005033, 0.0630696788, -0.458243549, -0.0573755801, 0.886972964),0.3) | |
| 942 | end | |
| 943 | wait(.25) | |
| 944 | neutralAnims = true | |
| 945 | Attack = false | |
| 946 | end | |
| 947 | function Meteor() | |
| 948 | neutralAnims = false | |
| 949 | Attack = true | |
| 950 | for i = 0, 1, 0.1 do | |
| 951 | swait() | |
| 952 | RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0223131552, -2.04613924, -1.43031895, 0.999952257, -0.00929827243, -0.00299749151, 0.00927900057, 0.807942808, 0.589187801, -0.0030566277, -0.589187562, 0.80799067),0.3) | |
| 953 | LH.C0 = clerp(LH.C0,CFrame.new(-1.0033766, 0.39615345, -0.423063278, 0.999878109, 0.00927900057, 0.0125550134, -9.8735909e-05, 0.807942808, -0.589260876, -0.0156114856, 0.589187801, 0.807845294),0.3) | |
| 954 | RH.C0 = clerp(RH.C0,CFrame.new(0.960870802, -1.8572216, -2.39271688, 0.999878109, -0.0101528121, 0.0118595241, -9.87424937e-05, 0.75552392, 0.655120969, -0.0156114763, -0.655042291, 0.755430818),0.3) | |
| 955 | LS.C0 = clerp(LS.C0,CFrame.new(-3.0046792, 0.857568204, -0.0285525322, 0.999878109, -0.0146704866, -0.00533898873, -9.87424937e-05, -0.347920358, 0.93752414, -0.0156114763, -0.937409401, -0.347879499),0.3) | |
| 956 | RS.C0 = clerp(RS.C0,CFrame.new(3.00213504, 0.943184912, -0.13698405, 0.999878109, -0.0146704866, -0.00533898873, -9.87424937e-05, -0.347920358, 0.93752414, -0.0156114763, -0.937409401, -0.347879499),0.3) | |
| 957 | NK.C0 = clerp(NK.C0,CFrame.new(-2.44036382e-05, 2.99386311, -0.167564437, 1, 2.0461157e-06, -8.96863639e-07, -1.98557973e-06, 0.99796474, 0.0637678504, 1.02538615e-06, -0.0637679994, 0.99796468),0.3) | |
| 958 | end | |
| 959 | wait(.25) | |
| 960 | for i = 0, 1, 0.1 do | |
| 961 | swait() | |
| 962 | RJ.C0 = clerp(RJ.C0,CFrame.new(-0.051363945, -3.60286617, -3.29043484, 0.999872804, -0.0137674687, -0.00806680601, 0.0137160039, 0.483212173, 0.875395894, -0.00815400854, -0.875395119, 0.483339548),0.3) | |
| 963 | LH.C0 = clerp(LH.C0,CFrame.new(-0.996045709, -1.73839223, 0.0600171089, 0.999878228, 0.00310409069, 0.0153003354, -9.91220222e-05, 0.981277168, -0.192601174, -0.0156117193, 0.19257623, 0.981157899),0.3) | |
| 964 | RH.C0 = clerp(RH.C0,CFrame.new(0.987435639, -1.55498588, -0.69317311, 0.999878228, -0.00418921839, 0.015039484, -9.91220222e-05, 0.961603463, 0.274442703, -0.0156117193, -0.274410754, 0.961485863),0.3) | |
| 965 | LS.C0 = clerp(LS.C0,CFrame.new(-3.0160594, 1.11446631, -0.759037852, 0.999878228, 0.0153746856, -0.00271196151, -9.91220222e-05, -0.167454362, -0.985879958, -0.0156117193, 0.985760093, -0.167432487),0.3) | |
| 966 | RS.C0 = clerp(RS.C0,CFrame.new(2.99049282, 1.03188896, -0.883246303, 0.999878228, 0.0153746856, -0.00271196151, -9.91220222e-05, -0.167454362, -0.985879958, -0.0156117193, 0.985760093, -0.167432487),0.3) | |
| 967 | NK.C0 = clerp(NK.C0,CFrame.new(-2.51147103e-05, 2.99386525, -0.167563885, 1.00000024, 1.80862844e-06, -8.5355714e-07, -1.75042078e-06, 0.997964859, 0.063767463, 9.66712832e-07, -0.063767463, 0.997964919),0.3) | |
| 968 | end | |
| 969 | local meteor = NewInstance("Part",char,{BrickColor=BrickColor.new'Dark stone grey',Material=Enum.Material.Granite,Size=V3.N(5,5,5),CanCollide=false,CFrame = CF.N(mouse.Hit.p)*CF.N(0,200,0)})
| |
| 970 | Instance.new("SpecialMesh",meteor).MeshType = Enum.MeshType.Sphere
| |
| 971 | meteor.Touched:connect(function(touch) | |
| 972 | if(not touch:IsA'Terrain' and touch.CanCollide and touch.Transparency < .9 and not touch:IsDescendantOf(char))then | |
| 973 | meteor:Destroy() | |
| 974 | Explode(meteor.CFrame.p) | |
| 975 | end | |
| 976 | ||
| 977 | end) | |
| 978 | wait(.25) | |
| 979 | neutralAnims = true | |
| 980 | Attack = false | |
| 981 | end | |
| 982 | ||
| 983 | ||
| 984 | mouse.KeyDown:connect(function(k) | |
| 985 | if(Attack)then return end | |
| 986 | if(k == 'z')then | |
| 987 | Meteor() | |
| 988 | elseif(k == 'x')then | |
| 989 | Boom() | |
| 990 | elseif(k == 'c')then | |
| 991 | FragmentedSmash() | |
| 992 | elseif(k == 'v')then | |
| 993 | SpaceExplode(mouse.Hit.p) | |
| 994 | elseif(k == 'm')then | |
| 995 | Music.Playing = not Music.Playing | |
| 996 | end | |
| 997 | end) | |
| 998 | ||
| 999 | hum.Died:connect(function() | |
| 1000 | SpaceExplode(torso.CFrame.p) | |
| 1001 | end) | |
| 1002 | ||
| 1003 | runService.RenderStepped:connect(function() | |
| 1004 | if(not Attack and combo ~= 1 and time()-lastClick > 0.4)then | |
| 1005 | combo = 1 | |
| 1006 | end | |
| 1007 | end) |