Difference between revisions of "DelayEvent"
m (removed tag) |
(→Examples) |
||
(8 intermediate revisions by 4 users not shown) | |||
Line 30: | Line 30: | ||
== Remarks == | == Remarks == | ||
<!-- This section contains additional comments, observations and known issues. --> | <!-- This section contains additional comments, observations and known issues. --> | ||
− | With a negative or zero time in fSeconds, the event will run on the next AI update. | + | With a negative or zero time in fSeconds, the event will run on the next AI update. |
− | < | + | The <code>scriptname</code> parameter does not work for an [[area]]. |
+ | |||
+ | == Examples == | ||
<!-- This section contains examples transcluded from the snippet library. --> | <!-- This section contains examples transcluded from the snippet library. --> | ||
+ | If the intention is simply to delay the execution of a script, the function can be called with a dummy event parameter. For example, the snippet | ||
+ | <dascript> | ||
+ | DelayEvent(1.0, OBJECT_SELF, Event(EVENT_TYPE_INVALID), "my_script"); | ||
+ | </dascript> | ||
+ | |||
+ | will run the script my_script.ncs on the current object after 1 second. | ||
+ | |||
+ | <code>DelayEvent</code> can be used to create a heartbeat event that is sent to an object at regular intervals. For example, if you created the following script named "event_heartbeat" it would fire every six seconds after it has been initiated. | ||
+ | |||
+ | <dascript> | ||
+ | #include "events_h" | ||
+ | |||
+ | void main() | ||
+ | { | ||
+ | // extract event type from current event | ||
+ | event ev = GetCurrentEvent(); | ||
+ | int nEventType = GetEventType(ev); | ||
+ | |||
+ | switch(nEventType) | ||
+ | { | ||
+ | case EVENT_TYPE_HEARTBEAT: | ||
+ | { | ||
+ | // insert whatever code you need to execute on every heartbeat here | ||
+ | |||
+ | // schedule a delayed event on this object to call this script again | ||
+ | DelayEvent(6.0, OBJECT_SELF, Event(EVENT_TYPE_HEARTBEAT), "event_heartbeat"); | ||
+ | |||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </dascript> | ||
+ | To associate a heartbeat with a particular object you can use that object's event-handling script and omit the <code>scriptname</code> parameter. | ||
<!-- == See also == --> | <!-- == See also == --> |
Latest revision as of 16:53, 29 September 2010
Signals a delayed event to the specified object.
- Parameters:
- fSeconds
- The number of seconds for which to delay the event
- oObject
- The object to signal the event to
- evEvent
- The event to signal
- scriptname
- If specified overides the default script
- Returns:
- Nothing.
- Source:
- script.ldf
Description
Signals a delayed event to the target object.
Remarks
With a negative or zero time in fSeconds, the event will run on the next AI update.
The scriptname
parameter does not work for an area.
Examples
If the intention is simply to delay the execution of a script, the function can be called with a dummy event parameter. For example, the snippet
DelayEvent(1.0, OBJECT_SELF, Event(EVENT_TYPE_INVALID), "my_script");
will run the script my_script.ncs on the current object after 1 second.
DelayEvent
can be used to create a heartbeat event that is sent to an object at regular intervals. For example, if you created the following script named "event_heartbeat" it would fire every six seconds after it has been initiated.
#include "events_h" void main() { // extract event type from current event event ev = GetCurrentEvent(); int nEventType = GetEventType(ev); switch(nEventType) { case EVENT_TYPE_HEARTBEAT: { // insert whatever code you need to execute on every heartbeat here // schedule a delayed event on this object to call this script again DelayEvent(6.0, OBJECT_SELF, Event(EVENT_TYPE_HEARTBEAT), "event_heartbeat"); break; } } }
To associate a heartbeat with a particular object you can use that object's event-handling script and omit the scriptname
parameter.