Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --.
- script:Destroy()
- wait()
- do
- local player = game.Players.LocalPlayer
- function Spawn()
- local tool2 = game:GetService("InsertService"):LoadAsset(90718505):GetChildren()[1]
- tool2.Parent = player.Backpack
- tool2.ExponentialRocketLauncher:Remove()
- tool2.GunCursor:Remove()
- tool2.Name = "Shock Cannon"
- tool2.Handle.MotherRocket:Remove()
- local enabled = tool2.Enabled
- local mouse2
- local collided = false
- local ready = true
- local target
- local gui = Instance.new("BillboardGui",player.PlayerGui)
- gui.Size = UDim2.new(0,25,0,25)
- gui.AlwaysOnTop = true
- image = Instance.new("ImageLabel",gui)
- image.Size = gui.Size
- image.Image = "rbxasset://textures\\mouse2LockedCursor.png"
- image.BackgroundTransparency = 1
- function Shock(orb,charge)
- gui.Size = UDim2.new(0,0,0,0)
- target = nil
- neworb = orb:clone()
- orb:Remove()
- neworb.BodyVelocity:Remove()
- neworb.Anchored = true
- cf = neworb.CFrame
- neworb.Size = Vector3.new(charge/5,charge/5,charge/5)
- neworb.Material = "Plastic"
- neworb.Mesh:Remove()
- neworb.CFrame = cf
- neworb.Transparency = 1 - (charge/500)
- neworb.Touched:connect(function(hit)
- hum = hit.Parent:FindFirstChild("Humanoid")
- if hum --[[and hit.Name=="Torso"]] then
- tag = Instance.new("ObjectValue")
- tag.Name = "creator"
- tag.Value = player
- tag.Parent = hum
- hum:TakeDamage(charge*(hum.MaxHealth/500))
- end
- end)
- neworb.Parent = game.Workspace
- game.Debris:AddItem(neworb,1)
- for i=1,5 do
- for i=1,3 do
- p = Instance.new("Part",game.Workspace)
- p.FormFactor = "Custom"
- p.TopSurface = "Smooth"
- p.BottomSurface = "Smooth"
- p.BrickColor = neworb.BrickColor
- p.Size = Vector3.new(0.2,0.2,charge/30)
- p.Transparency = neworb.Transparency-0.25
- p.Anchored = true
- p.CanCollide = false
- p2 = p:clone()
- p2.Parent = game.Workspace
- p3 = p:clone()
- p3.Parent = game.Workspace
- p4 = p:clone()
- p4.Parent = game.Workspace
- p.CFrame = neworb.CFrame * CFrame.fromEulerAnglesXYZ(math.random(-math.pi*20,math.pi*20)/10,math.random(-math.pi*20,math.pi*20)/10,math.random(-math.pi*20,math.pi*20)/10) * CFrame.new(0,0,charge/60)
- p2.CFrame = p.CFrame * CFrame.new(0,0,charge/60) * CFrame.fromEulerAnglesXYZ(math.random(-30,30)/10,math.random(-30,30)/10,math.random(-30,30)/10) * CFrame.new(0,0,charge/60)
- p3.CFrame = p2.CFrame * CFrame.new(0,0,charge/60) * CFrame.fromEulerAnglesXYZ(math.random(-30,30)/10,math.random(-30,30)/10,math.random(-30,30)/10) * CFrame.new(0,0,charge/60)
- p4.CFrame = p3.CFrame * CFrame.new(0,0,charge/60) * CFrame.fromEulerAnglesXYZ(math.random(-30,30)/10,math.random(-30,30)/10,math.random(-30,30)/10) * CFrame.new(0,0,charge/60)
- game.Debris:AddItem(p,0.2)
- game.Debris:AddItem(p2,0.2)
- game.Debris:AddItem(p3,0.2)
- game.Debris:AddItem(p4,0.2)
- end
- wait(0.2)
- end
- end
- function Launch(charge,orb,weld)
- weld:Remove()
- vel = Instance.new("BodyVelocity",orb)
- orb.CFrame = CFrame.new(orb.Position,orb.Position+tool2.Handle.CFrame.lookVector)
- orb.Parent = game.Workspace
- collided = false
- orb.Touched:connect(function(hit)
- if hit.Parent==tool2 or hit.Parent==tool2.Parent or hit.Parent:IsA("Hat") or hit.Name=="Handle" then
- return
- end
- collided = true
- Shock(orb,charge)
- orb:Remove()
- end)
- vel.velocity = CFrame.new(orb.Position,mouse2.Hit.p).lookVector * (charge * 1.5)
- game.Debris:AddItem(orb,30)
- wait()
- if target then
- waittime = charge/20
- timewaited = 0
- while true do
- if collided==true or orb.Parent==nil then
- break
- end
- timewaited = timewaited + 0.1
- if timewaited>=waittime then
- ready = true
- end
- part = game.Workspace:FindPartOnRay(Ray.new(orb.Position,target.Position),orb)
- if not part or part.Parent==target.Parent or part.Parent:FindFirstChild("Humanoid") then
- vel.velocity = CFrame.new(orb.Position,target.Position).lookVector * (charge * 1.5)
- end
- wait()
- end
- end
- end
- function Clicked()
- if ready==false then
- return
- end
- enabled = true
- ready = false
- orb = Instance.new("Part",tool2)
- orb.BrickColor = BrickColor.new("Bright yellow")
- orb.Shape = 0
- orb.Size = Vector3.new(1,1,1)
- orb.TopSurface = "Smooth"
- orb.BottomSurface = "Smooth"
- orb.CanCollide = false
- orb.Material = "Foil"
- orb.Name = "Ball"
- weld = Instance.new("Weld",orb)
- weld.Part0 = tool2.Handle
- weld.Part1 = orb
- weld.C0 = CFrame.new(0,0,-1.3)
- mesh = Instance.new("SpecialMesh",orb)
- mesh.MeshType = "Sphere"
- mesh.Scale = Vector3.new(0.01,0.01,0.01)
- charge = 0
- while true do
- if charge<100 then
- charge = charge + 1
- end
- mesh.Scale = Vector3.new(charge/100,charge/100,charge/100)
- weld.C0 = CFrame.new(0,0,-1.5-(charge/200)) * CFrame.fromEulerAnglesXYZ(math.random(-50,50)/10,math.random(-50,50)/10,math.random(-50,50)/10)
- p = Instance.new("Part",tool2)
- p.FormFactor = "Custom"
- p.TopSurface = "Smooth"
- p.BottomSurface = "Smooth"
- p.BrickColor = orb.BrickColor
- p.Size = Vector3.new(0.2,0.2,charge/60)
- p.Transparency = orb.Transparency-0.25
- p.Anchored = true
- p.CanCollide = false
- p.CFrame = orb.CFrame * CFrame.fromEulerAnglesXYZ(math.random(-math.pi*20,math.pi*20)/10,math.random(-math.pi*20,math.pi*20)/10,math.random(-math.pi*20,math.pi*20)/10) * CFrame.new(0,0,charge/120)
- pm = Instance.new("CylinderMesh",p)
- pm.Scale = Vector3.new(0.6,0.6,1)
- game.Debris:AddItem(p,0.1)
- if enabled==false then
- print(charge)
- Launch(charge,orb,weld)
- break
- end
- wait(0.01)
- end
- wait(charge/20)
- ready = true
- end
- function Released()
- enabled = false
- end
- function Moved()
- if target and target.Parent then
- if target.Parent.Humanoid.Health<=0 then
- target = nil
- end
- end
- if mouse2.Target and enabled==true then
- hum = mouse2.Target.Parent:FindFirstChild("Humanoid")
- torso = mouse2.Target.Parent:FindFirstChild("Torso")
- if hum and torso and hum.Health>0 then
- target = torso
- gui.Adornee = torso
- gui.Size = UDim2.new(0,25,0,25)
- gui.Parent = player.PlayerGui
- end
- end
- end
- function Equipped(m)
- enabled = false
- mouse2 = m
- mouse2.Button1Down:connect(Clicked)
- mouse2.Button1Up:connect(Released)
- mouse2.Move:connect(Moved)
- mouse2.Icon = "rbxasset://textures\\mouse2LockedCursor.png"
- end
- function Unequipped()
- gui:Remove()
- end
- tool2.Equipped:connect(Equipped)
- tool2.Unequipped:connect(Unequipped)
- end
- player.CharacterAdded:connect(Spawn)
- Spawn()
- end
Add Comment
Please, Sign In to add comment