Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- arsenal
- local localPlayer = game:GetService("Players").LocalPlayer
- local currentCamera = game:GetService("Workspace").CurrentCamera
- local mouse = localPlayer:GetMouse()
- local teamCheck = true
- function getClosestPlayerToCursor() [nonamecall]
- local closestPlayer = nil
- local shortestDistance = math.huge
- for i, v in pairs(game:GetService("Players"):GetPlayers()) do
- if v.Name ~= localPlayer.Name then
- if v.Character and v.Character:FindFirstChild("Humanoid") and v.Character.Humanoid.Health ~= 0 and v.Character:FindFirstChild("HumanoidRootPart") and v.Character:FindFirstChild("Head") and teamCheck and v.Team ~= localPlayer.Team then
- local pos = currentCamera:WorldToViewportPoint(v.Character.HumanoidRootPart.Position)
- local magnitude = (Vector2.new(pos.X, pos.Y) - Vector2.new(mouse.X, mouse.Y)).magnitude
- if magnitude < shortestDistance then
- closestPlayer = v
- shortestDistance = magnitude
- end
- elseif v.Character and v.Character:FindFirstChild("Humanoid") and v.Character.Humanoid.Health ~= 0 and v.Character:FindFirstChild("HumanoidRootPart") and v.Character:FindFirstChild("Head") and not teamCheck then
- local pos = currentCamera:WorldToViewportPoint(v.Character.HumanoidRootPart.Position)
- local magnitude = (Vector2.new(pos.X, pos.Y) - Vector2.new(mouse.X, mouse.Y)).magnitude
- if magnitude < shortestDistance then
- closestPlayer = v
- shortestDistance = magnitude
- end
- end
- end
- end
- return closestPlayer or localPlayer
- end
- game:GetService("UserInputService").InputBegan:Connect(function(input, onGui)
- if not onGui and input.KeyCode == Enum.KeyCode.T then
- teamCheck = not teamCheck
- end
- end)
- local mt = getrawmetatable(game)
- local oldNamecall = mt.__namecall
- if setreadonly then setreadonly(mt, false) else make_writeable(mt, true) end
- local namecallMethod = getnamecallmethod or get_namecall_method
- local newClose = newcclosure or function(f) return f end
- mt.__namecall = newClose(function(...) [nonamecall]
- local method = namecallMethod()
- local args = {...}
- if tostring(method) == "FireServer" and tostring(args[1]) == "HitPart" then
- args[2] = getClosestPlayerToCursor().Character.Head
- args[3] = getClosestPlayerToCursor().Character.Head.Position
- return oldNamecall(unpack(args))
- end
- return oldNamecall(...)
- end)
- if setreadonly then setreadonly(mt, true) else make_writeable(mt, false) end
- [=]
- sa
- local localPlayer = game:GetService("Players").LocalPlayer
- local currentCamera = game:GetService("Workspace").CurrentCamera
- local mouse = localPlayer:GetMouse()
- local teamCheck = true
- local function getClosestPlayerToCursor()
- local closestPlayer = nil
- local shortestDistance = math.huge
- for i, v in pairs(game:GetService("Players"):GetPlayers()) do
- if v.Name ~= localPlayer.Name then
- if v.Character and v.Character:FindFirstChild("Humanoid") and v.Character.Humanoid.Health ~= 0 and v.Character:FindFirstChild("HumanoidRootPart") and v.Character:FindFirstChild("Head") and teamCheck and v.Team ~= localPlayer.Team then
- local pos = currentCamera:WorldToViewportPoint(v.Character.HumanoidRootPart.Position)
- local magnitude = (Vector2.new(pos.X, pos.Y) - Vector2.new(mouse.X, mouse.Y)).magnitude
- if magnitude < shortestDistance then
- closestPlayer = v
- shortestDistance = magnitude
- end
- elseif v.Character and v.Character:FindFirstChild("Humanoid") and v.Character.Humanoid.Health ~= 0 and v.Character:FindFirstChild("HumanoidRootPart") and v.Character:FindFirstChild("Head") and not teamCheck then
- local pos = currentCamera:WorldToViewportPoint(v.Character.HumanoidRootPart.Position)
- local magnitude = (Vector2.new(pos.X, pos.Y) - Vector2.new(mouse.X, mouse.Y)).magnitude
- if magnitude < shortestDistance then
- closestPlayer = v
- shortestDistance = magnitude
- end
- end
- end
- end
- return closestPlayer
- end
- game:GetService("UserInputService").InputBegan:Connect(function(input, onGui)
- if not onGui and input.KeyCode == Enum.KeyCode.T then
- teamCheck = not teamCheck
- end
- end)
- local mt = getrawmetatable(game)
- local oldIndex = mt.__index
- local oldNamecall = mt.__namecall
- if setreadonly then setreadonly(mt, false) else make_writeable(mt, true) end
- local nameCallMethod = getnamecallmethod or get_namecall_method
- local newClose = newcclosure or function(f) return f end
- mt.__index = newClose(function(t, k)
- if t == mouse and tostring(k) == "Hit" and getClosestPlayerToCursor() and getClosestPlayerToCursor().Character:FindFirstChild("Head") then
- return getClosestPlayerToCursor().Character.Head.CFrame
- end
- return oldIndex(t, k)
- end)
- mt.__namecall = newClose(function(...)
- local method = nameCallMethod()
- local args = {...}
- if tostring(method) == "FindPartOnRayWithIgnoreList" and getClosestPlayerToCursor() and getClosestPlayerToCursor().Character then
- return oldNamecall(args[1], args[2], {game:GetService("Workspace").IgnoreThese, game:GetService("Players").LocalPlayer.Character, game:GetService("Workspace").BuildStuff, game:GetService("Workspace").Map})
- end
- return oldNamecall(...)
- end)
- if setreadonly then setreadonly(mt, true) else make_writeable(mt, false) end
- local oldFunc
- oldFunc = hookfunction(workspace.FindPartOnRayWithIgnoreList, function(...)
- local args = {...}
- args[3] = {game:GetService("Workspace").IgnoreThese, game:GetService("Players").LocalPlayer.Character, game:GetService("Workspace").BuildStuff, game:GetService("Workspace").Map}
- return oldFunc(unpack(args))
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement