Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local TriggerBot = {}
- TriggerBot.__index = TriggerBot
- local Instance = Instance
- local game = game
- local math = math
- local setmetatable = setmetatable
- local workspace = workspace
- local CFrame = CFrame
- local Vector3 = Vector3
- local Vector2 = Vector2
- local Random = Random
- local RaycastParams = RaycastParams
- local pairs = pairs
- local task = task
- local string = string
- local table = table
- local require = require
- local Enum = Enum
- local getrawmetatable = getrawmetatable
- local replaceclosure = replaceclosure
- local setreadonly = setreadonly
- local checkcaller = checkcaller
- local getclock = os.clock
- local mouse1click = mouse1click
- local mouse1press = mouse1press
- local mouse1release = mouse1release
- local mousemoverel = mousemoverel
- local hookfunction = hookfunction
- local newcclosure = newcclosure
- --//Instance methods
- local Raycast = workspace.Raycast
- local GetPropertyChangedSignal = game.GetPropertyChangedSignal
- local Connect = game.ChildAdded.Connect
- local Destroy = game.Destroy
- local GetService = game.GetService
- local FindFirstChildOfClass = game.FindFirstChildOfClass
- local FindFirstChild = game.FindFirstChild
- local WaitForChild = game.WaitForChild
- local GetChildren = game.GetChildren
- local GetDescendants = game.GetDescendants
- local IsA = game.IsA
- local IsDescendantOf = game.IsDescendantOf
- --//Services
- local Players = GetService(game, "Players")
- local UserInputService = GetService(game, "UserInputService")
- local RunService = GetService(game, "RunService")
- local GuiService = GetService(game, "GuiService")
- --//Temporary instances
- local tempcam = Instance.new("Camera")
- local temphum = Instance.new("Humanoid")
- local tempconn = Connect(game.AncestryChanged, function() end)
- --//Other instance methods
- local WorldToViewportPoint = tempcam.WorldToViewportPoint
- local WorldToScreenPoint = tempcam.WorldToScreenPoint
- local GetPlayers = Players.GetPlayers
- local GetMouseLocation = UserInputService.GetMouseLocation
- local ViewportPointToRay = tempcam.ViewportPointToRay
- local Disconnect = tempconn.Disconnect
- local MoveTo = temphum.MoveTo
- local Lerp2D = Vector2.new().Lerp
- --//Cleanup
- Destroy(temphum)
- Destroy(tempcam)
- Disconnect(tempconn)
- TriggerBot.DefaultSettings = {
- TransparencyThreshold = .5;
- ToggleKey = Enum.KeyCode.LeftBracket;
- DefaultIgnore = {}
- }
- function TriggerBot:GetBlockingPart(origin, position)
- self.Params.FilterDescendantsInstances = self.DefaultIgnore
- local dir = position - origin
- local ignore = self.Params.FilterDescendantsInstances
- while true do
- self.Params.FilterDescendantsInstances = ignore
- local result = Raycast(workspace, origin, dir, self.Params)
- if result then
- if result.Instance.ClassName ~= "Terrain" and result.Instance.Transparency >= self.TransparencyThreshold then
- table.insert(ignore, result.Instance)
- continue
- end
- self.Params.FilterDescendantsInstances = self.DefaultIgnore
- return result.Instance
- end
- self.Params.FilterDescendantsInstances = self.DefaultIgnore
- return nil
- end
- end
- function TriggerBot:GetTargetFromViewportPoint(point, distance)
- local camera = workspace.CurrentCamera
- if camera then
- local ray = ViewportPointToRay(camera, point.X, point.Y)
- return self:GetBlockingPart(ray.Origin, ray.Origin + ray.Direction * distance)
- end
- end
- function TriggerBot:Initialize()
- self.Enabled = true
- self.TriggerPaused = false
- if not self.Heartbeat then
- Connect(RunService.Heartbeat, function()
- local lcharac = Players.LocalPlayer.Character
- local lhead = lcharac and lcharac:FindFirstChild("Head")
- local mtarget = self:GetTargetFromViewportPoint(GetMouseLocation(UserInputService), 5000)
- local blocking_parts = lhead and mtarget and self:GetBlockingPart(lhead.Position, mtarget.Position)
- if mtarget and blocking_parts and blocking_parts:IsDescendantOf(mtarget.Parent) and mtarget.Parent:FindFirstChildOfClass("Humanoid") and mtarget.Parent:FindFirstChildOfClass("Humanoid").Health > 0 and mtarget.Parent:FindFirstChild("Head") and mtarget.Parent:FindFirstChild("Head").Transparency < .8 and self.Enabled then
- local character = mtarget.Parent
- local player = Players:GetPlayerFromCharacter(character)
- if (player.TeamColor == Players.LocalPlayer.TeamColor) ~= true then
- if not self.TriggerPaused then
- local rando = Random.new():NextNumber(.18, .3)
- self.TriggerPaused = true
- task.wait(rando)
- local mtarget = self:GetTargetFromViewportPoint(GetMouseLocation(UserInputService), 5000)
- if mtarget and mtarget.Parent:FindFirstChildOfClass("Humanoid") and mtarget.Parent:FindFirstChildOfClass("Humanoid").Health > 0 and mtarget.Parent:FindFirstChild("Head") and mtarget.Parent:FindFirstChild("Head").Transparency < .8 and self.Enabled then
- mouse1press()
- task.wait()
- mouse1release()
- end
- self.TriggerPaused = false
- end
- end
- end
- end)
- end
- Connect(UserInputService.InputBegan, function(input, gpe)
- if not gpe and input.KeyCode == self.ToggleKey then
- self.Enabled = not self.Enabled
- end
- end)
- end
- function TriggerBot.new(presets)
- presets = presets or {}
- local WallCheckParams = RaycastParams.new()
- WallCheckParams.FilterType = Enum.RaycastFilterType.Blacklist
- WallCheckParams.IgnoreWater = true
- WallCheckParams.FilterDescendantsInstances = {}
- presets["Params"] = WallCheckParams
- return setmetatable(presets, TriggerBot)
- end
- return TriggerBot
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement