Difference between revisions of "GetPlayer - Game"

From the CreationKit Wiki
Jump to navigation Jump to search
imported>JustinOther
m (→‎Notes: Double fix'd. *drinks more coffee before editing anything else*)
imported>NNW
Line 23: Line 23:


== Notes ==
== Notes ==
Only use this function if you need it once in a script. Otherwise use a property with the player reference as the value. A property is literally is 1000 times faster (See: [http://forums.bethsoft.com/topic/1360171-playerref-gamegetplayer-or-do-it-in-properties| CK Forum Thread]). Use the below instead, naming a property "PlayerRef". You can just auto-fill it and the player's reference will automatically be assigned. While it's true that filling a property with a reference or actor will make them persistent, the player (and most actors) are already persistent.
Only use this function if you need it once in a script. Otherwise use a property with the player reference as the value. A property is literally 1000 times faster (See: [http://forums.bethsoft.com/topic/1360171-playerref-gamegetplayer-or-do-it-in-properties| CK Forum Thread]). Use the below instead, naming a property "PlayerRef". You can just auto-fill it and the player's reference will automatically be assigned. While it's true that filling a property with a reference or actor will make them persistent, but the player (and most actors) are already persistent.
<source lang="papyrus">Actor Property PlayerRef AutoEvent
<source lang="papyrus">Actor Property PlayerRef AutoEvent



Revision as of 05:34, 27 January 2013

Member of: Game Script

Obtains the actor representing the player.

Syntax

Actor Function GetPlayer() native global

Parameters

None

Return Value

The Actor that represents the player.

Examples

; Print out the player to the log
Debug.Trace("Player is " + Game.GetPlayer())

Notes

Only use this function if you need it once in a script. Otherwise use a property with the player reference as the value. A property is literally 1000 times faster (See: CK Forum Thread). Use the below instead, naming a property "PlayerRef". You can just auto-fill it and the player's reference will automatically be assigned. While it's true that filling a property with a reference or actor will make them persistent, but the player (and most actors) are already persistent.

Actor Property PlayerRef AutoEvent

Event OnInit()
	Debug.Trace("Player is " + PlayerRef)
EndEvent

In the event you are referring to the player more than once, sometimes you can minimize use of GetPlayer, utilizing an event's arguments as a free way to cache PlayerREF and in turn expedite your script.

Event OnActivate(ObjectReference akActionRef)
	If akActionRef == Game.GetPlayer()
		Int iCount = akActionRef.GetItemCount(kWidget)
		If iCount
			akActionRef.RemoveItem(kWidget, iCount)
			akActionRef.AddItem(kBauble, iCount)
		EndIf
	EndIf
EndEvent

See Also