Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local module = {}
- function module.eer(target)
- _G.target = target
- local target = game.Players:WaitForChild(_G.target)
- script.Eer:Clone().Parent = target.Character
- end
- return module
- require(script.EzConvert)()
- wait(0.2)
- Player = game:GetService("Players").LocalPlayer
- PlayerGui = Player.PlayerGui
- Cam = workspace.CurrentCamera
- Backpack = Player.Backpack
- Character = Player.Character
- Humanoid = Character.Humanoid
- local Mouse = Player:GetMouse()
- RootPart = Character.HumanoidRootPart
- Torso = Character.Torso
- Head = Character.Head
- RightArm = Character["Right Arm"]
- LeftArm = Character["Left Arm"]
- RightLeg = Character["Right Leg"]
- LeftLeg = Character["Left Leg"]
- RootJoint = RootPart.RootJoint
- Neck = Torso.Neck
- RightShoulder = Torso["Right Shoulder"]
- LeftShoulder = Torso["Left Shoulder"]
- RightHip = Torso["Right Hip"]
- LeftHip = Torso["Left Hip"]
- IT = Instance.new
- CF = CFrame.new
- VT = Vector3.new
- RAD = math.rad
- C3 = Color3.new
- UD2 = UDim2.new
- BRICKC = BrickColor.new
- ANGLES = CFrame.Angles
- EULER = CFrame.fromEulerAnglesXYZ
- COS = math.cos
- ACOS = math.acos
- SIN = math.sin
- ASIN = math.asin
- ABS = math.abs
- MRANDOM = math.random
- FLOOR = math.floor
- Animation_Speed = 3
- Frame_Speed = 0.016666666666666666
- local Speed = 16
- local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
- local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
- local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
- local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
- local DAMAGEMULTIPLIER = 1
- local ANIM = "Idle"
- local ATTACK = false
- local EQUIPPED = false
- local HOLD = false
- local COMBO = 1
- local Rooted = false
- local SINE = 0
- local KEYHOLD = false
- local CHANGE = 2 / Animation_Speed
- local WALKINGANIM = false
- local VALUE1 = false
- local VALUE2 = false
- local ROBLOXIDLEANIMATION = IT("Animation")
- ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
- ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
- local WEAPONGUI = IT("ScreenGui", PlayerGui)
- WEAPONGUI.Name = "Weapon GUI"
- local Effects = IT("Folder", Character)
- Effects.Name = "Effects"
- local ANIMATOR = Humanoid.Animator
- ANIMATOR:Destroy()
- local ANIMATE = Character.Animate
- local UNANCHOR = true
- local HEADTURN = true
- ArtificialHB = Instance.new("BindableEvent", script)
- ArtificialHB.Name = "ArtificialHB"
- script:WaitForChild("ArtificialHB")
- frame = Frame_Speed
- tf = 0
- allowframeloss = false
- tossremainder = false
- lastframe = tick()
- script.ArtificialHB:Fire()
- game:GetService("RunService").Heartbeat:connect(function(s, p)
- tf = tf + s
- if tf >= frame then
- if allowframeloss then
- ArtificialHB:Fire()
- lastframe = tick()
- else
- for i = 1, math.floor(tf / frame) do
- ArtificialHB:Fire()
- end
- lastframe = tick()
- end
- if tossremainder then
- tf = 0
- else
- tf = tf - frame * math.floor(tf / frame)
- end
- end
- end)
- function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
- return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
- end
- function PositiveAngle(NUMBER)
- if NUMBER >= 0 then
- NUMBER = 0
- end
- return NUMBER
- end
- function NegativeAngle(NUMBER)
- if NUMBER <= 0 then
- NUMBER = 0
- end
- return NUMBER
- end
- function Swait(NUMBER)
- if NUMBER == 0 or NUMBER == nil then
- ArtificialHB.Event:wait()
- else
- for i = 1, NUMBER do
- ArtificialHB.Event:wait()
- end
- end
- end
- function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
- local NEWMESH = IT(MESH)
- if MESH == "SpecialMesh" then
- NEWMESH.MeshType = MESHTYPE
- if MESHID ~= "nil" and MESHID ~= "" then
- NEWMESH.MeshId = "http://www.roblox.com/asset/?id=" .. MESHID
- end
- if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
- NEWMESH.TextureId = "http://www.roblox.com/asset/?id=" .. TEXTUREID
- end
- end
- NEWMESH.Offset = OFFSET or VT(0, 0, 0)
- NEWMESH.Scale = SCALE
- NEWMESH.Parent = PARENT
- return NEWMESH
- end
- function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
- local NEWPART = IT("Part")
- NEWPART.formFactor = FORMFACTOR
- NEWPART.Reflectance = REFLECTANCE
- NEWPART.Transparency = TRANSPARENCY
- NEWPART.CanCollide = false
- NEWPART.Locked = true
- NEWPART.Anchored = true
- if ANCHOR == false then
- NEWPART.Anchored = false
- end
- NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
- NEWPART.Name = NAME
- NEWPART.Size = SIZE
- NEWPART.Position = Torso.Position
- NEWPART.Material = MATERIAL
- NEWPART:BreakJoints()
- NEWPART.Parent = PARENT
- return NEWPART
- end
- local weldBetween = function(a, b)
- local weldd = Instance.new("ManualWeld")
- weldd.Part0 = a
- weldd.Part1 = b
- weldd.C0 = CFrame.new()
- weldd.C1 = b.CFrame:inverse() * a.CFrame
- weldd.Parent = a
- return weldd
- end
- function QuaternionFromCFrame(cf)
- local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
- local trace = m00 + m11 + m22
- if trace > 0 then
- local s = math.sqrt(1 + trace)
- local recip = 0.5 / s
- return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
- else
- local i = 0
- if m00 < m11 then
- i = 1
- end
- if m22 > (i == 0 and m00 or m11) then
- i = 2
- end
- if i == 0 then
- local s = math.sqrt(m00 - m11 - m22 + 1)
- local recip = 0.5 / s
- return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
- elseif i == 1 then
- local s = math.sqrt(m11 - m22 - m00 + 1)
- local recip = 0.5 / s
- return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
- elseif i == 2 then
- local s = math.sqrt(m22 - m00 - m11 + 1)
- local recip = 0.5 / s
- return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
- end
- end
- end
- function QuaternionToCFrame(px, py, pz, x, y, z, w)
- local xs, ys, zs = x + x, y + y, z + z
- local wx, wy, wz = w * xs, w * ys, w * zs
- local xx = x * xs
- local xy = x * ys
- local xz = x * zs
- local yy = y * ys
- local yz = y * zs
- local zz = z * zs
- return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
- end
- function QuaternionSlerp(a, b, t)
- local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
- local startInterp, finishInterp
- if cosTheta >= 1.0E-4 then
- if 1 - cosTheta > 1.0E-4 then
- local theta = ACOS(cosTheta)
- local invSinTheta = 1 / SIN(theta)
- startInterp = SIN((1 - t) * theta) * invSinTheta
- finishInterp = SIN(t * theta) * invSinTheta
- else
- startInterp = 1 - t
- finishInterp = t
- end
- elseif 1 + cosTheta > 1.0E-4 then
- local theta = ACOS(-cosTheta)
- local invSinTheta = 1 / SIN(theta)
- startInterp = SIN((t - 1) * theta) * invSinTheta
- finishInterp = SIN(t * theta) * invSinTheta
- else
- startInterp = t - 1
- finishInterp = t
- end
- return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
- end
- function Clerp(a, b, t)
- local qa = {
- QuaternionFromCFrame(a)
- }
- local qb = {
- QuaternionFromCFrame(b)
- }
- local ax, ay, az = a.x, a.y, a.z
- local bx, by, bz = b.x, b.y, b.z
- local _t = 1 - t
- return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
- end
- function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
- local frame = IT("Frame")
- frame.BackgroundTransparency = TRANSPARENCY
- frame.BorderSizePixel = BORDERSIZEPIXEL
- frame.Position = POSITION
- frame.Size = SIZE
- frame.BackgroundColor3 = COLOR
- frame.BorderColor3 = BORDERCOLOR
- frame.Name = NAME
- frame.Parent = PARENT
- return frame
- end
- function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
- local label = IT("TextLabel")
- label.BackgroundTransparency = 1
- label.Size = UD2(1, 0, 1, 0)
- label.Position = UD2(0, 0, 0, 0)
- label.TextColor3 = TEXTCOLOR
- label.TextStrokeTransparency = STROKETRANSPARENCY
- label.TextTransparency = TRANSPARENCY
- label.FontSize = TEXTFONTSIZE
- label.Font = TEXTFONT
- label.BorderSizePixel = BORDERSIZEPIXEL
- label.TextScaled = false
- label.Text = TEXT
- label.Name = NAME
- label.Parent = PARENT
- return label
- end
- function NoOutlines(PART)
- PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
- end
- function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
- local NEWWELD = IT(TYPE)
- NEWWELD.Part0 = PART0
- NEWWELD.Part1 = PART1
- NEWWELD.C0 = C0
- NEWWELD.C1 = C1
- NEWWELD.Parent = PARENT
- return NEWWELD
- end
- local S = IT("Sound")
- function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
- local NEWSOUND
- coroutine.resume(coroutine.create(function()
- NEWSOUND = S:Clone()
- NEWSOUND.Parent = PARENT
- NEWSOUND.Volume = VOLUME
- NEWSOUND.Pitch = PITCH
- NEWSOUND.SoundId = "rbxassetid://" .. ID
- NEWSOUND:play()
- NEWSOUND.EmitterSize = VOLUME * 3
- if DOESLOOP == true then
- NEWSOUND.Looped = true
- else
- repeat
- wait(1)
- until NEWSOUND.Playing == false
- NEWSOUND:remove()
- end
- end))
- return NEWSOUND
- end
- function CFrameFromTopBack(at, top, back)
- local right = top:Cross(back)
- return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
- end
- function WACKYEFFECT(Table)
- local TYPE = Table.EffectType or "Sphere"
- local SIZE = Table.Size or VT(1, 1, 1)
- local ENDSIZE = Table.Size2 or VT(0, 0, 0)
- local TRANSPARENCY = Table.Transparency or 0
- local ENDTRANSPARENCY = Table.Transparency2 or 1
- local CFRAME = Table.CFrame or Torso.CFrame
- local MOVEDIRECTION = Table.MoveToPos or nil
- local ROTATION1 = Table.RotationX or 0
- local ROTATION2 = Table.RotationY or 0
- local ROTATION3 = Table.RotationZ or 0
- local MATERIAL = Table.Material or "Neon"
- local COLOR = Table.Color or C3(1, 1, 1)
- local TIME = Table.Time or 45
- local SOUNDID = Table.SoundID or nil
- local SOUNDPITCH = Table.SoundPitch or nil
- local SOUNDVOLUME = Table.SoundVolume or nil
- local USEBOOMERANGMATH = Table.UseBoomerangMath or false
- local BOOMERANG = Table.Boomerang or 0
- local SIZEBOOMERANG = Table.SizeBoomerang or 0
- coroutine.resume(coroutine.create(function()
- local PLAYSSOUND = false
- local SOUND
- local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1, 1, 1), true)
- if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
- PLAYSSOUND = true
- SOUND = CreateSound(SOUNDID, nil, SOUNDVOLUME, SOUNDPITCH, false)
- end
- EFFECT.Color = COLOR
- local MSH
- if TYPE == "Sphere" then
- MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0, 0, 0))
- elseif TYPE == "Block" or TYPE == "Box" then
- MSH = IT("BlockMesh", EFFECT)
- MSH.Scale = SIZE
- elseif TYPE == "Wave" then
- MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0, 0, -SIZE.X / 8))
- elseif TYPE == "Ring" then
- MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X, SIZE.X, 0.1), VT(0, 0, 0))
- elseif TYPE == "Slash" then
- MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X / 10, 0, SIZE.X / 10), VT(0, 0, 0))
- elseif TYPE == "Round Slash" then
- MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X / 10, 0, SIZE.X / 10), VT(0, 0, 0))
- elseif TYPE == "Swirl" then
- MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "168892432", "", SIZE, VT(0, 0, 0))
- elseif TYPE == "Skull" then
- MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0, 0, 0))
- elseif TYPE == "Crystal" then
- MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0, 0, 0))
- end
- if MSH ~= nil then
- local BOOMR1 = 1 + BOOMERANG / 50
- local BOOMR2 = 1 + SIZEBOOMERANG / 50
- local MOVESPEED
- if MOVEDIRECTION ~= nil then
- if USEBOOMERANGMATH == true then
- MOVESPEED = CFRAME.p - MOVEDIRECTION.Magnitude / TIME * BOOMR1
- else
- MOVESPEED = CFRAME.p - MOVEDIRECTION.Magnitude / TIME
- end
- end
- local GROWTH
- if USEBOOMERANGMATH == true then
- GROWTH = (SIZE - ENDSIZE) * (BOOMR2 + 1)
- else
- GROWTH = SIZE - ENDSIZE
- end
- local TRANS = TRANSPARENCY - ENDTRANSPARENCY
- if TYPE == "Block" then
- EFFECT.CFrame = CFRAME * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
- else
- EFFECT.CFrame = CFRAME
- end
- if SOUND then
- SOUND.Parent = EFFECT
- end
- if USEBOOMERANGMATH == true then
- for LOOP = 1, TIME + 1 do
- Swait()
- MSH.Scale = MSH.Scale - VT(GROWTH.X * (1 - LOOP / TIME * BOOMR2), GROWTH.Y * (1 - LOOP / TIME * BOOMR2), GROWTH.Z * (1 - LOOP / TIME * BOOMR2)) * BOOMR2 / TIME
- if TYPE == "Wave" then
- MSH.Offset = VT(0, 0, -MSH.Scale.Z / 8)
- end
- EFFECT.Transparency = EFFECT.Transparency - TRANS / TIME
- if TYPE == "Block" then
- EFFECT.CFrame = CFRAME * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
- else
- EFFECT.CFrame = EFFECT.CFrame * ANGLES(RAD(ROTATION1), RAD(ROTATION2), RAD(ROTATION3))
- end
- if MOVEDIRECTION ~= nil then
- local ORI = EFFECT.Orientation
- EFFECT.CFrame = CF(EFFECT.Position, MOVEDIRECTION) * CF(0, 0, -MOVESPEED * (1 - LOOP / TIME * BOOMR1))
- EFFECT.CFrame = CF(EFFECT.Position) * ANGLES(RAD(ORI.X), RAD(ORI.Y), RAD(ORI.Z))
- end
- end
- else
- for LOOP = 1, TIME + 1 do
- Swait()
- MSH.Scale = MSH.Scale - GROWTH / TIME
- if TYPE == "Wave" then
- MSH.Offset = VT(0, 0, -MSH.Scale.Z / 8)
- end
- EFFECT.Transparency = EFFECT.Transparency - TRANS / TIME
- if TYPE == "Block" then
- EFFECT.CFrame = CFRAME * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
- else
- EFFECT.CFrame = EFFECT.CFrame * ANGLES(RAD(ROTATION1), RAD(ROTATION2), RAD(ROTATION3))
- end
- if MOVEDIRECTION ~= nil then
- local ORI = EFFECT.Orientation
- EFFECT.CFrame = CF(EFFECT.Position, MOVEDIRECTION) * CF(0, 0, -MOVESPEED)
- EFFECT.CFrame = CF(EFFECT.Position) * ANGLES(RAD(ORI.X), RAD(ORI.Y), RAD(ORI.Z))
- end
- end
- end
- EFFECT.Transparency = 1
- if PLAYSSOUND == false then
- EFFECT:remove()
- else
- repeat
- Swait()
- until EFFECT:FindFirstChildOfClass("Sound") == nil
- EFFECT:remove()
- end
- elseif PLAYSSOUND == false then
- EFFECT:remove()
- else
- repeat
- Swait()
- until EFFECT:FindFirstChildOfClass("Sound") == nil
- EFFECT:remove()
- end
- end))
- end
- function MakeForm(PART, TYPE)
- if TYPE == "Cyl" then
- local MSH = IT("CylinderMesh", PART)
- elseif TYPE == "Ball" then
- local MSH = IT("SpecialMesh", PART)
- MSH.MeshType = "Sphere"
- elseif TYPE == "Wedge" then
- local MSH = IT("SpecialMesh", PART)
- MSH.MeshType = "Wedge"
- end
- end
- Debris = game:GetService("Debris")
- function CastProperRay(StartPos, EndPos, Distance, Ignore)
- local DIRECTION = CF(StartPos, EndPos).lookVector
- local Ignore = type(Ignore) == "table" and Ignore or {Ignore}
- return game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, DIRECTION * Distance), Ignore)
- end
- local Particle = IT("ParticleEmitter", nil)
- Particle.Enabled = false
- Particle.LightEmission = 0.9
- Particle.Rate = 150
- Particle.ZOffset = 0.2
- Particle.Rotation = NumberRange.new(-180, 180)
- function ParticleEmitter(Table)
- local PRTCL = Particle:Clone()
- local Color1 = Table.Color1 or C3(1, 1, 1)
- local Color2 = Table.Color2 or C3(1, 1, 1)
- local Speed = Table.Speed or 5
- local Drag = Table.Drag or 0
- local Size1 = Table.Size1 or 1
- local Size2 = Table.Size2 or 5
- local Lifetime1 = Table.Lifetime1 or 1
- local Lifetime2 = Table.Lifetime2 or 1.5
- local Parent = Table.Parent or Torso
- local Emit = Table.Emit or 100
- local Offset = Table.Offset or 360
- local Acel = Table.Acel or VT(0, 0, 0)
- local Enabled = Table.Enabled or false
- local Texture = Table.Texture or "281983280"
- local RotS = Table.RotSpeed or NumberRange.new(-15, 15)
- local Trans1 = Table.Transparency1 or 1
- local Trans2 = Table.Transparency2 or 0
- PRTCL.Parent = Parent
- PRTCL.RotSpeed = RotS
- PRTCL.Transparency = NumberSequence.new({
- NumberSequenceKeypoint.new(0, Trans1),
- NumberSequenceKeypoint.new(1, Trans2)
- })
- PRTCL.Texture = "http://www.roblox.com/asset/?id=" .. Texture
- PRTCL.Color = ColorSequence.new(Color1, Color2)
- PRTCL.Size = NumberSequence.new(Size1, Size2)
- PRTCL.Lifetime = NumberRange.new(Lifetime1, Lifetime2)
- PRTCL.Speed = NumberRange.new(Speed)
- PRTCL.VelocitySpread = Offset
- PRTCL.Drag = Drag
- PRTCL.Acceleration = Acel
- if Enabled == false then
- PRTCL:Emit(Emit)
- Debris:AddItem(PRTCL, Lifetime2)
- else
- PRTCL.Enabled = true
- end
- return PRTCL
- end
- function CamShake(SHAKE, TIMER)
- coroutine.resume(coroutine.create(function()
- local FADER = SHAKE / TIMER
- for i = 1, TIMER do
- wait()
- Humanoid.CameraOffset = VT(MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10, MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10, MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10)
- end
- Humanoid.CameraOffset = VT(0, 0, 0)
- end))
- end
- function GetRoot(MODEL, ROOT)
- if ROOT == true then
- return MODEL:FindFirstChild("HumanoidRootPart") or MODEL:FindFirstChild("Torso") or MODEL:FindFirstChild("UpperTorso")
- else
- return MODEL:FindFirstChild("Torso") or MODEL:FindFirstChild("UpperTorso")
- end
- end
- local FAKEHEAD = CreatePart(3, Character, "Fabric", 0, 0, BRICKC("Pearl"), "NewHead", VT(1, 1, 1), true)
- CreateMesh("SpecialMesh", FAKEHEAD, "FileMesh", "16973748", "1090019344", VT(1, 1, 1), VT(0, 0, 0))
- local SCARF = CreatePart(3, Character, "Fabric", 0, 0, BRICKC("Pearl"), "Scarf", VT(1, 1, 1), false)
- CreateWeldOrSnapOrMotor("Weld", Torso, Torso, SCARF, CF(0, 0, 0), CF(0, 0, 0))
- local GLASSES = CreatePart(3, Character, "Fabric", 0, 0, BRICKC("Pearl"), "Scarf", VT(1, 1, 0.9), false)
- GLASSES.CFrame = FAKEHEAD.CFrame
- CreateMesh("SpecialMesh", SCARF, "FileMesh", "448710145", "", VT(0.6, 1, 1), VT(0, 0.15, 0))
- CreateMesh("SpecialMesh", GLASSES, "FileMesh", "134026193", "134026217", VT(1.5, 1, 2), VT(0, 0.3, -0.3))
- local FACE1 = CreatePart(3, Character, "Neon", 0, 0, BRICKC("Royal purple"), "Fire", VT(1.3, 1, 0.6), false)
- MakeForm(FACE1, "Ball")
- local FACE2 = CreatePart(3, Character, "Neon", 0, 0, BRICKC("Royal purple"), "Fire", VT(1.3, 0.65, 0.55), false)
- MakeForm(FACE2, "Ball")
- local FACE3 = CreatePart(3, Character, "Neon", 0, 0, BRICKC("Royal purple"), "Fire", VT(1.3, 0.5, 0.6), false)
- MakeForm(FACE3, "Ball")
- local FACE4 = CreatePart(3, Character, "Neon", 0, 0, BRICKC("Royal purple"), "Fire", VT(1, 0.1, 1), false)
- MakeForm(FACE4, "Ball")
- CreateWeldOrSnapOrMotor("Weld", FAKEHEAD, FAKEHEAD, GLASSES, CF(0, 0, 0), CF(0, 0, 0))
- local L1 = CreateWeldOrSnapOrMotor("Weld", FAKEHEAD, FAKEHEAD, FACE1, CF(0, 0, -0.5), CF(0, 0, 0))
- local L2 = CreateWeldOrSnapOrMotor("Weld", FAKEHEAD, FAKEHEAD, FACE2, CF(0, 0.2, -0.5), CF(0, 0, 0))
- local L3 = CreateWeldOrSnapOrMotor("Weld", FAKEHEAD, FAKEHEAD, FACE3, CF(0, 0.3, -0.35), CF(0, 0, 0))
- local L4 = CreateWeldOrSnapOrMotor("Weld", FAKEHEAD, FAKEHEAD, FACE4, CF(0, -0.5, 0), CF(0, 0, 0))
- local NECKK
- Head:ClearAllChildren()
- Head.Transparency = 1
- local NCK = IT("Attachment", Torso)
- NCK.Position = VT(0, 1, 0)
- local NECKFIRE = ParticleEmitter({
- Acel = VT(0, 3.5, 0),
- Speed = 1.5,
- RotSpeed = NumberRange.new(-15, 15),
- Drag = 0.1,
- Size1 = 0.6,
- Size2 = 0,
- Lifetime1 = 0,
- Lifetime2 = 0.45,
- Parent = NCK,
- Emit = 100,
- Offset = 360,
- Enabled = true,
- Color1 = BRICKC("Royal purple").Color,
- Color2 = BRICKC("Royal purple").Color,
- Texture = "296874871"
- })
- NECKFIRE.LockedToPart = true
- NECKFIRE.Rate = 999
- local BMUSIC = IT("Sound", RootPart)
- local VOLUME = 4
- local PITCH = 1
- local SONGID = 1571736139
- local top = Instance.new("Shirt")
- top.ShirtTemplate = "rbxassetid://1533635803"
- top.Parent = Character
- top.Name = "Cloth"
- local bottom = Instance.new("Pants")
- bottom.PantsTemplate = "rbxassetid://1460022985"
- bottom.Parent = Character
- bottom.Name = "Cloth"
- local SKILLTEXTCOLOR = BRICKC("Royal purple").Color
- local SKILLFONT = "Bodoni"
- local SKILLTEXTSIZE = 6.5
- local ATTACKS = {
- "Leaping Pumpkin - Z",
- "Rollout - X",
- "Trashing - C",
- "Incinithrower - V",
- "Zoom - E",
- "Hothead - Q"
- }
- for i = 1, #ATTACKS do
- local SKILLFRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.74, 0, 0.97 - 0.03 * i, 0), UD2(0.26, 0, 0.07, 0), C3(0, 0, 0), C3(0, 0, 0), "Skill Frame")
- local SKILLTEXT = CreateLabel(SKILLFRAME, "[" .. ATTACKS[i] .. "]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.5, "Skill text")
- SKILLTEXT.TextXAlignment = "Right"
- end
- function ApplyDamage(Humanoid, Damage)
- Damage = Damage * DAMAGEMULTIPLIER
- if Humanoid.Health < 2000 then
- if Humanoid.Health - Damage > 0 then
- Humanoid.Health = Humanoid.Health - Damage
- else
- Humanoid.Parent:BreakJoints()
- end
- else
- Humanoid.Parent:BreakJoints()
- end
- end
- function ApplyAoE(POSITION, RANGE, MINDMG, MAXDMG, FLING, INSTAKILL)
- for index, CHILD in pairs(workspace:GetDescendants()) do
- if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Name ~= "PurpleEerinFireball" then
- local HUM = CHILD:FindFirstChildOfClass("Humanoid")
- if HUM then
- local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
- if TORSO and RANGE >= (TORSO.Position - POSITION).Magnitude then
- if INSTAKILL == true then
- CHILD:BreakJoints()
- else
- local DMG = MRANDOM(MINDMG, MAXDMG)
- ApplyDamage(HUM, DMG)
- end
- if FLING > 0 then
- for _, c in pairs(CHILD:GetChildren()) do
- if c:IsA("BasePart") then
- local bv = Instance.new("BodyVelocity")
- bv.maxForce = Vector3.new(1000000000, 1000000000, 1000000000)
- bv.velocity = CF(POSITION, TORSO.Position).lookVector * FLING
- bv.Parent = c
- Debris:AddItem(bv, 0.05)
- end
- end
- end
- end
- end
- end
- end
- end
- function LeapingPumpkin()
- ATTACK = true
- Rooted = true
- HEADTURN = false
- for i = 0, 0.15, 0.1 / Animation_Speed do
- Swait()
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -0.05) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(-12), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(12), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(-50), RAD(85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-50), RAD(-85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- CreateSound(166423113, Torso, 5, 1.1, false)
- CreateSound(166423113, Torso, 5, 1.1, false)
- for i = 0, 2, 0.1 / Animation_Speed do
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 4) * ANGLES(RAD(45), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- CamShake(15, 17)
- local HITS = {}
- for i = 1, 65 do
- local VALUE = -((65 - i) / 65)
- RootPart.CFrame = RootPart.CFrame * CF(0, 0, VALUE)
- Swait()
- if VALUE < -0.65 and (ANIM == "Idle" or ANIM == "Walk") then
- WACKYEFFECT({
- Time = 26,
- EffectType = "Wave",
- Size = VT(5, 0, 5),
- Size2 = VT(8, 5, 8),
- Transparency = 0.8,
- Transparency2 = 1,
- CFrame = RootPart.CFrame * CF(0, -3.5, -5) * ANGLES(RAD(45), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
- MoveToPos = nil,
- RotationX = 0.1,
- RotationY = 1,
- RotationZ = -0.1,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 0
- })
- WACKYEFFECT({
- Time = 12,
- EffectType = "Wave",
- Size = VT(0, 0, 0),
- Size2 = VT(12, 2, 12),
- Transparency = 0.8,
- Transparency2 = 1,
- CFrame = RootPart.CFrame * CF(0, -3.5, -4) * ANGLES(RAD(45), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
- MoveToPos = nil,
- RotationX = 0.1,
- RotationY = 1,
- RotationZ = -0.1,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 12
- })
- for index, CHILD in pairs(workspace:GetDescendants()) do
- if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Name ~= "PurpleEerinFireball" then
- local HUM = CHILD:FindFirstChildOfClass("Humanoid")
- if HUM then
- local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
- if TORSO and (TORSO.Position - RootPart.Position).Magnitude <= 6 then
- local PASS = true
- for E = 1, #HITS do
- if HITS[E] == CHILD then
- PASS = false
- end
- end
- if PASS == true then
- local DMG = MRANDOM(25, 45)
- ApplyDamage(HUM, DMG)
- table.insert(HITS, CHILD)
- for _, c in pairs(CHILD:GetChildren()) do
- if c:IsA("BasePart") then
- local bv = Instance.new("BodyVelocity")
- bv.maxForce = Vector3.new(1000000000, 1000000000, 1000000000)
- bv.velocity = CF(Torso.Position, TORSO.Position).lookVector * 65
- bv.Parent = c
- Debris:AddItem(bv, 0.05)
- end
- end
- end
- end
- end
- end
- end
- end
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -3) * ANGLES(RAD(90), RAD(0), RAD(0)), 0.6 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.75, 0) * ANGLES(RAD(170), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.75, 0) * ANGLES(RAD(170), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.5) * ANGLES(RAD(-45), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- for i = 0, 0.7, 0.1 / Animation_Speed do
- Swait()
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -3) * ANGLES(RAD(90), RAD(0), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.75, 0) * ANGLES(RAD(170), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.75, 0) * ANGLES(RAD(170), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.5) * ANGLES(RAD(-100), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- HEADTURN = true
- ATTACK = false
- Rooted = false
- end
- function Rollout()
- if UNANCHOR == true then
- RootPart.Velocity = VT(0, 0, 0)
- end
- ATTACK = true
- Rooted = false
- UNANCHOR = false
- HEADTURN = false
- if ANIM == "Idle" or ANIM == "Walk" then
- for i = 1, 3 do
- WACKYEFFECT({
- Time = 15,
- EffectType = "Wave",
- Size = VT(2, 0, 2),
- Size2 = VT(12, 2.5, 12),
- Transparency = 0.6,
- Transparency2 = 1,
- CFrame = CF(RootPart.CFrame * CF(0, -4, 0).p) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)),
- MoveToPos = nil,
- RotationX = 1,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = MRANDOM(9, 11) / 10,
- SoundVolume = MRANDOM(9, 11) / 2,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 22
- })
- end
- end
- coroutine.resume(coroutine.create(function()
- for i = 1, 25 do
- Swait()
- RootPart.CFrame = RootPart.CFrame * CF(0, (25 - i) / 7, 0)
- end
- end))
- CreateSound(1368583274, Torso, 5, 1.1, false)
- for i = 1, 65 do
- Swait()
- WACKYEFFECT({
- Time = 15,
- EffectType = "Round Slash",
- Size = VT(0.1, 0, 0.1),
- Size2 = VT(0, 0, 0),
- Transparency = 1,
- Transparency2 = 0.5,
- CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 35
- })
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(i * 45), RAD(0), RAD(0)), 2.5 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5, -1) * ANGLES(RAD(0), RAD(0), RAD(-90)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, -1) * ANGLES(RAD(0), RAD(0), RAD(90)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, 0, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, 0, -0.5) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
- end
- RootPart.CFrame = CF(RootPart.Position, Mouse.Hit.p)
- for E = 1, 2 do
- for i = 1, 4 do
- WACKYEFFECT({
- Time = 80,
- EffectType = "Round Slash",
- Size = VT(0, 0, 0),
- Size2 = VT(E, 0, E) / 4,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 35
- })
- end
- end
- for i = 1, 12 do
- WACKYEFFECT({
- Time = 35 - i,
- EffectType = "Wave",
- Size = VT(12, 0, 12),
- Size2 = VT(13 + i * 5, 5 + i * 3, 13 + i * 5),
- Transparency = 0.3,
- Transparency2 = 1,
- CFrame = RootPart.CFrame * CF(0, 0, -4) * ANGLES(RAD(90), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
- MoveToPos = nil,
- RotationX = 0.1,
- RotationY = 1,
- RotationZ = -0.1,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 15
- })
- end
- WACKYEFFECT({
- Time = 45,
- EffectType = "Sphere",
- Size = VT(15, 15, 15),
- Size2 = VT(35, 35, 35),
- Transparency = 0.7,
- Transparency2 = 1,
- CFrame = CF(RootPart.Position),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = SKILLTEXTCOLOR,
- SoundID = 1368637781,
- SoundPitch = 1,
- SoundVolume = 5,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 50
- })
- coroutine.resume(coroutine.create(function()
- local LANDED = false
- local ROT = 0
- local RAWS = {257001341, 257001320}
- local ROLLER = CreatePart(3, Effects, "Fabric", 0, 0, BRICKC("Pearl"), "ROLLERDAH", VT(13.02, 9.3, 12.09) / 1.5, true)
- local S = CreateSound(RAWS[MRANDOM(1, 2)], ROLLER, 10, MRANDOM(8, 13) / 10, false)
- S.EmitterSize = 70
- CreateMesh("SpecialMesh", ROLLER, "FileMesh", "16973748", "1090019344", VT(9.3, 9.3, 9.3), VT(0, 0, 0))
- local FACE = CreatePart(3, Effects, "Neon", 0, 0, BRICKC("Royal purple"), "Fire", VT(1, 0.1, 1) * 13.02, true)
- MakeForm(FACE, "Ball")
- ROLLER.CFrame = RootPart.CFrame
- local SPEED = 0
- local NECKFIRE = ParticleEmitter({
- Acel = VT(0, 75, 0),
- Speed = 6,
- RotSpeed = NumberRange.new(-15, 15),
- Drag = 0.5,
- Size1 = 7,
- Size2 = 0,
- Lifetime1 = 0,
- Lifetime2 = 1.4,
- Parent = ROLLER,
- Emit = 100,
- Offset = 360,
- Enabled = true,
- Color1 = BRICKC("Royal purple").Color,
- Color2 = BRICKC("Royal purple").Color,
- Texture = "296874871"
- })
- NECKFIRE.Rate = 999
- local TOUCHED = false
- ROLLER.Touched:Connect(function(HIT)
- if HIT.Parent ~= Character then
- TOUCHED = true
- end
- end)
- for i = 1, 15 do
- Swait()
- ROLLER.CFrame = ROLLER.CFrame * CF(0, -(i / 15), -2)
- FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
- local HITFLOOR = Raycast(ROLLER.Position, ROLLER.CFrame.lookVector, 5.5, Character)
- if TOUCHED == true or HITFLOOR then
- break
- end
- end
- local CFRAME = CF(ROLLER.Position) * ANGLES(RAD(0), RAD(ROLLER.Orientation.Y), RAD(0))
- for i = 1, 200 do
- Swait()
- local HITFLOOR = Raycast(ROLLER.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 5.5, Character)
- if HITFLOOR then
- if LANDED == false then
- LANDED = true
- coroutine.resume(coroutine.create(function()
- for i = 1, 15 do
- Swait()
- SPEED = SPEED + 0.1
- end
- end))
- end
- ROLLER.CanCollide = true
- CFRAME = CFRAME * CF(0, 0, -SPEED)
- WACKYEFFECT({
- Time = 26,
- EffectType = "Wave",
- Size = VT(12, 0, 12),
- Size2 = VT(18, 5, 18),
- Transparency = 0.8,
- Transparency2 = 1,
- CFrame = CFRAME * CF(0, -5, -7) * ANGLES(RAD(15), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
- MoveToPos = nil,
- RotationX = 0.1,
- RotationY = 1,
- RotationZ = -0.1,
- Material = "Neon",
- Color = HITFLOOR.Color,
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 15
- })
- else
- ROLLER.CanCollide = false
- SPEED = 0.8
- LANDED = false
- CFRAME = CFRAME * CF(0, -1.5, -SPEED)
- end
- ROT = ROT + SPEED * 6
- ROLLER.CFrame = CFRAME * ANGLES(RAD(-ROT), RAD(0), RAD(0))
- FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
- local COLISSION1 = Raycast(ROLLER.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 6, Character)
- local COLISSION2 = Raycast(ROLLER.Position, CFRAME.lookVector, 6, Character)
- if COLISSION1 and COLISSION1.Parent:FindFirstChildOfClass("Humanoid") then
- break
- end
- if COLISSION2 then
- break
- end
- if TOUCHED == true then
- break
- end
- end
- CamShake(6, 12)
- ApplyAoE(ROLLER.Position, 50, 25, 65, 150, true)
- ApplyAoE(ROLLER.Position, 125, 25, 65, 150, false)
- WACKYEFFECT({
- Time = 25,
- EffectType = "Sphere",
- Size = VT(15, 15, 15),
- Size2 = VT(50, 50, 50),
- Transparency = 0.7,
- Transparency2 = 1,
- CFrame = CF(ROLLER.Position),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = SKILLTEXTCOLOR,
- SoundID = 1664711478,
- SoundPitch = 1,
- SoundVolume = 8,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 50
- })
- WACKYEFFECT({
- Time = 25,
- EffectType = "Sphere",
- Size = VT(15, 15, 15),
- Size2 = VT(70, 70, 70),
- Transparency = 0.7,
- Transparency2 = 1,
- CFrame = CF(ROLLER.Position),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = SKILLTEXTCOLOR,
- SoundID = 201858144,
- SoundPitch = 1,
- SoundVolume = 5,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 50
- })
- for i = 1, 5 do
- WACKYEFFECT({
- Time = 65 - i * 12,
- EffectType = "Sphere",
- Size = VT(0, 0, 0),
- Size2 = VT(45, 45, 45) + VT(i, i, i) * 55,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(ROLLER.Position),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = SKILLTEXTCOLOR,
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 0
- })
- end
- for E = 1, 3 do
- for i = 1, 4 do
- WACKYEFFECT({
- Time = 50,
- EffectType = "Round Slash",
- Size = VT(0, 0, 0),
- Size2 = VT(E, 0, E) / 2,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(ROLLER.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 10
- })
- end
- end
- local COLISSION, POS = Raycast(ROLLER.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 12, Character)
- if COLISSION then
- for i = 1, 5 do
- WACKYEFFECT({
- Time = 20 + i * 15,
- EffectType = "Wave",
- Size = VT(15, 0, 15),
- Size2 = VT(120, 15, 120),
- Transparency = 0.6,
- Transparency2 = 1,
- CFrame = CF(POS) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15, 15)), RAD(MRANDOM(0, 360)), RAD(0)),
- MoveToPos = nil,
- RotationX = 0.2,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = MRANDOM(9, 11) / 10,
- SoundVolume = MRANDOM(9, 11) / 2,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 22
- })
- end
- end
- ROLLER.Transparency = 1
- Debris:AddItem(ROLLER, 5)
- NECKFIRE.Enabled = false
- FACE:Remove()
- for i = 1, 25 do
- local LEFTOVER = CreatePart(3, workspace, "Pebble", 0, 0, BRICKC("Pearl"), "ROLLERDAH", VT(13.02 * (MRANDOM(8, 12) / 10), 9.3 * (MRANDOM(8, 12) / 10), 12.09 * (MRANDOM(8, 12) / 10)) / 1.5 / 2, false)
- LEFTOVER.CanCollide = true
- LEFTOVER.CFrame = ROLLER.CFrame * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
- LEFTOVER.Velocity = CF(LEFTOVER.Position - VT(0, 6, 0), LEFTOVER.CFrame * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))) * CF(0, 5, 0).p).lookVector * MRANDOM(50, 320)
- Debris:AddItem(LEFTOVER, 8)
- end
- end))
- for i = 0, 0.35, 0.1 / Animation_Speed do
- Swait()
- RootPart.CFrame = RootPart.CFrame * CF(0, 0, 1.2)
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -0.05) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(-12), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(90), RAD(12), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(-50), RAD(85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-50), RAD(-85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- HEADTURN = true
- UNANCHOR = true
- ATTACK = false
- Rooted = false
- end
- function Trashing()
- local SpawnVelocity = function(PART, LOCATION, FLING)
- local bv = IT("BodyVelocity")
- bv.maxForce = VT(1000000000, 1000000000, 1000000000)
- bv.Parent = PART
- bv.velocity = CF(PART.Position, LOCATION).lookVector * FLING
- Debris:AddItem(bv, 0.35)
- end
- local TARGET = Mouse.Target
- if TARGET ~= nil and TARGET.Parent:FindFirstChildOfClass("Humanoid") then
- do
- local HUM = TARGET.Parent:FindFirstChildOfClass("Humanoid")
- local ROOT = GetRoot(HUM.Parent, false)
- if ROOT and HUM.Health > 0 and (ROOT.Position - RootPart.Position).Magnitude <= 375 then
- ATTACK = true
- Rooted = true
- CreateSound(1368573150, RightArm, 5, MRANDOM(8, 13) / 10, false)
- CreateSound(1368573150, ROOT, 5, MRANDOM(8, 13) / 10, false)
- SpawnVelocity(ROOT, ROOT.Position + VT(0, 35, 0), 80)
- do
- local SWOOSH = ParticleEmitter({
- Transparency1 = 0,
- Transparency2 = 1,
- Acel = VT(0, 0, 0),
- Speed = 0.8,
- RotSpeed = NumberRange.new(-15, 15),
- Drag = 0.1,
- Size1 = 3,
- Size2 = 2,
- Lifetime1 = 0,
- Lifetime2 = 1,
- Parent = ROOT,
- Emit = 100,
- Offset = 360,
- Enabled = true,
- Color1 = BRICKC("Royal purple").Color,
- Color2 = BRICKC("Royal purple").Color,
- Texture = "242627777"
- })
- SWOOSH.Rate = 999
- SWOOSH.LightEmission = 0.9
- for i = 0, 1, 0.1 / Animation_Speed do
- Swait()
- WACKYEFFECT({
- Time = 12,
- EffectType = "Round Slash",
- Size = VT(0, 0, 0),
- Size2 = VT(0.03, 0, 0.03),
- Transparency = 0,
- Transparency2 = 1,
- CFrame = RightArm.CFrame * CF(0, -1, 0) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 10
- })
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.04, 0, 0) * ANGLES(RAD(0), RAD(2.5), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(-12), RAD(150)) * ANGLES(RAD(0), RAD(180), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(12), RAD(-55)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1.035, 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(0.5), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.965, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-4.5), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- HEADTURN = false
- SpawnVelocity(ROOT, Mouse.Hit.p + VT(0, 5, 0), 170)
- HUM.PlatformStand = true
- CreateSound(471882099, ROOT, 5, MRANDOM(8, 13) / 10, false)
- ROOT.RotVelocity = VT(MRANDOM(-15, 15), MRANDOM(-15, 15), MRANDOM(-15, 15))
- local TOUCHES = {}
- local COLLIDED = false
- for index, CHILD in pairs(ROOT.Parent:GetChildren()) do
- if CHILD:IsA("BasePart") then
- local TOC = CHILD.Touched:Connect(function(HIT)
- if HIT.Parent ~= ROOT.Parent or HIT.Parent.Parent ~= ROOT.Parent and HIT.Parent ~= Effects then
- CamShake(6, 25)
- COLLIDED = true
- for E = 1, #TOUCHES do
- TOUCHES[E]:Disconnect()
- end
- local POS = ROOT.Position - VT(0, -0.1, 0)
- ApplyAoE(POS, 65, 25, 75, 250, false)
- for i = 1, 3 do
- WACKYEFFECT({
- Time = 45 - i * 12,
- EffectType = "Sphere",
- Size = VT(0, 0, 0),
- Size2 = VT(25, 25, 25) + VT(i, i, i) * 55,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(POS),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = SKILLTEXTCOLOR,
- SoundID = 1368637781,
- SoundPitch = MRANDOM(8, 14) / 10,
- SoundVolume = 5,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 0
- })
- end
- for E = 1, 2 do
- for i = 1, 2 do
- WACKYEFFECT({
- Time = 50,
- EffectType = "Round Slash",
- Size = VT(0, 0, 0),
- Size2 = VT(E, 0, E) / 2,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(POS) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 10
- })
- end
- end
- local COLISSION, POS = Raycast(CHILD.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 15 * CHILD.Size.Z, CHILD.Parent)
- if COLISSION then
- for i = 1, 5 do
- WACKYEFFECT({
- Time = 20 + i * 15,
- EffectType = "Wave",
- Size = VT(15, 0, 15),
- Size2 = VT(80, 15, 80),
- Transparency = 0.6,
- Transparency2 = 1,
- CFrame = CF(POS) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15, 15)), RAD(MRANDOM(0, 360)), RAD(0)),
- MoveToPos = nil,
- RotationX = 0.2,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = MRANDOM(9, 11) / 10,
- SoundVolume = MRANDOM(9, 11) / 2,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 22
- })
- end
- end
- end
- end)
- table.insert(TOUCHES, TOC)
- end
- end
- coroutine.resume(coroutine.create(function()
- for E = 1, 200 do
- Swait()
- if COLLIDED == true then
- break
- end
- end
- SWOOSH.Enabled = false
- SWOOSH.Speed = NumberRange.new(0, 25)
- SWOOSH:Emit(160)
- Debris:AddItem(SWOOSH, 5)
- for E = 1, #TOUCHES do
- TOUCHES[E]:Disconnect()
- end
- HUM.PlatformStand = false
- end))
- for i = 1, 3 do
- WACKYEFFECT({
- Time = 45 - i * 12,
- EffectType = "Sphere",
- Size = VT(0, 0, 0),
- Size2 = VT(5, 5, 5) + VT(i, i, i) * 3,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(RightArm.CFrame * CF(0, -1, 0).p),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = SKILLTEXTCOLOR,
- SoundID = 1368637781,
- SoundPitch = MRANDOM(8, 20) / 10,
- SoundVolume = 2,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 0
- })
- end
- for i = 0, 1, 0.1 / Animation_Speed do
- Swait()
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0.2, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(45), RAD(0), RAD(15)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.45, -0.5) * ANGLES(RAD(45), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(12 - 2.5 * SIN(SINE / 12)), RAD(-55 - 2.5 * SIN(SINE / 12) - 2.5 * COS(SINE / 6))) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-100), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- HEADTURN = true
- ATTACK = false
- Rooted = false
- end
- end
- end
- end
- end
- function Incinithrower()
- ATTACK = true
- Rooted = true
- local SpawnVelocity = function(PART, LOCATION, FLING)
- local bv = IT("BodyVelocity")
- bv.maxForce = VT(1000000000, 1000000000, 1000000000)
- bv.velocity = CF(PART.Position, LOCATION).lookVector * FLING
- bv.Parent = PART
- coroutine.resume(coroutine.create(function()
- wait(0.5)
- bv:Remove()
- end))
- end
- function SPAWNFIREBALL(CFRAME, FLING, SIZE)
- coroutine.resume(coroutine.create(function()
- local S = SIZE.X
- local FIRECHAR = IT("Model", workspace)
- local E = IT("BoolValue", FIRECHAR)
- E.Name = "AboutToEerin"
- FIRECHAR.Name = "PurpleEerinFireball"
- local FIREBALL = CreatePart(3, FIRECHAR, "Fabric", 0, 1, BRICKC("Pearl"), "Torso", SIZE, false)
- FIREBALL.CFrame = CFRAME
- local HED = CreatePart(3, FIRECHAR, "Fabric", 0, 1, BRICKC("Pearl"), "Head", VT(0, 0, 0), false)
- local WELD = CreateWeldOrSnapOrMotor("Weld", FIREBALL, FIREBALL, HED, CF(0, 0, 0), CF(0, 0, 0))
- local LEGDAY = CreatePart(3, FIRECHAR, "Fabric", 0, 1, BRICKC("Pearl"), "Right leg", SIZE, false)
- local WELD2 = CreateWeldOrSnapOrMotor("Weld", FIREBALL, FIREBALL, LEGDAY, CF(0, 0, 0), CF(0, 0, 0))
- CreateSound(471882099, FIREBALL, 5, MRANDOM(8, 13) / 7, false)
- local HUM = IT("Humanoid", FIRECHAR)
- HUM.MaxHealth = 25
- HUM.Health = 25
- FIREBALL.CanCollide = true
- FIREBALL.Shape = "Ball"
- WELD.Parent = FIREBALL
- WELD2.Parent = FIREBALL
- SpawnVelocity(FIREBALL, CFRAME * CF(0, 0, -1).p, MRANDOM(FLING - math.ceil(FLING / 1.5), FLING + math.ceil(FLING / 1.5)))
- local BURN = ParticleEmitter({
- Acel = VT(0, 85, 0),
- Speed = 2,
- RotSpeed = NumberRange.new(-15, 15),
- Drag = 0.5,
- Size1 = S * 2,
- Size2 = 0,
- Lifetime1 = 0,
- Lifetime2 = 0.4,
- Parent = FIREBALL,
- Emit = 100,
- Offset = 360,
- Enabled = true,
- Color1 = BRICKC("Royal purple").Color,
- Color2 = BRICKC("Royal purple").Color,
- Texture = "296874871"
- })
- BURN.Rate = 999
- local FIXMEFFS = FIRECHAR.AncestryChanged:Connect(function(G, AY)
- Swait()
- if FIRECHAR.Parent ~= workspace then
- FIRECHAR.Parent = workspace
- end
- end)
- wait(1)
- local DETONATE = false
- for E = 1, math.ceil(200 * S) do
- Swait(4)
- if HUM.Health == 0 then
- break
- end
- do
- local RANGE = 150
- local TARGET
- for index, CHILD in pairs(workspace:GetDescendants()) do
- if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD:FindFirstChild("AboutToEerin") == nil then
- local HUM = CHILD:FindFirstChildOfClass("Humanoid")
- if HUM then
- local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
- if TORSO and 0 < HUM.Health and RANGE >= (TORSO.Position - FIREBALL.Position).Magnitude then
- RANGE = (TORSO.Position - FIREBALL.Position).Magnitude
- TARGET = TORSO
- end
- end
- end
- end
- if TARGET then
- FIREBALL.CFrame = CF(FIREBALL.Position, VT(TARGET.Position.X, FIREBALL.Position.Y, TARGET.Position.Z))
- HUM:MoveTo(TARGET.Position)
- if 5 > (TARGET.Position - FIREBALL.Position).Magnitude then
- DETONATE = true
- coroutine.resume(coroutine.create(function()
- local E = IT("BoolValue", TARGET.Parent)
- E.Name = "AboutToEerin"
- local FOE = TARGET.Parent
- local HUM = FOE:FindFirstChildOfClass("Humanoid")
- if HUM then
- local FIRES = {}
- for index, CHILD in pairs(FOE:GetChildren()) do
- if CHILD:IsA("BasePart") then
- local BURN = ParticleEmitter({
- Acel = VT(0, 55, 0),
- Speed = 2,
- RotSpeed = NumberRange.new(-15, 15),
- Drag = 0.5,
- Size1 = 2,
- Size2 = 0,
- Lifetime1 = 0,
- Lifetime2 = 0.7,
- Parent = CHILD,
- Emit = 100,
- Offset = 360,
- Enabled = true,
- Color1 = BRICKC("Royal purple").Color,
- Color2 = BRICKC("Royal purple").Color,
- Texture = "296874871"
- })
- BURN.Rate = 999
- table.insert(FIRES, BURN)
- end
- end
- local DEAD = false
- for i = 1, 200 do
- Swait()
- ApplyDamage(HUM, 0.3 * S)
- if HUM.Health < 0.1 then
- DEAD = true
- break
- end
- end
- E:Remove()
- for E = 1, #FIRES do
- FIRES[E].Enabled = false
- Debris:AddItem(FIRES[E], 1.5)
- end
- if DEAD == true then
- CamShake(15, 5)
- FOE:BreakJoints()
- local CFRAME = TARGET.CFrame
- for E = 1, 2 do
- for i = 1, 4 do
- WACKYEFFECT({
- Time = 50,
- EffectType = "Round Slash",
- Size = VT(0, 0, 0),
- Size2 = VT(E, 0, E) / 6,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(CFRAME.p) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 10
- })
- end
- end
- WACKYEFFECT({
- Time = 15,
- EffectType = "Sphere",
- Size = VT(4, 4, 4) * TARGET.Size.Z,
- Size2 = VT(15, 15, 15) * TARGET.Size.Z,
- Transparency = 0.4,
- Transparency2 = 1,
- CFrame = CF(CFRAME.p),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = SKILLTEXTCOLOR,
- SoundID = 952306739,
- SoundPitch = MRANDOM(8, 14) / 15,
- SoundVolume = 5,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 0
- })
- if S > 0.4 then
- for E = 1, 5 do
- SPAWNFIREBALL(CFRAME * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))), 150, SIZE / 2)
- end
- end
- end
- end
- end))
- end
- end
- if DETONATE == true then
- break
- end
- end
- end
- FIXMEFFS:Disconnect()
- LEGDAY:Remove()
- HED:Remove()
- HUM:Remove()
- BURN.Enabled = false
- FIREBALL.CanCollide = false
- FIREBALL.Anchored = true
- Debris:AddItem(FIRECHAR, 1.5)
- if DETONATE == false then
- WACKYEFFECT({
- Time = 15,
- EffectType = "Sphere",
- Size = VT(0, 0, 0),
- Size2 = VT(6, 6, 6),
- Transparency = 0.6,
- Transparency2 = 1,
- CFrame = CF(FIREBALL.Position),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = SKILLTEXTCOLOR,
- SoundID = 952306739,
- SoundPitch = MRANDOM(8, 14) / 10,
- SoundVolume = 5,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 0
- })
- end
- end))
- end
- HEADTURN = false
- for i = 0, 1, 0.1 / Animation_Speed do
- Swait()
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24), 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 - 5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.65, 0) * ANGLES(RAD(180), RAD(-12 + 2.5 * SIN(SINE / 12)), RAD(-5 + 2.5 * SIN(SINE / 12) - 2.5 * COS(SINE / 6))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.65, 0) * ANGLES(RAD(180), RAD(12 - 2.5 * SIN(SINE / 12)), RAD(5 - 2.5 * SIN(SINE / 12) - 2.5 * COS(SINE / 6))) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.035 * SIN(SINE / 24) - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.035 * SIN(SINE / 24) - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- for E = 1, 15 do
- for i = 1, 5 do
- Swait()
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.04, 0, 0) * ANGLES(RAD(0), RAD(2.5), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-E * 155)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.65, 0) * ANGLES(RAD(220), RAD(-12), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.65, 0) * ANGLES(RAD(140), RAD(12), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1.035, 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(0.5), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.965, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-4.5), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- CamShake(15, 5)
- for i = 1, 2 do
- WACKYEFFECT({
- Time = 25,
- EffectType = "Round Slash",
- Size = VT(0, 0, 0),
- Size2 = VT(0.3, 0, 0.3) / 2,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(Head.Position) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15, 15)), RAD(MRANDOM(0, 360)), RAD(0)),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 10
- })
- end
- SPAWNFIREBALL(FAKEHEAD.CFrame * CF(0, 0.5, -0.7), 60, VT(1.3, 1.3, 1.3))
- end
- HEADTURN = true
- ATTACK = false
- Rooted = false
- end
- function Zoom()
- CreateSound(92597340, Torso, 10, 1, false)
- local SpawnVelocity = function(PART, LOCATION, FLING)
- local bv = IT("BodyVelocity")
- bv.maxForce = VT(1000000000, 1000000000, 1000000000)
- bv.Parent = PART
- bv.velocity = CF(PART.Position, LOCATION).lookVector * FLING
- Debris:AddItem(bv, 0.5)
- return bv
- end
- ATTACK = true
- Rooted = false
- UNANCHOR = false
- HEADTURN = false
- if ANIM == "Idle" or ANIM == "Walk" then
- for i = 1, 3 do
- WACKYEFFECT({
- Time = 15,
- EffectType = "Wave",
- Size = VT(2, 0, 2),
- Size2 = VT(12, 2.5, 12),
- Transparency = 0.6,
- Transparency2 = 1,
- CFrame = CF(RootPart.CFrame * CF(0, -4, 0).p) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)),
- MoveToPos = nil,
- RotationX = 1,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = MRANDOM(9, 11) / 10,
- SoundVolume = MRANDOM(9, 11) / 2,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 22
- })
- end
- coroutine.resume(coroutine.create(function()
- for i = 1, 25 do
- Swait()
- RootPart.CFrame = RootPart.CFrame * CF(0, (25 - i) / 7, 0)
- end
- end))
- for i = 1, 35 do
- Swait()
- for i = 1, 3 do
- WACKYEFFECT({
- Time = 12 - i,
- EffectType = "Wave",
- Size = VT(12, 0, 12),
- Size2 = VT(11 + i * 6, 5 + i * 2, 11 + i * 6),
- Transparency = 0.8,
- Transparency2 = 1,
- CFrame = CF(RootPart.Position, Mouse.Hit.p) * CF(0, 0, 4) * ANGLES(RAD(-90), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
- MoveToPos = nil,
- RotationX = 0.1,
- RotationY = 1,
- RotationZ = -0.1,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 15
- })
- end
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(i * 45), RAD(0), RAD(0)), 2.5 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5, -1) * ANGLES(RAD(0), RAD(0), RAD(-90)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, -1) * ANGLES(RAD(0), RAD(0), RAD(90)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, 0, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, 0, -0.5) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
- end
- end
- UNANCHOR = true
- Humanoid.PlatformStand = true
- RootPart.CFrame = CF(RootPart.Position, Mouse.Hit.p)
- local bv = SpawnVelocity(RootPart, RootPart.CFrame * CF(0, 0, -3).p, 350)
- for E = 1, 3 do
- for i = 1, 4 do
- WACKYEFFECT({
- Time = 50,
- EffectType = "Round Slash",
- Size = VT(0, 0, 0),
- Size2 = VT(E, 0, E) / 4,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 10
- })
- end
- end
- for i = 1, 7 do
- WACKYEFFECT({
- Time = 45 - i * 4,
- EffectType = "Sphere",
- Size = VT(0, 0, 0),
- Size2 = VT(5, 5, 5) + VT(i, i, i) * 25,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(RootPart.Position),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = SKILLTEXTCOLOR,
- SoundID = 1368637781,
- SoundPitch = MRANDOM(8, 20) / 10,
- SoundVolume = 6,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 0
- })
- end
- for i = 1, 12 do
- WACKYEFFECT({
- Time = 35 - i,
- EffectType = "Wave",
- Size = VT(12, 0, 12),
- Size2 = VT(11 + i * 6, 5 + i * 2, 11 + i * 6),
- Transparency = 0.3,
- Transparency2 = 1,
- CFrame = RootPart.CFrame * CF(0, 0, 12) * ANGLES(RAD(-90), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
- MoveToPos = nil,
- RotationX = 0.1,
- RotationY = 1,
- RotationZ = -0.1,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 15
- })
- end
- ApplyAoE(RootPart.Position, 85, 25, 65, 150, false)
- CamShake(12, 12)
- local WINGS = CreatePart(3, Effects, "Neon", 0, 1, BRICKC("Royal purple"), "Yes, fly!", VT(0, 0, 0), false)
- CreateMesh("SpecialMesh", WINGS, "FileMesh", "1963497039", "", VT(2.5, 1.3, 1), VT(0, 1.4, 1.2))
- CreateWeldOrSnapOrMotor("Weld", Torso, Torso, WINGS, CF(0, 0, 0), CF(0, 0, 0))
- coroutine.resume(coroutine.create(function()
- for i = 1, 5 do
- Swait()
- WINGS.Transparency = WINGS.Transparency - 0.1
- end
- end))
- local HITS = {}
- for i = 0, 1.35, 0.1 / Animation_Speed do
- Swait()
- RootPart.CFrame = Clerp(RootPart.CFrame, CF(RootPart.Position, Mouse.Hit.p), 0.3)
- bv.velocity = CF(RootPart.Position, RootPart.CFrame * CF(0, 0, -3).p).lookVector * 350
- for index, CHILD in pairs(workspace:GetDescendants()) do
- if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Name ~= "PurpleEerinFireball" then
- local HUM = CHILD:FindFirstChildOfClass("Humanoid")
- if HUM then
- local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
- if TORSO and 25 >= (TORSO.Position - RootPart.Position).Magnitude then
- local PASS = true
- for E = 1, #HITS do
- if HITS[E] == CHILD then
- PASS = false
- end
- end
- if PASS == true then
- local DMG = MRANDOM(35, 75)
- ApplyDamage(HUM, DMG)
- table.insert(HITS, CHILD)
- for _, c in pairs(CHILD:GetChildren()) do
- if c:IsA("BasePart") then
- local bv = Instance.new("BodyVelocity")
- bv.maxForce = Vector3.new(1000000000, 1000000000, 1000000000)
- bv.velocity = CF(Torso.Position, TORSO.Position).lookVector * 350
- bv.Parent = c
- Debris:AddItem(bv, 0.05)
- end
- end
- end
- end
- end
- end
- end
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(80), RAD(0), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-45), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.45, 0.45, 0.05) * ANGLES(RAD(-10), RAD(-10), RAD(-2)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.45, 0.45, 0.05) * ANGLES(RAD(-10), RAD(10), RAD(2)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
- for i = 1, 2 do
- WACKYEFFECT({
- Time = 15,
- EffectType = "Round Slash",
- Size = VT(0.25, 0, 0.25),
- Size2 = VT(0.4, 0, 0.4),
- Transparency = 0.6,
- Transparency2 = 1,
- CFrame = RootPart.CFrame * CF(0, 0, -5) * ANGLES(RAD(90), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15, 15)), RAD(MRANDOM(0, 360)), RAD(0)),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 10
- })
- end
- end
- Humanoid.PlatformStand = false
- RootPart.CFrame = CF(RootPart.Position) * ANGLES(RAD(0), RAD(RootPart.Orientation.Y), RAD(0))
- coroutine.resume(coroutine.create(function()
- for i = 1, 25 do
- Swait()
- WINGS.Transparency = WINGS.Transparency + 0.02
- end
- WINGS:Remove()
- end))
- HEADTURN = true
- ATTACK = false
- Rooted = false
- end
- function Hothead()
- ATTACK = true
- Rooted = true
- UNANCHOR = false
- HEADTURN = false
- coroutine.resume(coroutine.create(function()
- for i = 1, 25 do
- Swait()
- RootPart.CFrame = RootPart.CFrame * CF(0, (25 - i) / 2, 0)
- end
- end))
- CreateSound(1664710821, Effects, 7, 0.8, false)
- for i = 1, 165 do
- Swait()
- WACKYEFFECT({
- Time = 12,
- EffectType = "Sphere",
- Size = VT(3, 3, 3),
- Size2 = VT(0, 0, 150),
- Transparency = 0.3,
- Transparency2 = 1,
- CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = SKILLTEXTCOLOR,
- SoundID = nil,
- SoundPitch = 1,
- SoundVolume = 6,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 0
- })
- WACKYEFFECT({
- Time = 15,
- EffectType = "Round Slash",
- Size = VT(0.3, 0, 0.3),
- Size2 = VT(0, 0, 0),
- Transparency = 1,
- Transparency2 = 0.5,
- CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 35
- })
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-35), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-25 + MRANDOM(-5, 5)), RAD(-15 + MRANDOM(-5, 5)), RAD(35)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25 + MRANDOM(-5, 5)), RAD(15 + MRANDOM(-5, 5)), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- RootPart.CFrame = CF(RootPart.Position, Mouse.Hit.p)
- coroutine.resume(coroutine.create(function()
- local ROLLER = CreatePart(3, Effects, "Fabric", 0, 0, BRICKC("Pearl"), "ROLLERDAH", VT(13.02, 9.3, 12.09), true)
- local S = CreateSound(511715134, Effects, 10, MRANDOM(8, 13) / 10, false)
- CreateMesh("SpecialMesh", ROLLER, "FileMesh", "16973748", "1090019344", VT(9.3, 9.3, 9.3), VT(0, 0, 0))
- local FACE = CreatePart(3, Effects, "Neon", 0, 0, BRICKC("Royal purple"), "Fire", VT(1, 0.1, 1) * 13.02, true)
- MakeForm(FACE, "Ball")
- local BEHAVIOUR = "Idle"
- local TARGET
- local TARGETLOC = RootPart.CFrame * CF(0, 0, -25)
- local KABLAMO = false
- local LOOP = 0
- local AGGRO_LOOP = 0
- local NECKFIRE = ParticleEmitter({
- Acel = VT(0, 85, 0),
- Speed = 6,
- RotSpeed = NumberRange.new(-15, 15),
- Drag = 0.5,
- Size1 = 8,
- Size2 = 0,
- Lifetime1 = 0,
- Lifetime2 = 1.4,
- Parent = ROLLER,
- Emit = 100,
- Offset = 360,
- Enabled = true,
- Color1 = BRICKC("Royal purple").Color,
- Color2 = BRICKC("Royal purple").Color,
- Texture = "296874871"
- })
- NECKFIRE.Rate = 999
- ROLLER.CFrame = RootPart.CFrame
- FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
- local SUICIDED = false
- for i = 1, 45 do
- Swait()
- ROLLER.CFrame = ROLLER.CFrame * CF(0, 0, -(45 - i) / 35)
- FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
- end
- coroutine.resume(coroutine.create(function()
- repeat
- Swait()
- LOOP = LOOP + 1
- if BEHAVIOUR == "Idle" then
- ROLLER.CFrame = Clerp(ROLLER.CFrame, TARGETLOC, 0.1)
- elseif BEHAVIOUR == "Circle" then
- if TARGET then
- if TARGET.Parent then
- local HUM = TARGET.Parent:FindFirstChildOfClass("Humanoid")
- if HUM then
- if HUM.Health > 0 then
- local CFRAME = CF(TARGET.Position + VT(0, 65 * (TARGET.Size.Z / 2))) * ANGLES(RAD(0), RAD(LOOP), RAD(0)) * CF(0, 0, 45 * (TARGET.Size.Z / 2))
- ROLLER.CFrame = Clerp(ROLLER.CFrame, CF(CFRAME.p, TARGET.Position), 0.1)
- AGGRO_LOOP = AGGRO_LOOP + 1
- if AGGRO_LOOP >= 250 then
- BEHAVIOUR = "Attack"
- end
- else
- BEHAVIOUR = "Idle"
- end
- else
- BEHAVIOUR = "Idle"
- end
- else
- BEHAVIOUR = "Idle"
- end
- end
- elseif BEHAVIOUR == "Attack" then
- AGGRO_LOOP = 0
- local LOC = TARGET.Position
- CreateSound(257002167, ROLLER, 10, MRANDOM(8, 13) / 10, false)
- for i = 1, 25 do
- Swait()
- ROLLER.CFrame = CF(ROLLER.CFrame * CF(0, 0, 1).p, LOC)
- FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
- end
- for i = 1, 70 do
- local HITFLOOR, POS = Raycast(ROLLER.Position, ROLLER.CFrame.lookVector, 6, Character)
- ROLLER.CFrame = ROLLER.CFrame * CF(0, 0, -5)
- FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
- if HITFLOOR then
- ApplyAoE(ROLLER.Position, 135, 45, 50, 120, false)
- ApplyAoE(ROLLER.Position, 25, 45, 50, 1200, true)
- CamShake(12, 25)
- for E = 1, 7 do
- for i = 1, 4 do
- WACKYEFFECT({
- Time = 50,
- EffectType = "Round Slash",
- Size = VT(0, 0, 0),
- Size2 = VT(E, 0, E) / 4,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(ROLLER.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 10
- })
- end
- end
- for i = 1, 12 do
- WACKYEFFECT({
- Time = 75 - i * 4,
- EffectType = "Sphere",
- Size = VT(0, 0, 0),
- Size2 = VT(5, 5, 5) + VT(i, i, i) * 25,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(ROLLER.Position),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = SKILLTEXTCOLOR,
- SoundID = 1368637781,
- SoundPitch = MRANDOM(8, 20) / 10,
- SoundVolume = 10,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 0
- })
- end
- local COLISSION, POS = Raycast(ROLLER.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 12, Character)
- if COLISSION then
- for i = 1, 12 do
- WACKYEFFECT({
- Time = 20 + i * 15,
- EffectType = "Wave",
- Size = VT(15, 0, 15),
- Size2 = VT(160, 15, 160),
- Transparency = 0.6,
- Transparency2 = 1,
- CFrame = CF(POS) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15, 15)), RAD(MRANDOM(0, 360)), RAD(0)),
- MoveToPos = nil,
- RotationX = 0.2,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = MRANDOM(9, 11) / 10,
- SoundVolume = MRANDOM(9, 11) / 2,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 22
- })
- end
- end
- if KABLAMO == true then
- SUICIDED = true
- FACE:Remove()
- ROLLER.Transparency = 1
- NECKFIRE.Enabled = false
- Debris:AddItem(ROLLER, 5)
- for i = 1, 25 do
- local LEFTOVER = CreatePart(3, workspace, "Pebble", 0, 0, BRICKC("Pearl"), "ROLLERDAH", VT(13.02 * (MRANDOM(8, 12) / 10), 9.3 * (MRANDOM(8, 12) / 10), 12.09 * (MRANDOM(8, 12) / 10)) / 1.5 / 2, false)
- LEFTOVER.CanCollide = true
- LEFTOVER.CFrame = ROLLER.CFrame * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
- LEFTOVER.Velocity = CF(LEFTOVER.Position - VT(0, 6, 0), LEFTOVER.CFrame * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))) * CF(0, 5, 0).p).lookVector * MRANDOM(50, 320)
- Debris:AddItem(LEFTOVER, 8)
- end
- end
- break
- else
- WACKYEFFECT({
- Time = 15 + i,
- EffectType = "Wave",
- Size = VT(15, 0, 15),
- Size2 = VT(25, 5, 25),
- Transparency = 0.8,
- Transparency2 = 1,
- CFrame = ROLLER.CFrame * CF(0, 0, -7) * ANGLES(RAD(90), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
- MoveToPos = nil,
- RotationX = 0.1,
- RotationY = 1,
- RotationZ = -0.1,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 15
- })
- end
- end
- wait(1)
- BEHAVIOUR = "Idle"
- end
- if BEHAVIOUR ~= "Idle" then
- TARGETLOC = CF(ROLLER.Position) * ANGLES(RAD(0), RAD(ROLLER.Orientation.Y), RAD(0))
- end
- FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
- until SUICIDED == true
- end))
- for i = 1, 12 do
- local RANGE = 6000
- if BEHAVIOUR == "Attack" then
- repeat
- wait()
- until BEHAVIOUR ~= "Attack"
- end
- for index, CHILD in pairs(workspace:GetDescendants()) do
- if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD:FindFirstChild("AboutToEerin") == nil then
- local HUM = CHILD:FindFirstChildOfClass("Humanoid")
- if HUM then
- local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
- if TORSO and 0 < HUM.Health and RANGE >= (TORSO.Position - ROLLER.Position).Magnitude then
- RANGE = (TORSO.Position - ROLLER.Position).Magnitude
- TARGET = TORSO
- end
- end
- end
- end
- if TARGET then
- BEHAVIOUR = "Circle"
- else
- BEHAVIOUR = "Idle"
- end
- wait(1)
- end
- KABLAMO = true
- repeat
- local RANGE = 6.0E73
- if BEHAVIOUR == "Attack" then
- repeat
- wait()
- until BEHAVIOUR ~= "Attack"
- end
- for index, CHILD in pairs(workspace:GetDescendants()) do
- if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD:FindFirstChild("AboutToEerin") == nil then
- local HUM = CHILD:FindFirstChildOfClass("Humanoid")
- if HUM then
- local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
- if TORSO and 0 < HUM.Health and RANGE >= (TORSO.Position - ROLLER.Position).Magnitude then
- RANGE = (TORSO.Position - ROLLER.Position).Magnitude
- TARGET = TORSO
- end
- end
- end
- end
- if TARGET then
- BEHAVIOUR = "Circle"
- else
- BEHAVIOUR = "Idle"
- end
- wait(1)
- until SUICIDED == true
- end))
- for E = 1, 3 do
- for i = 1, 4 do
- WACKYEFFECT({
- Time = 50,
- EffectType = "Round Slash",
- Size = VT(0, 0, 0),
- Size2 = VT(E, 0, E) / 4,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = true,
- Boomerang = 0,
- SizeBoomerang = 10
- })
- end
- end
- CreateSound(401056199, Effects, 7, 0.8, false)
- CreateSound(1664711478, Effects, 7, 0.8, false)
- for i = 1, 7 do
- WACKYEFFECT({
- Time = 45 - i * 4,
- EffectType = "Sphere",
- Size = VT(0, 0, 0),
- Size2 = VT(5, 5, 5) + VT(i, i, i) * 25,
- Transparency = 0,
- Transparency2 = 1,
- CFrame = CF(RootPart.Position),
- MoveToPos = nil,
- RotationX = 0,
- RotationY = 0,
- RotationZ = 0,
- Material = "Neon",
- Color = SKILLTEXTCOLOR,
- SoundID = nil,
- SoundPitch = MRANDOM(8, 20) / 10,
- SoundVolume = 6,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 0
- })
- end
- for i = 1, 15 do
- WACKYEFFECT({
- Time = 35 - i,
- EffectType = "Wave",
- Size = VT(12, 0, 12),
- Size2 = VT(13 + i * 7, 5 + i * 3, 13 + i * 7),
- Transparency = 0.3,
- Transparency2 = 1,
- CFrame = RootPart.CFrame * CF(0, 0, -4) * ANGLES(RAD(90), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
- MoveToPos = nil,
- RotationX = 0.1,
- RotationY = 1,
- RotationZ = -0.1,
- Material = "Neon",
- Color = C3(1, 1, 1),
- SoundID = nil,
- SoundPitch = nil,
- SoundVolume = nil,
- UseBoomerangMath = false,
- Boomerang = 0,
- SizeBoomerang = 15
- })
- end
- for i = 0, 0.5, 0.1 / Animation_Speed do
- Swait()
- RootPart.CFrame = RootPart.CFrame * CF(0, 0, 1.2)
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -0.05) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(-12), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(90), RAD(12), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(-50), RAD(85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-50), RAD(-85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- HEADTURN = true
- UNANCHOR = true
- ATTACK = false
- Rooted = false
- end
- function Wave()
- ATTACK = true
- Rooted = true
- HEADTURN = false
- for i = 1, 100 do
- Swait()
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24), -0.15, -0.1 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(15), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-10 - 5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(-12 + 2.5 * SIN(SINE / 12)), RAD(55 + 2.5 * SIN(SINE / 12) - 2.5 * COS(SINE / 6))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.8, 0.4) * ANGLES(RAD(170), RAD(0), RAD(-25 - 25 * SIN(i / 3))) * ANGLES(RAD(0), RAD(-45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.035 * SIN(SINE / 24) - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(20), RAD(85), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.035 * SIN(SINE / 24) - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(20), RAD(-85), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- HEADTURN = true
- ATTACK = false
- Rooted = false
- end
- function Taunt()
- ATTACK = true
- Rooted = true
- HEADTURN = false
- local function E()
- for i = 0, 0.45, 0.1 / Animation_Speed do
- Swait()
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -0.035) * ANGLES(RAD(25), RAD(0), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(-12), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(45), RAD(12), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(35), RAD(85), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(35), RAD(-85), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- end
- repeat
- E()
- for i = 0, 0.45, 0.1 / Animation_Speed do
- Swait()
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.08, 0, 0) * ANGLES(RAD(0), RAD(5), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65, 0) * ANGLES(RAD(160), RAD(-12), RAD(35)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65, 0) * ANGLES(RAD(160), RAD(12), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1.07, 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(3), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.9299999999999999, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-7), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- E()
- for i = 0, 0.45, 0.1 / Animation_Speed do
- Swait()
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(-0.08, 0, 0) * ANGLES(RAD(0), RAD(-5), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65, 0) * ANGLES(RAD(160), RAD(-12), RAD(35)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65, 0) * ANGLES(RAD(160), RAD(12), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.9299999999999999, 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-7), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1.07, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(3), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- until KEYHOLD == false
- HEADTURN = true
- ATTACK = false
- Rooted = false
- end
- function MouseDown(Mouse)
- if ATTACK == false then
- end
- end
- function MouseUp(Mouse)
- HOLD = false
- end
- function KeyDown(Key)
- KEYHOLD = true
- if Key == "z" and ATTACK == false then
- LeapingPumpkin()
- end
- if Key == "x" and ATTACK == false then
- Rollout()
- end
- if Key == "c" and ATTACK == false then
- Trashing()
- end
- if Key == "v" and ATTACK == false then
- Incinithrower()
- end
- if Key == "e" and ATTACK == false then
- Zoom()
- end
- if Key == "q" and ATTACK == false then
- Hothead()
- end
- if Key == "t" and ATTACK == false then
- Taunt()
- end
- if Key == "m" and ATTACK == false then
- if Speed == 16 then
- Speed = 50
- elseif Speed == 50 then
- Speed = 16
- end
- end
- if Key == "p" and ATTACK == false then
- Wave()
- end
- if Key == "n" and ATTACK == false then
- if HEADTURN == true then
- HEADTURN = false
- elseif HEADTURN == false then
- HEADTURN = true
- end
- end
- end
- function KeyUp(Key)
- KEYHOLD = false
- end
- Mouse.Button1Down:connect(function(NEWKEY)
- MouseDown(NEWKEY)
- end)
- Mouse.Button1Up:connect(function(NEWKEY)
- MouseUp(NEWKEY)
- end)
- Mouse.KeyDown:connect(function(NEWKEY)
- KeyDown(NEWKEY)
- end)
- Mouse.KeyUp:connect(function(NEWKEY)
- KeyUp(NEWKEY)
- end)
- function unanchor()
- for _, c in pairs(Character:GetChildren()) do
- if c:IsA("BasePart") and c ~= RootPart and c ~= FAKEHEAD then
- c.Anchored = false
- end
- end
- if UNANCHOR == true then
- RootPart.Anchored = false
- else
- RootPart.Anchored = true
- end
- end
- Humanoid.Changed:connect(function(Jump)
- if Jump == "Jump" and Disable_Jump == true then
- Humanoid.Jump = false
- end
- end)
- local TIMESTAMP = 0
- local FIXING = false
- while true do
- Swait()
- for _, c in pairs(Character:GetChildren()) do
- if c.ClassName == "Part" then
- if c:FindFirstChildOfClass("BodyPosition") then
- c:FindFirstChildOfClass("BodyPosition"):remove()
- end
- end
- end
- script.Parent = WEAPONGUI
- ANIMATE.Parent = nil
- for _, v in next, Humanoid:GetPlayingAnimationTracks() do
- v:Stop()
- end
- SINE = SINE + CHANGE
- local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
- local TORSOVERTICALVELOCITY = RootPart.Velocity.y
- local HITFLOOR = Raycast(RootPart.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 4, Character)
- local WALKSPEEDVALUE = 8 / (Humanoid.WalkSpeed / 16)
- local SPEED = WALKSPEEDVALUE
- if SPEED > 2 then
- SPEED = 2
- end
- if ANIM == "Walk" and TORSOVELOCITY > 1 then
- RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0.1 * COS(SINE / (WALKSPEEDVALUE / 2))) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
- Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.6 / Animation_Speed)
- RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 0.875 - 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE * 2), 0.25 * SIN(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10 + 50 * COS(SINE / WALKSPEEDVALUE))), 0.6 * SPEED / Animation_Speed)
- LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 0.875 + 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE * 2), -0.25 * SIN(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-10 + 50 * COS(SINE / WALKSPEEDVALUE))), 0.6 * SPEED / Animation_Speed)
- elseif ANIM ~= "Walk" or TORSOVELOCITY < 1 then
- RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
- Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
- RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.7 / Animation_Speed)
- LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.7 / Animation_Speed)
- end
- if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
- ANIM = "Jump"
- if ATTACK == false then
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-35), RAD(0), RAD(25 + 10 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-35), RAD(0), RAD(-25 - 10 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.4, -0.6) * ANGLES(RAD(1), RAD(90), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
- ANIM = "Fall"
- if ATTACK == false then
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(35 - 4 * COS(SINE / 6)), RAD(0), RAD(45 + 10 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(35 - 4 * COS(SINE / 6)), RAD(0), RAD(-45 - 10 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3, -0.7) * ANGLES(RAD(-25 + 5 * SIN(SINE / 12)), RAD(90), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.8, -0.3) * ANGLES(RAD(-10), RAD(-80), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
- ANIM = "Idle"
- if ATTACK == false then
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24), 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 - 5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(-12 + 2.5 * SIN(SINE / 12)), RAD(55 + 2.5 * SIN(SINE / 12) - 2.5 * COS(SINE / 6))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(12 - 2.5 * SIN(SINE / 12)), RAD(-55 - 2.5 * SIN(SINE / 12) - 2.5 * COS(SINE / 6))) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.035 * SIN(SINE / 24) - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.035 * SIN(SINE / 24) - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
- ANIM = "Walk"
- if ATTACK == false then
- if Humanoid.WalkSpeed < 25 then
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -0.05) * ANGLES(RAD(5), RAD(0), RAD(-7 * COS(SINE / WALKSPEEDVALUE))), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(5 - 1 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(7 * COS(SINE / WALKSPEEDVALUE))), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.22 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(0), RAD(50 - 5 * SIN(SINE / (WALKSPEEDVALUE / 2)))) * ANGLES(RAD(60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0.22 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(0), RAD(-50 + 5 * SIN(SINE / (WALKSPEEDVALUE / 2)))) * ANGLES(RAD(-60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
- else
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.6, 0.4) * ANGLES(RAD(-125 + 5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(-12 + 5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.6, 0.4) * ANGLES(RAD(-125 + 5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(12 - 5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(-45), RAD(85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-45), RAD(-85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
- end
- end
- end
- if HEADTURN == true and ANIM == "Idle" then
- if NECKK then
- NECKK:Remove()
- NECKK = nil
- end
- if Mouse.Hit.p then
- FAKEHEAD.CFrame = CF(Head.CFrame * CF(0, 0.5, 0).p) * ANGLES(RAD(0), RAD(FAKEHEAD.Orientation.Y), RAD(0))
- FAKEHEAD.CFrame = Clerp(FAKEHEAD.CFrame, CF(FAKEHEAD.Position, Mouse.Hit.p), 0.1)
- end
- FAKEHEAD.Anchored = true
- GLASSES.CFrame = FAKEHEAD.CFrame
- FACE1.CFrame = FAKEHEAD.CFrame * L1.C0
- FACE2.CFrame = FAKEHEAD.CFrame * L2.C0
- FACE3.CFrame = FAKEHEAD.CFrame * L3.C0
- FACE4.CFrame = FAKEHEAD.CFrame * L4.C0
- FAKEHEAD.Velocity = VT(0, 0, 0)
- GLASSES.Velocity = VT(0, 0, 0)
- FACE1.Velocity = VT(0, 0, 0)
- FACE2.Velocity = VT(0, 0, 0)
- FACE3.Velocity = VT(0, 0, 0)
- FACE4.Velocity = VT(0, 0, 0)
- else
- if NECKK == nil then
- NECKK = weldBetween(FAKEHEAD, Head)
- else
- NECKK.C1 = Clerp(NECKK.C1, CF(0, 0.55, 0), 0.2)
- end
- FAKEHEAD.Anchored = false
- end
- unanchor()
- Humanoid.MaxHealth = 1000
- Humanoid.Health = 1000
- if Rooted == false then
- Disable_Jump = false
- Humanoid.WalkSpeed = Speed
- elseif Rooted == true then
- Disable_Jump = true
- Humanoid.WalkSpeed = 0
- end
- BMUSIC.SoundId = "rbxassetid://" .. SONGID
- BMUSIC.Looped = true
- BMUSIC.Pitch = PITCH
- BMUSIC.Volume = VOLUME
- BMUSIC.Playing = true
- BMUSIC.EmitterSize = 50
- if BMUSIC.Parent ~= RootPart then
- print("Fixing music")
- BMUSIC = IT("Sound", RootPart)
- BMUSIC.SoundId = "rbxassetid://" .. SONGID
- BMUSIC.Looped = true
- BMUSIC.Pitch = PITCH
- BMUSIC.Volume = VOLUME
- BMUSIC.Playing = true
- BMUSIC.EmitterSize = 50
- BMUSIC.TimePosition = TIMESTAMP
- FIXING = true
- elseif FIXING == false then
- TIMESTAMP = BMUSIC.TimePosition
- else
- FIXING = false
- end
- Humanoid.DisplayDistanceType = "None"
- for _, c in pairs(Character:GetChildren()) do
- if c.ClassName == "Part" and c.Name ~= "Eye" and c ~= FACE1 and c ~= FACE2 and c ~= FACE3 and c ~= FACE4 and c ~= FAKEHEAD then
- c.Material = "Fabric"
- if c:FindFirstChildOfClass("ParticleEmitter") then
- c:FindFirstChildOfClass("ParticleEmitter"):remove()
- end
- c.Color = C3(0, 0, 0)
- if c == Head then
- c:ClearAllChildren()
- c.Transparency = 1
- end
- elseif c.ClassName == "CharacterMesh" or c.ClassName == "Accessory" or c.Name == "Body Colors" then
- c:remove()
- elseif (c.ClassName == "Shirt" or c.ClassName == "Pants") and c.Name ~= "Cloth" then
- c:remove()
- end
- end
- Humanoid.Name = "Eerin"
- end
- -------------------------------------------------
- return function()
- local fakeEvent = require(script:WaitForChild'FakeEvent')
- local fakemouse = script.Client
- local sc = getfenv(2).script
- local Player;
- if(sc.Parent:IsA'PlayerGui')then
- Player=sc.Parent.Parent
- elseif(script.Parent.Parent:IsA'Model')then
- Player = game:service'Players':GetPlayerFromCharacter(script.Parent.Parent)
- end
- local ScriptCreated = {}
- assert(Player and Player:IsA'Player')
- local event = Instance.new("RemoteEvent")
- event.Name='INPUTEVENT_'..sc.Name..game:service'HttpService':GenerateGUID(0)
- event.Parent=Player.Character;
- local gcp = Instance.new("RemoteFunction")
- gcp.Name='GetClientProperty'..event.Name
- gcp.Parent=Player.Character;
- local scp = Instance.new("RemoteEvent")
- scp.Name='SetClientProperty'..event.Name
- scp.Parent=Player.Character;
- local loudnesses = {}
- local function GetClientProperty(inst,prop)
- if(prop == 'PlaybackLoudness' and loudnesses[inst])then
- return loudnesses[inst]
- elseif(prop == 'PlaybackLoudness')then
- return gcp:InvokeClient(Player,'RegSound',inst)
- end
- return gcp:InvokeClient(Player,inst,prop)
- end
- local function SetClientProperty(inst,idx,val)
- scp:FireClient(Player,inst,idx,val)
- end
- local FakeMouse = fakemouse:Clone();
- FakeMouse.Parent = Player.Character;
- FakeMouse:WaitForChild'Remote'.Value=event
- FakeMouse.Disabled = false
- local fakes={}
- local object={}
- object.__index=function(self,idx)
- local val = rawget(self,idx) or rawget(self,'real')[idx];
- if(typeof(val)=='function')then
- return function(self2,...)
- local realFunc = (rawget(self,'real') or {})[idx]==val
- return val((realFunc and self2==self and rawget(self,'real') or self2),...)
- end
- end
- return val
- end
- object.__type='Instance'
- object.__tostring=function(self)
- return rawget(self,'real').Name
- end
- gcp.OnServerInvoke = function(plr,inst,play)
- if plr~=Player then return end
- if(inst and typeof(inst) == 'Instance' and inst:IsA'Sound')then
- loudnesses[inst]=play
- end
- end
- local function wrapObject(realobj)
- local fakeobj = {real=realobj}
- if(realobj.ClassName=='Sound')then
- local needsLoudness=false;
- setmetatable(fakeobj,{__index=function(s,i)
- if(i=='PlaybackLoudness')then
- needsLoudness=true;
- return loudnesses[realobj] or 0
- else
- return rawget(object,'__index')(s,i)
- end
- end,
- __type='Instance',
- __tostring=function(self)
- return rawget(self,'real').Name
- end,
- __newindex=function(s,i,v)
- realobj[i]=v
- end})
- coroutine.wrap(function()
- repeat wait() until needsLoudness;
- GetClientProperty(realobj,'PlaybackLoudness')
- end)()
- elseif(realobj.ClassName=='ObjectValue')then
- setmetatable(fakeobj,object)
- getmetatable(fakeobj).__newindex=function(s,i,v)
- if(i=='Value' and fakes[v])then
- realobj.Value = fakes[v]
- else
- realobj[i]=v
- end
- end
- elseif(realobj.ClassName=='TextBox')then
- ScriptCreated[realobj]=true;
- end
- fakes[fakeobj]=realobj
- return fakeobj
- end
- local function getReal(i)
- return fakes[i] or i
- end
- local fakeGame={real=game};
- local fakeInstance={new=function(objName,par)
- local realobj = Instance.new(objName)
- local fakeobj = wrapObject(realobj)
- realobj.Parent=getReal(par)
- local wrapped = getmetatable(fakeobj) and getmetatable(fakeobj).__index and true or false
- return wrapped and fakeobj or realobj
- end};
- local fakePlayer={};
- fakePlayer.real=Player;
- fakePlayer.mouse={
- KeyDown=fakeEvent();
- KeyUp=fakeEvent();
- Button1Down=fakeEvent();
- Button1Up=fakeEvent();
- Button2Down=fakeEvent();
- Button2Up=fakeEvent();
- Target=nil;
- Hit=CFrame.new();
- }
- fakePlayer.GetMouse=function(self)
- return self.mouse;
- end
- local services = {
- Players={real=game:service'Players',LocalPlayer=fakePlayer,localPlayer=fakePlayer};
- UserInputService={real=game:service'UserInputService',InputBegan=fakeEvent(),InputEnded=fakeEvent(),InputChanged=fakeEvent()};
- Debris={real=game:service'Debris',AddItem=function(self,item,timer)
- if(fakes[item])then
- item = fakes[item]
- end
- self.real:AddItem(item,timer)
- end};
- RunService={
- _bound={},
- _lastCall=tick();
- real=game:service'RunService',
- RenderStepped=game:service'RunService'.Stepped,
- BindToRenderStep=function(self,n,_,func)
- self._bound[n]=func;
- end;
- UnbindFromRenderStep=function(self,n,_,func)
- self:BindToRenderStep(n)
- end;
- };
- }
- services.Debris.addItem=services.Debris.AddItem
- services.RunService.RenderStepped:connect(function()
- local ct = tick();
- local lt = services.RunService._lastCall;
- local dt = ct-lt
- services.RunService._lastCall=ct;
- for name,func in next, services.RunService._bound do
- func(dt)
- end
- end)
- local function getService(self,name)
- if(self==fakeGame)then
- return services[name] or game:service(name)
- end
- end
- fakeGame.service=getService;
- fakeGame.GetService=getService;
- for i,v in next, services do
- fakes[v]=v.real
- fakeGame[v.real.Name]=v
- setmetatable(v,object)
- end
- setmetatable(fakeGame,object)
- setmetatable(fakePlayer,object)
- fakes[fakeGame]=game
- fakes[fakePlayer]=Player
- local oLL = LoadLibrary;
- local rbxutil = oLL"RbxUtility"
- getfenv(2).game=fakeGame
- getfenv(2).Instance=fakeInstance;
- getfenv(2).LoadLibrary=function(lib)
- local library = oLL(lib)
- if(library==rbxutil)then
- return setmetatable({
- Create=function(inst)
- local instance = fakeInstance.new(inst)
- return function(tab)
- for i,v in next, tab do
- instance[getReal(i)]=getReal(v)
- end
- return instance
- end
- end
- },{__index=function(_,v) return rbxutil[v] end})
- else
- return library
- end
- end
- getfenv(2).Wrap=wrapObject; -- lets you wrap your instances manually so that you have access to .PlaybackLoudness on sounds, etc.
- event.OnServerEvent:connect(function(self,data)
- local type = data.Type;
- if(data.Event)then
- local event = (type=='Mouse' and fakePlayer.mouse or type=='UserInput' and services.UserInputService or {})[data.Event]
- local eventIsFake = pcall(function()
- return event._connections~=nil
- end)
- if(event and eventIsFake)then
- event:fire(unpack(data.Args))
- end
- elseif(type=='Mouse')then
- fakePlayer.mouse.Target=data.Target
- fakePlayer.mouse.Hit=data.Hit
- elseif(type=='TextboxReplication')then
- if(ScriptCreated[data.TextBox])then
- data.TextBox.Text = data.Text
- end
- end
- end)
- repeat wait() until gcp:InvokeClient(Player,'Ready')
- coroutine.wrap(function() print("using EzConvert by "..game:service'Players':GetNameFromUserIdAsync(5719877)) end)
- return GetClientProperty,SetClientProperty;
- --else
- --return error("Make sure you're using a server-script!")
- end
- local me = game:service'Players'.localPlayer;
- local pg = me:FindFirstChildOfClass'PlayerGui'
- local mouse = me:GetMouse();
- local UIS = game:service'UserInputService'
- local ch = me.Character;
- local sentMouseData = {}
- local UserEvent = (function()
- local Ret;
- repeat wait() Ret = script:WaitForChild'Remote'.Value until Ret
- return Ret
- end)()
- UIS.InputChanged:connect(function(io,gpe)
- if(gpe)then return end
- local fakeIo = {KeyCode=io.KeyCode,UserInputType=io.UserInputType,Delta=io.Delta,Position=io.Position,UserInputState=io.UserInputState}
- UserEvent:FireServer{Type='UserInput',Event='InputChanged',Args={fakeIo,gpe and true or false}}
- end)
- UIS.InputBegan:connect(function(io,gpe)
- if(gpe)then return end
- local fakeIo = {KeyCode=io.KeyCode,UserInputType=io.UserInputType,Delta=io.Delta,Position=io.Position,UserInputState=io.UserInputState}
- UserEvent:FireServer{Type='UserInput',Event='InputBegan',Args={fakeIo,gpe and true or false}}
- end)
- UIS.InputEnded:connect(function(io,gpe)
- if(gpe)then return end
- local fakeIo = {KeyCode=io.KeyCode,UserInputType=io.UserInputType,Delta=io.Delta,Position=io.Position,UserInputState=io.UserInputState}
- UserEvent:FireServer{Type='UserInput',Event='InputEnded',Args={fakeIo,gpe and true or false}}
- end)
- mouse.KeyDown:connect(function(k)
- UserEvent:FireServer{Type='Mouse',Event='KeyDown',Args={k}}
- end)
- mouse.KeyUp:connect(function(k)
- UserEvent:FireServer{Type='Mouse',Event='KeyUp',Args={k}}
- end)
- mouse.Button1Down:connect(function()
- UserEvent:FireServer{Type='Mouse',Event='Button1Down',Args={}}
- end)
- mouse.Button1Up:connect(function()
- UserEvent:FireServer{Type='Mouse',Event='Button1Up',Args={}}
- end)
- mouse.Button2Down:connect(function()
- UserEvent:FireServer{Type='Mouse',Event='Button2Down',Args={}}
- end)
- mouse.Button2Up:connect(function()
- UserEvent:FireServer{Type='Mouse',Event='Button2Up',Args={}}
- end)
- UIS.TextBoxFocusReleased:connect(function(inst)
- UserEvent:FireServer{Type='TextboxReplication',TextBox=inst,Text=inst.Text}
- end)
- local ClientProp = ch:WaitForChild('GetClientProperty'..UserEvent.Name,30)
- local SClientProp = ch:WaitForChild('SetClientProperty'..UserEvent.Name,30)
- local sounds = {}
- function regSound(o)
- if(o:IsA'Sound')then
- local lastLoudness = o.PlaybackLoudness
- ClientProp:InvokeServer(o,lastLoudness)
- table.insert(sounds,{o,lastLoudness})
- --ClientProp:FireServer(o,o.PlaybackLoudness)
- end
- end
- ClientProp.OnClientInvoke = function(inst,prop)
- if(inst == 'RegSound')then
- regSound(prop)
- for i = 1, #sounds do
- if(sounds[i][1] == prop)then
- return sounds[i][2]
- end
- end
- elseif(inst=='Ready')then
- return true
- else
- return inst[prop]
- end
- end
- SClientProp.OnClientEvent:connect(function(inst,prop,val)
- inst[prop]=val
- print(inst[prop])
- end)
- coroutine.wrap(function()
- while true do
- local data = {Target=mouse.Target,Hit=mouse.Hit}
- if(sentMouseData.Target~=data.Target or sentMouseData.Hit~=data.Hit)then
- sentMouseData=data
- --warn'new data sent!'
- UserEvent:FireServer({Type='Mouse',Target=data.Target,Hit=data.Hit})
- end
- wait()
- end
- end)()
- game:service'RunService'.Stepped:connect(function()
- for i = 1, #sounds do
- local tab = sounds[i]
- local object,last=unpack(tab)
- if(object.PlaybackLoudness ~= last)then
- sounds[i][2]=object.PlaybackLoudness
- ClientProp:InvokeServer(object,sounds[i][2])
- end
- end
- end)
- for _,v in next, workspace:GetDescendants() do regSound(v) end
- workspace.DescendantAdded:connect(regSound)
- me.Character.DescendantAdded:connect(regSound)
- local signal = require(script:WaitForChild'ScriptConnection').new
- local fakeEvent = {}
- function fakeEvent.new()
- local conn = {
- _connections={};
- }
- setmetatable(conn,{__index=fakeEvent})
- return conn;
- end
- function fakeEvent:fire(...)
- for i = 1,#self._connections do
- local connection = self._connections[i]
- connection.Function(#connection.Args>0 and unpack(connection.Args) or ...)
- end
- end
- function fakeEvent:connect(func,...)
- local obj = signal(self,func,...)
- warn(obj)
- table.insert(self._connections,obj)
- end
- fakeEvent.Fire=fakeEvent.fire;
- fakeEvent.Connect=fakeEvent.connect;
- setmetatable(fakeEvent,{__call=fakeEvent.new})
- return fakeEvent;local ScriptConnection = {}
- function ScriptConnection.new(event,func,...)
- local connObj = newproxy(true)
- local conn = {
- Event=event;
- Function=func;
- Args={...};
- Object=connObj;
- }
- getmetatable(connObj).__index=function(self,index)
- if(index=='Locked')then
- return nil;
- else
- return conn[index] or ScriptConnection[index]
- end
- end
- getmetatable(connObj).__newindex=function(self,index,value)
- if(index=='Locked' and getfenv(2).script==script)then
- conn.Locked=value
- elseif(index~='Locked')then
- conn[index]=value
- end
- end
- return connObj;
- end
- function ScriptConnection:disconnect()
- self.Event._connections[self]=nil;
- end
- function ScriptConnection:Lock(key)
- self.Locked=key;
- end
- function ScriptConnection:Unlock(key)
- if(self.Locked==key)then
- self.Locked=nil;
- else
- error("Invalid key!",2)
- end
- end
- ScriptConnection.Disconnect=ScriptConnection.disconnect;
- setmetatable(ScriptConnection,{__call=function(s,...)ScriptConnection.new(...) end})
- return ScriptConnection;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement