Available in version 1.3 and later.
RegisterScript(<-name)
Registers the current script instance with a name. This name can be used with GetRegisteredScriptVar. If the same name is used as another script instance, this call will deregister the other script instance and replace it with the new one. A script on a unit is a unique instance. Each global script instance is also unique.
Note that registering a script is NOT persistent. It will not be saved in a save game file. You must reregister a script.
RegisterScript("MyScript")
This was added to CW4 as an attempt to give a similar API to what was in CW3. Messaging is likely the better option in most cases.
This works a lot like messaging. There is a global map and RegisterScript adds an entry into that map with the name you specify and the script it is called from. So it stores a named reference to a script instance in a global map, Get/SetRegiseredScriptVar looks up that instance in the map and then Gets/Sets a var on it. So if you have a Foo script attached to Unit A and Foo calls RegisterScript(“AName”), that will be a problem if another instance of Unit A runs Foo and it does the same thing. So Foo would more likely call RegisterScript(“AName:” self concat) or something like that. And the only reason it would ever call RegisterScript would be so some other script could get/set some variable on it
It makes most sense in a scenario where there is a single global script. Maybe “MapController”. That script calls RegisterScript(“MapController”). Then other scripts anywhere can call Get/SetRegisteredScriptVar(“MapController” …)
⇐ Index