command evaluation - luxembourg/muxcode-clm GitHub Wiki

COMMAND EVALUATION (continued)

  • The first word of the command is checked to see if it is an internal MUX 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.

Note: Commands that can cause other commands to be executed (such as @wait, @switch, @trigger, etc) never perform substitution on their arguments, they leave the evaluation to the command that is to be executed. This prevents most of the problems with getting objects to perform unintended commands by putting a ';', '}', or ',' in an argument. The @force command is an exception in that it evaluates its argument, so it should be used with caution (preferably by never using it to pass information that someone else entered, use @trigger instead).

Also, the construct '$xx *:%0' does not work (and is very dangerous programming), use '$xx *:@force me=%0' if you need this functionality.

⚠️ **GitHub.com Fallback** ⚠️