CriShoux

Untitled

Oct 5th, 2019
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local localPlayer = game:GetService("Players").LocalPlayer
  2. local teamCheck = true
  3.  
  4. function getClosestPlayer()
  5. local closestPlayer = nil
  6. local shortestDistance = math.huge
  7.  
  8. for i, v in pairs(game:GetService("Players"):GetPlayers()) do
  9. if v.Name ~= localPlayer.Name then
  10. 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
  11. local magnitude = (v.Character.HumanoidRootPart.Position - localPlayer.Character.HumanoidRootPart.Position).magnitude
  12.  
  13. if magnitude < shortestDistance then
  14. closestPlayer = v
  15. shortestDistance = magnitude
  16. end
  17. 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
  18. local magnitude = (v.Character.HumanoidRootPart.Position - localPlayer.Character.HumanoidRootPart.Position).magnitude
  19.  
  20. if magnitude < shortestDistance then
  21. closestPlayer = v
  22. shortestDistance = magnitude
  23. end
  24. end
  25. end
  26. end
  27.  
  28. return closestPlayer
  29. end
  30.  
  31. game:GetService("UserInputService").InputBegan:Connect(function(input, onGui)
  32. if not onGui and input.KeyCode == Enum.KeyCode.T then
  33. teamCheck = not teamCheck
  34. end
  35. end)
  36.  
  37. local mt = getrawmetatable(game)
  38. local oldNamecall = mt.__namecall
  39. if setreadonly then setreadonly(mt, false) else make_writeable(mt, true) end
  40. local namecallMethod = getnamecallmethod or get_namecall_method
  41. local newClose = newcclosure or function(f) return f end
  42.  
  43. mt.__namecall = newClose(function(...)
  44. local method = namecallMethod()
  45. local args = {...}
  46.  
  47. if tostring(method) == "FireServer" and tostring(args[1]) == "HitPart" and getClosestPlayer().Character and getClosestPlayer().Character:FindFirstChild("Head") then
  48. args[2] = getClosestPlayer().Character.Head
  49. args[3] = getClosestPlayer().Character.Head.Position
  50.  
  51. return oldNamecall(unpack(args))
  52. end
  53.  
  54. return oldNamecall(...)
  55. end)
  56.  
  57. if setreadonly then setreadonly(mt, true) else make_writeable(mt, false) end
Advertisement
Add Comment
Please, Sign In to add comment