FindRandomReferenceOfAnyTypeInListFromRef - Game

From Creation Kit
Revision as of 2014-01-13T07:54:28 by Chesko (Talk | contribs) (Removed confusing return function from syntax, as other functions on this wiki do not follow that format.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Member of: Game Script

Finds a random reference of any of the types in the list from the given reference location and within the given radius.

Syntax

ObjectReference Function FindRandomReferenceOfAnyTypeInListFromRef(FormList arBaseObjects, ObjectReference arCenter, float afRadius) global

Parameters

  • 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.

Return Value

A random reference of of any of the types within the radius or the center reference, none if none was found.

Examples

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.

See Also