Difference between revisions of "GetSelf"

199 bytes added ,  17:17, 23 December 2014
m
Reversed the example in notes. "never do this" was and still is bad advice.
imported>Cipscis
(Further testing of GetSelf reveals that it returns 0 when called on references saved in the save game (i.e. those with formIDs starting with "ff"). Thanks to HugePinball for pointing this out.)
imported>Prideslayer
m (Reversed the example in notes. "never do this" was and still is bad advice.)
Line 11: Line 11:
==Notes==
==Notes==
<ul>
<ul>
<li>Because reference functions can be called on the scripted reference implicitly by omitting explicit reference syntax, the following code structure should never be used:
<li>While functions that take an implied reference can be cast without needing a variable or call to getself, like so:
<pre>ref rSelf
<pre>CIOS someSpell</pre>
Doing so may not be clear, and makes the code less portable if moved to a different script that does not support the implied reference.  For this reason, modders should prefer the more expressive syntax:
<pre>
ref rSelf
set rSelf to GetSelf
set rSelf to GetSelf
rSelf.ReferenceFunction</pre>
rSelf.CIOS someSpell</pre>
Instead, just use code like this:
Not only for CIOS, but for all "reference methods" that require a reference, like CIOS.
<pre>ReferenceFunction</pre>
</li>
</li>
<li>[[GetSelf]] will return 0 if called on a reference that has been created dynamically (for example, created via [[PlaceAtMe]], or dropped from an inventory into the game world).
<li>[[GetSelf]] will return 0 if called on a reference that has been created dynamically (for example, created via [[PlaceAtMe]], or dropped from an inventory into the game world).
Anonymous user