Difference between revisions of "Reference Variables"
imported>Millinghordesman m |
imported>JOG m |
||
Line 40: | Line 40: | ||
if myReferenceVariable != player | if myReferenceVariable != player | ||
</pre> | </pre> | ||
Example: | |||
scn TheMastersSword ; Whoever equips it gets +50 to blade | |||
ref UserRef | |||
begin OnEquip | |||
set UserRef to GetContainer | |||
UserRef.Modactorvalue blade 50 | |||
end | |||
begin OnUnEquip | |||
set UserRef to GetContainer | |||
UserRef.Modactorvalue blade -50 | |||
end | |||
[[Category:Variables]] | [[Category:Variables]] |
Revision as of 15:20, 12 April 2006
Like other variables, reference variables must be declared before they can be used:
ref refVarName
You can use a reference variable anywhere you could use an object reference. Uninitialized reference variables act as if they referred to the scripted object itself; otherwise a reference variable acts just like any other reference.
A reference variable whose object is not in memory (such as a static object after the player leaves that object's cell) is treated as uninitialized.
You set reference variables using the set command, like other variables. Normally, you will want to use a reference variable function, which returns a formID. For example:
set myRef to GetContainer
Like other variables, you can set a reference variable on another scripted object:
set BobRef.myRef to GetSelf
To check if a ref variable is unset:
if myReferenceVariable == 0
To check if a ref variable is set:
if myReferenceVariable != 0
To check if a ref variable is another reference (in this example the player):
if myReferenceVariable == player
Or not another reference:
if myReferenceVariable != player
Example:
scn TheMastersSword ; Whoever equips it gets +50 to blade ref UserRef begin OnEquip set UserRef to GetContainer UserRef.Modactorvalue blade 50 end begin OnUnEquip set UserRef to GetContainer UserRef.Modactorvalue blade -50 end