local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local lp = game:GetService("Players").LocalPlayer
local Camera = Workspace.CurrentCamera
local BulletHandler = require(ReplicatedStorage.ModuleScripts.GunModules.BulletHandler)
local function getClosestToCrosshair()
local closestDist = math.huge
local closestPlayer = nil
local mousePos = Camera.ViewportSize / 2
for _, player in pairs(game:GetService("Players"):GetPlayers()) do
if player ~= lp and player.Character and player.Character:FindFirstChild("Head") and player.Character:FindFirstChild("Humanoid") then
if player.Character.Humanoid.Health > 0 then
local screenPos, onScreen = Camera:WorldToViewportPoint(player.Character.Head.Position)
if onScreen then
local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
if dist < closestDist then
closestDist = dist
closestPlayer = player
end
end
end
end
end
return closestPlayer
end
local oldFire = BulletHandler.Fire
BulletHandler.Fire = function(arg1)
if not (arg1 and arg1.Misc) then return oldFire(arg1) end
local target = getClosestToCrosshair()
if target and target.Character and target.Character:FindFirstChild("Head") then
local headPos = target.Character.Head.Position
arg1.Direction = (headPos - arg1.Origin).Unit
if arg1.Misc then
arg1.Misc.CamCFrame = CFrame.new(arg1.Origin, headPos)
end
end
oldFire(arg1)
end
Comments
No comments yet
Be the first to share your thoughts!