@MAZEv2-1 ~56 |C|This is the Stupid Who List Message. To change me type '+swlm <msg>'. &1 131080 0 Root 0 0 0:3 1:3 2:3 3:1 4:3 5:3 6:2 7:1 9:3 10:2 11:3 12:3 13:3 14:2 15:0 16:1 17:3 18:1 19:3 20:1 21:3 22:3 23:3 24:2 25:1 26:1 27:3 28:1 29:3 30:3 31:2 32:3 35:3 33:3 34:3 8:0 8:0 9 1 922592807 915177600 0 0 0 1 >5 mike >6 I AM GOD! >60 Root >19 God >46 Stuff you can't do! < &54 1 0 Tutorial - Channels 1 948846084 948846077 0 1 56 0 0 1 >60 Tutorial |+W|- |+G|Channels >11 +B >6 The channel system is used with the '+channel' command. There are 3 types of channels: wizard channels, admin channels, and normal channels. The difference is who can join the channels (which is pretty self-explanatory I think). Wizard channels have a '*' as the first character in their name, admin channels have a '.' as the first character in their name, and normal channels start with anything else. The channel system supports 'default' channels, which you can talk on using the '=' token (i.e. =test). You can talk on any channel you're on by using the channel's name or alias as a command (i.e. public Hi). Everyone on the channel will hear your message. Some channels report important server information that admins or wizards might be interested in (such as connects/disconnects, or internal server errors). < &51 1 0 Tutorial - Email 1 948845932 948845926 0 1 53 0 0 1 >60 Tutorial |+W|- |+G|Email >11 +B >6 The TinyMAZE server is capable of sending email to anyone you want. Every player should have their email address stored in an attribute and other players can indirectly use this information to email them. You can use email with the '+email' command. TinyMAZE is unfortunately currently unable to support incoming email. < &48 1 0 Tutorial - Mail 1 948845689 948845685 0 1 50 0 0 1 >60 Tutorial |+W|- |+G|Mail >11 +B >6 There is an in-game mail system used with the '+mail' command. You can send someone a mail message even if they're not connected. When a player logs on they are informed of any new mail they might have. The 'lpage' attribute is used to lock certain players from mailing you. < &45 1 0 Tutorial - Paging 1 948845154 948845150 0 1 47 0 0 1 >60 Tutorial |+W|- |+G|Paging >11 +B >6 The paging system is used for communicating with a player anywhere in the world. If the 'pose' or 'poss' tokens are used at the beginning of the message to be paged they will be expanded to your name. You can 'lock' certain players from paging you by using your 'lpage' attribute. You can specify more than one player to page to by putting them in a space separated list (i.e. page root itsme=hi). The last list of players you paged is remembered by the game and will automatically pull it up if you don't specify a list of players (i.e. page Hi again). < &42 1 0 Tutorial - In-room Communication 1 948844574 948844531 0 1 44 0 0 1 >60 Tutorial |+W|- |+G|In-room Communication >11 +B >6 There are 3 commands designed for communicating with people in the same room as you: say, pose, and poss. Each one of these commands has as a shortcut 'token': say = ", pose = :, and poss = ;. The 'say' command is used as if your player were speaking normally, 'pose' is used for making your player perform an action (i.e. 'pose waves' or ':waves' would show 'itsme waves' if your name was itsme), and poss is used to show ownership (i.e. ';dogs are loud'). Anybody in the same room as you will see these message. < &39 1 0 Tutorial - Communicating 1 948844158 948844154 0 6 55 52 49 46 43 41 0 0 1 >60 Tutorial |+W|- |+G|Communicating >11 +B >6 There are several ways to communicate in TinyMAZE and each was its own usefulness. None of them are geared towards an RP style world, but could be easily modified for it. < &35 1 0 Tutorial - Exit Creation 1 948842761 948842753 0 1 37 0 0 1 >60 Tutorial |+W|- |+G|Exit Creation >11 +B >6 Exits are objects that you can walk through. They're created with the '@open' command and destroyed with the '@destroy' command. Note that this is only for 'normal exits'. Pseudo exits are fully explained in the exits section of the tutorial. Exits have what are known as 'aliases'. An exit's aliases are defined by appending a semi-colon (;) separated list to the name of the exit. For instance '@open Normal Exit <NE>;ne;exit' would create an exit called 'Normal Exit <NE>' with 2 aliases: 'ne' and 'exit'. < &32 1 0 Tutorial - Room Creation 1 948842602 948842597 0 1 34 0 0 1 >60 Tutorial |+W|- |+G|Room Creation >11 +B >6 Rooms are created with the '@dig' command and destroyed with the '@destroy' command. When a room is destroyed, everything in it is sent to its 'home' and its exits are destroyed. < &29 1 0 Tutorial - Thing Creation 1 948842086 948842079 0 1 31 0 0 1 >60 Tutorial |+W|- |+G|Thing Creation >11 +B >6 Things are objects that don't fit in the other 3 categories. You can carry them around or drop them in a room. If you had a desk in a room, the desk would be a thing. Things are created with the '@create' command, and they're destroyed with the '@destroy' command. < &26 1 0 Tutorial - Object Matching 1 948841836 948841811 0 1 28 0 0 1 >60 Tutorial |+W|- |+G|Object Matching >11 +B >6 Any command that acts upon a target depends on object matching. Some commands have special requirements for the target (i.e. Only match players, only match things in the same room as the player, etc.). So if you do 'teleport #3' and object #3 is an exit, don't be surprised when you see a message saying it didn't find #3. There are several ways to specify a target for these commands. All ojects can always be matched by dbref number. You can specify yourself by using 'me' or the room you're in by using 'here' (i.e. look me, teleport here). Players, things, and exits in the same room as you can be matched by name. The room you're in can be matched by name. Any player can be matched by prepending a '*' before the name or alias (i.e. examine *itsme). Exits in the same room as you can be matched by its aliases. When matching an object in the same room as you by name, only a partial name is required (given that that portion of the name doesn't match anything else). < &23 1 0 Tutorial - Player Creation 1 948841203 948840663 0 1 25 0 0 1 >60 Tutorial |+W|- |+G|Player Creation >11 +B >6 Player creation is done with the '@pcreate' command, and destroying a player is done with the '@nuke' command. Players start in the room specified by 'player_start' in the '@config' command. Creating a player does not use quota. < &20 1 0 Tutorial - Creating Objects 1 948840138 948840133 0 5 36 33 30 24 22 0 0 1 >60 Tutorial |+W|- |+G|Creating Objects >11 +B >6 There are 4 types of database objects in TinyMAZE: Players, things, rooms, and exits. Each type has a unique command for creation. When you create an object, it uses some of your quota. If your 'defown' attribute is set, the new object will be owned by the player defined in your 'defown' attribute and that player's quota will be used instead of your own. A player may be given the power to have no limit on their quota, or you can raise/lower a player's quota. < &17 1 0 Tutorial - The Database 1 948839619 948839612 0 3 27 21 19 0 0 1 >60 Tutorial |+W|- |+G|The Database >11 +B >6 The database is what all objects in the game are stored in. Each object in the database has a unique ID number called its 'dbref' (database reference). Dbrefs are important because they are the only way to positively specify a certain object in the game and a lot of features depend on them. Dbrefs are mentioned a lot in this tutorial and it's important to understand what they are. < &14 1 0 Tutorial - Pseudo Exits 1 948838924 948838917 0 1 16 0 0 1 >60 Tutorial |+W|- |+G|Pseudo Exits >11 +B >6 Pseudo exits are exactly what they say, pseudo. They are really built-in attributes on objects. Since they're built-in attributes, you can only use pseudo exits that already exist as an attribute. These attributes are: north, south, east, west, northeast, southeast, northwest, and southwest. If you give any of these attributes on a room a value that corresponds to a dbref number, a pseudo exit is created. Clearing the attribute destroys the exit in that room. For instance, let's say I'm in room #5 and I want an exit called 'North <N>' to be created and linked to room #6. You simply type '~north here=#6' and an exit is created (Note that this only works if you're in room #5. If you're not in the room you would have to do '~north #5=#6'. You can learn more about attributes in the attributes section of the tutorial. Pseudo exits use far less memory and make for a much smaller database than normal exits, but you can't set attributes on them. < &11 1 0 Tutorial - Normal Exits 1 948838282 948838254 0 1 13 0 0 1 >60 Tutorial |+W|- |+G|Normal Exits >11 +B >6 Normal exits are, in reality, database objects. Therefore, you can set their attributes (see the attribute tutorial). You can set their color, etc. and they can be given any name you want. A normal exit must be linked to a room with the '@link' command or by specifying the room it will link to when using the '@open' command. To destroy a normal exit you use the '@destroy' command. You should read the help files on these commands to become more familiar with them. The exit's link will be the room you enter when you walk through the exit. < &4 1 0 Tutorial - Exits 1 948837174 948837138 0 3 15 12 10 0 0 1 >60 Tutorial |+W|- |+G|Exits >11 +B >6 There are 2 main types of exits in TinyMAZE. One is called a normal exit and the other is called a pseudo exit. They're created in different ways, but the difference is transparent to the player. You walk through each one the same way and they are both listed under 'obvious exits' when you type 'look'. Both types of exits will automatically be shown in the color of the room it links to (Just the way the 'Hub <H>' exit in this room is yellow). < &5 1 0 Central Hub 1 948836657 948836617 1 1 5 40 18 9 8 7 0 0 1 >60 Central Hub >11 +Y >6 This is the central hub. From here you can choose which subject you'd like to learn about. Just simply move through its exit. If your terminal supports ANSI color and you haven't already typed '+ansi on', you should do so now. Throughout this tutorial, anything inside single quotes (') is meant to be typed with the single quotes omitted. When dealing with command syntaxes, anything between brackets ([]) is optional and anything between angle brackets (<>) should be substituded with something appropriate. < &2 1 0 Tutorial - Attributes 1 948836058 948835934 0 1 6 0 0 1 >60 Tutorial |+W|- |+G|Attributes >11 +B >6 You can think of attributes as variables in a program. Each one has a name and each one has a value it can be given. Each object in the database has a given number of attributes you can set on it. To set an object's attribute, you do this: ~<attribute name> <target object>=<value>. This will work for almost all attributes, but there are a few that have special commands you need to use to set them. These special attributes need extra error checking, etc. to ensure something doesn't get really messed up. You can modify an attribute on any object which you control. You can learn more about control in the 'power' tutorial. < &0 257 0 Starting Room 1 948839626 915177600 0 1 3 0 0 1 >60 Starting Room >6 Welcome to the TinyMAZE tutorial database. If you're not interested in a tutorial and want an empty (well, as empty as it gets) database, shut the server down, go to the db directory, copy initial.mdb to mdb, and start the server back up. Otherwise, I hope this tutorial is helpful. If it's missing anything, please email me at itsme@dreams.cpugeek.com. First, I'll explain moving through exits since that's the way you'll be moving around the tutorial. If you type 'look' you should see a list of 'obvious exits'. To walk through one, simply type what is between the angle brackets (<>) for that exit. Try walking through the exit in this room now. >11 +R < &56 2052 0 Back <B>;b 54 39 1 0 948846077 0 0 1 >60 Back <B>;b < &55 2052 0 Channels <C>;c 39 54 1 0 948846077 0 0 1 >60 Channels <C>;c < &53 2052 0 Back <B>;b 51 39 1 0 948845926 0 0 1 >60 Back <B>;b < &52 2052 0 Email <E>;e 39 51 1 0 948845926 0 0 1 >60 Email <E>;e < &50 2052 0 Back <B>;b 48 39 1 0 948845685 0 0 1 >60 Back <B>;b < &49 2052 0 Mail <M>;m 39 48 1 0 948845685 0 0 1 >60 Mail <M>;m < &47 2052 0 Back <B>;b 45 39 1 0 948845150 0 0 1 >60 Back <B>;b < &46 2052 0 Paging <P>;p 39 45 1 0 948845150 0 0 1 >60 Paging <P>;p < &44 2052 0 Back <B>;b 42 39 1 0 948844569 0 0 1 >60 Back <B>;b < &43 2052 0 In-room Communication <IC>;ic 39 42 1 0 948844556 0 0 1 >60 In-room Communication <IC>;ic < &41 2052 0 Back <B>;b 39 5 1 0 948844154 0 0 1 >60 Back <B>;b < &40 2052 0 Communication <C>;c 5 39 1 0 948844154 0 0 1 >60 Communication <C>;c < &37 2052 0 Back <B>;b 35 20 1 0 948842753 0 0 1 >60 Back <B>;b < &36 2052 0 Exit Creation <EC>;ec 20 35 1 0 948842753 0 0 1 >60 Exit Creation <EC>;ec < &34 2052 0 Back <B>;b 32 20 1 0 948842597 0 0 1 >60 Back <B>;b < &33 2052 0 Room Creation <RC>;rc 20 32 1 0 948842597 0 0 1 >60 Room Creation <RC>;rc < &31 2052 0 Back <B>;b 29 20 1 0 948842079 0 0 1 >60 Back <B>;b < &30 2052 0 Thing Creation <TC>;tc 20 29 1 0 948842079 0 0 1 >60 Thing Creation <TC>;tc < &28 2052 0 Back <B>;b 26 17 1 0 948841830 0 0 1 >60 Back <B>;b < &27 2052 0 Object Matching <OM>;om 17 26 1 0 948841822 0 0 1 >60 Object Matching <OM>;om < &25 2052 0 Back <B>;b 23 20 1 0 948840663 0 0 1 >60 Back <B>;b < &24 2052 0 Player Creation <PC>;pc 20 23 1 0 948840663 0 0 1 >60 Player Creation <PC>;pc < &22 2052 0 Back <B>;b 20 17 1 0 948840133 0 0 1 >60 Back <B>;b < &21 2052 0 Creating Objects <CO>;co 17 20 1 0 948840133 0 0 1 >60 Creating Objects <CO>;co < &19 2052 0 Hub <H>;h 17 5 1 0 948839612 0 0 1 >60 Hub <H>;h < &18 2052 0 The Database <TD>;td 5 17 1 0 948839612 0 0 1 >60 The Database <TD>;td < &16 2052 0 Back <B>;b 14 4 1 0 948838917 0 0 1 >60 Back <B>;b < &15 2052 0 Pseudo Exits <PE>;pe 4 14 1 0 948838917 0 0 1 >60 Pseudo Exits <PE>;pe < &13 2052 0 Back <B>;b 11 4 1 0 948838254 0 0 1 >60 Back <B>;b < &12 2052 0 Normal Exits <NE>;ne 4 11 1 0 948838254 0 0 1 >60 Normal Exits <NE>;ne < &10 2052 0 Hub <H>;h 4 5 1 0 948837163 0 0 1 >60 Hub <H>;h < &9 2052 0 Exits <E>;e 5 4 1 0 948837157 0 0 1 >60 Exits <E>;e < &8 2052 0 Starting Room <SR>;sr 5 0 1 0 948836631 0 0 1 >60 Starting Room <SR>;sr < &7 2052 0 Attributes <A>;a 5 2 1 0 948836617 0 0 1 >60 Attributes <A>;a < &6 2052 0 Hub <H>;h 2 5 1 0 948836617 0 0 1 >60 Hub <H>;h < &3 2052 0 Continue <C>;c 0 5 1 0 948835934 0 0 1 >60 Continue <C>;c <