Difference between revisions of "OnActivate"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>JOG
imported>Haama
(Fixed notes on when activation occurs, added notes on nesting)
Line 5: Line 5:


'''Notes:'''
'''Notes:'''
*Using OnActivate will prevent normal activation of the object. To use the object's default activation you must call [[Activate]] on it. If you want to do something specific depending on what activated the object, use [[IsActionRef]] inside the OnActivate block.  
*Using OnActivate will prevent normal activation of the object. To use the object's default activation you must call [[Activate]] on it. If you want to do something specific depending on what activated the object, use IsActionRef inside the OnActivate block.


*This block runs when the object was activated in the last frame. When an object is activated several times within the same frame (e.g. by a script using [[Activate]]) the game will ignore all activations but the last one. (I.e. the ActionRef will always be the one of the last activating object.)
*This block (and perhaps the entire script --[[User:Haama|Haama]] 18:52, 13 July 2007 (EDT)) runs immediately when called from an external script. There were a few things that were posted before that this should clarify:
#Activation occurs before the next line of code of the calling script is processed, and not in the next frame
#Any number of objects can activate one object, within one frame, and they will all be run (though see notes on [[Activate#Nesting|Nesting]])
 
*It's possible to nest activations. However, you can only have 5-6 nests at any given time (see [[Activate#Nesting|Nesting]] for more information)


*The activator type of object has NO default activation.  
*The activator type of object has NO default activation.  

Revision as of 17:52, 13 July 2007

Syntax:

 begin OnActivate 

This block will be run once when the scripted reference is activated.

Notes:

  • Using OnActivate will prevent normal activation of the object. To use the object's default activation you must call Activate on it. If you want to do something specific depending on what activated the object, use IsActionRef inside the OnActivate block.
  • This block (and perhaps the entire script --Haama 18:52, 13 July 2007 (EDT)) runs immediately when called from an external script. There were a few things that were posted before that this should clarify:
  1. Activation occurs before the next line of code of the calling script is processed, and not in the next frame
  2. Any number of objects can activate one object, within one frame, and they will all be run (though see notes on Nesting)
  • It's possible to nest activations. However, you can only have 5-6 nests at any given time (see Nesting for more information)
  • The activator type of object has NO default activation.
  • Locked doors, containers and books are activated a second time automatically when you open the lock or take the book. To find out when a door was unlocked, for example, you can wait for GetLocked == 0 in the OnActivate-block.

See Also

Begin

IsActionRef

GetActionRef