GetNthSummon

Revision as of 06:55, 26 December 2009 by imported>Kyoma (Added GetSummoner link)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

A User Function for use with Oblivion Script Extender

Syntax:

(summon:ref) reference.Call GetNthSummon whichSummon:short

Returns a reference to the nth actor currently summoned by the calling actor.

NotesEdit

  • This function must be called on a reference (Ref.call <function>)

Examples:Edit

Getting a reference to a summon active on a reference (in this case the player)

Let rSummon := player.Call GetNthSummon 0
Let rSummon := player.Call GetNthSummon 1
. . .
Let rSummon := player.Call GetNthSummon Nth

CodeEdit

ScriptName GetNthSummon
long iNth
array_var arFollowers
ref rFollower
long iFollower

Begin Function {iNth}
	let arFollowers := GetFollowers
	let iFollower := GetNumFollowers
 	While iFollower > 0
		let iFollower -= 1
		let rFollower := GetNthFollower iFollower
		ar_Erase arFollowers ( ar_Find rFollower arFollowers )
	Loop

	if TestExpr arFollowers[iNth]
		SetFunctionValue arFollowers[iNth]
	endif
 	let arFollowers := ar_Null
 End 

Alternative code for use with GetSummons (to avoid duplicate code)

ScriptName GetNthSummon
long iNth
array_var arSummons

Begin Function {iNth}
	let arSummons := Call GetSummons
	if TestExpr arSummons[iNth]
		SetFunctionValue arSummons[iNth]
	endif
	let arSummons := ar_Null
End 

See AlsoEdit