I am trying to make a certain lock on script, where if a humanoid root part is located within a certain distance of the player, on key press, you lock on to his torso, root, etc. I dont understand how this would be accomplished, if you would help, it would be much appreciated!
when key pressed, take the position of the part you want and players humanoidrootpart. then use magnitude to find the distance between the two.
-- example with 2 players local distance = (humanoidrootpart - humanoidrootpart2).Magnitude print(distance)
If you're talking radius, then height is not a contributing factor. I wrote this function so you could compare two points to get a distance, it includes a third argument that when set to true; will ignore the height difference between the two points while calculating distance.
local function GetDistanceBetween(Point0, Point1, IgnoreHeight) local Distance = (Point0 - Point1) return (Distance * (IgnoreHeight == true and Vector3.new(1, 0, 1) or Vector3.new(1, 1, 1))).Magnitude end -- Below example. local Distance = GetDistanceBetween(Vector3.new(0, 0, 0), Vector3.new(100, 35, 100), true) print(Distance)
In the example below the function; ignoring height gives the radius (141.42135620117). If we don't ignore height, then the result would be a bit larger due to the curve caused by the height (145.68801879883).