User Tools

Site Tools


4rpl:commands:registerscript

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
4rpl:commands:registerscript [2022/05/11 08:56] – added discussion with developer Karsten754rpl:commands:registerscript [2022/05/12 12:01] (current) Karsten75
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
-<=[[4rpl:start| Index]]+<=[[4rpl:start| Index]] \\ 
 +<= [[4rpl:start#Messaging]] 
  
 :!: Available in version 1.3 and later. :!: Available in version 1.3 and later.
Line 20: Line 21:
  
 === Discussion === === Discussion ===
-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 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  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 
4rpl/commands/registerscript.1652273778.txt.gz · Last modified: 2022/05/11 08:56 by Karsten75