2.0 KiB
Conditions
Conditions are filters for actions and for some fixtures that don't use actions.
Conditions can examine different aspects of the state of the game or (current) level.
Game Variable Conditions
These conditions check the value of a game variable (also called "quest value").
Game Variable Condition (4 bytes)
0000 uint16 Variable key
0002 byte Value
0003 byte Failure message
The Failure message is a message (or indication) the player shall receive if the condition was not met.
0x00 means no indication, 0xFF is used for security warnings (blocked by SHODAN security);
All other values are interpreted as text/audio message index.
Variable key (2 bytes)
0x03FF Variable index
0x0C00 Unused
0x1000 Variable type; 0: boolean variable, 1: int16 variable
0xE000 Comparison
Comparison
0: Variable must be equal to value
1: Variable must be less than value
2: Variable must be less than, or equal to, value
3: Variable must be greater than value
4: Variable must be greater than, or equal to, value
5: Variable must be not equal to value
6: Value must be greater than a random value of range 0..254 (variable value is ignored)
Object Type Conditions
These conditions check for a specific object type.
Object Type Condition (4 bytes)
0000 int32 Class/Subclass/Type encoded as 0x00CCSSTT
Note that the most significant byte needs to be 0x00.
These conditions are used for the quest items and for death watch trigger.
Object Index Conditions
These conditions are level-specific and only used for death watch trigger.
Object Index Condition (4 bytes)
0000 int16 Object index
0002 byte Unused
0003 byte Condition marker = 0x01
As these conditions are used for the same type of triggers as the object type conditions, the condition marker identifies the class of condition.