Talk:FindClosestActorFromRef - Game
There are no discussions on this page.
Can recreate this function that will ignore arCenter in the search if it's an actor.
Actor Function FindTheClosestActorFromRef(ObjectReference center, Float radius)
Keyword ActorType = Game.GetFormFromFile(0x0013794, "Fallout4.ESM") as Keyword
ObjectReference[] ActorsFound = Game.GetPlayer().FindAllReferencesWithKeyword(ActorType, radius)
Int maxActorsFound = ActorsFound.length
Int lowestDist = 99999999
Int closestActorIndex = 0
Int i = 0
if maxActorsFound > 0
; is the source ref an actor?
if (center as actor) == true
; remove the source ref from the array
Int sourceRefIndex = ActorsFound.Find(center)
ActorsFound.Remove(sourceRefIndex)
; reassign the new length of the array
maxActorsFound = ActorsFound.length
endif
while i < maxActorsFound
if (ActorsFound[i].getDistance(center)) as int < lowestDist
lowestDist = (ActorsFound[i].getDistance(center)) as int
closestActorIndex = i
endif
i += 1
endwhile
return ActorsFound[closestActorIndex] as Actor
else
return none
endif
EndFunction