& &80 & &eighty -------------------------------------------------------------------------------- & MAIL & @mail Rather than using the built-in @mail system, this MUSH uses Talvo's +Mail and BB system. Please see HELP MAIL CREDITS for information about who wrote or contributed to the system. The system allows you to send messages to players and to Bulletin Boards. To send a message, you must first start it (see HELP MAIL STARTING). Then you can write your message (HELP MAIL WRITING) and check for and fix any errors (HELP MAIL PROOFING), before sending it (HELP MAIL SENDING). For a full list of commands, see HELP MAIL COMMANDS. For a description of what a '' is, see HELP MAIL RANGES. & ¬ ready yet You may be able to download your +mail via POP3. See HELP POP3 for info. & MAIL RANGES Anywhere a command takes a as an argument, you can use any combination of the syntaxes below to specify which messages you mean. If no range is given, it defaults to '-', all messages. These strings can be used in a message range: * A number, which refers to the Nth message in the inbox * A range of numbers, in the form X-Y, which refer to all the messages in the inbox between X and Y, inclusive. If X is omitted, it defaults to 1. If Y is omitted, it defaults to the last message in the inbox. Continued in HELP MAIL RANGES2 & MAIL RANGES2 * The string "author=", in which case only messages written by are returned. * The string "mark=" or "status=", in which case only messages with that status are returned. For BBs and players, the can be "read" or "new", or any abbreviation of them. For players, "deleted" (or an abbreviation) is also valid. * The string "subject=", in which case only messages whose subjects match are returned. An underscore (_) should be used to represent a space, and the '*' wildcard can be used. * The string "date=[<>]". If a '<' or '>' is given, only messages written before or after - which is a secs() count - are returned. Otherwise, only messages written at are returned. Continued in HELP MAIL RANGES3 & MAIL RANGES3 Any number of these can be combined, in which case all must be true. For example: > +skim mark=read 1-20 author=fred will +skim only messages which are in the first 20 in your inbox, if Fred wrote them, and they're marked as read. Now, just to complicate things a little more, you can |-separate these message ranges, in which case any one will apply. For example: > +skim mark=read 1-20 author=fred | author=george subject=*foobar* will +skim all the messages from before, but it will also include any and all messages from George which have the word 'foobar' in the subject. This allows for some very powerful processing. The main uses, however, are for '+READ MARK=NEW' to read your new messages, or '+SKIM AUTHOR=BOB' if you're looking for a certain message from the player Bob. & &80 & &eighty -------------------------------------------------------------------------------- & @mailfailure @mailfailure [=] This command sets a MAILFAILURE attribute on (or clears it, if no is given). This attribute only has any relevance for players - when someone attempts to @mail a player, and fails to because of the player's MAIL @lock, they will be shown this message. Example: > @mailfailure me=On vacation. Please email me instead! & MAIL BLOCKING & MAIL LOCKING If you wish to stop somebody from sending you +mail, you just need to set a MAIL @lock on yourself. HELP @LOCK explains how locks work in detail, but here are a couple of brief examples: This stops everyone from sending you mail: @lock/mail me=#false This stops Ben and Fred from mailing you: @lock/mail me=!=*ben&!=*fred And this lets only Eve and Karen mail you: @lock/mail me==*eve|=*karen You can also set an @mailfailure attribute on yourself, which will be shown to anyone who fails to +mail you because of your mail @lock. See HELP @MAILFAILURE for more information. & MAIL COMMANDS For writing, editing, and sending a message: +MAIL, +REPLY, +FORWARD, +INCLUDE, +INCLUDES, +WRITE, +PROOF, +ADDRESS, +CC, +SUBJECT, +EDIT, +ERASE, +TOSS and +SEND For listing, reading, and deleting your messages: +SKIM, +READ, +UNREAD, +DELETE, +UNDELETE, +CLEAR, +OUTBOX For working specifically with Bulletin Boards: +BBLIST, +BBSCAN, +BBINFO For game admins: +BBCREATE, +BBDELETE, +BBDESC, +BBHEADER, +BBLOCK, +BBTIMEOUT, +BBINFO, +MGROUP, +MAIL/BAN, +MAIL/UNBAN, +MAIL/BANNED, +MAIL/CONFIG, +MAIL/PURGE For more info on any of these commands, type HELP See also: @mailsignature, @mailfailure, MAIL RANGES, MAIL LOCKING & MAIL CREDITS Talvo's +Mail and BB System was written by Talvo@ElendorMUSH (who can be emailed at talvo@talvo.com). It's based heavily on the ElendorMUSH +mail system, which was written by Lukthil@ElendorMUSH. The following people made significant contributions to the code: * Benigo@ElendorMUSH helped with large portions of the SQL code, made suggestions for additonal functionality, and also provided a MUSH for testing the system on. It wouldn't have happened without him. * Cheetah@M*U*S*H wrote the extremely nifty regexp used by FUN.PARSEARGS, which makes the syntax a lot more natural. * Walker@M*U*S*H wrote the regexp code used by +EDIT/REGEXP, greatly improving its power. See HELP MAIL CHANGES for the current version, and a list of changes from previous versions. If you would like to contribute anything to this system - bug reports, code fixes, suggestions, etc - please email Talvo (Mike Griffiths), at talvo@talvo.com & MAIL CHANGES & MAIL VERSION & MAIL v1.0 Talvo's +Mail System is currently at version 1.0. This is the initial release, so there are no changes to report. Please note that these help-files were badly cobbled together in the space of about 20 minutes, and I hate (and suck at) writing them at the best of times. Any updates, clarifications, re-writes, etc, which improve any of the help-files would be greatly appreciated. & MAIL STARTING There are three ways you can begin a +mail message: by starting a new message from scratch, by forwarding a message to another player, or by replying to a message. This file covers starting a new message - for replies and forwards, see HELP +REPLY and HELP +FORWARD, respectively. To start the message, you use the +mail command, and type: +mail
= The
can be any combination of Players and Bulletin boards. If a player and a BB have the same name, you can make sure the right one is used by using PLAYER: or BB:. For instance: +mail Fred BB:Test Player:Test Public=Hello! would start a new messages to the players Fred and Test, and the BBs Test and Public, called "Hello!". When you've started your message, you need to write it. This is explained in HELP MAIL WRITING. & MAIL WRITING When you've started a message, you can write it in by using the +WRITE command. A hypen (-) is the abbreviation for +WRITE, so: +write Hello everyone! is the same as -Hello everyone! To move to the next line in your message, type '%r'. For example: -Hello everyone!%rI'm testing how to write!%rTalvo You can write as many times as you like - the new text will be added onto the end of the message. When you've finished writing your message, you should check it over and fix any mistakes you see. HELP MAIL PROOFING explains how. For people trying to place code into mail messages, HELP MAIL EVALUATION will provide some helpful information. & MAIL PROOFING When you've written your message, you can read it over to see how it will look by typing +PROOF. If you see any mistakes, you should use one of the commands below to fix it, depending on where the mistake is: +EDIT will edit the actual text in your message. +CC and +ADDRESS will edit the list of recipients. +SUBJECT will change the subject of your message. +INCLUDE lets you include the text from another message inside your current message. +ERASE will delete the text from your message, if you want to start over. When your message is finished you can send it, as explained in HELP MAIL SENDING. & MAIL SENDING To send your message, use the +SEND command. You can also use two hyphens (--) as an abbreviation for +SEND. When you send your message, all the recipients will receive a message, telling them they have new mail. You will then be told that your message is sent, and given it's ID number: [+MAIL] Message sent (#12345). You can use this number later to get the message back, if you need to, with the +UNMAIL command. Don't worry about remembering the ID number, though - you can get the IDs of all the messages you've sent by typing OUTBOX. And that's it - your message is sent. There are some more complex things you can do, too, which aren't mentioned in this introduction - read the help-files for the specific +mail commands to find out what they are. & +MAIL +MAIL [@] [] +MAIL
= (Note: this is the help for the +MAIL command. For help on Talvo's +Mail and BB System in general, see HELP MAIL.) The first form of this command simply tells you how many messages you have, and how many are new (unread), read, and marked for deletion. If an is given, that player's messages will be checked instead. If a is given, the messages on that bulletin board are checked. The second form of the command starts a new message, addressed to everyone in
who you're allowed to mail, entitled . See also: MAIL, +forward, +reply & +FORWARD +FORWARD [@] [] []=
This command starts a new +mail message addressed to
, and automatically includes the contents of the messages in at the end of your message. If an is given, the message range is matched against his mail. If a is given, the messages are taken from that bulletin board. This command is basically just an alias for: +mail
=Forwarded Messages +include @[] [] See also: MAIL, +include, +mail, +reply & +REPLY +REPLY [@] [] [] This command starts a new +mail messages, addressed to the author and recipients of the message which match the range . If the range matches more than 1 message, an error occurs. The subject will be "Re: ", though the contents of the original message will not be included (though you can include it with +include, if you wish). See also: MAIL, +mail, +include & +INCLUDE & +INCLUDES +INCLUDE [@] [] [] +INCLUDES +INCLUDE/REMOVE The first form of this command will include the text of any messages which match the into the message you are currently writing. This is similar to +forward, except that +forward starts a new message, whereas +include puts the messages into a message you're already writing. The second form, +includes, lists the message IDs of all the messages currently included (via +include or +forward) in your message. The final form of the command takes a list of message ids, as show by +includes, and removes them from your message. See also: MAIL, +forward & +SUBJECT +subject This command changes the subject for the +mail message which you are currently writing to . See also: MAIL, +mail & +CC & +ADDRESS +CC
+CC/REMOVE
+ADDRESS
The +CC command will add everyone in
into the list of recipients for the +mail you're writing. +CC/remove does the opposite, removing all those in
from your current recipient list. The +ADDRESS command sets your recipient list to
, deleting all the people already in the list. See also: MAIL, +mail & - & +WRITE +WRITE[/nospace][/noeval] - These commands write some text into your current +mail message. The '-' command is the same as +WRITE with no switches, and adds a single space followed by onto the end of your message. If the /nospace switch is given to +WRITE, no space is added before . *** NOTE: /noeval does not work yet. Use ]+write instead. *** If the /noeval switch is given, is not evaluated. See also: MAIL, MAIL EVALUATION & MAIL EVALUATION By default, +mail messages are evaluated twice: Once when you write the message, and once when you read it. This is done so that code can be placed inside a message. For example, assuming the object #100 is called "Talvo's Wagon", and is in a room named "Market Place", if you use: +write Visit [name(#100)] at [name(loc(#100))] now! You will write: Visit Talvo's Wagon at Market Place now! Continued in HELP MAIL EVAULATION2 & MAIL EVALUATION2 But what happens if the wagon moves? Your message will still tell people to look for it at it's old location. So, instead, you could use: +write Visit [name(#100)] at \[name(loc(#100))] now! In which case, your message will now say: Visit Talvo's Wagon at [name(loc(#100))] now! When someone reads that, it will be evaluated again, and they'll see: Visit Talvo's Wagon at Market Place now! If you then move the wagon into a room called "Main Road", and re-read the +mail message, you'll now see: Visit Talvo's Wagon at Main Road now! Continued in MAIL EVALUATION3 & MAIL EVALUATION3 It's very simple to prevent this extra evaluation, if you want to. To stop your message being evaluated when you write it, simply put a ']' before the command. For example: ]+write Visit [name(#100)] at [name(loc(#100))] now! To prevent the message being evaluated when you read it, simply use the +read/examine command. Note: If you read a mail message which was written by a player who is no longer on the game (someone who has been purged), the message will not be evaluated again when you read it. & +UNDO +UNDO This command is a part of the +mail system, and undoes the last change made to the body of the message, via +write, +edit, etc. It does -not- reverse changes made to the address or subject of a message. See also: MAIL, +write, +edit & +SEND & -- +SEND[/nosig][/loud] -- These commands send your current +mail message, notifying all the recipients that they have received mail.. The '--' command is the same as +SEND with no switches. By default, if your MAILSIGNATURE attribute is set, and evaluates to a non-empty string, a newline character followed by the contents of that attribute is added to the end of your message. If the /nosig switch is given to +SEND, however, that does not happen. If you are hidden (via @hide) when you send the message, players who cannot see you in the WHO list will not be notified that they have received mail from you, unless the /loud switch is given. See also: MAIL, @mailsignature & @mailsignature @mailsignature [=] This command sets a MAILSIGNATURE attribute onto , if is given, otherwise it clears the attribute. The MAILSIGNATURE attribute only has meaning for players - when set, it is evaluated and added onto the end of all +mail messages the player sends. Example: @mailsig me=%rEagles may soar, but weasels don't get sucked into jet engines & +PROOF +PROOF[/examine] This command shows you the contents of the +mail message you're currently writing. If the /examine switch is given, the message will not be evaluated. Otherwise, the message appears exactly as it will after it's been sent. See also: MAIL, +read & +READ & +READ/MARK & +READ/SENT +READ[/mark|/examine] [@] [] [] +READ/SENT This message is used to read +mail messages. If the /mark switch is given, you will not actually see the content of the message, but it will still be marked as having been read. If the /examine switch is given, the message will not be evaluated. The second form of the command allows you to read messages which have been sent, but aren't currently in your inbox. You can only read a message if you were the original author or a recipient. The s of messages you sent can be seen via the +OUTBOX command. See also: MAIL, +proof, +outbox & +SKIM +SKIM [@] [] [] This command lists the messages in your inbox (or the inbox of or , if given) which match . It tells you the number the message has in your inbox, it's author, subject, the date it was sent, and it's status (read, marked for deletion, etc). See also: MAIL, +read & +DELETE & +DELETED & +DELETE/FORCE +DELETE[/force] +DELETED The +DELETE command marks all messages in for deletion. Any messages in that range which are marked as New (unread) will not be changed unless the /force switch is given. Please note that this command does NOT delete the messages, it simply marks them for deletion via the +CLEAR command. The +DELETED command tells you which messages arem arked for deletion. Please delete messages whenever you've finished with them to help us save database space. Thank you. See also: MAIL, +clear & +CLEAR +CLEAR This command deletes all messages in your inbox which are marked for deletion with +delete. The messages will not actually be deleted until you use this command. See also: MAIL, +delete & +UNDELETE & +UNREAD +UNREAD [] +UNDELETE These commands edit all the messages in your inbox (or that of ) and change their status, either from Read to New (unread), or from Marked for Deletion to Read, respectively. See also: MAIL, +read, +delete & +OUTBOX +OUTBOX[/id] [@] This command lists all the messages you (or ) have sent, along with a little bit of info about each message. Part of this info is the ID number of the message, which you can use to +unmail the message, or to read it via +read/sent. By default, the messages are sorted in date order (as they are in +skim and other commands). If the /id switch is given, however, the messages will be sorted in numerical order by ID number. See also: MAIL, +unmail, +read & +UNMAIL +UNMAIL This command unmails . It removes it from the inboxes of all the recipients, and places it back in front of you to edit and resend (or delete) as you wish. You cannot unmail if you are already writing a message, however. If players have already read the message, you will be notified when you unmail it. All players who have the message in their inbox will be notified that you have taken it back. See also: MAIL, +outbox & +ERASE +ERASE[/all] This command erases the body of your current message. If the /all switch is given, the subject is erased, too, and set to the default. See also: MAIL, +subject, +toss, +undo & +TOSS +TOSS This message destroys the message you are currently writing totally, allowing you to start a new message. It cannot be undone. See also: MAIL, +erase & +EDIT & +EDIT/DELIM & +EDIT/REGEXP +EDIT / +EDIT +EDIT/REGEXP[all][i] These commands can be used to edit the body of your current +mail message. The first two commands replace all occurances of with , with two exceptions: if is a caret (^), will be added to the start of your message. If is a dollar-sign ($), is added to the end of your message (exactly like +write/nospace ). The main use for +edit/delim is if you need to edit a '/' character, as you can specify a different string to separate and . The third command uses regular expression matching to edit your message. By default, only the first match is replaced, but this can be changed by giving the 'all' part of the switch. The match is case-sensitive, unless the 'i' part of the switch is given. Strings in your message which match the regular expression pattern will be replaced with . In , $0 refers to the entire string matched , $1 to the first matching sub-pattern, $2 to the second, and so on to $9, similar to the regedit[all][i]() functions. There are a few examples in HELP +EDIT2. See also: MAIL, +erase, +write, regedit() & +EDIT2 If your message read "This is a test / abc, 123" then... > +edit is/ Th a test message > +edit/delim FOO / abcFOO- ABC This is a test - ABC, 123 > +edit/regexp _ (\\S+)s(\\S*)_$1S$2 ThiS iS a teSt / abc, 123 Note that in +edit/regexp, the \'s need to be escaped out, so that the game sends a literal \ to the regexp engine. You could also use: > ]+edit/regexp _ (\S+)s(\S*)_$1S$2 as a ']' before a command stops it being evaluated. & +BBSCAN +BBSCAN [@] This command lists all the bulletin boards in the game which you can read, and which have messages which you have not read. If an is given, it checks to see which boards he can read, and which messages he has not read. It also tells you how many unread messages there are, in parenthesis after the board's name. See also: MAIL, +mail, +bblist & +BBLIST +BBLIST[/all] [@] This command lists all the BBs on the game which you (or , if given) can read, and tells you how many messages are posted on the board. If the /all switch is given, all BBs are shown, though you will only see the number of posts for boards which you can read. See also: MAIL, +mail, +bbscan & +BBINFO +BBINFO This command shows certain information about the bulletin board , including it's proper name, the header shown at the top of the board when you +skim it, how long a message posted to the board will stay before it times out, and the functions which you must pass in order to read from or write to the BB. It also shows a ufun which you must pass in order to be notified of new posts. If one is set, a description of the board's purpose will be shown. And finally, if you can read from the board, you will be told how many messages are posted. & +BBCREATE & +BBDELETE +BBCREATE +BBDELETE These admin-only commands create a new Bulletin Board, and destroy an existing BB, respectively. By default when a new BB is made, noone can post messages on it or read from it - these locks must be edited with the +BBLOCK command. Deleting a BB cannot be undone, so please be careful when doing so. See also: +bbtimeout, +bblock, +bbdesc, +bbheader & +BBTIMEOUT +BBTIMEOUT = This admin-only command changes the number of seconds it takes for a message posted on to time out and be purged to . Note that messages may stay on the board slightly longer than this amount of time, as the purging routine is only run once a day. Also note that there are 604800 seconds in 1 week (7 days). See also: +bbcreate, +bbdelete, +bblock, +bbdesc, +bbheader & +BBLOCK +BBLOCK[/read|/write|/notify] = This admin-only command changes who can read from , post to , or who will be notified of new posts to to . should be a function where %# is the player being checked against. The must return 1 if the player should be able to pass the lock. If no switch is given, /read is the default. Example: > +bbcreate Admin > ]+bblock/read Admin=orflags(%#,Wr) > ]+bblock/write Admin=1 > ]+bblock/notify Admin=orflags(%#,Wr) In this example, anyone can post to the Admin BB, but only Wizards and Royalty can read the messages, and only Wiz/Roy will be notified about new messages posted to the board. See also: +bbcreate, +bbdelete, +bbtimeout, +bbdesc, +bbheader & +BBDESC +BBDESC = This admin-only command sets the description for the bulletin board to . This description is shown in +BBINFO, and advises players as to the intended purpose of a particular board. If is an empty string, then no description will be shown for . Example: > +bbdesc Admin=If you have a question or comment for the game staff, please post it here. See also: +bbcreate, +bbdelete, +bbtimeout, +bblock, +bbheader & +BBHEADER +BBHEADER =
This admin-only command sets the header for the bulletin board . The header is the string show at the top of +BBINFO, and of +SKIM, for the given . Often some kind of ASCII art is used. Please note that the header is evaluated each time it's needed, so you'll probably want to escape out your
. Example: > ]+bbheader Public=center(ansi(h,PUBLIC!),78) See also: +bbcreate, +bbdelete, +bbtimeout, +bblock, +bbdesc & +MAIL/BAN & +MAIL/UNBAN & +MAIL/BANNED & MAILBAN +MAIL/BAN +MAIL/UNBAN +MAIL/BANNED These admin-only commands stop a player from sending mail, and allow him to do so again, respectively. The last lists all players currently banned. The banning is done internally via the use of a MAILBAN flag. & +MAIL/CONFIG +MAIL/CONFIG [