Evaluation
Command Evaluation
When you submit a command to be executed (whether by typing it in or by having a machine run it, the following steps are performed, in sequence. If the command matches something in a step, the matching actions are performed and the walk down the list stops.
- The first letter of the command is checked to see if it is a single character command (", :, etc). If so, %-substitution and function evaluation may be performed (depending on the command), and the command is executed.
- The comsystem checks for a channel alias.
- The command is checked to see if it is the home command. If so, the player or object performing the command goes home.
- The command is checked against the exits in its current room. If one matches, it is performed. If more than one matches, one is picked randomly from the exits for which the player passes the lock (If the player does not pass any locks, then the exit to be tried is picked randomly.
- The first word of the command is checked to see if it is an internal command. If so, the remainder of the command is broken up into arguments, %-substitution and function evaluation may be performed on the (split up) arguments, and the command is executed.
- %-substitution and function evaluation is performed on the command.
- All objects in the player’s inventory, all objects in the player’s location, and the location itself are searched for $-commands that match the command. All that match are performed. The player may or may not be checked, depending on how the MUX is configured.
- The commands defined in the zone tree you or your location is in.
Also, the construct ‘$xx *:%0’ does not work (and is very dangerous programming), use ‘$xx *:@force me=%0’ if you need this functionality.