Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local p = game.Players.LocalPlayer
- local char = p.Character
- local mouse = p:GetMouse()
- local larm = char["Left Arm"]
- local rarm = char["Right Arm"]
- local lleg = char["Left Leg"]
- local rleg = char["Right Leg"]
- local hed = char.Head
- local torso = char.Torso
- local hum = char.Humanoid
- local cam = game.Workspace.CurrentCamera
- local root = char.HumanoidRootPart
- local deb = false
- local shot = 0
- local debris=game:service"Debris"
- local l = game:GetService("Lighting")
- local rs = game:GetService("RunService").RenderStepped
- hum.MaxHealth = math.huge
- hum.Health = math.huge
- ptz = {0.8, 0.85, 0.9, 0.95, 1, 1.05, 1.1}
- math.randomseed(os.time())
- for i,v in pairs (hed:GetChildren()) do
- if v:IsA("Sound") then
- v:Destroy()
- end
- end
- Debounces = {
- }
- ypcall(function()
- char.Shirt:Destroy()
- char.Pants:Destroy()
- shirt = Instance.new("Shirt", char)
- shirt.Name = "Shirt"
- pants = Instance.new("Pants", char)
- pants.Name = "Pants"
- char.Shirt.ShirtTemplate = "rbxassetid://345371561"
- char.Pants.PantsTemplate = "rbxassetid://345372241"
- end)
- function lerp(a, b, t) -- Linear interpolation
- return a + (b - a)*t
- end
- function slerp(a, b, t) --Spherical interpolation
- dot = a:Dot(b)
- if dot > 0.99999 or dot < -0.99999 then
- return t <= 0.5 and a or b
- else
- r = math.acos(dot)
- return (a*math.sin((1 - t)*r) + b*math.sin(t*r)) / math.sin(r)
- end
- end
- function matrixInterpolate(a, b, t)
- local ax, ay, az, a00, a01, a02, a10, a11, a12, a20, a21, a22 = a:components()
- local bx, by, bz, b00, b01, b02, b10, b11, b12, b20, b21, b22 = b:components()
- local v0 = lerp(Vector3.new(ax, ay, az), Vector3.new(bx , by , bz), t) -- Position
- local v1 = slerp(Vector3.new(a00, a01, a02), Vector3.new(b00, b01, b02), t) -- Vector right
- local v2 = slerp(Vector3.new(a10, a11, a12), Vector3.new(b10, b11, b12), t) -- Vector up
- local v3 = slerp(Vector3.new(a20, a21, a22), Vector3.new(b20, b21, b22), t) -- Vector back
- local t = v1:Dot(v2)
- if not (t < 0 or t == 0 or t > 0) then -- Failsafe
- return CFrame.new()
- end
- return CFrame.new(
- v0.x, v0.y, v0.z,
- v1.x, v1.y, v1.z,
- v2.x, v2.y, v2.z,
- v3.x, v3.y, v3.z)
- end
- function Lerp(c1,c2,al)
- local com1 = {c1.X,c1.Y,c1.Z,c1:toEulerAnglesXYZ()}
- local com2 = {c2.X,c2.Y,c2.Z,c2:toEulerAnglesXYZ()}
- for i,v in pairs(com1) do
- com1[i] = v+(com2[i]-v)*al
- end
- return CFrame.new(com1[1],com1[2],com1[3]) * CFrame.Angles(select(4,unpack(com1)))
- end
- local Transforming = true
- hum.WalkSpeed = 0
- local fx = Instance.new("Part",torso)
- fx.Anchored = true
- fx.Material = "Neon"
- fx.CanCollide = false
- fx.Locked = true
- fx.Transparency = 1
- fx.Material = "SmoothPlastic"
- fx.Size = Vector3.new(1,1,1)
- fx.TopSurface = "SmoothNoOutlines"
- fx.BottomSurface = "SmoothNoOutlines"
- fx.BrickColor = BrickColor.new("Really black")
- fxm = Instance.new("SpecialMesh",fx)
- fxm.MeshId = "http://www.roblox.com/asset/?id=9982590"
- fxm.Scale = Vector3.new(1,1,1)
- for i = 1, 20 do rs:wait()
- fx.Transparency = fx.Transparency - (1/20)
- fx.CFrame = torso.CFrame
- fxm.Scale = fxm.Scale + Vector3.new(0.5,0.5,0.5)
- rs:wait()
- end
- GroundWave1 = function()
- local HandCF = CFrame.new(root.Position - Vector3.new(0,3,0)) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
- local Colors = {"Toothpaste", "Really black"}
- local wave = Instance.new("Part", torso)
- wave.BrickColor = BrickColor.new('Really red')
- wave.Anchored = true
- wave.CanCollide = false
- wave.Locked = true
- wave.Size = Vector3.new(1, 1, 1)
- wave.TopSurface = "Smooth"
- wave.BottomSurface = "Smooth"
- wave.Transparency = 0.35
- wave.CFrame = HandCF
- wm = Instance.new("SpecialMesh", wave)
- wm.MeshId = "rbxassetid://3270017"
- coroutine.wrap(function()
- for i = 1, 30, 1 do
- wm.Scale = Vector3.new(10 + i*20.4, 10 + i*20.4, 1)
- wave.Size = wm.Scale
- wave.CFrame = HandCF
- wave.Transparency = i/10
- wait()
- end
- wait()
- wave:Destroy()
- end)()
- end
- GroundWave = function()
- if Transforming == true then
- local wave = Instance.new("Part", torso)
- wave.BrickColor = BrickColor.new("Really black")
- wave.Anchored = true
- wave.CanCollide = false
- wave.Locked = true
- wave.Size = Vector3.new(1, 1, 1)
- wave.TopSurface = "Smooth"
- wave.BottomSurface = "Smooth"
- wave.Transparency = 0.35
- wave.CFrame = fx.CFrame
- wm = Instance.new("SpecialMesh", wave)
- wm.MeshType = "Sphere"
- wm.Scale = Vector3.new(1,1,1)
- coroutine.wrap(function()
- for i = 1, 18, 1 do
- wm.Scale = Vector3.new(8 + i*8, 8 + i*8, 8 + i*8)
- --wave.Size = wm.Scale
- wave.CFrame = fx.CFrame
- wave.Transparency = i/001
- wait()
- end
- wait()
- wave:Destroy()
- end)()
- elseif Transforming == false then
- wait()
- end
- end
- for i = 1, 100 do rs:wait()
- fx.CFrame = torso.CFrame
- end
- Spawn(function()
- while wait(1) do
- GroundWave()
- end
- end)
- wait(4)
- Transforming = false
- for i = 1, 20 do rs:wait()
- fx.Transparency = fx.Transparency + (1/20)
- fx.CFrame = torso.CFrame
- fxm.Scale = fxm.Scale + Vector3.new(0.5,0.5,0.5)
- rs:wait()
- end
- local HandCF = CFrame.new(root.Position - Vector3.new(0,3,0)) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
- local wave = Instance.new("Part", torso)
- wave.BrickColor = BrickColor.new("Institutional white")
- wave.Anchored = true
- wave.CanCollide = false
- wave.Locked = true
- wave.Size = Vector3.new(1, 1, 1)
- wave.TopSurface = "Smooth"
- wave.BottomSurface = "Smooth"
- wave.Transparency = 0.35
- wave.CFrame = HandCF
- wm = Instance.new("SpecialMesh", wave)
- wm.MeshId = "rbxassetid://3270017"
- coroutine.wrap(function()
- for i = 1, 14, 1 do
- wm.Scale = Vector3.new(10 + i*10.1, 10 + i*10.1, 10)
- wave.Size = wm.Scale
- wave.CFrame = HandCF
- wave.Transparency = i/14
- wait()
- end
- wait()
- wave:Destroy()
- end)()
- hum.WalkSpeed = 16
- ----------------------------------------------------
- Blast = function()
- local Colors = {"Toothpaste", "Really black"}
- local wave = Instance.new("Part", torso)
- wave.BrickColor = BrickColor.new(Colors[math.random(1,#Colors)])
- wave.Anchored = true
- wave.CanCollide = false
- wave.Locked = true
- wave.Size = Vector3.new(1, 1, 1)
- wave.TopSurface = "Smooth"
- wave.BottomSurface = "Smooth"
- wave.Transparency = 0.35
- wave.CFrame = rarm.CFrame
- wm = Instance.new("SpecialMesh", wave)
- wm.MeshType = "Sphere"
- wm.Scale = Vector3.new(1,1,1)
- z = Instance.new("Sound",wave)
- z.SoundId = "rbxassetid://237035051"
- z.Volume = 1
- z.Pitch = .9
- z:Play()
- coroutine.wrap(function()
- for i = 1, 30, 1 do
- wave.Size = Vector3.new(1 + i*4, 1 + i*4, 1 + i*4)
- --wave.Size = wm.Scale
- wave.CFrame = rarm.CFrame
- wave.Transparency = (1/14)
- rs:wait()
- end
- rs:wait()
- wave:Destroy()
- z:Destroy()
- end)()
- end
- rarm.Touched:connect(function(ht)
- hit = ht.Parent
- if ht and hit:IsA("Model") then
- if hit:FindFirstChild("Humanoid") then
- if hit.Name ~= p.Name then
- if Debounces.RPunch == true and Debounces.RPunched == false then
- Debounces.RPunched = true
- hit:FindFirstChild("Humanoid"):TakeDamage(math.random(5,8))
- if Debounces.ks==true then
- z = Instance.new("Sound",hed)
- z.SoundId = "rbxassetid://169380525"
- z.Pitch = ptz[math.random(1,#ptz)]
- z.Volume = 1
- z:Play()
- end
- wait(.2)
- Debounces.RPunched = false
- end
- end
- end
- elseif ht and hit:IsA("Hat") then
- if hit.Parent.Name ~= p.Name then
- if hit.Parent:FindFirstChild("Humanoid") then
- if Debounces.RPunch == true and Debounces.RPunched == false then
- Debounces.RPunched = true
- hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.random(5,8))
- if Debounces.ks==true then
- z = Instance.new("Sound",hed)
- z.SoundId = "rbxassetid://169380525"
- z.Pitch = ptz[math.random(1,#ptz)]
- z.Volume = 1
- z:Play()
- end
- wait(.2)
- Debounces.RPunched = false
- end
- end
- end
- end
- end)
- larm.Touched:connect(function(ht)
- hit = ht.Parent
- if ht and hit:IsA("Model") then
- if hit:FindFirstChild("Humanoid") then
- if hit.Name ~= p.Name then
- if Debounces.LPunch == true and Debounces.LPunched == false then
- Debounces.LPunched = true
- hit:FindFirstChild("Humanoid"):TakeDamage(math.random(4,8))
- if Debounces.ks2==true then
- z = Instance.new("Sound",hed)
- z.SoundId = "rbxassetid://169380525"
- z.Pitch = ptz[math.random(1,#ptz)]
- z.Volume = 1
- z:Play()
- end
- wait(.2)
- Debounces.LPunched = false
- end
- end
- end
- elseif ht and hit:IsA("Hat") then
- if hit.Parent.Name ~= p.Name then
- if hit.Parent:FindFirstChild("Humanoid") then
- if Debounces.LPunch == true and Debounces.LPunched == false then
- Debounces.LPunched = true
- hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.random(4,8))
- if Debounces.ks2==true then
- z = Instance.new("Sound",hed)
- z.SoundId = "rbxassetid://169380525"
- z.Pitch = ptz[math.random(1,#ptz)]
- z.Volume = 1
- z:Play()
- end
- wait(.2)
- Debounces.LPunched = false
- end
- end
- end
- end
- end)
- ----------------------------------------------------
- mod4 = Instance.new("Model",char)
- ptez = {0.7, 0.8, 0.9, 1}
- function FindNearestTorso(Position,Distance,SinglePlayer)
- if SinglePlayer then return(SinglePlayer.Torso.CFrame.p -Position).magnitude < Distance end
- local List = {}
- for i,v in pairs(workspace:GetChildren())do
- if v:IsA("Model")then
- if v:findFirstChild("Torso")then
- if v ~= char then
- if(v.Torso.Position -Position).magnitude <= Distance then
- table.insert(List,v)
- end
- end
- end
- end
- end
- return List
- end
- function Punch()
- part=Instance.new('Part',mod4)
- part.Anchored=true
- part.CanCollide=false
- part.FormFactor='Custom'
- part.Size=Vector3.new(.2,.2,.2)
- part.CFrame=root.CFrame*CFrame.new(0,1.5,-2.4)*CFrame.Angles(math.rad(0),0,0)
- part.Transparency=.7
- part.BrickColor=BrickColor.new('Toothpaste')
- mesh=Instance.new('SpecialMesh',part)
- mesh.MeshId='http://www.roblox.com/asset/?id=3270017'
- mesh.Scale=Vector3.new(3,3,3)
- part2=Instance.new('Part',mod4)
- part2.Anchored=true
- part2.CanCollide=false
- part2.FormFactor='Custom'
- part2.Size=Vector3.new(.2,.2,.2)
- part2.CFrame=root.CFrame*CFrame.new(0,1.5,-2.4)*CFrame.Angles(math.rad(90),0,0)
- part2.Transparency=.7
- part2.BrickColor=BrickColor.new('Toothpaste')
- mesh2=Instance.new('SpecialMesh',part2)
- mesh2.MeshId='http://www.roblox.com/asset/?id=20329976'
- mesh2.Scale=Vector3.new(3,1.5,3)
- for i,v in pairs(FindNearestTorso(torso.CFrame.p,4))do
- if v:FindFirstChild('Humanoid') then
- v.Humanoid:TakeDamage(math.random(2,6))
- end
- end
- coroutine.resume(coroutine.create(function()
- for i=0,0.62,0.4 do
- wait()
- part.CFrame=part.CFrame
- part.Transparency=i
- mesh.Scale=mesh.Scale+Vector3.new(0.4,0.4,0.4)
- part2.CFrame=part2.CFrame
- part2.Transparency=i
- mesh2.Scale=mesh2.Scale+Vector3.new(0.4,0.2,0.4)
- end
- part.Parent=nil
- part2.Parent=nil
- end))
- end
- rarm.Touched:connect(function(ht)
- hit = ht.Parent
- if ht and hit:IsA("Model") then
- if hit:FindFirstChild("Humanoid") then
- if hit.Name ~= p.Name then
- if Debounces.RPunch == true and Debounces.RPunched == false then
- Debounces.RPunched = true
- hit:FindFirstChild("Humanoid"):TakeDamage(math.random(5,8))
- if Debounces.ks==true then
- z = Instance.new("Sound",hed)
- z.SoundId = "rbxassetid://169380525"
- z.Pitch = ptz[math.random(1,#ptz)]
- z.Volume = 1
- z:Play()
- end
- wait(.2)
- Debounces.RPunched = false
- end
- end
- end
- elseif ht and hit:IsA("Hat") then
- if hit.Parent.Name ~= p.Name then
- if hit.Parent:FindFirstChild("Humanoid") then
- if Debounces.RPunch == true and Debounces.RPunched == false then
- Debounces.RPunched = true
- hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.random(5,8))
- if Debounces.ks==true then
- z = Instance.new("Sound",hed)
- z.SoundId = "rbxassetid://169380525"
- z.Pitch = ptz[math.random(1,#ptz)]
- z.Volume = 1
- z:Play()
- end
- wait(.2)
- Debounces.RPunched = false
- end
- end
- end
- end
- end)
- larm.Touched:connect(function(ht)
- hit = ht.Parent
- if ht and hit:IsA("Model") then
- if hit:FindFirstChild("Humanoid") then
- if hit.Name ~= p.Name then
- if Debounces.LPunch == true and Debounces.LPunched == false then
- Debounces.LPunched = true
- hit:FindFirstChild("Humanoid"):TakeDamage(math.random(4,8))
- if Debounces.ks2==true then
- z = Instance.new("Sound",hed)
- z.SoundId = "rbxassetid://169380525"
- z.Pitch = ptz[math.random(1,#ptz)]
- z.Volume = 1
- z:Play()
- end
- wait(.2)
- Debounces.LPunched = false
- end
- end
- end
- elseif ht and hit:IsA("Hat") then
- if hit.Parent.Name ~= p.Name then
- if hit.Parent:FindFirstChild("Humanoid") then
- if Debounces.LPunch == true and Debounces.LPunched == false then
- Debounces.LPunched = true
- hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.random(4,8))
- if Debounces.ks2==true then
- z = Instance.new("Sound",hed)
- z.SoundId = "rbxassetid://169380525"
- z.Pitch = ptz[math.random(1,#ptz)]
- z.Volume = 1
- z:Play()
- end
- wait(.2)
- Debounces.LPunched = false
- end
- end
- end
- end
- end)
- local player = game.Players.LocalPlayer
- local pchar = player.Character
- local mouse = player:GetMouse()
- local cam = workspace.CurrentCamera
- local rad = math.rad
- local keysDown = {}
- local flySpeed = 0
- local MAX_FLY_SPEED = 150
- local canFly = false
- local flyToggled = false
- local forward, side = 0, 0
- local lastForward, lastSide = 0, 0
- local floatBP = Instance.new("BodyPosition")
- floatBP.maxForce = Vector3.new(0, math.huge, 0)
- local flyBV = Instance.new("BodyVelocity")
- flyBV.maxForce = Vector3.new(9e9, 9e9, 9e9)
- local turnBG = Instance.new("BodyGyro")
- turnBG.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
- mouse.KeyDown:connect(function(key)
- keysDown[key] = true
- if key == "f" then
- flyToggled = not flyToggled
- if not flyToggled then
- stanceToggle = "Normal"
- floatBP.Parent = nil
- flyBV.Parent = nil
- turnBG.Parent = nil
- root.Velocity = Vector3.new()
- pchar.Humanoid.PlatformStand = false
- end
- end
- end)
- mouse.KeyUp:connect(function(key)
- keysDown[key] = nil
- end)
- local function updateFly()
- if not flyToggled then return end
- lastForward = forward
- lastSide = side
- forward = 0
- side = 0
- if keysDown.w then
- forward = forward + 1
- end
- if keysDown.s then
- forward = forward - 1
- end
- if keysDown.a then
- side = side - 1
- end
- if keysDown.d then
- side = side + 1
- end
- canFly = (forward ~= 0 or side ~= 0)
- if canFly then
- stanceToggle = "Floating"
- turnBG.Parent = root
- floatBP.Parent = nil
- flyBV.Parent = root
- flySpeed = flySpeed + 1 + (flySpeed / MAX_FLY_SPEED)
- if flySpeed > MAX_FLY_SPEED then flySpeed = MAX_FLY_SPEED end
- else
- floatBP.position = root.Position
- floatBP.Parent = root
- flySpeed = flySpeed - 1
- if flySpeed < 0 then flySpeed = 0 end
- end
- local camCF = cam.CoordinateFrame
- local in_forward = canFly and forward or lastForward
- local in_side = canFly and side or lastSide
- flyBV.velocity = ((camCF.lookVector * in_forward) + (camCF * CFrame.new(in_side,
- in_forward * 0.2, 0).p) - camCF.p) * flySpeed
- turnBG.cframe = camCF * CFrame.Angles(-rad(forward * (flySpeed / MAX_FLY_SPEED)), 0, 0)
- end
- game:service'RunService'.RenderStepped:connect(function()
- if flyToggled then
- pchar.Humanoid.PlatformStand = true
- end
- updateFly()
- end)
- mouse.KeyDown:connect(function(key)
- if key == "q" then
- if Debounces.CanAttack == true then
- Debounces.CanAttack = false
- Debounces.NoIdl = true
- Debounces.on = true
- function FindNearestTorso(Position,Distance,SinglePlayer)
- if SinglePlayer then return(SinglePlayer.Torso.CFrame.p -Position).magnitude < Distance end
- local List = {}
- for i,v in pairs(workspace:GetChildren())do
- if v:IsA("Model")then
- if v:findFirstChild("Torso")then
- if v ~= char then
- if(v.Torso.Position -Position).magnitude <= Distance then
- table.insert(List,v)
- end
- end
- end
- end
- end
- return List
- end
- z = Instance.new("Sound",hed)
- z.SoundId = "rbxassetid://232213955"
- z.Pitch = 1
- z.Volume = 1
- wait(0.2)
- z:Play()
- sp = Instance.new("Part",rarm)
- sp.Anchored = true
- sp.CanCollide = false
- sp.Locked = true
- sp.Transparency = 0
- sp.Material = "Neon"
- sp.Size = Vector3.new(1,1,1)
- sp.TopSurface = "SmoothNoOutlines"
- sp.BottomSurface = "SmoothNoOutlines"
- sp.BrickColor = BrickColor.new("Toothpaste")
- spm = Instance.new("SpecialMesh",sp)
- spm.MeshId = "http://www.roblox.com/asset/?id=9756362"
- spm.Scale = Vector3.new(21,21,21)
- sp2 = Instance.new("Part", rarm)
- sp2.Name = "Energy"
- sp2.BrickColor = BrickColor.new("Toothpaste")
- sp2.Size = Vector3.new(1, 1, 1)
- sp2.Shape = "Ball"
- sp2.CanCollide = false
- sp2.Anchored = true
- sp2.Locked = true
- sp2.TopSurface = 0
- sp2.BottomSurface = 0
- sp2.Transparency = 1
- spm2 = Instance.new("SpecialMesh",sp2)
- spm2.MeshId = "rbxassetid://9756362"
- spm2.Scale = Vector3.new(2,2,2)
- for i = 1, 20 do
- spm.Scale = spm.Scale - Vector3.new(1,1,1)
- sp.CFrame = root.CFrame*CFrame.new(0,1,-2)
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.62,0)*CFrame.Angles(math.rad(-6),math.rad(-6),math.rad(8)), 0.4)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.62,0)*CFrame.Angles(math.rad(-6),math.rad(6),math.rad(-8)), 0.4)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(0),0), 0.4)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(0, math.rad(0), math.rad(0)), 0.4)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(-8)), 0.4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(8)), 0.4)
- if Debounces.on == false then break end
- rs:wait()
- end
- for i = 1, 100, 20 do rs:wait()
- sp.CFrame = root.CFrame*CFrame.new(0,1,-2)
- end
- for i = 1, 20 do
- sp.CFrame = root.CFrame*CFrame.new(0,1,-2)
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.62,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(8)), 0.4)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.62,.2)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-40)), 0.4)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(10),math.rad(-30),0), 0.4)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(0, math.rad(40), math.rad(0)), 0.4)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(-8)), 0.4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(8)), 0.4)
- if Debounces.on == false then break end
- rs:wait()
- end
- sp.Transparency = 1
- for i = 1, 20 do
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.62,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(8)), 0.4)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.2,0.62,-.2)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(40)), 0.4)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(50),0), 0.4)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(0, math.rad(-50), math.rad(0)), 0.4)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(-8)), 0.4)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(8)), 0.4)
- if Debounces.on == false then break end
- rs:wait()
- end
- wait(1)
- sp.Transparency = 0
- sp2.Transparency = 0.84
- for i = 1, 20 do
- --spm.Scale = spm.Scale - Vector3.new(1,1,1)
- sp.CFrame = rarm.CFrame*CFrame.new(0,-1,0)
- sp2.CFrame = sp.CFrame * CFrame.new(0,0,0) * CFrame.Angles(math.rad(-i), math.rad(-i), math.rad(i))
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.55,0)*CFrame.Angles(math.rad(110),math.rad(-6),math.rad(140)), 0.4)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.55,0)*CFrame.Angles(math.rad(80),math.rad(6),math.rad(-40)), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(0),math.rad(30),0), 0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(-30), math.rad(0)), 0.3)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(20), 0, math.rad(-14)), 0.2)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-16), 0, math.rad(8)), 0.2)
- if Debounces.on == false then break end
- rs:wait()
- end
- for i = 1, 2880, 50 do
- rs:wait()
- sp.CFrame = rarm.CFrame*CFrame.new(0,-1,0)
- sp2.CFrame = rarm.CFrame * CFrame.new(0,-1,0) * CFrame.Angles(math.rad(-i/10), math.rad(-i/10), math.rad(i/10))
- rs:wait()
- end
- sp:Destroy()
- sp2:Destroy()
- local X = Instance.new("Part",char)
- local O = Instance.new("ObjectValue",X)
- O.Name = "creator"
- X.Locked = true
- X.Name = "Shell"
- X.Anchored = false
- X.CanCollide = false
- X.Transparency = 0
- X.Reflectance = 0
- X.BottomSurface = 0
- X.TopSurface = 0
- X.Shape = 0
- local V = Instance.new("ObjectValue",X)
- V.Value = char
- V.Name = "creator"
- X.BrickColor = BrickColor.new("Toothpaste")
- X.Size = Vector3.new(2,2,2)
- X.Material = "Neon"
- local Z = Instance.new("SpecialMesh",X)
- Z.MeshId = "http://www.roblox.com/asset/?id=9982590"
- Z.Scale = Vector3.new(0.5,0.5,1)
- X.CFrame = rarm.CFrame*CFrame.new(-3,0,0)
- local bv = Instance.new("BodyVelocity",X)
- bv.maxForce = Vector3.new(99999,99999,99999)
- X.CFrame = CFrame.new(X.Position,mouse.Hit.p)
- bv.velocity = X.CFrame.lookVector*500
- Explode = X.Touched:connect(function(hit)
- if hit ~= char and hit.Name ~= "Shell" then
- local cf = X.CFrame
- bv:Destroy()
- X.Anchored = true
- Z:Remove()
- Explode:disconnect()
- X.Size = Vector3.new(3,3,3)
- X.Touched:connect(function(hit) end)
- X.CanCollide = false
- local part3 = Instance.new("Part", rarm)
- part3.Anchored=true
- part3.CanCollide=false
- part3.Locked = true
- part3.TopSurface = "SmoothNoOutlines"
- part3.BottomSurface = "SmoothNoOutlines"
- part3.FormFactor='Custom'
- part3.Size=Vector3.new(1,1, 1)
- part3.CFrame=X.CFrame
- part3.Transparency=0
- part3.BrickColor=BrickColor.new("Toothpaste")
- local mesh3 = Instance.new("SpecialMesh",part3)
- mesh3.MeshId = "http://www.roblox.com/asset/?id=9756362"
- mesh3.Scale = Vector3.new(1,1,1)
- --debris:AddItem(X,8)
- local part4 = Instance.new("Part", rarm)
- part4.Material = "Neon"
- part4.Anchored=true
- part4.CanCollide=false
- part4.Locked = true
- part4.TopSurface = "SmoothNoOutlines"
- part4.BottomSurface = "SmoothNoOutlines"
- part4.FormFactor='Custom'
- part4.Size=Vector3.new(1,1, 1)
- part4.CFrame=X.CFrame
- part4.Transparency=0
- part4.BrickColor=BrickColor.new("Hot pink")
- local mesh4 = Instance.new("SpecialMesh",part4)
- mesh4.MeshId = "http://www.roblox.com/asset/?id=9756362"
- mesh4.Scale = Vector3.new(.5,.5,.5)
- local part7 = Instance.new("Part", rarm)
- part7.Material = "Neon"
- part7.Anchored=true
- part7.CanCollide=false
- part7.Locked = true
- part7.TopSurface = "SmoothNoOutlines"
- part7.BottomSurface = "SmoothNoOutlines"
- part7.FormFactor='Custom'
- part7.Size=Vector3.new(1,1, 1)
- part7.CFrame=X.CFrame
- part7.Transparency=0
- part7.BrickColor=BrickColor.new("Really black")
- local mesh7 = Instance.new("SpecialMesh",part7)
- mesh7.MeshId = "http://www.roblox.com/asset/?id=9756362"
- mesh7.Scale = Vector3.new(0.1, 0.1, 0.1)
- --[[X.Touched:connect(function(ht)
- hit = ht.Parent
- if ht and hit:IsA("Model") then
- if hit:FindFirstChild("Humanoid") then
- if hit.Name ~= p.Name then
- hit:FindFirstChild("Humanoid"):TakeDamage(math.random(4,6))
- wait(.3)
- end
- end
- elseif ht and hit:IsA("Hat") then
- if hit.Parent.Name ~= p.Name then
- if hit.Parent:FindFirstChild("Humanoid") then
- hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.random(4,6))
- wait(.3)
- end
- end
- end
- end)
- part3.Touched:connect(function(ht)
- hit = ht.Parent
- if ht and hit:IsA("Model") then
- if hit:FindFirstChild("Humanoid") then
- if hit.Name ~= p.Name then
- hit:FindFirstChild("Humanoid"):TakeDamage(math.random(4,6))
- wait(.3)
- end
- end
- elseif ht and hit:IsA("Hat") then
- if hit.Parent.Name ~= p.Name then
- if hit.Parent:FindFirstChild("Humanoid") then
- hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.random(4,6))
- wait(.3)
- end
- end
- end
- end)]]--
- for i,v in pairs(FindNearestTorso(X.CFrame.p,140))do
- if v:FindFirstChild('Humanoid') then
- v.Humanoid:TakeDamage(math.random(60,90))
- v.Humanoid.PlatformStand = true
- v:FindFirstChild("Torso").Velocity = hed.CFrame.lookVector * 100
- end
- end
- local acos = math.acos
- local sqrt = math.sqrt
- local Vec3 = Vector3.new
- local fromAxisAngle = CFrame.fromAxisAngle
- local function toAxisAngle(CFr)
- local X,Y,Z,R00,R01,R02,R10,R11,R12,R20,R21,R22 = CFr:components()
- local Angle = math.acos((R00+R11+R22-1)/2)
- local A = (R21-R12)^2+(R02-R20)^2+(R10-R01)^2
- A = A == 0 and 0.00001 or A
- local B = (R21-R12)^2+(R02-R20)^2+(R10-R01)^2
- B = B == 0 and 0.00001 or B
- local C = (R21-R12)^2+(R02-R20)^2+(R10-R01)^2
- C = C == 0 and 0.00001 or C
- local x = (R21-R12)/sqrt(A)
- local y = (R02-R20)/sqrt(B)
- local z = (R10-R01)/sqrt(C)
- return Vec3(x,y,z),Angle
- end
- function ApplyTrig(Num,Func)
- local Min,Max = Func(0),Func(1)
- local i = Func(Num)
- return (i-Min)/(Max-Min)
- end
- function LerpCFrame(CFrame1,CFrame2,Num)
- local Vec,Ang = toAxisAngle(CFrame1:inverse()*CFrame2)
- return CFrame1*fromAxisAngle(Vec,Ang*Num) + (CFrame2.p-CFrame1.p)*Num
- end
- function Crater(Torso,Radius)
- Spawn(function()
- local Ray = Ray.new(Torso.Position,Vector3.new(0,-1,0)*10)
- local Ignore = {}
- for i,v in pairs(game:GetService("Players"):GetPlayers()) do
- if v.Character ~= nil then
- Ignore[#Ignore+1] = v.Character
- end
- end
- local Hit,Pos,SurfaceNorm = Workspace:FindPartOnRayWithIgnoreList(Ray,Ignore)
- if Hit == nil then return end
- local Parts = {}
- for i = 1,360,10 do
- local P = Instance.new("Part",Torso.Parent)
- P.Anchored = true
- P.FormFactor = "Custom"
- P.BrickColor = Hit.BrickColor
- P.Material = Hit.Material
- P.TopSurface = "Smooth"
- P.BottomSurface = "Smooth"
- P.Size = Vector3.new(5,10,10)*(math.random(80,100)/100)
- P.CFrame = ((CFrame.new(Pos,Pos+SurfaceNorm)*CFrame.Angles(math.rad(90),0,0))-Vector3.new(0,7,0))*CFrame.Angles(math.rad(math.random(-50,50)),math.rad(math.random(-50,50)),math.rad(math.random(-50,50)))
- Parts[#Parts+1] = {P,P.CFrame,((CFrame.new(Pos,Pos+SurfaceNorm)*CFrame.Angles(math.rad(90),0,0))-Vector3.new(0,1,0))*CFrame.Angles(0,math.rad(i),0)*CFrame.new(0,0,-Radius)*CFrame.Angles(math.rad(math.random(-50,-20)),math.rad(math.random(-15,15)),math.rad(math.random(-15,15))),P.Size}
- if math.random(0,5) == 0 then -- rubble
- local P = Instance.new("Part",Torso.Parent)
- P.Anchored = true
- P.FormFactor = "Custom"
- P.BrickColor = Hit.BrickColor
- P.Material = Hit.Material
- P.TopSurface = "Smooth"
- P.BottomSurface = "Smooth"
- P.Size = Vector3.new(2,2,2)*(math.random(80,100)/100)
- P.CFrame = ((CFrame.new(Pos,Pos+SurfaceNorm)*CFrame.Angles(math.rad(90),0,0))-Vector3.new(0,2.5,0))*CFrame.Angles(math.rad(math.random(-50,50)),math.rad(math.random(-50,50)),math.rad(math.random(-50,50)))
- Parts[#Parts+1] = {P,P.CFrame,(CFrame.new(Pos,Pos+SurfaceNorm)*CFrame.Angles(math.rad(90),0,0))*CFrame.Angles(0,math.rad(i),0)*CFrame.new(0,0,-Radius-8)*CFrame.Angles(math.rad(math.random(-90,90)),math.rad(math.random(-90,90)),math.rad(math.random(-90,90))),P.Size}
- end
- end
- for i = 0,1,0.05 do
- for i2,v in pairs(Parts) do
- v[1].CFrame = LerpCFrame(v[2],v[3],ApplyTrig(i,math.cos))
- end
- wait(0.02)
- end
- for i,v in pairs(Parts) do
- if v[1].Size.X > 2.1 then
- v[1].CFrame = v[1].CFrame+Vector3.new(0,2,0)
- end
- v[1].Anchored = false
- end
- for i = 0,1,0.05 do
- for i2,v in pairs(Parts) do
- v[1].Transparency = i
- if i == 1 then
- v[1]:Destroy()
- elseif i >= 0.25 then
- v[1].CanCollide = false
- end
- end
- wait(0.02)
- end
- Parts = nil
- end)
- end
- ROW = function(out, trans, s, wt, t, ang, plus)
- for i = 1, 360, 360/t do
- local c = Instance.new("Part", game.Workspace)
- c.FormFactor = 3
- c.TopSurface = 0
- c.BottomSurface = 0
- c.Size = s
- c.Anchored = true
- c.CanCollide = wt
- c.Material=workspace.Base.Material
- c.Transparency = trans
- c.BrickColor = workspace.Base.BrickColor
- c.CFrame = CFrame.new(X.CFrame.x,0,X.CFrame.z) * CFrame.Angles(0, math.rad(i + plus), 0) * CFrame.new(0, 0, out) * ang
- c.Locked=true
- game.Debris:AddItem(c,15)
- end
- end
- Part = function(x,y,z,color,tr,cc,an,parent)
- local p = Instance.new('Part',parent or Weapon)
- p.formFactor = 'Custom'
- p.Size = Vector3.new(x,y,z)
- p.BrickColor = BrickColor.new(color)
- p.CanCollide = cc
- p.Transparency = tr
- p.Anchored = an
- p.TopSurface,p.BottomSurface = 0,0
- p.Locked=true
- p:BreakJoints()
- return p end
- Mesh = function(par,num,x,y,z)
- local msh = _
- if num == 1 then msh = Instance.new("CylinderMesh",par)
- elseif num == 2 then msh = Instance.new("SpecialMesh",par) msh.MeshType = 3
- elseif num == 3 then msh = Instance.new("BlockMesh",par)
- elseif num == 4 then msh = Instance.new("SpecialMesh",par) msh.MeshType = "Torso"
- elseif type(num) == 'string' then msh = Instance.new("SpecialMesh",par) msh.MeshId = num
- end msh.Scale = Vector3.new(x,y,z)
- return msh end
- function explosion(col1,col2,cfr,sz,rng,dmg)
- local a= Part(1,1,1,col1,.5,false,true,workspace)
- local a2= Part(1,1,1,col2,.5,false,true,workspace)
- local a3= Part(1,1,1,col2,.5,false,true,workspace)
- v1,v2,v3=sz.x,sz.y,sz.z
- local m= Mesh(a,'http://www.roblox.com/asset/?id=1185246',v1,v2,v3)
- local m2= Mesh(a2,3,v1/3,v2/3,v3/3)
- local m3= Mesh(a3,3,v1/3,v2/3,v3/3)
- a.CFrame=cfr
- a2.CFrame=cfr*CFrame.Angles(math.random(),math.random(),math.random())
- a3.CFrame=cfr*CFrame.Angles(math.random(),math.random(),math.random())
- Spawn(function()
- while wait() do
- if a.Transparency >= 1 then a:Destroy() a2:Destroy() a3:Destroy() break end
- m.Scale=m.Scale+Vector3.new(.1,0.1,0.1)
- m2.Scale=m2.Scale+Vector3.new(.1,0.1,0.1)
- m3.Scale=m3.Scale+Vector3.new(.1,0.1,0.1)
- a.Transparency=a.Transparency+0.05
- a2.Transparency=a2.Transparency+0.05
- a3.Transparency=a3.Transparency+0.05
- end
- end)
- end
- Crater(X,20)
- ROW(12, 0, Vector3.new(34.5, 30, 3), true, 8, CFrame.Angles(math.rad(math.random (30,60)), 0, math.rad (math.random(-30,30))), 0)
- z = Instance.new("Sound",X)
- z.SoundId = "rbxassetid://231917744"
- z.Pitch = .5
- z.Volume = 10
- z1 = Instance.new("Sound",X)
- z1.SoundId = "rbxassetid://231917744"
- z1.Pitch = .5
- z1.Volume = 10
- z2 = Instance.new("Sound",X)
- z2.SoundId = "rbxassetid://231917744"
- z2.Pitch = .5
- z2.Volume = 10
- z3 = Instance.new("Sound",X)
- z3.SoundId = "rbxassetid://245537790"
- z3.Pitch = .7
- z3.Volume = 1
- z4 = Instance.new("Sound",X)
- z4.SoundId = "rbxassetid://245537790"
- z4.Pitch = .7
- z4.Volume = 1
- wait(0.1)
- z:Play()
- z1:Play()
- z2:Play()
- z3:Play()
- z4:Play()
- local part=Instance.new('Part',rarm)
- part.Anchored=true
- part.CanCollide=false
- part.Locked = true
- part.FormFactor='Custom'
- part.Size=Vector3.new(1,1,1)
- part.CFrame=X.CFrame*CFrame.new(0,0,0)
- part.Transparency=0
- part.BrickColor=BrickColor.new('Really black')
- local mesh=Instance.new('SpecialMesh',part)
- mesh.MeshId='http://www.roblox.com/asset/?id=20329976'
- mesh.Scale=Vector3.new(2,2,2)
- local part2=part:clone()
- part2.Parent = rarm
- part2.BrickColor=BrickColor.new("Toothpaste")
- local part5=part:clone()
- part5.Parent = rarm
- part5.BrickColor=BrickColor.new("Toothpaste")
- local part6=part:clone()
- part6.Parent = rarm
- part6.BrickColor=BrickColor.new("Black")
- local mesh2=mesh:clone()
- mesh2.Parent=part2
- mesh2.Scale=Vector3.new(3, 3, 3)
- local mesh5=mesh:clone()
- mesh5.Parent=part5
- mesh5.Scale=Vector3.new(3, 3, 3)
- local mesh6=mesh:clone()
- mesh6.Parent=part6
- mesh6.Scale=Vector3.new(3, 3, 3)
- local blast = Instance.new("Part", rarm)
- blast.BrickColor = BrickColor.new("Really black")
- blast.Anchored = true
- blast.CanCollide = false
- blast.Locked = true
- blast.Size = Vector3.new(1, 1, 1)
- blast.TopSurface = "Smooth"
- blast.BottomSurface = "Smooth"
- blast.Transparency = 0
- blast.CFrame = HandCF
- local bm = Instance.new("SpecialMesh", blast)
- bm.Scale = Vector3.new(5,1,5)
- bm.MeshId = "rbxassetid://156292343"
- local blast2 = Instance.new("Part", rarm)
- blast2.BrickColor = BrickColor.new("Really black")
- blast2.Anchored = true
- blast2.CanCollide = false
- blast2.Locked = true
- blast2.Size = Vector3.new(1, 1, 1)
- blast2.TopSurface = "Smooth"
- blast2.BottomSurface = "Smooth"
- blast2.Transparency = 0
- blast2.CFrame = HandCF
- local bm2 = Instance.new("SpecialMesh", blast2)
- bm2.Scale = Vector3.new(3,1,3)
- bm2.MeshId = "rbxassetid://156292343"
- local blast3 = Instance.new("Part", rarm)
- blast3.BrickColor = BrickColor.new("Really black")
- blast3.Anchored = true
- blast3.CanCollide = false
- blast3.Locked = true
- blast3.Size = Vector3.new(1, 1, 1)
- blast3.TopSurface = "Smooth"
- blast3.BottomSurface = "Smooth"
- blast3.Transparency = 0
- blast3.CFrame = HandCF
- local bm3 = Instance.new("SpecialMesh", blast3)
- bm3.Scale = Vector3.new(3,1,3)
- bm3.MeshId = "rbxassetid://3270017"
- for i = 1,120 do rs:wait()
- X.Transparency = X.Transparency + (1/120)
- part.Transparency = part.Transparency + (1/120)
- part2.Transparency = part2.Transparency + (1/120)
- part3.Transparency = part3.Transparency + (1/120)
- part4.Transparency = part4.Transparency + (1/120)
- part5.Transparency = part5.Transparency + (1/120)
- part6.Transparency = part6.Transparency + (1/120)
- part7.Transparency = part7.Transparency + (1/120)
- blast.Transparency = blast.Transparency + (1/120)
- blast2.Transparency = blast2.Transparency + (1/120)
- blast3.Transparency = blast3.Transparency + (1/120)
- X.Size = X.Size + Vector3.new(.8,.8,.8)
- --part3.Size = part3.Size + Vector3.new(3,3,3)
- mesh.Scale = mesh.Scale + Vector3.new(1,.2,1)
- mesh2.Scale = mesh2.Scale + Vector3.new(1.1,.2,1.1)
- mesh3.Scale = mesh3.Scale + Vector3.new(3,3,3)
- mesh4.Scale = mesh4.Scale + Vector3.new(1.7,1.7,1.7)
- mesh5.Scale = mesh5.Scale + Vector3.new(1.6,.2,1.6)
- mesh6.Scale = mesh6.Scale + Vector3.new(2,.2,2)
- mesh7.Scale = mesh7.Scale + Vector3.new(4,4,4)
- bm.Scale = bm.Scale + Vector3.new(6,6,.2)
- bm2.Scale = bm2.Scale + Vector3.new(4,4,.2)
- bm3.Scale = bm3.Scale + Vector3.new(4,4,.2)
- X.CFrame = cf
- part.CFrame=X.CFrame * CFrame.Angles(0,math.rad(i*2),0)
- part2.CFrame=X.CFrame * CFrame.Angles(0,math.rad(-i*2),0)
- part3.CFrame=X.CFrame
- part4.CFrame=X.CFrame
- part7.CFrame=X.CFrame
- part5.CFrame=X.CFrame * CFrame.Angles(0,math.rad(i*2.6),0)
- part6.CFrame=X.CFrame * CFrame.Angles(0,math.rad(-i*2.4),0)
- blast.CFrame=X.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
- blast2.CFrame=X.CFrame * CFrame.Angles(math.rad(-i*4), math.rad(i*4), math.rad(0))
- blast3.CFrame=X.CFrame * CFrame.Angles(math.rad(180+i*4), math.rad(90-i*4), math.rad(0))
- rs:wait()
- end
- X:Destroy()
- part:Destroy()
- part2:Destroy()
- part3:Destroy()
- part4:Destroy()
- part5:Destroy()
- part6:Destroy()
- blast:Destroy()
- blast2:Destroy()
- blast3:Destroy()
- z:Destroy()
- z1:Destroy()
- z2:Destroy()
- z3:Destroy()
- z4:Destroy()
- end
- end)
- for i = 1, 20 do
- rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.55,0)*CFrame.Angles(math.rad(70),math.rad(-6),math.rad(-20)), 0.2)
- larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.55,0)*CFrame.Angles(math.rad(-6),math.rad(6),math.rad(-8)), 0.2)
- hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(0),math.rad(0),0), 0.2)
- torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(30), math.rad(0)), 0.4)
- lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(10), 0, math.rad(-8)), 0.2)
- rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-6), 0, math.rad(8)), 0.2)
- if Debounces.on == false then break end
- rs:wait()
- end
- if Debounces.CanAttack == false then
- Debounces.CanAttack = true
- Debounces.NoIdl = false
- Debounces.on = false
- end
- end
- end
- end)
- -- Player declarations
- local player = game.Players.megatron2006
- local char = player.Character
- -- Body parts
- local torso = char.Torso
- -- Tool declarations
- local mouseDown = false
- local keysDown = {}
- -- Earth bending declarations
- local raisingEarth = false
- local raisingTower = false
- local wall = false
- local groundAttack = false
- local lastTower = nil
- local disabled = {}
- local frames = {}
- local parts = {}
- local Taunts = {"You aren't dead yet?", "Just die!", "Take these, I insist!", "I told you it's useless!", "You will not be the first to die by my hand!", "You will suffer!", "Don't try to evade the inevitable!", "I will tear you apart!","You are pathetic!","You will never defeat me!","I AM GOD!"}
- local raisechats = {"I will make you realize the depth of my power, even if I have to grind your body into dust!","I suggest you run.", "Now you're just pissing me off.", "Hmph.", "It's useless.",".....", "Your life ends here!","Foolish!","Do you know who I am?","What stupidity.","Hmm.","Hmph. Your confidence is annoying.","You cannot kill a god."}
- -- Main
- function main(mouse)
- while true do wait(1/30)
- local look = CFrame.new(torso.Position, torso.Position + mouse.Hit.lookVector)
- -- Reset parts
- parts = {}
- -- Get parts
- for x = -20, 20, 10 do
- for y = -20, 20, 10 do
- for z = -30, -10, 10 do
- local pos = look * Vector3.new(x, y, z)
- getPartsInRegion3(
- Region3.new(
- pos + Vector3.new(1,1,1)*-9,
- pos + Vector3.new(1,1,1)* 9
- ),
- parts
- )
- end
- end
- end
- -- Mouse down
- if mouseDown then
- -- Create dif and bodies
- for _, part in pairs(parts) do
- if part.Name == "Earth" and not disabled[part] then
- if not frames[part] and part ~= lastTower then
- frames[part] = look:toObjectSpace(part.CFrame)
- part:ClearAllChildren()
- part.Anchored = false
- -- Create bodies
- createBody("Position", part)
- createBody("Gyro", part)
- end
- end
- end
- -- Move bodies
- for part in pairs(frames) do
- local bodyPos = part:FindFirstChild("BodyPosition")
- local bodyGyr = part:FindFirstChild("BodyGyro")
- -- Bodies exist
- if bodyPos and bodyGyr then
- local dif = look * frames[part]
- bodyPos.position = dif.p
- bodyGyr.cframe = dif
- else
- frames[part] = nil
- end
- end
- else
- for part in pairs(frames) do
- if part.Name == "Earth" then
- frames[part] = nil
- part:ClearAllChildren()
- end
- end
- end
- end
- end
- -- On key change
- function onKeyChange(mouse, key, state)
- -- Raise earth
- if key == "m" and state and not raisingEarth then
- game:GetService("Chat"):Chat(char.Head, raisechats[math.random(1,#raisechats)], Enum.ChatColor.Red)
- raisingEarth = true
- while keysDown[key] do
- local torsoY = torso.Position.y + 3
- local pos = planeY(torso.Position, 0.4 - 4/2)
- local dir = planeY(mouse.Hit.lookVector).unit
- local frame = CFrame.new(pos, pos + dir) * CFrame.new(r(-10, 10), 0, r(-20, -5))
- -- Create earth part
- local part = createEarth(workspace)
- part.Anchored = true
- part.Size = Vector3.new(4, 4, 4)
- disabled[part] = true
- -- Raise earth
- for i = 1, 4 do i = i/4
- part.CFrame = frame * CFrame.new(0, (torsoY - frame.y)*i, 0)
- wait(1/10000000)
- if not part.Anchored then
- break
- end
- end
- disabled[part] = nil
- part.Anchored = false
- wait(1/100)
- end
- raisingEarth = false
- elseif key == "c" and state and not raisingEarth then
- game:GetService("Chat"):Chat(char.Head, raisechats[math.random(1,#raisechats)], Enum.ChatColor.Red)
- raisingEarth = true
- while keysDown[key] do
- local torsoY = torso.Position.y + 3
- local pos = planeY(torso.Position, 0.4 - 4/2)
- local dir = planeY(mouse.Hit.lookVector).unit
- local frame = CFrame.new(pos, pos + dir) * CFrame.new(r(-10, 10), 0, r(-20, -5))
- -- Create earth part
- local part = createEarth(workspace)
- part.Anchored = true
- part.Size = Vector3.new(2, 2, 2)
- disabled[part] = true
- -- Raise earth
- for i = 1, 4 do i = i/4
- part.CFrame = frame * CFrame.new(0, (torsoY - frame.y)*i, 0)
- wait(1/10000000)
- if not part.Anchored then
- break
- end
- end
- disabled[part] = nil
- part.Anchored = false
- wait(1/100)
- end
- raisingEarth = false
- -- Push earth
- elseif key == "f" and state then
- game:GetService("Chat"):Chat(char.Head, Taunts[math.random(1,#Taunts)], Enum.ChatColor.Red)
- for _, part in pairs(parts) do
- if part.Name == "Earth" and part ~= lastTower then
- part:ClearAllChildren()
- part.Anchored = false
- -- Add force
- local bodyForce = createBody("Force", part)
- bodyForce.force = mouse.Hit.lookVector*1.5e4 * part:GetMass()
- game.Debris:AddItem(bodyForce, 1/30)
- -- Disable part
- disabled[part] = true
- delay(1, function()
- disabled[part] = nil
- end)
- end
- end
- -- Monster Ability
- elseif key == "n" and state then
- wait(.1)
- f = Instance.new("Fire")
- f.Parent = char.Head
- f.Color = Color3.new(0,0,0)
- f.Size = 5
- f.Heat = 5
- wait(.1)
- g = Instance.new("Fire")
- g.Parent = char["Right Arm"]
- g.Color = Color3.new(0,0.8,0.9)
- g.Size = 5
- g.Heat = 10
- wait(.1)
- h = Instance.new("Fire")
- h.Parent = char["Left Arm"]
- h.Color = Color3.new(0.7,0,0)
- h.Size = 5
- h.Heat = 10
- wait(.1)
- z = Instance.new("Sound")
- z.Parent = game.Workspace
- z.SoundId = "http://www.roblox.com/asset/?id="
- z.Looped = false
- z.Volume = 8
- z.Pitch = 0.8
- wait(1.8)
- game:GetService("Chat"):Chat(char.Head, "Hmph.", Enum.ChatColor.Red)
- wait(3.4)
- game:GetService("Chat"):Chat(char.Head, "This has become a pointless battle.", Enum.ChatColor.Red)
- wait(2.4)
- game:GetService("Chat"):Chat(char.Head, "I will end this quickly", Enum.ChatColor.Red)
- wait(.1)
- z:Play()
- char.Humanoid.MaxHealth = 900000000
- wait(1)
- char.Humanoid.Health = 900000000
- wait(182)
- char.Humanoid.MaxHealth = 600
- z:Remove()
- f:Remove()
- g:Remove()
- h:Remove()
- -- N-Rage
- elseif key == "n" and state then
- c = Instance.new("Sound")
- c.Parent = game.Workspace
- c.SoundId = "http://www.roblox.com/asset/?id=157747165"
- c.Looped = false
- c.Volume = 1
- c.Pitch = .7
- wait(1.8)
- game:GetService("Chat"):Chat(char.Head, "What the hell was that?", Enum.ChatColor.Red)
- wait(2)
- game:GetService("Chat"):Chat(char.Head, "Did you actually believe you could harm me?", Enum.ChatColor.Red)
- wait(2.4)
- game:GetService("Chat"):Chat(char.Head, "If you would simply let yourself die, you would not have to go through this pointless suffering.", Enum.ChatColor.Red)
- wait(3.5)
- game:GetService("Chat"):Chat(char.Head, "All you have done is waste my time.", Enum.ChatColor.Red)
- wait(.1)
- c:Play()
- char.Humanoid.MaxHealth = math.huge
- wait(160)
- char.Humanoid.MaxHealth = 10000
- c:Remove()
- -- Break earth
- elseif key == "b" and state then
- game:GetService("Chat"):Char(char.Head, "Hmph.", Enum.ChatColor.Red)
- wait(.01)
- for part in pairs(frames) do
- if part.Size == Vector3.new(4, 4, 4) then
- for x = -1, 2, 2 do
- for y = -1, 2, 2 do
- for z = -1, 1, 2 do
- local oPart = createEarth(workspace)
- oPart.Size = Vector3.new(2, 2, 2)
- oPart.CFrame = part.CFrame * CFrame.new(x*1.1, y*1.1, z*1.1)
- end
- end
- end
- part:Destroy()
- end
- end
- for part in pairs(frames) do
- if part.Size == Vector3.new(25, 15, 25) then
- for x = -3, 2, 2 do
- for y = -3, 2, 2 do
- for z = -3, 1, 2 do
- local oPart = createEarth(workspace)
- oPart.Size = Vector3.new(2, 2, 2)
- oPart.CFrame = part.CFrame * CFrame.new(x*1.1, y*1.1, z*1.1)
- end
- end
- end
- part:Destroy()
- end
- end
- for part in pairs(frames) do
- if part.Size == Vector3.new(2, 2, 2) then
- for x = -0.5, 2, 2 do
- for y = -0.5, 2, 2 do
- for z = -0.5, 1, 2 do
- local oPart = createEarth(workspace)
- oPart.Size = Vector3.new(1, 1, 1)
- oPart.CFrame = part.CFrame * CFrame.new(x*1.1, y*1.1, z*1.1)
- end
- end
- end
- part:Destroy()
- end
- end
- -- Raise tower
- elseif key == "r" and state and not raisingTower then
- game:GetService("Chat"):Chat(char.Head, raisechats[math.random(1,#raisechats)], Enum.ChatColor.Red)
- raisingTower = true
- lastTower = nil
- if torso.Position.y - 5/2 < 20.4 then
- local part = createEarth(workspace)
- part.Anchored = true
- disabled[part] = true
- for i = 0, 20, 4 do
- part.Size = Vector3.new(5, i, 5)
- part.CFrame = CFrame.new(torso.Position.x, 0.4 + part.Size.y/2, torso.Position.z)
- torso.CFrame = (torso.CFrame - torso.CFrame.p) + Vector3.new(torso.Position.x, part.Position.y + part.Size.y/2 + 5/2, torso.Position.z)
- wait(1/30)
- end
- lastTower = part
- disabled[part] = nil
- part.Anchored = false
- end
- raisingTower = false
- -- Raise wall
- elseif key == "t" and state and not wall then
- game:GetService("Chat"):Chat(char.Head, raisechats[math.random(1,#raisechats)], Enum.ChatColor.Red)
- wall = true
- lastWall = nil
- if torso.Position.y - 5/2 < 20.4 then
- local part = createEarth(workspace)
- part.Anchored = true
- disabled[part] = true
- for i = 0, 1, 20 do
- part.Size = Vector3.new(25, 15, 25)
- part.CFrame = CFrame.new(torso.Position.x, 0.4 + part.Size.y/2, torso.Position.z)
- torso.CFrame = (torso.CFrame - torso.CFrame.p) + Vector3.new(torso.Position.x, part.Position.y + part.Size.y/2 + 5/2, torso.Position.z)
- wait(1/30)
- end
- lastWall = part
- disabled[part] = nil
- part.Anchored = false
- end
- wall = false
- -- Ground attack
- elseif key == "g" and state and not groundAttack then
- game:GetService("Chat"):Chat(char.Head, Taunts[math.random(1,#Taunts)], Enum.ChatColor.Red)
- groundAttack = true
- delay(1, function()
- groundAttack = false
- end)
- local dir = planeY(mouse.Hit.p - torso.Position).unit
- local pos = planeY(torso.Position, 0.4 + 1) + dir*5
- local ground = {}
- delay(5, function()
- for i = 1, 20 do
- for _, part in pairs(ground) do
- if part.Anchored then
- part.CFrame = part.CFrame + Vector3.new(0, -1/7, 0)
- end
- end
- wait(1/30)
- end
- for _, part in pairs(ground) do
- if part.Anchored then
- part:Destroy()
- end
- end
- end)
- for i = 1, 10 do
- local hit, pos2 = rayCast(pos, dir*5, {char})
- local part = createEarth(workspace)
- part.Anchored = true
- part.Size = Vector3.new(4, 4, 4)
- part.CFrame = CFrame.new(pos2, pos2 + dir) * CFrame.Angles(math.rad(-50), 0, 0) + Vector3.new(0, -0, 0)
- ground[#ground + 1] = part
- -- Add force
- if hit then
- local mass = hit:GetMass()
- -- Hit player
- for _, oPlayer in pairs(game.Players:GetPlayers()) do
- if oPlayer.Character and oPlayer.Character:FindFirstChild("Torso") and hit:IsDescendantOf(oPlayer.Character) then
- hit = oPlayer.Character.Torso
- mass = 20
- end
- end
- if hit.Name ~= "Torso" then
- hit:ClearAllChildren()
- end
- hit.Anchored = false
- -- Add force
- local bodyForce = createBody("Force", hit)
- bodyForce.force = (dir + Vector3.new(0, 0.2, 0)).unit*1e4 * mass
- game.Debris:AddItem(bodyForce, 1/30)
- break
- end
- pos = pos2
- wait(1/20)
- end
- end
- end
- --- CORE CODE BELOW --- CORE CODE BELOW --- CORE CODE BELOW ---
- --- CORE CODE BELOW --- CORE CODE BELOW --- CORE CODE BELOW ---
- --- CORE CODE BELOW --- CORE CODE BELOW --- CORE CODE BELOW ---
- -- Clear old tool
- player.Backpack:ClearAllChildren()
- -- Create tool
- local tool = Instance.new("HopperBin")
- tool.Parent = player.Backpack
- tool.Name = "Doom"
- -- Tool selected
- tool.Selected:connect(function(mouse)
- mouse.Icon = "rbxasset://textures\\GunCursor.png"
- -- Mouse events
- mouse.Button1Down:connect(function()
- mouseDown = true
- end)
- mouse.Button1Up:connect(function()
- mouseDown = false
- end)
- mouse.KeyDown:connect(function(key)
- keysDown[key:lower()] = true
- onKeyChange(mouse, key:lower(), true)
- end)
- mouse.KeyUp:connect(function(key)
- keysDown[key:lower()] = false
- onKeyChange(mouse, key:lower(), false)
- end)
- -- Call main
- main(mouse)
- end)
- --- LIBRARY BELOW --- LIBRARY BELOW --- LIBRARY BELOW ---
- --- LIBRARY BELOW --- LIBRARY BELOW --- LIBRARY BELOW ---
- --- LIBRARY BELOW --- LIBRARY BELOW --- LIBRARY BELOW ---
- -- Ray cast
- function rayCast(pos, dir, ignore)
- return workspace:FindPartOnRayWithIgnoreList(Ray.new(pos, dir), ignore)
- end
- -- Create body
- function createBody(type, path)
- local body = Instance.new("Body" .. type)
- if type == "Gyro" then
- body.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
- elseif type ~= "Force" then
- body.maxForce = Vector3.new(math.huge, math.huge, math.huge)
- end
- body.Parent = path
- return body
- end
- -- Get parts in region 3
- function getPartsInRegion3(region, parts)
- repeat
- local regParts = workspace:FindPartsInRegion3WithIgnoreList(region, parts, 100)
- for i, part in pairs(regParts) do
- parts[#parts + 1] = part
- end
- until #regParts < 100
- end
- -- Random
- function r(min, max)
- return math.random()*(max - min) + min
- end
- -- Plane y
- function planeY(v, y)
- return Vector3.new(v.x, y or 0, v.z)
- end
- -- Create earth
- function createEarth(path)
- local part = createPart("Earth", path)
- part.BrickColor = BrickColor.new("Really red")
- part.Material = "Neon"
- m = Instance.new("Fire",part)
- m.Heat = 100
- m.size = 100
- m.Color = Color3.new(0,0.8,0.9)
- part.Parent = path
- return part
- end
- -- Create part
- function createPart(name, path)
- local part = Instance.new("Part")
- part.FormFactor = "Symmetric"
- part.BottomSurface = "Smooth"
- part.TopSurface = "Smooth"
- part.Size = Vector3.new(1, 1, 1)
- part.Name = name
- part.Parent = path
- return part
- end
- lp=game.Players.LocalPlayer
- chr=lp.Character
- attacking=false
- mouse = game.Players.LocalPlayer:GetMouse()
- Weld = function(p0,p1,x,y,z,rx,ry,rz,par)
- p0.Position = p1.Position
- local w = Instance.new('Motor',par or p0)
- w.Part0 = p0
- w.Part1 = p1
- w.C1 = CFrame.new(x,y,z)*CFrame.Angles(rx,ry,rz)
- return w
- end
- z=Instance.new("Part",chr)
- z.Size=chr.Torso.Size
- cloud=Instance.new("SpecialMesh",z)
- cloud.MeshId="rbxassetid://1095708"
- cloud.Scale=Vector3.new(2,2,2)
- z.Transparency=1
- Weld(z,chr.Torso,0,15,0,0,0,0,z)
- Song = function(Volume,SoundId,Looped,Object)
- sound=Instance.new("Sound")
- sound.Parent=Object
- sound.Volume=Volume
- sound.SoundId="rbxassetid://"..SoundId
- sound.Looped=Looped
- sound:Play()
- end
- Lightning = function(Start,End,Times,Offset,Color,Thickness,Transparency)
- local magz = (Start - End).magnitude local curpos = Start local trz = {-Offset,Offset}
- for i=1,Times do
- local li = Instance.new("Part",workspace)
- li.TopSurface =0
- li.BottomSurface = 0
- li.Anchored = true
- li.Material = 288
- li.Transparency = Transparency or 0.4
- li.BrickColor = BrickColor.new("Cyan")
- li.formFactor = "Custom"
- li.CanCollide = false
- li.Size = Vector3.new(Thickness,Thickness,magz/Times) local ofz = Vector3.new(trz[math.random(1,2)],trz[math.random(1,2)],trz[math.random(1,2)])
- local trolpos = CFrame.new(curpos,End)*CFrame.new(0,0,magz/Times).p+ofz
- if Times == i then
- local magz2 = (curpos - End).magnitude li.Size = Vector3.new(Thickness,Thickness,magz2)
- li.CFrame = CFrame.new(curpos,End)*CFrame.new(0,0,-magz2/2)
- else
- li.CFrame = CFrame.new(curpos,trolpos)*CFrame.new(0,0,magz/Times/2)
- end
- curpos = li.CFrame*CFrame.new(0,0,magz/Times/2).p game.Debris:AddItem(li,0.25)
- end
- end
- mouse.KeyDown:connect(function(key)
- key:lower()
- if key == "q" and attacking == false then
- attacking= true
- for i=1,4 do
- Lightning(chr.Head.Position,mouse.Hit.p,10,math.random(5,10),math.random(-2.5,2.5),"New Yeller",0.05,0.3)
- explode=Instance.new("Explosion",Workspace)
- explode.Position=mouse.Hit.p
- end
- attacking=false
- end
- end)
- mouse.KeyDown:connect(function(key)
- key:lower()
- if key == "." and attacking == false then
- attacking = true
- Instance.new("ForceField",chr)
- chr.Torso.Anchored=true
- z.Transparency=0
- z.Material = 288
- for i=1,20 do
- Wait()
- Lightning(z.Position,chr.Torso.Position,10,math.random(5,10),math.random(-2.5,2.5),"New Yeller",0.05,0.3)
- explode=Instance.new("Explosion",chr)
- explode.Position=chr.Torso.Position
- end
- wait(2)
- chr.ForceField:Destroy()
- chr.Torso.Anchored=false
- z.Transparency=1
- z.Material = 288
- attacking=false
- end
- end)
- mouse.KeyDown:connect(function(key)
- key:lower()
- if key == "." and attacking == false then
- Song(math.huge,172949886,true,chr.Head)
- end
- end)
- mouse.KeyDown:connect(function(key)
- key:lower()
- if key == "e" and attacking == false then
- wait()
- for i=1,5 do
- Lightning(chr.Torso.Position,mouse.Hit.p,10,math.random(5,10),math.random(-2.5,2.5),"New Yeller",0.05,0.3)
- end
- Wait()
- x=Instance.new("Part",chr)
- x.Transparency=1
- x.Material = 288
- x.Position=mouse.Hit.p
- chr.Torso.CFrame=x.CFrame*CFrame.new(0,5,0)
- x:Destroy()
- end
- end)
- mouse.KeyDown:connect(function(key)
- key:lower()
- if key == "y" and attacking == false then
- for i,v in pairs(chr.Head:GetChildren()) do
- if v:IsA("Sound") then
- v:Destroy()
- end
- end
- end
- end)
- mouse.KeyDown:connect(function(key)
- key:lower()
- if key == "j" and attacking == false then
- for i=1,10 do
- wait()
- Lightning(z.Position,chr.Torso.Position,10,math.random(5,10),math.random(-2.5,2.5),"New Yeller",0.05,0.3)
- explode=Instance.new("Explosion",chr)
- explode.Position=chr.Torso.Position
- explode.BlastPressure=0
- chr.Humanoid.Health=chr.Humanoid.Health+10
- end
- end
- end)
- mouse.KeyDown:connect(function(key)
- key:lower()
- if key == "r" and attacking == false then
- attacking=true
- z.Transparency=0
- Lightning(z.Position,mouse.Hit.p,10,math.random(5,10),math.random(-2.5,2.5),"New Yeller",0.05,0.3)
- explode=Instance.new("Explosion",chr)
- explode.Position=mouse.Hit.p
- z.Transparency=1
- attacking=false
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement