Difference between revisions of "GetActorOwner - Cell"

From the CreationKit Wiki
Jump to navigation Jump to search
imported>Rhavlovick
m (1 revision: Clobber re-import by Henning)
 
imported>Terra Nova2
(add note with a function to take in account for inherited cell ownership.)
 
Line 20: Line 20:
; Does the emperor's base actor own the non-life star?
; Does the emperor's base actor own the non-life star?
bool ownsNonLifeStar = (NonLifeStarProperty.GetActorOwner() == Emperor.GetActorBase())
bool ownsNonLifeStar = (NonLifeStarProperty.GetActorOwner() == Emperor.GetActorBase())
</source>
== Notes ==
As this function doesn't return ownership for items in containers that also inherit ownership from the cell, you have to use the following function: [http://forums.bethsoft.com/topic/1530780-wipz-skyrim-script-extender-skse/page-4#entry24300488 Source]
<source lang="papyrus">
Actor Function GetInheritedOwner(ObjectReference aObj, ObjectReference aContainer)
  Actor owner = aObj.GetActorOwner()
  if !owner
    if aContainer
      owner = aContainer.GetActorOwner()
    endIf
    if !owner
      if aContainer
        owner = aContainer.GetParentCell().GetActorOwner()
      else
        owner = aObj.GetParentCell().GetActorOwner()
      endIf
    endIf
  endIf
  return owner
EndFunction
</source>
</source>



Latest revision as of 02:56, 7 September 2015

Member of: Cell Script

Gets the ActorBase that owns this cell. Will return None if the cell isn't owned by an actor.

Syntax[edit | edit source]

ActorBase Function GetActorOwner() native

Parameters[edit | edit source]

None.

Return Value[edit | edit source]

The ActorBase that owns this cell.

Examples[edit | edit source]

; Does the emperor's base actor own the non-life star?
bool ownsNonLifeStar = (NonLifeStarProperty.GetActorOwner() == Emperor.GetActorBase())

Notes[edit | edit source]

As this function doesn't return ownership for items in containers that also inherit ownership from the cell, you have to use the following function: Source

Actor Function GetInheritedOwner(ObjectReference aObj, ObjectReference aContainer)
  Actor owner = aObj.GetActorOwner()
  if !owner
    if aContainer
      owner = aContainer.GetActorOwner()
    endIf
    if !owner
      if aContainer
        owner = aContainer.GetParentCell().GetActorOwner()
      else
        owner = aObj.GetParentCell().GetActorOwner()
      endIf
    endIf
  endIf
  return owner
EndFunction

See Also[edit | edit source]