Difference between revisions of "OnActivate"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>Haama
m (Standardized)
imported>Haama
(→‎Notes: Oops, tested that long ago)
Line 9: Line 9:
*If you want to do something specific depending on what activated the object, use [[IsActionRef]] or [[GetActionRef]] inside the OnActivate block. They won't return the correct ActionRef in any other block.
*If you want to do something specific depending on what activated the object, use [[IsActionRef]] or [[GetActionRef]] inside the OnActivate block. They won't return the correct ActionRef in any other block.


*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:
*This block (and the entire script) 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
#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]])
#Any number of objects can activate one object, within one frame, and they will all be run (though see notes on [[Activate#Nesting|Nesting]])

Revision as of 13:13, 23 June 2008

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 or GetActionRef inside the OnActivate block. They won't return the correct ActionRef in any other block.
  • This block (and the entire script) 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.
  • Selecting an item in inventory will equip it (except for enchanted scrolls) and run onEquip blocks instead of the onActivate block.
    • However, you can make an item run it's own onActivate block in the inventory menu (MenuMode 1008, MenuMode, onEquip, etc.) with Activate player, 1.
  • If you create an object and activate it in the same frame, its OnActivate block may not run. See PlaceAtMe more info.

See Also