GetActorOwner - ObjectReference
Revision as of 17:01, 10 September 2015 by imported>Fireundubh (→Returning an inherited owner)
Member of: ObjectReference Script
Gets the ActorBase that owns this object. Will return None if the object isn't owned by an actor.
SyntaxEdit
ActorBase Function GetActorOwner() native
ParametersEdit
None.
Return ValueEdit
The ActorBase that owns this object.
ExamplesEdit
Returning an explicit ownerEdit
; Does the player own the sword?
Bool playerOwnsSword = SwordProperty.GetActorOwner() == Game.GetPlayer().GetActorBase()
Returning an inherited ownerEdit
; Does the player own the sword?
Bool playerOwnsSword = GetInheritedOwner(SwordProperty, SwordRackProperty) == Game.GetPlayer().GetActorBase()
ActorBase Function GetInheritedOwner(ObjectReference aObj, ObjectReference aContainer)
ActorBase actorOwner
; if the object exists
; try to get the object's explicit owner
If aObj
actorOwner = aObj.GetActorOwner()
; if the object does not have an explicit owner
; and if the container exists
; try to get the container's explicit owner
If !actorOwner
If aContainer
actorOwner = aContainer.GetActorOwner()
; but if the container also does not have an explicit owner
; try to get the parent cell of the container's explicit owner
If !actorOwner
actorOwner = aContainer.GetParentCell().GetActorOwner()
EndIf
EndIf
; if even the parent cell of the container does not have an explicit owner
; try one last time to get the parent cell of the object's explicit owner
If !actorOwner
actorOwner = aObj.GetParentCell().GetActorOwner()
EndIf
EndIf
EndIf
; returns an explicit owner, inherited owner, or none
Return actorOwner
EndFunction
NotesEdit
Explicit vs. Inherited OwnershipEdit
Object references can have explicit owners and inherited owners. An explicit owner is associated directly with the object. An inherited owner is derived from the container that contains the object, the cell that contains the object, or the cell that contains the container that contains the object when the object has not been associated with an explicit owner. GetActorOwner() returns only the explicit owner of an object reference and None when an explicit owner is not found.