Difference between revisions of "IsNearPlayer - ObjectReference"
Jump to navigation
Jump to search
imported>Jlundin |
imported>Thingy Person (→Syntax) |
||
Line 8: | Line 8: | ||
<source lang="papyrus"> | <source lang="papyrus"> | ||
bool Function IsNearPlayer() | bool Function IsNearPlayer() | ||
Actor player = Game.GetPlayer() | |||
Cell targetCell = self.GetParentCell() | |||
Cell playerCell = player.GetParentCell() | |||
if (targetCell != playerCell) | |||
if (targetCell && targetCell.IsInterior() || playerCell && playerCell.IsInterior()) | |||
return false | |||
else | |||
if (player.GetDistance(self) > 3000) | |||
return false | |||
else | |||
return true | |||
endif | |||
endif | |||
else | |||
return true | |||
endif | |||
endFunction | |||
</source> | </source> | ||
Latest revision as of 17:16, 29 June 2013
Member of: ObjectReference Script
A function that checks to see if this reference can be safely enabled/disabled/moved with confidence that the player won't see us messing around with the world.
Syntax[edit | edit source]
bool Function IsNearPlayer()
Actor player = Game.GetPlayer()
Cell targetCell = self.GetParentCell()
Cell playerCell = player.GetParentCell()
if (targetCell != playerCell)
if (targetCell && targetCell.IsInterior() || playerCell && playerCell.IsInterior())
return false
else
if (player.GetDistance(self) > 3000)
return false
else
return true
endif
endif
else
return true
endif
endFunction
Parameters[edit | edit source]
None.
Return Value[edit | edit source]
Whether this object is too close to the player to safely unload. Will err on the side of caution -- might return true in cases where you could monkey about with the object without the player seeing it, but will only return false if it is definitely safe to monkey with the object because the player will not see it.
Examples[edit | edit source]
; Disable the box, but only if the player isn't nearby
if (!Box.IsNearPlayer())
Box.Disable()
endif