Base messages as defined by DSB and used in ESB are the following:
- Activate (M_ACTIVATE) - Enables instances, opens pits, closes doors, triggers generators, etc.
- Deactivate (M_DEACTIVATE) - Disables instances, closes pits, opens doors, etc.
- Toggle (M_TOGGLE) - Enables a disabled instance and disables an enabled one.
- Next Tick (M_NEXTTICK) - Tells instances to proceed. Makes doors continue to open and close, monster generators re-enable, etc.
- Expire (M_EXPIRE) - Triggers an on_expire event, or simply destroys the instance if there is no such event.
- Clean Up (M_CLEANUP) - Deletes the targeted instance from the target list of all instances in the dungeon.
- Reset Counter (M_RESET) - Sets a counter back to its default value.
- Destroy (M_DESTROY) - Removes the instance from the dungeon. This can cause Lua errors if triggers etc. target it and it isn't sent a Clean Up first.
Define new messages with dsb_add_msgtype.
There is also a special set of messages that can be sent to the special target SYSTEM, either from dsb_msg or from a msgzone.
They take some extra parameters, which can be either sent as data with the msg, or added as parameters to the call to dsb_msgzone. (i.e., this special case of dsb_msgzone takes 10 parameters instead of the usual 8) The extra parameters are noted after the name of the system message. If a 0 is listed, just pass 0.
- SYS_MAGIC_PPOS (ppos, 0) = Sets the currently displayed spellcaster to the specified ppos.
- SYS_MAGIC_RUNE (ppos, rune_number) = Stores the specified rune into the specified ppos's pending spell.
- SYS_MAGIC_BACK (ppos, 0) = Deletes the last rune from the specified ppos's pending spell.
- SYS_MAGIC_CAST (ppos, 0) = Casts the current spell for the specified ppos. Does a bit of internal processing and then calls sys_spell_cast.
- SYS_METHOD_OBJ (ppos, location) = Shows the attack method dialogue for a given ppos from a given location
- SYS_METHOD_SEL (inst, method) = Selects the given attack method for the given instance. (Note: Currently, if the method was not first popped up via * SYS_METHOD_OBJ, this will do nothing.)
- SYS_METHOD_CLEAR (ppos, 0) = Clears the attack method for the given ppos.