<help>
  <text>
    <p>Most objects have messages that are printed when a player succeeds or fails in manipulating the object in some way. Of course, the kinds of messages printed are specific to the kinds of manipulations and those, in turn, are specific to the kind of object. Regardless of the kind of object, though, there is a uniform means for listing the kinds of messages that can be set and then for setting them.</p>
    <p>The <link>@messages</link> command prints out all of the messages you can set on any object you own.</p>
    <p>To set a particular message on one of your objects, use the <link>@</link> command.</p>
    <p if="(player:isa($webber)?player.user|player):isa($prog)">This class of commands automatically applies to any property whose name starts with <eg>msg_</eg>. Thus, when setting the leave message of an object, the command is actually setting the msg_leave property of the named object. You can get such a command to work on new kinds of objects simply by giving the appropriate properties names that start with <eg>msg_</eg>. Additionally, the <eg>msg_</eg> property is accompanied by a <eg>msg_</eg> verb, which defaultly returns the named property, but which is available to be customized in more complex ways than allowing by simple string substitution.</p>
    <topics title="The following help topics describe the uses of the various messages available on standard kinds of objects:">
      <topic name="container-messages">the messages on objects that can contain other objects</topic>
      <topic name="exit-messages">the messages on exit objects</topic>
      <topic name="thing-messages">the messages on objects that can be taken or dropped</topic>
      <topic name="pronouns">pronoun substitution in messages</topic>
    </topics>
  </text>
</help>
.
