Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- while true do
- wait(100)
- local p = game.Players.LocalPlayer
- player = p
- 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 rs = game:GetService("RunService").RenderStepped
- local stanceToggle = "Landed"
- local animpose = "Landed"
- local lastanimpose = "Landed"
- math.randomseed(os.time())
- for i, v in pairs(char:children()) do
- if v:IsA("Hat") then
- v:Destroy()
- end
- end
- Debounces = {
- CanAttack = true,
- CanJoke = true,
- on = false,
- NoIdl = false,
- Slashing = false,
- Slashed = false,
- Reaping = false,
- Reaped = false,
- Invisible = false
- }
- local Touche = {
- char.Name
- }
- function Magik()
- Spawn(function()
- if Debounces.Invisible == false then
- local lerp = function(a, b, c)
- return a + (b - a) * c
- end
- local rndRange = function(rng)
- return math.random(-rng * 1000, rng * 1000) / 1000
- end
- local magik = Instance.new("Part", larm)
- local Colors = {
- "Really red",
- "Really black"
- }
- magik.Anchored = true
- magik.Locked = true
- magik.FormFactor = "Custom"
- magik.Size = Vector3.new(1.2, 1.2, 1.2)
- magik.TopSurface = "Smooth"
- magik.Transparency = 0
- magik.BottomSurface = "Smooth"
- magik.CanCollide = false
- magik.BrickColor = BrickColor.new(Colors[math.random(1, #Colors)])
- local mr = math.rad
- local rnx, rny, rnz = mr(rndRange(180)), mr(rndRange(180)), mr(rndRange(180))
- local cf = larm.CFrame * CFrame.new(0, -0.8, 0) * CFrame.Angles(rnx, rny, rnz)
- magik.CFrame = cf
- for i = 0, 1, 0.05 do
- local newTrans = lerp(0.5, 1, i)
- local ns = lerp(1, 1.2, i)
- magik.Transparency = newTrans
- magik.Size = Vector3.new(ns, ns, ns)
- magik.CFrame = cf
- rs:wait()
- end
- magik:Destroy()
- elseif Debounces.Invisible == true then
- wait()
- end
- end)
- end
- function Orb()
- local Head = char.Head
- local DistanceAway = 4
- local Speed = 2.4
- local YNum = 0
- local MaxY = 0.5
- local MinY = -0.5
- local Up = true
- local Colours = {
- {
- X = 0.1,
- Y = 0,
- Z = 0
- },
- {
- X = 0.6,
- Y = 0,
- Z = 0
- }
- }
- function Run(Func)
- local Ok, Err = coroutine.resume(coroutine.create(Func))
- if not Ok then
- print(Err)
- end
- end
- local Part = Instance.new("Part")
- Part.BrickColor = BrickColor.new("Really black")
- Part.FormFactor = "Custom"
- Part.Size = Vector3.new(1, 1, 1)
- Part.Archivable = true
- Part.CanCollide = false
- Part.Locked = true
- Part.Position = Head.Position
- Part.Anchored = true
- Part.Name = "Orb"
- Part.TopSurface = "Smooth"
- Part.BottomSurface = "Smooth"
- Part.Parent = char
- local Mesh = Instance.new("SpecialMesh", Part)
- Mesh.MeshId = "rbxassetid://1185246"
- Mesh.TextureId = "rbxassetid://230806497"
- Mesh.Scale = Part.Size * 1.5
- Mesh.VertexColor = Vector3.new(0, 0, 0)
- local Emitter = Instance.new("ParticleEmitter", Part)
- local color1 = Color3.new(1, 0, 0)
- local color2 = Color3.new(0, 0, 0)
- Emitter.Color = ColorSequence.new(color1, color2)
- Emitter.Size = NumberSequence.new(0.8)
- Emitter.Texture = "rbxassetid://243098098"
- Emitter.Lifetime = NumberRange.new(1)
- Emitter.Rate = 200
- Emitter.Rotation = NumberRange.new(720)
- Emitter.RotSpeed = NumberRange.new(140)
- Emitter.Speed = NumberRange.new(0)
- Run(function()
- local ColorNum = 2
- local Iter = 2
- local CurrentX = 0
- local CurrentY = 0
- local CurrentZ = 0
- for i = 1, math.huge / 0.05 do
- if Part.Parent ~= nil then
- local PrevColTab = Colours[ColorNum - 1] or Colours[#Colours]
- local ColTab = Colours[ColorNum]
- if tostring(CurrentX) ~= tostring(ColTab.X) then
- CurrentX = 0 < ColTab.X - PrevColTab.X and CurrentX + 0.01 or Iter <= 1.01 and 0.2 or CurrentX - 0.01
- end
- if tostring(CurrentY) ~= tostring(ColTab.Y) then
- CurrentY = 0 < ColTab.Y - PrevColTab.Y and CurrentY + 0.01 or Iter <= 1.01 and 0 or CurrentY - 0.01
- end
- if tostring(CurrentZ) ~= tostring(ColTab.Z) then
- CurrentZ = 0 < ColTab.Z - PrevColTab.Z and CurrentZ + 0.01 or Iter <= 1.01 and 0 or CurrentZ - 0.01
- end
- Mesh.VertexColor = Vector3.new(CurrentX, CurrentY, CurrentZ)
- if Iter < 1.01 or Iter > 2 then
- ColorNum = ColorNum == #Colours and 1 or ColorNum + 1
- Iter = 2
- else
- Iter = Iter - 0.01
- end
- game:GetService("RunService").RenderStepped:wait()
- else
- break
- end
- end
- end)
- Run(function()
- game:GetService("RunService").RenderStepped:connect(function()
- if char:findFirstChild("Torso") then
- local TorCF = char.Torso.CFrame
- local currentPos = Part.CFrame.p
- local X = math.sin(math.rad(360) + time() / Speed) * DistanceAway
- local Z = math.cos(math.rad(360) + time() / Speed) * DistanceAway / 2
- local Y = 0.002
- if YNum > MaxY then
- Up = false
- elseif YNum < MinY then
- Up = true
- end
- if Up == false then
- Y = -Y
- end
- YNum = YNum + Y
- local endPos = (TorCF * CFrame.new(X, 0, Z)).p
- local movePos = (endPos - currentPos) * 0.25
- currentPos = currentPos + movePos
- Part.CFrame = CFrame.new(currentPos + Vector3.new(0, YNum, 0), TorCF.p)
- end
- end)
- end)
- end
- Orb()
- function Singularity()
- pt = Instance.new("Part")
- pt.Parent = char
- pt.Name = "Singularity"
- pt.BrickColor = BrickColor.new("Really black")
- pt.Size = Vector3.new(1.8, 1, 1.8)
- ptmesh = Instance.new("CylinderMesh", pt)
- ptmesh.Scale = Vector3.new(1.8, 0.1, 1.8)
- ptweld = Instance.new("Weld", pt)
- ptweld.Part0 = larm
- ptweld.Part1 = pt
- ptweld.C0 = CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(0))
- ptweld.C1 = CFrame.new(0, 0, 0)
- local childList = {}
- local childSize = {}
- local massConstant = 1
- mass = 24000 * massConstant
- function cross(v1, v2)
- return Vector3.new(v1.y * v2.z - v2.y * v1.z, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v2.x * v1.y)
- end
- local min = 0
- local max = 4
- while true do
- repeat
- wait()
- local n = 0
- while true do
- if n % 800 == 0 then
- wait()
- end
- n = n + 1
- local child = childList[n]
- if child ~= pt and child.Parent ~= char and child.Parent ~= char.Wings and child.Parent ~= char.Scythe and child.className == "Part" and child.Anchored == false then
- local relPos = pt.Position - child.Position
- if relPos.magnitude * 240 * massConstant < mass then
- child.RotVelocity = cross(child.CFrame.lookVector, relPos) * 20 / relPos.magnitude
- local canContinue = true
- if relPos.magnitude * 320 * massConstant < mass then
- local length = mass / (320 * relPos.magnitude * massConstant)
- if childSize[n].z * length > relPos.magnitude * 2 then
- mass = mass + child:GetMass()
- child:Remove()
- table.remove(childList, n)
- table.remove(childSize, n)
- canContinue = true
- n = n - 1
- else
- child.CanCollide = true
- end
- end
- motivator = child:FindFirstChild("Singularity")
- motivator = Instance.new("BodyPosition")
- motivator.Parent = child
- motivator.Name = "Singularity"
- motivator.position = pt.Position
- motivator.maxForce = Vector3.new(1, 1, 1) * mass * child:GetMass() / (relPos.magnitude * massConstant)
- end
- end
- end
- until n < #childList
- end
- end
- magik()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement