Difference between revisions of "GetSelf"
Jump to navigation
Jump to search
imported>Scruggs (Actually, I was right the first time. Sorry for the spam.) |
imported>QQuix (Added a note on a GetSelf glitch) |
||
(16 intermediate revisions by 8 users not shown) | |||
Line 8: | Line 8: | ||
set MyQuest.targetRef to GetSelf | set MyQuest.targetRef to GetSelf | ||
Returns the calling object itself as a reference. Useful for if statements, or for setting reference variables on other scripts. | An alias for [[This]]. Returns the calling object itself as a reference. Useful for if statements, or for setting reference variables on other scripts. | ||
Notes: | ==Notes== | ||
* | * This function doesn't work quite as expected for [[Glossary#I|item]]s. See [http://www.uesp.net/wiki/Tes4Mod:Modding_Terminology Modding Terminology], especially the [http://www.uesp.net/wiki/Tes4Mod:Modding_Terminology#Dynamic_Items Dynamic Items] and [http://www.uesp.net/wiki/Tes4Mod:Modding_Terminology#Scripting_Notes Scripting Notes] sections for more information. In particular : | ||
** GetSelf applied to a mod based (non-dynamic) item will always return the original formid of the item as long as the item is in the world (not in an inventory). | |||
** getSelf applied to a dynamic item will always return 0 -- even when the item is in a cell and has a reference. While you might expect it to return the formid of its dynamic reference while in the cell, apparently the function is rigged to return zero for safety reasons. Directly contrary to the behavior of getSelf, [[placeAtMe]] creates a dynamic reference -- ''and'' returns the correct formid. | |||
*GetSelf returns 0 if the item is in an inventory (for both, dynamic and non-dynamic items) | |||
* This function [[Talk:GetSelf#Unreliability with Player|appears to be unreliable]] when called on the player. | * This function [[Talk:GetSelf#Unreliability with Player|appears to be unreliable]] when called on the player. | ||
**You can use | |||
<pre>set ref to GetSelf | |||
if (ref.GetIsReference player == 0)</pre> | |||
to make sure it's not the player. See the talk page for more information. | |||
* This function returns 0 when called on a [[Light]]. | * This function returns 0 when called on a [[Light]]. | ||
* If used (1) in an item script AND (2) the item is in a container in an exterior cell AND (3) the container cell is loaded as the player approaches on foot AND (4) GetSelf is used in the very first frame >> the game CTDs. ([[Talk:GetSelf#GetSelf glitch|see the talk page for details]]) | |||
==See Also== | |||
[[This]] | |||
[[Category: Functions]] | [[Category: Functions]] | ||
[[Category: | [[Category: Functions (CS)]] | ||
[[Category: Functions (CS 1.0)]] | |||
[[Category: Record Variable Functions]] | |||
[[Category: Record Variable Functions (CS 1.0)]] | |||
<!-- Begin Search Terms | |||
Get | |||
Self | |||
End Search Terms --> |
Latest revision as of 06:38, 15 May 2011
Syntax:
set refVar to GetSelf set refVar to this
Example:
if GetSelf == GetActionRef
set MyQuest.targetRef to GetSelf
An alias for This. Returns the calling object itself as a reference. Useful for if statements, or for setting reference variables on other scripts.
Notes[edit | edit source]
- This function doesn't work quite as expected for items. See Modding Terminology, especially the Dynamic Items and Scripting Notes sections for more information. In particular :
- GetSelf applied to a mod based (non-dynamic) item will always return the original formid of the item as long as the item is in the world (not in an inventory).
- getSelf applied to a dynamic item will always return 0 -- even when the item is in a cell and has a reference. While you might expect it to return the formid of its dynamic reference while in the cell, apparently the function is rigged to return zero for safety reasons. Directly contrary to the behavior of getSelf, placeAtMe creates a dynamic reference -- and returns the correct formid.
- GetSelf returns 0 if the item is in an inventory (for both, dynamic and non-dynamic items)
- This function appears to be unreliable when called on the player.
- You can use
set ref to GetSelf if (ref.GetIsReference player == 0)
to make sure it's not the player. See the talk page for more information.
- This function returns 0 when called on a Light.
- If used (1) in an item script AND (2) the item is in a container in an exterior cell AND (3) the container cell is loaded as the player approaches on foot AND (4) GetSelf is used in the very first frame >> the game CTDs. (see the talk page for details)
See Also[edit | edit source]