FindRandomReferenceOfAnyTypeInListFromRef - Game
Member of: Game Script
ObjectReference Function FindRandomReferenceOfAnyTypeInListFromRef(FormList arBaseObjects, ObjectReference arCenter, float afRadius) global
- arBaseObjectsA: The list of valid base objects to look for
- arCenter: The reference to use as a center of the search.
- afRadius: Maximum distance from center to look for a reference. The unit of this parameter is comparatively much shorter than the radius of a cloak spell or the feet parameter given to "target actor" and "target location" spells. Try starting with a value of 400.
A random reference of of any of the types within the radius or the center reference, none if none was found.
import debug FormList property lookForItems auto ; roughly 1500 entries (all enchanted armors) float distance = 2560.0 ; slightly longer than the carpet in The Great Porch of Dragonsreach int len = lookForItems.getSize() bool looking = true ObjectReference item ObjectReference p = game.getPlayer() as ObjectReference while i < len && looking item = Game.FindRandomReferenceOfAnyTypeInListFromRef(lookForItems, p, distance) if item looking = false endif if i % 60 == 0 trace(" iteration: " + i + " / " + len) endif i += 1 endWhile if item item.moveto(p) trace("got item: " + item) else trace("no items found. list: " +lookForItems+ ", list entries: " + len) endif
This example will look any enchanted armor that the lookForItems FormList has been filled with (in the CK). While the search distance and the length of the form list look ominously big, this example should find an item within a second if the player is within the specified distance of a qualifying item. The reason for iterating so many times is not really well founded, but it follows the example in critterBird.psc.