-
Notifications
You must be signed in to change notification settings - Fork 2
ObstacleScript Globals
Jasdac edited this page Mar 10, 2021
·
10 revisions
This is a list of built in constants, definitions, macros, and globals.
These can be used anywhere in a project.
| Definition | Value | Description |
|---|---|---|
| PUB_CHAN | 0xB00B | This is the channel ObstacleScript communicates on in default communication. |
| OBSTACLE_CHAN | 0xC34 | This is the base channel for obstacle custom communication. Each obstacle usually has its own channel which is an offset from this in order to speed up communication. |
| end | Synonym for } |
These can be used inside the main event handler.
| Definition | Value | Description |
|---|---|---|
| METHOD_ARGS | list arguments | A list containing all the arguments passed to an event/method |
| SENDER_SCRIPT | str script | The sender script that sent a method. If it was an event, this will always be "!" |
| EVENT_TYPE/METHOD_TYPE | int type | The ID of the event or method that was called |
| SENDER_KEY | key id | The key of an object that sent a method, or "" if it was sent from within the linkset |
| NOT_METHOD | bool is_not_method | Checks if the call was not a method |
| IS_METHOD | bool is_method | Checks if the call was a method |
| Definition | Description |
|---|---|
| raiseEvent( int evt, spread data ) | Raises an event |
| runMethod( key/int target, str script, int method, spread data ) | Runs a method on a Module. Target can be either a key if you want to run it on a different object, or a link number. You can use LINK_ALL etc. Script is the name of the Module to send to. Method is the method id (see the Module's header script, and data are the arguments to send. |
| runOmniMethod( str script, int method, spread data ) | Same as above but sent as a regionsay. Use sparingly since it can lead to a lot of parsing. |
| Definition | Description |
|---|---|
| handleMethod( method ) | Handles a specific method called on your Module. Usage handleMethod( <methodID> ) ...code... end
|
| handleInternalMethod( method ) | Same as above, but only allows if the method caller script was in the same linkset |
| handleOwnerMethod( method ) | Same as above, but only allows if the method caller script has the same owner |
| handleEvent( script, evt ) | Handles a specific event from a script. Usually wrapped in the header file of a script such as onAttachmentAttached( id )
|
| argStr( index ) | Gets an argument from the event or method by index, and returns a string. Ex string firstArg = argStr(0) gets the first argument as a string. |
| argInt( index ) | Same as above but returns an integer |
| argKey( index ) | Same as above but returns a key |
| argFloat( index ) | Same as above but returns a float |
| argRot( index ) | Same as above but returns a rotation |
| argVec( index ) | Same as above but returns a vector |
| onMethod( method ) | Event capture for ALL method calls. Not recommended, use the header file macros instead. |
| isMethodInternal() | Checks if the method was requested by a script within the linkset. Not recommended, use handleInternalMethod() instead |
| isMethodInternalInline() | Checks if the method was requested by a script within the linkset, but can be used within an if statement. Ex: if( isMethodInternalInline() ) Not recommended, use handleInternalMethod() instead |
| isMethodByOwner() | Similar to above, but allows external linksets if they have the same owner |
| isMethodByOwnerInline() | Similar to above, but allows external linksets if they have the same owner |
| isEventByOwner() | Synonym for isMethodByOwner |
| isEventByOwnerInline() | Synonym for isMethodByOwnerInline |
| isEventNotByOwner() | Opposite of isMethodByOwner |
These are definitions you can add to the top of your script to enable extra functionality. See Module Dissection for info on how to set these up.
These are just wrappers around the default SL events.
| Definition | Handler |
|---|---|
| USE_CONTROL | onControl( level, edge ) |
| USE_STATE_ENTRY | onStateEntry() |
| USE_SENSOR | onSensor( total ) |
| USE_NO_SENSOR | onNoSensor() |
| USE_OBJECT_REZ | onObjectRez( id ) |
| USE_CHANGED | onChanged( change ) |
| USE_RUN_TIME_PERMISSIONS | onRunTimePermissions( perm ) |
| USE_ATTACH | onAttach( id ) |
| USE_ON_REZ | onRez( nr ) |
| USE_COLLISION_START | onCollisionStart( total ) |
| USE_COLLISION_END | onCollisionEnd( total ) |
| USE_TOUCH | onTouch( total ) |
| USE_TOUCH_START | onTouchStart( total ) |
| USE_TOUCH_END | onTouchEnd( total ) |
Custom handlers:
| Definition | Type | Description |
|---|---|---|
| list PLAYERS | global | Contains an auto updated list of player keys in the current game |
| onPlayersUpdated() | event | Raised when the PLAYERS global has been changed |
| forPlayer( index, player ) | Loop | Quick way of iterating over players. Ex forPlayer( index, player ) llOwnerSay("Player #"+(string)index+": "+llKey2Name(player)); end. Note that index creates a new iterator, so you can't use the same name for your iterator in the same scope. If you want to iterate over the players multiple times in a row, use something like index_1, index_2... |
Todo: Continue here
These are events tied to the USE definitions above.
| Event | Arguments | Requires | Description |
|---|---|---|---|
| onPlayersUpdated | USE_PLAYERS | Raised when the PLAYERS global has been updated with new players. |