Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --//====================================================\\--
- --|| BANZAI BAZOOKA
- --\\====================================================//--
- local MODULE = script
- local CHARACTER = owner.Character
- local PLAYER = game:GetService("Players"):GetPlayerFromCharacter(CHARACTER)
- local HUM = CHARACTER.Humanoid
- local EVENTER = Instance.new("RemoteEvent",script)
- EVENTER.Name = "Event"
- local REMOTE = MODULE.Event
- local MAINCOLOR = BrickColor.new("Slime green")
- local MAINCOLOR2 = BrickColor.new("Really red")
- HELMETMODEL = Instance.new("Part",script)
- HELMETMODEL.Name = "Helmet"
- HELMETMODEL.Material = "Metal"
- HELMETMODEL.BrickColor = MAINCOLOR
- HELMETMODEL.Size = Vector3.new(1.617, 0.651, 1.703)
- HELMETMSH = Instance.new("SpecialMesh",HELMETMODEL)
- HELMETMSH.MeshId = "rbxassetid://1045381"
- BAZOOKAA = Instance.new("Part",script)
- BAZOOKAA.Name = "Bazooka"
- BAZOOKAA.Material = "Metal"
- BAZOOKAA.BrickColor = MAINCOLOR
- BAZOOKAA.Size = Vector3.new(0.361, 0.36, 1.377)
- BAZMSH = Instance.new("SpecialMesh",BAZOOKAA)
- BAZMSH.MeshId = "rbxassetid://94690054"
- MISLE = Instance.new("Part",script)
- MISLE.Name = "Missile"
- MISLE.Material = "Metal"
- MISLE.BrickColor = MAINCOLOR2
- MISLE.Size = Vector3.new(1.23, 1.863, 5.643)
- MISH = Instance.new("SpecialMesh",MISLE)
- MISH.MeshId = "rbxassetid://103970395"
- MISH.TextureId = "rbxassetid://103967643"
- local ControlsGUI = Instance.new("ScreenGui")
- local ToggleButton = Instance.new("TextButton")
- local Controls = Instance.new("Frame")
- local ScriptCredits = Instance.new("TextLabel")
- local Text = Instance.new("TextLabel")
- local Text_2 = Instance.new("TextLabel")
- local Stored = Instance.new("TextLabel")
- local HINDD = Instance.new("Attachment",MISLE)
- HINDD.Position = Vector3.new(0, 0, 0.8)
- HINDD.WorldAxis = Vector3.new(1, 0, 0)
- HINDD.WorldPosition = Vector3.new(107.568, 0.706, 203.807)
- HINDD.Name = "Hind"
- HINDD.WorldSecondaryAxis = Vector3.new(0, 1, 0)
- --Converted with ttyyuu12345's model to script plugin v4
- function sandbox(var,func)
- local env = getfenv(func)
- local newenv = setmetatable({},{
- __index = function(self,k)
- if k=="script" then
- return var
- else
- return env[k]
- end
- end,
- })
- setfenv(func,newenv)
- return func
- end
- cors = {}
- mas = Instance.new("Model",game:GetService("Lighting"))
- ParticleEmitter0 = Instance.new("ParticleEmitter")
- ParticleEmitter1 = Instance.new("ParticleEmitter")
- ParticleEmitter0.Name = "Jet"
- ParticleEmitter0.Parent = MISLE
- ParticleEmitter0.Speed = NumberRange.new(2, 2)
- ParticleEmitter0.Rotation = NumberRange.new(0, 359)
- ParticleEmitter0.Color = ColorSequence.new(Color3.new(1, 0.333333, 0),Color3.new(1, 0.333333, 0))
- ParticleEmitter0.LightEmission = 1
- ParticleEmitter0.Transparency = NumberSequence.new(1,0.5,0,0.20000000298023,1)
- ParticleEmitter0.Size = NumberSequence.new(0.80000001192093,0)
- ParticleEmitter0.Drag = -2
- ParticleEmitter0.EmissionDirection = Enum.NormalId.Back
- ParticleEmitter0.Lifetime = NumberRange.new(0.5, 1)
- ParticleEmitter0.LockedToPart = true
- ParticleEmitter0.Rate = 999
- ParticleEmitter1.Name = "JetIn"
- ParticleEmitter1.Parent = MISLE
- ParticleEmitter1.Speed = NumberRange.new(2, 2)
- ParticleEmitter1.Rotation = NumberRange.new(0, 359)
- ParticleEmitter1.Color = ColorSequence.new(Color3.new(1, 1, 0.498039),Color3.new(1, 1, 0.498039))
- ParticleEmitter1.LightEmission = 1
- ParticleEmitter1.Transparency = NumberSequence.new(1,0.5,0,0.20000000298023,1)
- ParticleEmitter1.Size = NumberSequence.new(0.5,0)
- ParticleEmitter1.Drag = -2
- ParticleEmitter1.EmissionDirection = Enum.NormalId.Back
- ParticleEmitter1.Lifetime = NumberRange.new(0.5, 1)
- ParticleEmitter1.LockedToPart = true
- ParticleEmitter1.Rate = 999
- for i,v in pairs(mas:GetChildren()) do
- v.Parent = MISLE
- pcall(function() v:MakeJoints() end)
- end
- mas:Destroy()
- for i,v in pairs(cors) do
- spawn(function()
- pcall(v)
- end)
- end
- --Converted with ttyyuu12345's model to script plugin v4
- function sandbox(var,func)
- local env = getfenv(func)
- local newenv = setmetatable({},{
- __index = function(self,k)
- if k=="script" then
- return var
- else
- return env[k]
- end
- end,
- })
- setfenv(func,newenv)
- return func
- end
- cors = {}
- mas = Instance.new("Model",game:GetService("Lighting"))
- grendade = Instance.new("Folder")
- ParticleEmitter1 = Instance.new("ParticleEmitter")
- ParticleEmitter2 = Instance.new("ParticleEmitter")
- ParticleEmitter3 = Instance.new("ParticleEmitter")
- grendade.Name = "Grenade"
- grendade.Parent = script
- Folder0 = grendade
- ParticleEmitter1.Name = "Core"
- ParticleEmitter1.Parent = Folder0
- ParticleEmitter1.Speed = NumberRange.new(10, 25)
- ParticleEmitter1.Rotation = NumberRange.new(-400, 400)
- ParticleEmitter1.Color = ColorSequence.new(Color3.new(1, 1, 0.803922),Color3.new(0.870588, 0.619608, 0.160784),Color3.new(0.635294, 0.333333, 0.129412),Color3.new(0, 0, 0))
- ParticleEmitter1.Enabled = false
- ParticleEmitter1.LightEmission = 1
- ParticleEmitter1.LightInfluence = 1
- ParticleEmitter1.Texture = "rbxasset://textures/particles/explosion01_core_main.dds"
- ParticleEmitter1.Transparency = NumberSequence.new(0,0.25,1)
- ParticleEmitter1.Size = NumberSequence.new(5,7)
- ParticleEmitter1.Drag = 2
- ParticleEmitter1.Lifetime = NumberRange.new(0.5, 2)
- ParticleEmitter1.Rate = 999
- ParticleEmitter1.RotSpeed = NumberRange.new(-90, 90)
- ParticleEmitter1.SpreadAngle = Vector2.new(180, 180)
- ParticleEmitter1.VelocitySpread = 180
- ParticleEmitter2.Name = "Black"
- ParticleEmitter2.Parent = Folder0
- ParticleEmitter2.Speed = NumberRange.new(20, 50)
- ParticleEmitter2.Rotation = NumberRange.new(-400, 400)
- ParticleEmitter2.Color = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0, 0, 0))
- ParticleEmitter2.Enabled = false
- ParticleEmitter2.LightInfluence = 1
- ParticleEmitter2.Texture = "rbxasset://textures/particles/explosion01_core_main.dds"
- ParticleEmitter2.Transparency = NumberSequence.new(0.61538457870483,0.71428573131561,1)
- ParticleEmitter2.ZOffset = 0.20000000298023
- ParticleEmitter2.Size = NumberSequence.new(1.3124996423721,3.0624997615814)
- ParticleEmitter2.Drag = 10
- ParticleEmitter2.Lifetime = NumberRange.new(0, 0.60000002384186)
- ParticleEmitter2.Rate = 999
- ParticleEmitter2.RotSpeed = NumberRange.new(-90, 90)
- ParticleEmitter2.SpreadAngle = Vector2.new(180, 180)
- ParticleEmitter2.VelocitySpread = 180
- ParticleEmitter3.Name = "Dust"
- ParticleEmitter3.Parent = Folder0
- ParticleEmitter3.Speed = NumberRange.new(45, 45)
- ParticleEmitter3.Rotation = NumberRange.new(0, 359)
- ParticleEmitter3.Color = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0, 0, 0))
- ParticleEmitter3.Enabled = false
- ParticleEmitter3.LightInfluence = 1
- ParticleEmitter3.Texture = "rbxasset://textures/particles/smoke_main.dds"
- ParticleEmitter3.Transparency = NumberSequence.new(0.75,1)
- ParticleEmitter3.ZOffset = 2
- ParticleEmitter3.Size = NumberSequence.new(0,0,1,4.1249995231628,7.5,10)
- ParticleEmitter3.Drag = 3
- ParticleEmitter3.EmissionDirection = Enum.NormalId.Front
- ParticleEmitter3.Lifetime = NumberRange.new(0.20000000298023, 2)
- ParticleEmitter3.Rate = 9999
- ParticleEmitter3.SpreadAngle = Vector2.new(0, 180)
- for i,v in pairs(mas:GetChildren()) do
- v.Parent = workspace
- pcall(function() v:MakeJoints() end)
- end
- mas:Destroy()
- for i,v in pairs(cors) do
- spawn(function()
- pcall(v)
- end)
- end
- Folder0.Parent = script
- ControlsGUI.Name = "ControlsGUI"
- ControlsGUI.Parent = MODULE
- ControlsGUI.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
- ToggleButton.Name = "ToggleButton"
- ToggleButton.Parent = ControlsGUI
- ToggleButton.BackgroundColor3 = Color3.new(0.137255, 0.137255, 0.137255)
- ToggleButton.BackgroundTransparency = 0.5
- ToggleButton.BorderColor3 = Color3.new(0.137255, 0.137255, 0.137255)
- ToggleButton.BorderSizePixel = 5
- ToggleButton.Position = UDim2.new(0.699999988, 0, 0.949999988, 0)
- ToggleButton.Size = UDim2.new(0.100000001, 0, 0.0500000007, 0)
- ToggleButton.Font = Enum.Font.Gotham
- ToggleButton.Text = "Controls"
- ToggleButton.TextColor3 = Color3.new(1, 1, 1)
- ToggleButton.TextScaled = true
- ToggleButton.TextSize = 14
- ToggleButton.TextWrapped = true
- Controls.Name = "Controls"
- Controls.Parent = ToggleButton
- Controls.BackgroundColor3 = Color3.new(0.137255, 0.137255, 0.137255)
- Controls.BackgroundTransparency = 0.5
- Controls.BorderColor3 = Color3.new(0.137255, 0.137255, 0.137255)
- Controls.BorderSizePixel = 5
- Controls.Position = UDim2.new(-2.07500005, 0, -2.8499999, 0)
- Controls.Size = UDim2.new(4, 0, 2.5, 0)
- Controls.Visible = false
- ScriptCredits.Name = "ScriptCredits"
- ScriptCredits.Parent = Controls
- ScriptCredits.BackgroundColor3 = Color3.new(0, 0, 0)
- ScriptCredits.BackgroundTransparency = 0.75
- ScriptCredits.BorderColor3 = Color3.new(0, 0, 0)
- ScriptCredits.BorderSizePixel = 5
- ScriptCredits.Size = UDim2.new(1, 0, 0.300000012, 0)
- ScriptCredits.Font = Enum.Font.Gotham
- ScriptCredits.Text = "BANZAI BAZOOKA by PityPolygon"
- ScriptCredits.TextColor3 = Color3.new(1, 1, 1)
- ScriptCredits.TextScaled = true
- ScriptCredits.TextSize = 14
- ScriptCredits.TextWrapped = true
- Text.Name = "Text"
- Text.Parent = Controls
- Text.BackgroundColor3 = Color3.new(1, 1, 1)
- Text.BackgroundTransparency = 1
- Text.Position = UDim2.new(0, 0, 0.349999994, 0)
- Text.Size = UDim2.new(1, 0, 0.25, 0)
- Text.Font = Enum.Font.Gotham
- Text.Text = "Mouse - Hold to unleash stored missiles, explosions can fling you"
- Text.TextColor3 = Color3.new(1, 1, 1)
- Text.TextScaled = true
- Text.TextSize = 14
- Text.TextWrapped = true
- Text_2.Name = "Text"
- Text_2.Parent = Controls
- Text_2.BackgroundColor3 = Color3.new(1, 1, 1)
- Text_2.BackgroundTransparency = 1
- Text_2.Position = UDim2.new(0, 0, 0.699999988, 0)
- Text_2.Size = UDim2.new(1, 0, 0.25, 0)
- Text_2.Font = Enum.Font.Gotham
- Text_2.Text = "Z - Hold to store missiles"
- Text_2.TextColor3 = Color3.new(1, 1, 1)
- Text_2.TextScaled = true
- Text_2.TextSize = 14
- Text_2.TextWrapped = true
- Stored.Name = "Stored"
- Stored.Parent = ToggleButton
- Stored.BackgroundColor3 = Color3.new(0.137255, 0.137255, 0.137255)
- Stored.BackgroundTransparency = 0.75
- Stored.BorderColor3 = Color3.new(0.137255, 0.137255, 0.137255)
- Stored.BorderSizePixel = 5
- Stored.Position = UDim2.new(-1.14999998, 0, 0, 0)
- Stored.Size = UDim2.new(1, 0, 1, 0)
- Stored.Font = Enum.Font.Gotham
- Stored.Text = "STORED: 10000"
- Stored.TextColor3 = Color3.new(1, 1, 1)
- Stored.TextScaled = true
- Stored.TextSize = 14
- Stored.TextStrokeColor3 = Color3.new(1, 1, 1)
- Stored.TextTransparency = 0.5
- Stored.TextWrapped = true
- function SCRIPT_QBWM67_FAKESCRIPT() -- ControlsGUI.Script
- local script = Instance.new('Script')
- script.Parent = ControlsGUI
- local PLAYER = owner
- if PLAYER then
- if PLAYER:IsA("Player") then
- PLAYER.CharacterAdded:Connect(function()
- script.Parent:Remove()
- end)
- end
- end
- end
- coroutine.resume(coroutine.create(SCRIPT_QBWM67_FAKESCRIPT))
- local ROOT = HUM.Torso
- local HEAD = CHARACTER.Head
- local TORSO = CHARACTER.Torso
- local RIGHTARM = CHARACTER["Right Arm"]
- local LEFTARM = CHARACTER["Left Arm"]
- local RIGHTLEG = CHARACTER["Right Leg"]
- local LEFTLEG = CHARACTER["Left Leg"]
- local ROOTJOINT = ROOT["RootJoint"]
- local NECK = TORSO["Neck"]
- local RIGHTSHOULDER = TORSO["Right Shoulder"]
- local LEFTSHOULDER = TORSO["Left Shoulder"]
- local RIGHTHIP = TORSO["Right Hip"]
- local LEFTHIP = TORSO["Left Hip"]
- local MOUSEPOS = ROOT.Position
- 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
- --//====================================================\\--
- --|| FE CODE
- --\\====================================================//--
- if game:GetService("RunService"):IsClient()then error("RUN SCRIPT AS R/ AND NOT RL/.")end;print("FE CODE BY WAVERLYCOLE");InternalData = {}
- do
- script.Parent = owner.Character
- local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
- local function NewFakeEvent()
- local Bind = Instance.new("BindableEvent")
- local Fake;Fake = {Connections = {},
- fakeEvent=true;
- Connect=function(self,Func)
- Bind.Event:connect(Func)
- self.Connections[Bind] = true
- return setmetatable({Connected = true},{
- __index = function (self,Index)
- if Index:lower() == "disconnect" then
- return function() Fake.Connections[Bind] = false;self.Connected = false end
- end
- return Fake[Index]
- end;
- __tostring = function() return "Connection" end;
- })
- end}
- Fake.connect = Fake.Connect;return Fake;
- end
- local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
- local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
- local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
- self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
- end};ContextActionService.UnBindAction = ContextActionService.BindAction
- local function TriggerEvent(self,Event,...)
- local Trigger = Mouse[Event]
- if Trigger and Trigger.fakeEvent and Trigger.Connections then
- for Connection,Active in pairs(Trigger.Connections) do if Active then Connection:Fire(...) end end
- end
- end
- Mouse.TrigEvent = TriggerEvent;UserInputService.TrigEvent = TriggerEvent
- Event.OnServerEvent:Connect(function(FiredBy,Input)
- if FiredBy.Name ~= owner.Name then return end
- if Input.MouseEvent then
- Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
- else
- local Begin = Input.UserInputState == Enum.UserInputState.Begin
- if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up") end
- for _,Action in pairs(ContextActionService.Actions) do
- for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
- end
- Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower())
- UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false)
- end
- end)
- InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
- Event.Parent = NLS([[
- local Player = owner;local Event = script:WaitForChild("UserInput");local UserInputService = game:GetService("UserInputService");local Mouse = Player:GetMouse()
- local Input = function(Input,gameProcessedEvent)
- if gameProcessedEvent then return end
- Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
- end
- UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
- local Hit,Target
- while wait(1/30) do
- if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
- Hit,Target = Mouse.Hit,Mouse.Target;Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
- end
- end
- ]],owner.Character)
- end
- RealGame = game;game = setmetatable({},{
- __index = function (self,Index)
- local Sandbox = function (Thing)
- if Thing:IsA("Player") then
- local RealPlayer = Thing
- return setmetatable({},{
- __index = function (self,Index)
- local Type = type(RealPlayer[Index])
- if Type == "function" then
- if Index:lower() == "getmouse" or Index:lower() == "mouse" then
- return function (self)return InternalData["Mouse"] end
- end
- return function (self,...)return RealPlayer[Index](RealPlayer,...) end
- end
- return RealPlayer[Index]
- end;
- __tostring = function(self) return RealPlayer.Name end
- })
- end
- end
- if RealGame[Index] then
- local Type = type(RealGame[Index])
- if Type == "function" then
- if Index:lower() == "getservice" or Index:lower() == "service" then
- return function (self,Service)
- local FakeServices = {
- ["players"] = function()
- return setmetatable({},{
- __index = function (self2,Index2)
- local RealService = RealGame:GetService(Service)
- local Type2 = type(Index2)
- if Type2 == "function" then
- return function (self,...) return RealService[Index2](RealService,...)end
- else
- if Index2:lower() == "localplayer" then return Sandbox(owner) end
- return RealService[Index2]
- end
- end;
- __tostring = function(self) return RealGame:GetService(Service).Name end
- })
- end;
- ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
- ["userinputservice"] = function() return InternalData["UserInputService"] end;
- ["runservice"] = function()
- return setmetatable({},{
- __index = function(self2,Index2)
- local RealService = RealGame:GetService(Service)
- local Type2 = type(Index2)
- if Type2 == "function" then
- return function (self,...) return RealService[Index2](RealService,...) end
- else
- local RunServices = {
- ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return RealGame:GetService("RunService").Stepped:Connect(Function) end end;
- ["renderstepped"] = function() return RealService["Stepped"] end
- }
- if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
- return RealService[Index2]
- end
- end
- })
- end
- }
- if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
- return RealGame:GetService(Service)
- end
- end
- return function (self,...) return RealGame[Index](RealGame,...) end
- else
- if game:GetService(Index) then return game:GetService(Index) end
- return RealGame[Index]
- end
- end
- return nil
- end
- });Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete! Running...")
- --//====================================================\\--
- --|| BACKGROUND VALUES
- --\\====================================================//--
- local ANIM_SPEED = 3
- local mouse = owner:GetMouse()
- local FRAME_SPEED = 1 / 60 -- (1 / 30) OR (1 / 60)
- local CHANGE = 2 / ANIM_SPEED
- local DAMAGEMULTIPLIER = 1
- local ANIM = "Idle"
- local KEYHOLD = false
- local MOUSEHOLD = false
- local SINE = 0
- local ATTACKING = false
- local Debris = game:GetService("Debris")
- local Effects = IT("Folder",CHARACTER)
- Effects.Name = "FXFolder"
- 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 BGM = 213546066
- local BOMB = 2671146857
- local STORED = 100000000000
- --//====================================================\\--
- --|| HEARTBEAT
- --\\====================================================//--
- 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 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
- --//====================================================\\--
- --|| CLERP
- --\\====================================================//--
- 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 m11 > m00 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 >= 0.0001 then
- if (1 - cosTheta) > 0.0001 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
- else
- if (1 + cosTheta) > 0.0001 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
- 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
- --//====================================================\\--
- --|| FUNCTIONS
- --\\====================================================//--
- function WeldParts(A,B)
- local WLD = IT("ManualWeld")
- WLD.Part0 = A
- WLD.Part1 = B
- WLD.C1 = B.CFrame:inverse() * A.CFrame
- WLD.Parent = A
- return WLD
- end
- --NewSound({ID = 0,PARENT = ROOT,VOLUME = 0.5,PITCH = 1,LOOP = false,MAXDISTANCE = 1000,EMITTERSIZE = 10,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
- function NewSound(TABLE)
- local ID = "rbxassetid://"..(TABLE.ID or 0)
- local PARENT = (TABLE.PARENT or ROOT)
- local VOLUME = (TABLE.VOLUME or 0.5)
- local PITCH = (TABLE.PITCH or 1)
- local LOOP = (TABLE.LOOP or false)
- local MAXDISTANCE = (TABLE.MAXDISTANCE or 100)
- local EMITTERSIZE = (TABLE.EMITTERSIZE or 10)
- local PLAYING = (TABLE.PLAYING or true)
- local PLAYONREMOVE = (TABLE.PLAYONREMOVE or false)
- local DOESDEBRIS = (TABLE.DOESDEBRIS or true)
- if ID ~= "rbxassetid://0" then
- local SOUND = IT("Sound",PARENT)
- SOUND.SoundId = ID
- SOUND.Volume = VOLUME
- SOUND.Pitch = PITCH
- SOUND.Looped = LOOP
- SOUND.MaxDistance = MAXDISTANCE
- SOUND.EmitterSize = EMITTERSIZE
- SOUND.PlayOnRemove = PLAYONREMOVE
- if DOESDEBRIS == true and PLAYING == true and LOOP == false then
- Debris:AddItem(SOUND,SOUND.TimeLength+5)
- end
- if PLAYING == true then
- SOUND:Play()
- end
- return SOUND
- end
- end
- function ManSlaughter(MAN)
- if MAN then
- local ROOT = MAN:FindFirstChild("HumanoidRootPart")
- if ROOT then
- ROOT:Remove()
- end
- local MANHUM = MAN:FindFirstChildOfClass("Humanoid")
- if MANHUM then
- MANHUM.Health = 0
- MANHUM.MaxHealth = 0
- MANHUM.Parent:BreakJoints()
- end
- if MAN:FindFirstChild("R6Ragdoll") == nil and MAN:FindFirstChild("R15Ragdoll") == nil then
- if MAN:FindFirstChild("UpperTorso") then
- local SCRIPT = script.R15Ragdoll:Clone()
- SCRIPT.Parent = MAN
- SCRIPT.Disabled = false
- else
- local SCRIPT = script.R6Ragdoll:Clone()
- SCRIPT.Parent = MAN
- SCRIPT.Disabled = false
- end
- local TORSO = MAN:FindFirstChild("Torso") or MAN:FindFirstChild("UpperTorso")
- if TORSO then
- NewSound({ID = 146594648,PARENT = TORSO,VOLUME = 1,PITCH = MRANDOM(8,12)/10,LOOP = false,MAXDISTANCE = 75,EMITTERSIZE = 15,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
- end
- end
- MAN:BreakJoints()
- if MAN:FindFirstChild("Slaughtered") == nil then
- local MARK = IT("Folder",MAN)
- MARK.Name = "Slaughtered"
- else
- if MAN:FindFirstChild("Slaughtered") then
- local TORSO = MAN:FindFirstChild("Torso") or MAN:FindFirstChild("UpperTorso")
- if TORSO then
- TORSO.RotVelocity = VT(0,MRANDOM(-25,25),0)
- end
- end
- end
- end
- end
- function AreaOfEffect(AREA,RANGE,FLING,RETURN)
- local HIT = {}
- for index, CHILD in pairs(workspace:GetChildren()) do
- if CHILD:FindFirstChildOfClass("Humanoid") then
- local HUMAN = CHILD:FindFirstChildOfClass("Humanoid")
- local ROOT = HUMAN.Torso
- if ROOT then
- if (ROOT.Position - AREA).Magnitude <= RANGE then
- if RETURN == true then
- if CHILD ~= CHARACTER then
- table.insert(HIT,{CHILD,HUMAN,ROOT})
- end
- else
- if CHILD ~= CHARACTER then
- ManSlaughter(CHILD)
- end
- local BV = IT("BodyVelocity")
- BV.MaxForce = BV.MaxForce * 500
- BV.Velocity = CF(AREA,ROOT.Position+VT(0,0.5,0)).lookVector*FLING
- BV.Parent = ROOT
- Debris:AddItem(BV,0.05)
- end
- end
- end
- end
- end
- if RETURN == true then
- return HIT
- end
- 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 = ROOT.Position
- NEWPART.Material = MATERIAL
- NEWPART:BreakJoints()
- NEWPART.Parent = PARENT
- return NEWPART
- end
- function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
- return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
- end
- function CameraShake(AREA,RANGE,SHAKE,TIMER)
- for index, CHILD in pairs(workspace:GetChildren()) do
- if CHILD:FindFirstChildOfClass("Humanoid") then
- local HUMAN = CHILD:FindFirstChildOfClass("Humanoid")
- local ROOT = HUMAN.Torso
- if (ROOT.Position - AREA).Magnitude <= RANGE then
- if CHILD:FindFirstChild("CamShake") then
- Debris:AddItem(CHILD:FindFirstChild("CamShake"),0.05)
- end
- end
- end
- end
- end
- --//====================================================\\--
- --|| CHARACTER
- --\\====================================================//--
- local HELMET = MODULE.Helmet
- HELMET.Parent = CHARACTER
- for index, CHILD in pairs(CHARACTER:GetChildren()) do
- if CHILD ~= ROOT then
- if CHILD:IsA("Accessory") then
- CHILD:Remove()
- end
- end
- end
- local FACE = HEAD.face
- FACE.Texture = "rbxassetid://559113097"
- HELMET.CFrame = HEAD.CFrame*CF(0,0.5,0)
- HELMET.Anchored = false
- WeldParts(HEAD,HELMET)
- local BAZOOKA = MODULE.Bazooka
- BAZOOKA.Parent = CHARACTER
- BAZOOKA.Anchored = false
- local GRIP = IT("Motor6D")
- GRIP.Part0 = RIGHTARM
- GRIP.Part1 = BAZOOKA
- GRIP.C0 = CF(0,-1,-0.5)*ANGLES(RAD(-90),0,0)*CF(0,0,1.85)
- local G_C0 = GRIP.C0
- GRIP.Parent = RIGHTARM
- for i = 1, 15 do
- local FACE = CreatePart(3, CHARACTER, "Fabric", 0, 0+(i-1)/15.2, "Dark stone grey", "FaceGradient", VT(1.01,0.58,1.01),false)
- FACE.Color = C3(0,0,0)
- HEAD:FindFirstChildOfClass("SpecialMesh"):Clone().Parent = FACE
- FACE.CFrame = HEAD.CFrame*CF(0,0.3-(i-1)/35,0)
- WeldParts(HEAD,FACE)
- end
- local MISSILE = MODULE.Missile
- MISSILE.Parent = nil
- local GUI = MODULE.ControlsGUI
- GUI.Parent = PLAYER.PlayerGui
- GUI.ToggleButton.MouseButton1Click:Connect(function()
- if GUI.ToggleButton.Controls.Visible == false then
- GUI.ToggleButton.Controls.Visible = true
- elseif GUI.ToggleButton.Controls.Visible == true then
- GUI.ToggleButton.Controls.Visible = false
- end
- end)
- local STOREDGUI = GUI.ToggleButton.Stored
- STOREDGUI.Text = "STORED: "..STORED
- function AddTo(ADD)
- STORED = STORED + ADD
- STOREDGUI.Text = "STORED: "..STORED
- end
- --//====================================================\\--
- --|| ABILITIES
- --\\====================================================//--
- function Fire_in_the_hole()
- if STORED > 0 then
- ATTACKING = true
- local GYRO = IT("BodyGyro")
- GYRO.D = 50
- GYRO.P = 5000
- GYRO.MaxTorque = VT(0,4000000,0)
- GYRO.CFrame = CF(ROOT.Position,MOUSEPOS)
- GYRO.Parent = ROOT
- ATTACKING = true
- coroutine.resume(coroutine.create(function()
- repeat
- Swait()
- MOUSEPOS = mouse.Hit.p
- GYRO.CFrame = CF(ROOT.Position,MOUSEPOS)
- until ATTACKING == false
- GYRO:Remove()
- end))
- repeat
- for i=0, 0.06, 0.1 / ANIM_SPEED do
- Swait()
- ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02) * ANGLES(RAD(0), RAD(0), RAD(45)), 2.5 / ANIM_SPEED)
- NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-45)) * ANGLES(RAD(5), RAD(0), RAD(0)), 2.5 / ANIM_SPEED)
- RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 2.5 / ANIM_SPEED)
- LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(0), RAD(-45)) * LEFTSHOULDERC0, 1.5 / ANIM_SPEED)
- RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(45), RAD(0)) * CF(0.4,0,0) * ANGLES(RAD(-10), RAD(0), RAD(0)), 2.5 / ANIM_SPEED)
- LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1.1, -1, 0) * ANGLES(RAD(0), RAD(-135), RAD(0)) * CF(-0.4,0,0) * ANGLES(RAD(-10), RAD(0), RAD(0)), 2.5 / ANIM_SPEED)
- end
- AddTo(-1)
- coroutine.resume(coroutine.create(function()
- local GOTO = MOUSEPOS
- local ROCKET = MISSILE:Clone()
- ROCKET.Parent = Effects
- ROCKET.CFrame = CF(BAZOOKA.CFrame*CF(0,0,-2).p,GOTO)
- NewSound({ID = 440145223,PARENT = BAZOOKA,VOLUME = 2,PITCH = MRANDOM(9,11)/10,LOOP = false,MAXDISTANCE = 80,EMITTERSIZE = 15,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
- NewSound({ID = 440145223,PARENT = ROCKET,VOLUME = 2,PITCH = MRANDOM(9,11)/10,LOOP = false,MAXDISTANCE = 80,EMITTERSIZE = 15,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
- for i = 1, 200 do
- Swait()
- local HIT,POS = Raycast(ROCKET.Position,ROCKET.CFrame.lookVector,5,CHARACTER)
- if HIT then
- ROCKET.CFrame = CF(POS)
- break
- end
- ROCKET.CFrame = ROCKET.CFrame*CF(0,0,-4)
- end
- ROCKET.Transparency = 1
- ROCKET.Hind:Remove()
- ROCKET.CFrame = CF(ROCKET.Position)
- ROCKET.Size = VT(0,0,0)
- NewSound({ID = 142070127,PARENT = ROCKET,VOLUME = 7,PITCH = MRANDOM(8,12)/10,LOOP = false,MAXDISTANCE = 300,EMITTERSIZE = 15,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
- for index, CHILD in pairs(grendade:GetChildren()) do
- local C = CHILD:Clone()
- C.Parent = ROCKET
- C:Emit(125)
- end
- end))
- for i=0, 0.025, 0.1 / ANIM_SPEED do
- Swait()
- ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02) * ANGLES(RAD(0), RAD(0), RAD(45)), 2.5 / ANIM_SPEED)
- NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-45)) * ANGLES(RAD(5), RAD(0), RAD(0)), 2.5 / ANIM_SPEED)
- RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(200), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 2.5 / ANIM_SPEED)
- LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(0), RAD(-45)) * LEFTSHOULDERC0, 1.5 / ANIM_SPEED)
- RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(45), RAD(0)) * CF(0.4,0,0) * ANGLES(RAD(-10), RAD(0), RAD(0)), 2.5 / ANIM_SPEED)
- LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1.1, -1, 0) * ANGLES(RAD(0), RAD(-135), RAD(0)) * CF(-0.4,0,0) * ANGLES(RAD(-10), RAD(0), RAD(0)), 2.5 / ANIM_SPEED)
- end
- until MOUSEHOLD == false or STORED <= 0
- if STORED <= 0 then
- STORED = 0
- STOREDGUI.Text = "STORED: 0"
- end
- ATTACKING = false
- end
- end
- function Store()
- HUM.WalkSpeed = 0
- HUM.JumpPower = 0
- ATTACKING = true
- repeat
- for i=0, 0.01, 0.1 / ANIM_SPEED do
- Swait()
- GRIP.C0 = Clerp(GRIP.C0, CF(0,-1,-0.5)*ANGLES(RAD(-80),RAD(15),0)*CF(0,0,1.85), 2.5 / ANIM_SPEED)
- ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02 + 0.05 * COS(SINE / 6)) * ANGLES(RAD(0), RAD(0), RAD(-5)), 0.5 / ANIM_SPEED)
- NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(15)), 2.5 / ANIM_SPEED)
- RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.7, 0.45, 0) * ANGLES(RAD(35), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 2.5 / ANIM_SPEED)
- LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 2.5 / ANIM_SPEED)
- RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-2.5)), 0.5 / ANIM_SPEED)
- LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-2.5)), 0.5 / ANIM_SPEED)
- end
- local ROCKET = MISSILE:Clone()
- ROCKET.Anchored = false
- ROCKET:ClearAllChildren()
- ROCKET.CFrame = LEFTARM.CFrame*CF(0,-1,0) * ANGLES(RAD(0), RAD(90), RAD(0))
- ROCKET.Parent = CHARACTER
- WeldParts(ROCKET,LEFTARM)
- for i=0, 0.02, 0.1 / ANIM_SPEED do
- Swait()
- GRIP.C0 = Clerp(GRIP.C0, CF(0,-1,-0.5)*ANGLES(RAD(-80),RAD(15),0)*CF(0,0,1.85), 2.5 / ANIM_SPEED)
- ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02 + 0.05 * COS(SINE / 6)) * ANGLES(RAD(0), RAD(0), RAD(-5)), 0.5 / ANIM_SPEED)
- NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(15)), 2.5 / ANIM_SPEED)
- RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.675, 0.45, 0.3) * ANGLES(RAD(35), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 2.5 / ANIM_SPEED)
- LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(0), RAD(25)) * LEFTSHOULDERC0, 2.5 / ANIM_SPEED)
- RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-2.5)), 0.5 / ANIM_SPEED)
- LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-2.5)), 0.5 / ANIM_SPEED)
- end
- for i=0, 0.02, 0.1 / ANIM_SPEED do
- Swait()
- GRIP.C0 = Clerp(GRIP.C0, CF(0,-1,-0.5)*ANGLES(RAD(-80),RAD(15),0)*CF(0,0,1.85), 2.5 / ANIM_SPEED)
- ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02 + 0.05 * COS(SINE / 6)) * ANGLES(RAD(0), RAD(0), RAD(-5)), 0.5 / ANIM_SPEED)
- NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(15)), 2.5 / ANIM_SPEED)
- RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.7, 0.45, 0) * ANGLES(RAD(35), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 2.5 / ANIM_SPEED)
- LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 2.5 / ANIM_SPEED)
- RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-2.5)), 0.5 / ANIM_SPEED)
- LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-2.5)), 0.5 / ANIM_SPEED)
- end
- NewSound({ID = 440145223,PARENT = BAZOOKA,VOLUME = 1,PITCH = MRANDOM(9,11)/6,LOOP = false,MAXDISTANCE = 80,EMITTERSIZE = 15,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
- for i=0, 0.05, 0.1 / ANIM_SPEED do
- Swait()
- GRIP.C0 = Clerp(GRIP.C0, CF(0,-1,-0.5)*ANGLES(RAD(-80),RAD(15),0)*CF(0,0,1.85), 2.5 / ANIM_SPEED)
- ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02 + 0.05 * COS(SINE / 6)) * ANGLES(RAD(0), RAD(0), RAD(5)), 0.5 / ANIM_SPEED)
- NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-15)), 2.5 / ANIM_SPEED)
- RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.75, 0.45, -0.1) * ANGLES(RAD(45), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 2.5 / ANIM_SPEED)
- LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-0.9, 0.5, -0.75) * ANGLES(RAD(60), RAD(0), RAD(37.5)) * LEFTSHOULDERC0, 2.5 / ANIM_SPEED)
- RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(2.5)), 0.5 / ANIM_SPEED)
- LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(2.5)), 0.5 / ANIM_SPEED)
- end
- ROCKET:Remove()
- until KEYHOLD == false
- ATTACKING = false
- HUM.WalkSpeed = 100
- HUM.JumpPower = 50
- end
- function Dance()
- HUM.WalkSpeed = 0
- HUM.JumpPower = 0
- ATTACKING = true
- local REMOVETRACK = false
- local TRACK = nil
- if ROOT:FindFirstChild("BGM_MUSIC") then
- TRACK = ROOT:FindFirstChild("BGM_MUSIC")
- TRACK.Volume = 5
- else
- TRACK = NewSound({ID = BOMB,PARENT = ROOT,VOLUME = 5,PITCH = 1,LOOP = true,MAXDISTANCE = 300,EMITTERSIZE = 300,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
- REMOVETRACK = true
- end
- TRACK.SoundId = "rbxassetid://"..BOMB
- TRACK:Play()
- local DONEWITHDANCING = false
- local I = 0
- local RAVE = IT("PointLight",ROOT)
- RAVE.Brightness = 25
- RAVE.Color = BrickColor.random().Color
- repeat
- I = I + 2
- Swait()
- RAVE.Color = BrickColor.random().Color
- ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0 - 0.32 * SIN(I / 10), 0, -0.55 - 0.05 * COS(I / 5)) * ANGLES(RAD(0), RAD(0 - 20 * SIN(I / 10)), RAD(0)), 1.5 / ANIM_SPEED)
- NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0 - 20 * SIN(I / 10)), RAD(0)), 1.5 / ANIM_SPEED)
- RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(170), RAD(10), RAD(-35 * COS(I/10))) *CF(0,-1,0) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
- LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(170), RAD(-10), RAD(-35 * COS(I/10))) * CF(0,-1,0) * LEFTSHOULDERC0, 1.5 / ANIM_SPEED)
- RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1.35, -0.475 + 0.36 * SIN(I / 10) + 0.05 * COS(I / 5), -0.35) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-12 - 19 * SIN(I / 10)), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
- LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1.35, -0.475 - 0.36 * SIN(I / 10) + 0.05 * COS(I / 5), -0.35) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-12 + 19 * SIN(I / 10)), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
- until DONEWITHDANCING == true
- RAVE:Remove()
- NC:Disconnect()
- if REMOVETRACK == true then
- TRACK:Remove()
- else
- TRACK:Play()
- TRACK.Volume = 1.25
- TRACK.SoundId = "rbxassetid://"..BGM
- end
- ATTACKING = false
- HUM.WalkSpeed = 100
- HUM.JumpPower = 50
- end
- --//====================================================\\--
- --|| WRAP
- --\\====================================================//--
- mouse.Button1Down:connect(function()
- if ATTACKING == false then
- MOUSEHOLD = true
- Fire_in_the_hole()
- end
- end)
- mouse.Button1Up:connect(function()
- MOUSEHOLD = false
- end)
- mouse.KeyDown:connect(function(key)
- key=key:lower()
- if key == "z" then
- Store()
- KEYHOLD = True
- end
- if key == "m" then
- if DONEWITHDANCING == true then
- Dance()
- else
- ATTACKING = false
- DONEWITHDANCING = true
- end
- end
- if key == "t" then
- NewSound({ID = 145757437,PARENT = ROOT,VOLUME = 10,PITCH = 1,LOOP = false,MAXDISTANCE = 100,EMITTERSIZE = 25,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
- end
- if key == "e" then
- if ROOT:FindFirstChild("BGM_MUSIC") then
- ROOT:FindFirstChild("BGM_MUSIC"):Remove()
- else
- local M = NewSound({ID = BGM,PARENT = ROOT,VOLUME = 1.25,PITCH = 1,LOOP = true,MAXDISTANCE = 300,EMITTERSIZE = 300,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
- M.Name = "BGM_MUSIC"
- end
- end
- end)
- mouse.KeyUp:connect(function()
- KEYHOLD = false
- end)
- local M = NewSound({ID = BGM,PARENT = ROOT,VOLUME = 1.25,PITCH = 1,LOOP = true,MAXDISTANCE = 300,EMITTERSIZE = 300,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
- M.Name = "BGM_MUSIC"
- HUM.WalkSpeed = 100
- while true do
- Swait()
- SINE = SINE + CHANGE
- if CHARACTER:FindFirstChild("Animate") then
- CHARACTER:FindFirstChild("Animate"):Destroy()
- end
- if CHARACTER:FindFirstChild("Sound") then
- CHARACTER:FindFirstChild("Sound"):Destroy()
- end
- for _,v in next, HUM:GetPlayingAnimationTracks() do
- v:Stop();
- end
- local TORSOVELOCITY = (ROOT.Velocity * VT(1, 0, 1)).magnitude
- local TORSOVERTICALVELOCITY = ROOT.Velocity.y
- local HITFLOOR = Raycast(ROOT.Position, (CF(ROOT.Position, ROOT.Position + VT(0, -1, 0))).lookVector, 4+HUM.HipHeight, CHARACTER)
- local WALKSPEEDVALUE = 0.5
- local SITTING = HUM.Sit
- if ANIM == "Walk" and TORSOVELOCITY > 1 and SITTING == false then
- RIGHTHIP.C1 = Clerp(RIGHTHIP.C1, CF(0.5, 0.875 - 0.3 * SIN(SINE / WALKSPEEDVALUE), -0.5 * COS(SINE / WALKSPEEDVALUE) +0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RIGHTLEG.RotVelocity.Y / 35, RAD(0), RAD(55 * COS(SINE / WALKSPEEDVALUE))), 2 / ANIM_SPEED)
- LEFTHIP.C1 = Clerp(LEFTHIP.C1, CF(-0.5, 0.875 + 0.3 * SIN(SINE / WALKSPEEDVALUE), 0.5 * COS(SINE / WALKSPEEDVALUE) +0.2+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LEFTLEG.RotVelocity.Y / 35, RAD(0), RAD(55 * COS(SINE / WALKSPEEDVALUE))), 2 / ANIM_SPEED)
- elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) or SITTING == true then
- 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.2 / ANIM_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.2 / ANIM_SPEED)
- end
- if ATTACKING == false then
- GRIP.C0 = Clerp(GRIP.C0, G_C0, 1.5 / ANIM_SPEED)
- end
- if SITTING == false then
- if HITFLOOR then
- if TORSOVELOCITY < 1 and HITFLOOR ~= nil then
- ANIM = "Idle"
- if ATTACKING == false then
- ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02 + 0.05 * COS(SINE / 6)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
- NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * COS(SINE / 6)), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
- RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(100), RAD(0), RAD(5 + 2.5 * COS(SINE / 6))) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
- LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-25 - 2.5 * COS(SINE / 6))) * LEFTSHOULDERC0, 1.5 / ANIM_SPEED)
- RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
- LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
- end
- elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
- ANIM = "Walk"
- if ATTACKING == false then
- ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.05 + 0.05 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(-10), RAD(0), RAD(0)), 2 / ANIM_SPEED)
- NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 2 / ANIM_SPEED)
- RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(135), RAD(0), RAD(5 + 2.5 * COS(SINE / WALKSPEEDVALUE))) * RIGHTSHOULDERC0, 2 / ANIM_SPEED)
- LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(-25 - 2.5 * COS(SINE / WALKSPEEDVALUE))) * LEFTSHOULDERC0, 2 / ANIM_SPEED)
- RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1 , -1 - 0.05 * COS(SINE / WALKSPEEDVALUE), 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-15)), 2 / ANIM_SPEED)
- LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / WALKSPEEDVALUE), 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(15)), 2 / ANIM_SPEED)
- end
- end
- else
- if TORSOVERTICALVELOCITY > 0 then
- ANIM = "Jump"
- if ATTACKING == false then
- ROOTJOINT.C0 = Clerp(ROOTJOINT.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / ANIM_SPEED)
- NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 1 / ANIM_SPEED)
- RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(25), RAD(0), RAD(5 + 2.5 * COS(SINE / 6))) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
- LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-2), RAD(0), RAD(10)) * LEFTSHOULDERC0, 1 / ANIM_SPEED)
- RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -0.4, -0.6) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 1 / ANIM_SPEED)
- LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 1 / ANIM_SPEED)
- end
- else
- ANIM = "Fall"
- if ATTACKING == false then
- ROOTJOINT.C0 = Clerp(ROOTJOINT.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / ANIM_SPEED)
- NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 1 / ANIM_SPEED)
- RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(150), RAD(0), RAD(5 + 2.5 * COS(SINE / 6))) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
- LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-2), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 1 / ANIM_SPEED)
- RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 1 / ANIM_SPEED)
- LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 1 / ANIM_SPEED)
- end
- end
- end
- else
- ANIM = "Sit"
- if ATTACKING == false then
- ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.5) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.25 / ANIM_SPEED)
- NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.25 / ANIM_SPEED)
- RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
- LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.65, 0) * ANGLES(RAD(50), RAD(-10), RAD(45))*CF(0,-0.25,0) * LEFTSHOULDERC0, 1.25 / ANIM_SPEED)
- RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -0.25, -1) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 1.25 / ANIM_SPEED)
- LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -0.25, -1) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-10)), 1.25 / ANIM_SPEED)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement