Difference between revisions of "Cross Script Variables"
Jump to navigation
Jump to search
no edit summary
imported>Bruneauinfo |
imported>Bruneauinfo |
||
Line 50: | Line 50: | ||
====Notes==== | ====Notes==== | ||
*You should NOT assign starting values to your variables. If you need to do this, do it using some other method. Setting values within this script essentially locks the value in. There may be a workaround for doing this, but more testing will be required. | *You should NOT assign starting values to your variables. If you need to do this, do it using some other method. Setting values within this script essentially locks the value in. There may be a workaround for doing this, but more testing will be required. | ||
*The variable names listed in the script can be named whatever you like - preferably something meaningful to their purpose. | |||
The next part of this step is to create a quest. You can read up on the steps for creating a quest on the wiki. Just keep in mind that the only setting needed for creating this functionality is the "Script" setting under the ''Quest Data'' tab. Once you create and name your quest select your quest script from above under the ''script setting'' for the quest. (''For these examples the quest is named '''MyQuest'''''.) | The next part of this step is to create a quest. You can read up on the steps for creating a quest on the wiki. Just keep in mind that the only setting needed for creating this functionality is the "Script" setting under the ''Quest Data'' tab. Once you create and name your quest select your quest script from above under the ''script setting'' for the quest. (''For these examples the quest is named '''MyQuest'''''.) | ||
Line 71: | Line 73: | ||
begin onActivate | begin onActivate | ||
set "MyQuest".refVar to "ObjectReference" ; or some reference variable | |||
set "MyQuest".floatVar to 1234567890 ; or some float variable | |||
set "MyQuest".ShortVar to 2012 ; or some integer variable | |||
end | |||
</pre> | |||
That's it! Now associate this script with some object that can be "activated". When the player or an actor activates the object the values listed above will be assigned to the script variables in the quest script. | |||
It's very important to notice where quotes were used in the example script. These are '''required'''. If the quotes are not used the script will fail to work properly. Yes, the script will compile, but the values will not be written to the quest script. References as well as the reference for the quest require these quotation marks. However, in the case of a reference variable quotes are only required when setting the value of the reference variable. | |||
set "MyQuest".refVar to ThisReferenceVar | |||
=== Reading a Value === | |||
Now that you know how to write values to your quest script database you just need to know how to read them. | |||
The script : | |||
<pre> | |||
Scriptname MyReadingScript | |||
ref refVar ; reference value as stored | |||
ref refVarRetrieved ; reference value as retrieved | |||
float floatVar ; float value as stored | |||
float floatVarRetrieved ; float value as retrieved | |||
short ShortVar ; integer value as stored | |||
short ShortVarRetrieved ; integer value as retrieved | |||
begin OnActivate | |||
set refVarRetrieved to "MyQuest".refVar | |||
set floatVarRetrieved to "MyQuest".floatVar | |||
set ShortVarRetrieved to "MyQuest".ShortVar | |||
MessageBoxEx "See my reference: %n See my float: %g See my integer: %.0f", refVarRetrieved, floatVarRetrieved, ShortVarRetrieved | |||
end | end | ||
</pre> | </pre> | ||
Again the quotes around the name of your quest are critical for this to work. Also, if you use this script exactly as written the message box will show the name of your reference rather than the reference. See [[MessageBoxEx]] for more. But the reference value is there and ready for use. | |||