& help |+W|======================================================================== |+G| M A Z E O n l i n e H e l p F a c i l i t y |+W|------------------------------------------------------------------------ |+W|Help is available for the following areas: |+Y| topic |+B|General topics |+Y| command |+B|Normal commands |+Y| function |+B|Built-in functions |+Y| flag |+B|Built-in flags |+W|To get a listing of topics relating to any of the above items simply |+W|type 'help type=|+Y|<|+B|item|+Y|>'. |+W|You may type '|+G|help syntax|+W|' to find out how to make sense of the |+W|command syntaxes shown throughout the help text. |+W|To get help on something specific type 'help |+Y|<|+B|item|+Y|>|+W|'. |+R|Please notify an overlord if any errors are found in the help text. |+W|------------------------------------------------------------------------ & syntax type:topic |+W|Notes on help descriptions: |+W|[|+B|option|+W|] - |+B|Text enclosed in |+W|[]|+B|'s is |+B| optional. The |+W|[]|+B|'s are never typed in |+B| as part of the command. |+Y|<|+B|parameter|+Y|> |+W|- |+B|Information about what you should type. |+B| The |+W|<>|+B|'s are never typed in as part of the |+B| command. |+G|For example, here is the syntax of the help command|+W|: |+W| help |+W|[|+Y|<|+B|topic|+Y|>|+W|] |+G|Meaning that |+B|topic |+G|is optional but if you do specify it, |+B|topic |+G|shouldn't be typed literally. |+M|Example|+W|: |M|Type |+W|help look |M|for help about the look command, |M| and type |+W|help |M|for general help information. & topic |+B|To get a list of topics type|+W|: |+Y|help type|+W|=|+Y|topic & class descriptions type:topic |+G| Class Descriptions |+W| -------------------- |C| You will have three main classes of players to choose from: Magic-Users, |C|Fighters, and Thieves |+W|(|C|Each class having advantages and disadvantages|+W|)|C|. |C|The classes are broken down into levels. These levels are gained with |C|knowledge and virtue. The levels that you attain in your class are |C|determined by the way you play. NOTHING in this game is pre-set, the |C|outcome is entirely up to you. Every class has a maximum level that can be |C|obtained, and if you are very disciplined there are three special |+W|(|C|*|+W|)|C| |C|levels that are available. Your class will determine what you can use, |C|learn, sell in shops, and purchase. |C| Magic-Users will be the toughest to start with but can become VERY |C|powerful later in the game. Fighters are easier to begin with but are |C|limited in what they can accomplish alone. Thieves are in the middle for |C|playing ability but a difficult class to role-play. Role-playing is an |C|important factor in achieving high levels. |+G| Class Level Progressions |+W| -------------------------- |+M|Following is the break-down of the classes: |G|LINE CLASS LEVEL PROGRESSION 1) |+B| Mage |+W|-> |+B|Black Wizard |+W|-> |+B|Sorcerer 2) |+Y|Magic-User: |+B|Apprentice |+W|< 3) |+B|Cleric |+W|---------> |+B|White Wizard 4) |+W| \ 5) |M| Paladin|+W|* 6) |+W| / 7) |+B|Fighter |+W|------------> |+B|Warrior 8) |+Y|Fighter : |+B|Squire |+W|-----< \ 9) |+B|Archer |+W|-----> |+B|Master Archer |+W| \ 10) |M| Pirate|+W|* 11) |+W| / 12) |+W| / 13) |+B| Bandit |+W|---------------> |+B|Thief 14) |+Y|Thief : |+B|Rogue |+W|------< 15) |+B| Crook 16) |+W| \ 17) |M| Bard|+W|* 18) |+W| / 1) |+B| Mage |+W|---> |+B|Black Wizard |+W|-> |+B|Sorcerer 2) |+Y|Magic-User: |+B|Apprentice |+W|< 3) |+B|Cleric |+W|---------> |+B|White Wizard |+W|* |C|These levels require very disciplined role-playing. You have one chance |C|to play this class level. If you fail to maintain your virtue or your |C|fame, you will be declassed and not allowed to achieve that status again. |C|Once you obtain one of these levels, you gain the abilities of both |C|classes it branches from. |C|To achieve the level of Paladin, you must currently be either a White |C|Wizard or a Warrior |+W|(|C|Both requring perfect virtue, which is not as easy |C|as it sounds|+W|)|C|. |C|To achieve the level of Pirate, you must currently be either a Thief or a |C|Warrior |+W|(|C|Both requiring a certain level of negative virtue and high fame|+W|)|C|. |C|To achieve the level of Bard, you must currently be either a Crook or a |C|Mage |+W|(|C|Both requiring a certain level of negative virtue and low fame|+W|)|C|. A |C|Bard is the only class level that can effectively fight and use black |C|magic. |+G| Hints and Tips |+W| ---------------- |C|Again, we would like to stress that every character is different. If you |C|play to make your own way at the expense of others, your character will |C|reflect that. This is DEFINITELY not a 'bad' player. Some characters |C|require that type of role-playing |+W|(|C|i.e. Thief|+W|)|C|. The only way a Pirate can |C|make a living is by stealing from other players and marauding their ships. |C|On the other hand, a Paladin may only live a 'good' life. Do not expect to |C|be able to remain a Cleric if you play your character like a Thief. No |C|single character is better or has an advantage. It is completely up to |C|you on what your character accomplishes. |C|Our advice to you is choose a class that best fits how you would like to |C|play this game. |+M|SEE ALSO|+W|: |M|Shop Ownership|+W|, |M|Partying & potions type:topic |C| Potions are made from herbs, each having a different effect on the user. |C|Only black magic users have the ability to brew potions. However, anyone |C|can sell potions if they own a shop. |+G| How it Works |+W| -------------- |C| Herbs are scattered throughout the world. You can collect them by |C|'picking' them when you find them. Each potion has a 'recipe' of herbs |C|needed. Then they must be taken to a black magic user|+W|*|C|, who will |C|brew specified potion. You will then pay the magic user whatever price |C|they ask |+W|(|C|Open Market Economy|+W|)|C| and in turn, you will receive |C|your potion and you may do with it as you wish. You may use the potion, |C|sell it |+W|(|C|if you own a shop|+W|)|C|, or give it to a friend. |+W|* |+B|To know which herbs to use to make a given potion, there is a |+B|Potion Book available for purchase in the warehouse. |+M|SEE ALSO|+W|: |M|Shop Ownership & fame type:topic |C| Fame is an attribute that determines how well known you are. It can be |C|increased through good and bad deeds done by your character. For example|+W|: |C|A woman may ask you to bring her a specific item. By doing so, your fame |C|will increase. |+W|(|C|A quest such as that may also change your virtue|+W|)|C|. |C|Your fame would also increase for killing someone or, if you are a thief, |C|for stealing. |+M|SEE ALSO|+W|: |M|Virtue & herbs type:topic |C| Herbs are used to create potions. They are found throughout the game. |C|Herbs are listed in the room's contents. You may obtain these herbs by |C|using the |+B|pick |C|command. |C| Each herb has a growing season. Not all herbs are available year round. |+M|SEE ALSO|+W|: |M|Potions|+W|, |M|Pick|+W|, |M|+herb & economic system type:topic |C| MedievalMAZE is based on an open market economy. EVERY player has an equal |C|opportunity to make money. Anyone is able to open up their own shop, |C|purchase items from the warehouse |+W|(|C|prices do not fluctuate here|+W|)|C|, and |C|then sell the items for whatever price they wish. |C|Another way to make money is to utilize a trade route. All islands will |C|have certain items they import and export. You can take an export from one |C|island |+W|(|C|i.e. Pearls|+W|)|C| and sell them for a profit on another island. Due to |C|the open market system, these routes do not prove profitable forever. As |C|you take the export from one island, the demand increases on that island, |C|making the export more expensive to buy, therefore, you make a smaller |C|profit when you sell it. No player can own a trade shop |+W|(|C|to keep the trade |C|routes regulated|+W|)|C|, and no 'trade items' may be sold in shops owned by |C|players. |+M|SEE ALSO|+W|: |M|Shop Ownership & shop ownership type:topic |+G| Types of Shops |+W| ---------------- |C| There are two types of shops in MedievalMAZE. One type of shop is a trade |C|shop |+W|(|C|See 'Economic System'|+W|)|C|. The other is a shop owned by an ordinary |C|player. |+G| How do I Get a Shop? |+W| ---------------------- |+M|There are two ways to get a shop: 1) |+B|Find a shop 'for sale' and purchase it from the owner. 2) |+B|Find a plot of land 'for sale', purchase it from the owner, and build a |+B|shop on that land. |+G| What Can I Sell in my Shop? |+W| ----------------------------- |C| Your class and class level determine what you can sell in your shop. You |C|can sell anything you can use. All items originate from the warehouse, but |C|that doesn't mean you can ONLY buy items for your shop from there. |C|Basically, if you have an item you can use |+W|(|C|regardless of origin|+W|)|C|, you |C|can sell it in your shop. |+G| Why Does my Shop Close? |+W| ------------------------- |C| Every shop has a lock on the front door. And every one of those locks has |C|a key. If the player holding that key disconnects from the game, the shop |C|will automatically close up. Your shop must remain open to sell items from |C|it. That is why you may consider hiring an employee to watch your shop |C|while you're not there. Because of the open market system YOU decide what |C|wages you pay your employees. Make sure you leave the key to your shop |C|with someone trustworthy |+W|(|C|I wouldn't leave my key with a Thief for |C|instance|+W|)|C|. Also, don't leave your shop unattended for too long. You |C|run the chance of someone stealing something you value. Remember, thieves |C|are NEVER to be trusted. If one enters your shop when you are there, you |C|can use the 'shoo' command. |+G| How do I Sell my Shop? |+W| ------------------------ |+M|If, for any reason, you wish to sell your shop you must: 1) |+B|Sell all items in your shop. You can accomplish this by selling your |+B|items to the warehouse |+W|(|+B|chances are, you'll take a loss|+W|)|+B| or by selling |+B|your items to other players |+W|(|+B|A sale might be a good idea|+W|)|+B|. 2) |+B|'Price' your shop for the amount you want to sell it for. 3) |+B|Wait for someone to buy it. |+M|SEE ALSO|+W|: |M|Price Command|+W|, |M|Thieves|+W|, |M|Shoo Command|+W|, |M|Land & houses type:topic |C| In MedievalMAZE, it is important to have a safe place to store valuables |C|and money. Your character can only carry so much weight and if you carry all |C|your money around, you run the risk of being ambushed and having it stolen. A |C|good place to keep these things is in your house. |+M|In order to build a house you must either: 1) |+B|Own the land on which you wish to build. 2) |+B|Have permission from another land owner to build it on their property. |+M|SEE ALSO|+W|: |M|Taxes|+W|, |M|Weight & taxes type:topic |+G| Property Tax |+W| -------------- |C| Owning land is not free. The 'goverment' will charge a property tax |C|quarterly. The amount of the tax is directly proportional to the amount of |C|land you own and the 'value' of the land. On some islands the property is |C|much more expensive to purchase due to location, therefore, the property |C|tax will be higher. |+G| Building Tax |+W| -------------- |C| The owners of shops and houses will also be taxed. It is important to note |C|that if you are 'renting' you need not worry about this. Only the OWNERS |C|will be charged the tax. This tax is a constant for ALL buildings. It will |C|only multiply if you own more than one building. If you own a shop and a |C|house you will be charged for both. |+M|SEE ALSO|+W|: |M|Houses|+W|, |M|Shop Ownership & land type:topic |+G| Buying Land |+W| ------------- |C| There is land available for purchace throughout the world. It is available |C|to any class of player that has enough money to purchase it. You will notice |C|that the land is devoid of description containing only the words 'For Sale' |C|and the name of the person to contact. Once you have purchased the property, |C|it is up to you to describe it. You may also build anything you wish on your |C|property |+W|(|C|i.e. Your house|+W|)|C|. The property is yours which means |C|you may do with it as you wish. If you want to sell pieces of it you may|+W|*|C|. If |C|you want to let a friend use part of it you can. It is entirely up to you. |C| Another option you have is buying land, building a shop on it, and then |C|'renting' out the shop to a player that can't afford to purchase one. This |C|could prove beneficial for both parties. |+W|* |+B|If you wish to divide land you own, you will need the assistance of |+B| an admin. |+G| Selling Land |+W| -------------- |C| You may sell your property and anything on it at any time and for any |C|reason. The only exceptions are shops. You must first sell EVERYTHING in |C|your shop before you can sell the property. This is because you cannot sell |C|the land without selling the shop as well |+W|(|C|Unless the two parties have come |C|to some sort of agreement. An example might be if you want to get rid of the |C|land but wish to continue your shop ownership, therefore, instead of paying |C|land taxes you would pay 'rent' to the new land owner which might be cheaper|+W|). |+M|SEE ALSO|+W|: |M|Taxes|+W|, |M|Shop Ownership & partying type:topic |+G| Why Party? |+W| ------------ |C| In this game it is very important to rely on other players. MedievalMAZE |C|was designed to make this a necessary part of the game. It has been |C|incorporated into the game design so that no single class of character can |C|complete all their tasks alone. As you become a higher class level you will |C|discover that your ability to do things on your own increases. It will be |C|necessary throughout the game to have all or one of the other classes with |C|you to complete certain tasks. We strongly encourage players to explore |C|together and utilize the positive attributes of the other classes. |C| It is important to understand that the main goal of this game is class |C|specific. Fighters fight, magic-users use magic, and thieves steal. The main |C|purpose of partying is accomplishing tasks in general. The fighting part of |C|partying is designed for fighters, however, other parts of the game are |C|designed for the other classes. |M||+M|Example|+W|: |M|Bork the fighter needs to retrieve a sword that is locked away. |M| He must bring a thief to pick the lock or a wizard capable of |M| 'casting' a spell to open the lock. The thief or wizard is |M| dependant on the fighter to get them there, and the fighter is |M| dependant on them to open the lock. The fighter will gain knowledge |M| for fighting their way there, and the wizard or thief will gain |M| knowledge for using their skills in opening the lock. |+G| Gaining Knowledge in Parties |+W| ------------------------------ |C| Because MedievalMAZE is not only focused on combat you do not receive |C|experience and gold for fighting. Instead, you receive knowledge. Being in a |C|party does not effect the way you gain knowledge. |+G| Hints and Tips |+W| ---------------- |C| For the times when you are 'alone' on the game and you need to complete a |C|task that requires another player, we have implemented 'Companions'. |+M|SEE ALSO|+W|: |M|Companions|+W|, |M|Knowledge|+W|, |M|Class Descriptions & knowledge type:topic |C| Knowledge is what defines the abilities of your character. There are |C|several different areas in which you can gain knowledge. Each class can |C|only gain knowledge in certain areas. & weight type:topic |C| Each class will have a set weight limit. Armor, weapons, money and |C|all items will have a weight assigned to them. You may not carry more |C|than your weight allowance. A fighter will have a higher weight |C|allowance,than a thief or magic-user. The items that each class needs |C|to carry will be weighted appropriately. (i.e. A fighter's armor will |C|be much heavier than a mage's robe.) & thieves type:topic |+G| Skills |+W| -------- |C| The thief is a very difficult character to role-play. The idea is to be able to use your thieving skills to make a living in MedievalMAZE. & spells type:topic |+G| Spell Types |+W| ------------- |C| Spells can be broken up into three seperate categories. Black spells, |C|white spells, and grey spells. Black spells may only be used by players |C|with negative virtue. White spells may only be used by players with |C|positive virtue. Grey spells may be used by any magic user. |C| Spells are gained as you gain knowledge. A sorcerer will know many more |+W|(|C|not to mention stronger|+W|) |C|spells than an apprentice. |+G| Spell List |+W| ------------ |C| Here is a rough list of the spells available on MedievalMAZE. This is |C|only a beginning list and should not be considered as the final draft by |C|any means. |C| Any references to 'player' in the following text refers to the magic |C|user that cast the spell. Any references to 'target' means the object on |C|which the spell is cast. |+Y|White spells|+W|: |+W|Antidote |C| Removes poison from target. |+W|Blur |C| Decreases target's chance of being hit if attacked. |+W|Guard |C| Player takes damage instead of target. |+W|Heal |C| Target regains hitpoints |+W|(|C|Has no effect on dead targets|+W|)|C|. |+W|Life |C| Brings target back to life. |+W|Protect |C| Creates a wall, decreasing physical damage inflicted on target. |+W|Reflect |C| Causes any spells cast on target to bounce off and hit caster instead. |+W|Regenerate |C| Target slowly regains hitpoints. |+W|Sacrifice |C| Player dies to completely refill party members' hitpoints. |+W|Shield |C| Creates a wall, decreasing magical damage inflicted on target. |+Y|Black Spells|+W|: |+N|Abyss |C| Causes instant death to target. |+N|Acid Rain |C| Causes minimal damage to target. Also has chance of poisoning. |+N|Bolt |C| Causes damage to target. Incapacitates target for N seconds. |+N|Confuse |C| Hinders target's ability to hit in a fight. |+N|Comet |C| Causes damage to all objects in room. |+N|Drain |C| Takes hitpoints from target and gives them to player. |+N|Flare |C| Causes damage to target. |+N|Poison |C| Poisons target. |+N|Tornado |C| Causes damage to target. Chance of causing confusion. |+N|Tsunami |C| Causes high level of damage to target. |+Y|Grey spells|+W|: Call |C| Summons various creatures. Haste |C| Increases target's speed. Illuminate |C| Casts an aura of light around target. Scan |C| Allows player to see target's stats. Sleep |C| Puts target to sleep. Slow |C| Decreases target's speed. Teleport |C| Allows player to move instantly to another designated position. Unlock |C| Unlocks target. & +com type:command |+M|SYNTAX|+W|: +com |+Y|<|+B|channel|+Y|>|+W|=|+Y|<|+B|message|+Y|> |C| The +com command sends your message to everyone that's on the channel |C|you specify. |+Y|<|+B|message|+Y|> |C|may also be one of the following |C|commands: |+Y| who |+W|- |+B|List everyone on the channel. |+Y| off |+W|- |+B|Turn the channel off. If a channel is off you will not |+B|see any activity on the channel. |+M|There are a couple of shortcuts to the +com command: 1) |+B|You can use the '=' to talk over your default channel. 2) |+B|You can use the channel name or alias as a command. |+W|(|+B|i.e. public Hi!|+W|) |+M|SEE ALSO|+W|: |M|+channel & drop type:command |+M|SYNTAX|+W|: |+W|drop |+Y|<|+B|object|+Y|> |C|When you drop an |+B|object|C| the object leaves your inventory and is included |C|with the contents of your current location. You may only drop objects in a |C|room that you control. |+R|Triggers|+W|: |R|Drop|+W|, |R|PDrop|+W|, |R|Leave|+W|, |R|PLeave & enter type:command |+M|SYNTAX|+W|: |+W|enter |+Y|<|+B|object|+Y|> |C|When you enter an |+B|object|C| you leave the room you are currently in and |C|move to the contents of |+B|object|C|. You may only enter things you control. |+R|Triggers|+W|: |R|Enter|+W|, |R|PEnter|+W|, |R|Leave|+W|, |R|PLeave |+M|See Also|+W|: |M|leave & moon type:topic |+G|MOON PHASES |+W|------------- |+B|New Moon|+W|:|C| The new moon lies between the earth and the sun. Because the |C| sunlit side is away from the earth, the new moon is invisible |C| to us. |+B|Waxing Crescent|+W|:|C| As the moon moves along its orbit, it appears as a crescent on |C| the right side. As the visible part of the moon grows, it is |C| said to be "waxing". |+B|First Quarter|+W|:|C| The moon has now completed a quarter of its orbit and appears |C| to us as a half circle. |+B|Waxing Gibbous|+W|:|C| When more than half of the sunlit side is visible, the moon is |C| "gibbous". |+B|Full Moon|+W|:|C| The moon reaches the second quarter of its orbit. The entire |C| daylight side is visible and appears to us as a circle. |+B|Waning Gibbous|+W|:|C| As the sunlit side of the moon turns away from us, the moon |C| begins to "wane". |+B|Last Quarter|+W|:|C| The moon reaches the third quarter of its orbit and appears as |C| a backwards "D". |+B|Waning Crescent|+W|:|C| The visible portion of the moon dwindles to a crescent and we |C| get ready to start all over again. |+M|SEE ALSO|+W|: |M|herbs & pick type:command |+M|SYNTAX|+W|: pick |+W|[|+Y|<|+B|herb name|+Y|>|+W|] |C| The pick command allows you to obtain herbs you find throughout the game. |C|If there is only one type of herb in the room with you, you don't need to |C|specify what you want to pick. However, if more than one herb is in the room, |C|the game will tell you that you must specify which herb to pick. |C| You can get a list of the herbs you are currently carrying with the |+B|+herb |C|command. |+M|SEE ALSO|+W|: |M|+herb|+W|, |M|Herbs & examine type:command |+M|SYNTAX|+W|: examine |+Y|<|+B|object|+Y|>|+W|[|+C|/|+Y|<|+B|attribute|+Y|>|+W|] |C|Displays all available information about |+B|object|C|. You must control the |C||+B|object|C| to examine it fully unless it is set |+M|VISIBLE|C|. |C|If |+B|attribute|C| is given, only that attribute of |+B|object|C| will be displayed. & get type:command |+M|SYNTAX|+W|: get |+Y|<|+B|object|+Y|> |C|Picks up |+B|object|C| from the room you're in. |+R|LOCKS|+W|: |R|lock |+M|SEE ALSO|+W|: |M|Locks & give type:command |+M|SYNTAX|+W|: give |+Y|<|+B|target|+Y|>|+W|=|+Y|<|+B|thing|+Y|> |+W| give |+Y|<|+B|player|+Y|>|+W|=|+Y|<|+B|amount|+Y|> |C|Gives |+B|thing |C|to |+B|target|C|. |C|Gives |+B|player |C|the specified |+B|amount |C|of Lupas. & gripe type:command |+M|SYNTAX|+W|: gripe |+Y|<|+B|complaint|+Y|> |C|This commands logs |+B|complaint|C|. Administration will get back to you ASAP. & home type:command |+M|SYNTAX|+W|: home |C|This command will send you to your home. Your home is set by using the |C|'save' command. |+M|SEE ALSO|+W|: |M|save & inventory type:command |+M|SYNTAX|+W|: inventory [|+Y|<|+B|target|+Y|>|+W|] |C|Lists what |+B|target |C|is carrying. |+B|Target |C|defaults to the player using the |C|command if not specified. & leave type:command |+M|SYNTAX|+W|: leave Moves your from your current location to your location's location. |+R|LOCKS|+W|: |+R|lleave |+M|SEE ALSO|+W|: enter & look type:command |+M|SYNTAX|+W|: look [|+Y|<|+B|object|+Y|>|+W|] |C|Displays the name, caption, and description of |+B|object|C|. You will also |C|see a list of contents and exits in the |+B|object|C|. If |+B|object|C| is not |C|specified, you will look at the room you're in. & money type:command |+M|SYNTAX|+W|: money [|+Y|<|+B|object|+Y|>|+W|] |C|Displays how much money |+B|object |C|has onhand. |+B|Object |C|defaults to the |C|player if left undefined. & news type:command |+M|SYNTAX|+W|: news [|+Y|<|+B|topic|+Y|>|+W|] |C|Shows you the current news for MedievalMAZE. It is highly recommended that |C|you check the news regularly for new information. If |+B|topic |C|is not |C|specified you will get a list of news topics. & page type:command |+M|SYNTAX|+W|: page [|+Y|<|+B|player list|+Y|>|+W|=]|+Y|<|+B|message|+Y|> |C|This command sends every player in |+B|player list |C|your |+B|message |C|. |+B|Player list |C|is a list of players seperated by spaces. |+B|Player |C|list may be omitted if |C|you have used the page command since the last reboot of the game. If it is |C|omitted, the list given the last time you used the command will be used. |+G|EXAMPLES|+W|: |G|page Saruk Coke=:waves. |G|You paged Saruk with: itsme waves. |G|You paged Coke with: itsme waves. |G|page How are you? |G|You paged Saruk with: How are you? |G|You paged Coke with: How are you? |G|page Augestflex=Hey! |G|You paged Augestflex with: Hey! |+R|LOCKS|+W|: |R|lpage & say type:command |+M|SYNTAX|+W|: say |+Y|<|+B|message|+Y|> |C|Says |+B|message|+C| out loud to everyone in the room. You may abbreviate |C|this command by using the '"' symbol. |+G|EXAMPLE|+W|: |G|say My pancreas hurts. |+W|You see: |G|You say, "My pancreas hurts." |+W|Everyone else sees: |G|itsme says, "My pancreas hurts." |+M|SEE ALSO|+W|: |M|pose|+W|, |M|poss & pose type:command |+M|SYNTAX|+W|: pose |+Y|<|+B|message|+Y|> |C|Displays your name followed by |+B|message |C|to everyone the room. You may |C|abbreviate this command by using the ':' symbol. |+G|EXAMPLE|+W|: |G|:waves. |G|itsme waves. |+M|SEE ALSO|+W|: |M|poss|+W|, |M|say &poss type:command |+M|SYNTAX|+W|: poss |+Y|<|+B|message|+Y|> |C|This command acts like the 'poss' command, but making the |+B|message |C|possessive. You may abbreviate this command by using the ';' symbol. |+G|EXAMPLE|+W|: |G|poss pancreas hurts. |G|itsme's pancreas hurts. |+M|SEE ALSO|+W|: |M|pose|+W|, |M|say & QUIT type:command |+M|SYNTAX|+W|: QUIT |C|Log out and leave MedievalMAZE. Must be in all capitals. & who type:command |+M|SYNTAX|+W|: who [|+Y|<|+B|flags|+Y|>|+W|][=|+Y|<|+B|player list|+Y|>|+W|] |C|Lists everyone connected to the game. By default, you will see the player's |C|name, alias, idle time, connected time, and doing message. This output may |C|be modified by specifying |+B|flags|C|. You may also change the default by |C|setting your |+M|WhoFlags|C| attribute to the default flags you want. |+B|Player list |C|is a list of players seperated by spaces. If |+B|player list |C|is |C|given, only information on those players will be listed. |+B|Here is a list of valid flags|+W|: |+G|N |G|Name |+G|A |G|Alias |+G|C |G|Class |+G|I |G|Idle |+G|O |G|OnFor |+G|D |G|Doing |+G|F |G|Flags |+G|H |G|Host |+G|X |G|Concid |+G|P |G|Port |+G|E |G|Email |C|NOTE: More space is reserved for each field by capitalizing the flag. |+M|ATTRIBUTES|+W|: |M|whoflags |+R|LOCKS|+W|: |R|lhide & @info This command will tell you a variety of different things. Type '@info' for a list of valid arguments. & @disconnected type:command |+M|Syntax|+W|: @disconnected [|+B|rooms|+W|||+B|exits|+W|] |C|This command will show disconnected rooms and/or exits that you control. & @paste type:command |+B|Syntax|+W|: @paste [|+Y|<|+B|object|+Y|>|+W|[|+C|/|+Y|<|+B|attribute|+Y|>|+W|]] |+W| @paste channel=|+Y|<|+B|channel|+Y|> |+W| @paste program=|+Y|<|+B|object|+Y|>|+C|,|+Y|<|+B|program|+Y|> If you specify <object>, you may also specify <attribute>. This will force the text to be pasted into <object>'s attribute. @paste channel=<channel> will display your pasted text to the <channel> after you're done. To stop pasting just enter a line with nothing but a period (.) or use the '@pasteabort' command. Examples: @paste itsme @paste book/desc This is an example The book is red, of how to use and the book is green, the @paste command. Yay....me. . . SEE ALSO: @pasteabort & @pasteabort Syntax: @pasteabort This command is used only when in @paste mode. Use this command to abort the @paste and not send it at all. SEE ALSO: @paste & away See +away. & +away Message sent to players who page you when you are not connected. +away <Message> Set your away message. +away ? View your away message. +away Remove your away message. & +channel +channel Select or lists channels for the online communicator system. The new +com communicator system supports an arbitrary number of named channels. Players who are working as a group can make up a channel name for their group and add it to the list of channels which their +com is listening to. Usage: +channel +<channel-name>;<alias> Aliases are -mandatory-. e.g.: +ch +public;pub Adds you to channel 'public' with alias 'pub'. +channel -<channel-name> Deletes the named channel from the list. +channel <channel-name> Sets your default channel (used with '=') +channel Lists the current channels on your +com. For a general chatting channel, turn to channel 'public'. You can listen to as many simultanous channels as you wish. See help on +com. & +todo +todo +todo add=<msg> +todo delete=ALL|<msg #> +todo swap=<msg #1>,<msg #2> +todo insert=<msg #>,<new location> When passed no arugments, this command lists what needs to be done on the MAZE. +todo add will add a new message to the list. +todo delete will delete a message from the list. If you specify 'ALL' (case sensitive) then the entire list will be deleted. +todo swap will cause the 2 specified messages to switch places. +todo insert will move the specified message to the location specified. Requires pow_misc to alter the list. Example: +todo insert=4,2 +todo add=We need to get this project done. & +motd +motd +motd on[=ALL] +motd off[=ALL] +motd add=<msg> +motd delete=ALL|<msg #> +motd swap=<msg #1>,<msg #2> +motd insert=<msg #>,<new location> When passed no arugments, this command shows the Messages of the Day. +motd on and +motd off control whether or not the MOTD is displayed when you connect. If you specify ALL then it will change every player's MOTD setting. Requires POW_MOTD to change everyone's setting. +motd add will add a new message to the list. +motd delete will delete a message from the list. If you specify ALL (case sensitive) then the entire MOTD will be deleted. +motd swap will cause the 2 specified messages to switch places. +motd insert will move the specified message to the location specified. Requires pow_misc to alter the MOTD. Example: +motd insert=4,2 +motd add=We need to get this project done. & +swlm +swlm [<msg>] This command shows you the current SWLM (Stupid Who List Message) when no arguments are passed. Otherwise, it sets a new SWLM. & +dirmail +dirmail <msg> This commands writes official mail to all the overlords. Requires pow_broadcast to use +dirmail. You may use the 'gripe' command if you lack this power. & +massmail +massmail <msg> This command mails all players. You must have pow_broadcast to use the +massmail command. & +whocolor +whocolor [<color>] This command will show the current color of the who list when passed no arguments. Otherwise it sets the who list title color to <color>. Example: +whocolor B & +mlist Syntaxes: +mlist create=<maillist name> Create a new mailing list. +mlist +<maillist name> Join a mailing list. +mlist -<maillist name> Leave a mailing list. +mlist list[=<maillist name>] List available mailing lists or list the members of a mailing list. +mlist <maillist name>=<message> Post to a mailing list. & +idle Message sent to players who page you when you are connected. +idle <Message> Set your idle message. +idle ? View your idle message. +idle Remove your idle message. & +laston +laston [<player>] This command will tell you the last time <player> connected and disconnected. If you don't specify <player> then a list of the last few players that connected will be shown. & +mail DreamsMAZE has an online mail system. The commands are as follows: +mail read=[<user>:]<msg#> Read message in <user>'s mailbox. The issuing player is default if <user> not specified. -Examples: +mail read=3 would read msg #3 in your mail. +mail read=wm:3 would read msg #3 in wm's mail if you sent it +mail list[=<user>] List messages to/from you in <user>'s mailbox. Issuing player is default user. -Examples: +mail list Lists the messages in your mail. +mail list=wm Lists all the messages you have sent to wm and they still have. +mail delete[=<user>:][<msg#>] Delete messages out of <user>'s mail. -Examples: +mail delete=wm:1 Delete 1st msg in wm's mail, if you sent it. +mail delete=1,5 Delete messages 1 and 5 out of your +mail. +mail delete=5-9 Delete messages 5 through 9 in your +mail. +mail undelete[=<user>:][<msg>] Works exactly as +mail delete, to undelete messages deleted on accident. +mail purge[=<user>] Purge <user>'s +mail. If no user specified, issuer is default. -Examples: +mail purge Purge +mail marked for deletion in your +mail. +mail purge=wm Purge msgs marked for delete in wm's +mail sent by you, the issuer. +mail check[=<user>] Check <user>'s mailbox for msgs owned by you. +mail Clear [=<user>] Delete and purge all mail you own in target +mail mailbox. +mail killsent = <player>|ALL Delete mail from <player>'s mail that you sent. If ALL (case-sensitive) then delete all mail you've sent to everyone. The old command style still works (for now): see: help +mail2 & +mail2 These are the old commands. They still work for now... +mail Check your mailbox for messages. +mail <player> = <Message> Send a message to another player. +mail <n> Read message <n>. mailbox +mail delete Mark all messages from your mailbox for deletion. +mail delete = <n> Mark message <n> for deletion. +mail undelete Unmark all messages +mail undelete = <n> Unmark message <n> +mail purge Removes all messages that were marked for deletion. Messages that are marked for deletion will have a 'd' next to them. & +uptime +uptime This command gives you current runtime statistics. & +version +version This command gives you the current version number for the code being run on DreamsMAZE. It also tells you when the last code update was done. & @chown @chown <object>=<player>. Changes the ownership of <object> to <player>. Objects may be things, rooms or exits. To chown things, you have to be carrying the thing. For rooms or exits, you have to be in the room. Objects must have the chown_ok flag set before it can be @chowned (See FLAGS). Any chowned object is automatically set Haven and !Inherit for security. Players can't be @chowned; they always own themselves. & @create @create <name> [=<cost>]. Creates a thing with the specified name. Creation costs either <cost> Credits or 10 Credits, whichever is greater. The value of a thing is proportional to its cost. To be exact, value=(cost/5)-1. & @describe @describe <object> [=<description>]. <object> can be a thing, player, exit, or room, specified as <name> or #<number> or 'me' or 'here'. This sets the description a player sees when they use the command 'look <object>'. Without a description argument, it clears the message. It can be abbreviated @desc. & @destroy @destroy <object>. This allows the recycling of objects and returns the player's investment in the object when used. The Destroy_OK flag set on an objects allows any one in possession of that object to @destroy it. @destroy has a delayed effect, taking place approximately 10-15 minutes after the command is issued. During that time you may use @undestroy to stop the destruction process. Objects that are protected may not be destroyed. See also @protect, @unprotect. & @dig @dig <name> [= Exits [, Return-Exits]]. Creates a new room with the specified name and displays its number. This costs 10 Credits. If the [= Exits] option is used, the exit will be opened and linked for you. You will have to link back out from the room manually unless you use the [, Return-Exits] option. Example: @dig Kitchen = Kitchen;k;north;n, Out;south;s will dig a room called Kitchen, and open an exit called 'Kitchen' in your current room. The ; symbol means that you may enter the exit by typing 'k','north' or 'n' also. Only the first Exit name is displayed. (See also 'help example @dig'.) & @emit @emit <message>. Emits the message to everyone on the room. The message may be anything with one exception. The message cannot start with the name of any player. Sorry, no spoofing. :) & @find @find [name]. Displays the name and number of every room, thing, or player that you control whose name matches <name>. Find costs 10 credits. & @force @force <player/object>=<command>. Forces the MAZE to act as though <player/object> had entered <command>. In general, objects you own can @force you if you set them 'inherit'. Only Administrators may @force other players. & @link @link <object>=<number>; @link <object>=here; @link <exit>|<room>=home. Links <object> to room specified by <number>. For things and players, sets the home room (See Homes). For rooms, sets the drop-to room (See Drop-to). For exits, sets the target room; the exit must be unlinked, and you must own/control the target room unless its LINK_OK flag is set. Linking an exit costs 1 Credit. If the exit was owned by someone else, the former owner is reimbursed 1 Credit. & join join <player> An official command that teleports you directly to the location of <player>. & summon summon <player> An official command that teleports <player> to the location where the official is. & @boot @boot <player>. Disconnects the player from the MAZE. Only Directors can use this command. & @announce @announce <message>. Broadcasts <message> to every player connected. May be abbreviated to @ann. Costs 1000 Credits per announcement. Players may block out all announcements by setting themselves NO_WALLS (See FLAGS). & @broadcast @broadcast <message> This is an Official command that allows a Director to broadcast a message throughout the entire MAZE. It is similar to @announce, but @broadcast cannot be blocked out as can @announce. Therefore, it should only be used for emergencies, or urgent announcements. & @chownall @chownall <player> = <newowner>. Only a Director can issue this command. All the possessions of <player> are @chowned to <newowner>. & @class @class <player> = <class>. Reclassifies <player> to <class>, which must be one of: Director, Admin, Constructor, Official, Junior Official, Citizen, or Visitor. Only Directors may use the @class command. & @dbck @dbck. This lists disconnected rooms and clears the free list. & @dump @dump. This command will dump the database for storage. It is vital to the continued survial to the MAZE. An object is usually set up to do this automaticly every few minutes. & @empower @empower <object/player>=<powername>:{Yes,No,YesEQ,YesLT}. Only Directors may invoke this command, which alters the authorized powers of <object> or <player>. Yes and No unconditionally enable/disable the named power. YesEQ and YesLT enable the named power to be used on objects or players of equal or lesser status than <object/player>, respectively. Powers adjusted in this way may not be elevated above the maximum allowed powers for each class of player or object. See also @powers and @class. & @giveto @giveto <player> = <amount>. Quietly gives <amount> of credits to <player> without generating the usual messages associated with the regular 'give' command. See also 'give'. & @newpassword @newpassword <player> =<password>. Only Admins may use this command. Changes <player>'s password, informing <player> that you changed it. Must be typed in full. If you forget your password, log on as guest (password = guest) and talk to an Administrator. & @nuke @nuke <player>. Only Directors may use this command. Recycles a player's character, after which it no longer exists. Must be typed in full. Cannot be used if the player owns any objects; see @wipeout and @chownall. & @pbreak @pbreak. This will give a list of the player broken-down into classes. It is currently an Administrator command only. & powers powers <player/thing>. Lists the authorized powers of <player> or <thing>. See all @empower. & @ps @ps @ps regen @ps fight This command lists queued commands which have not yet been executed. See also @wait, @trigger, and @force, all three of which push commands onto the queue. If 'regen' is specified then a list of creatures waiting to be regenerated will be listed. This is a wizard-only feature. If 'fight' is specified then a list of fight commands in the queue will be listed. & @quota @quota <me>. This will give you your current and remaining quota. @quota *<player>=<value>. Will reset <players> quota to <value>. This is a director command only. & @shutdown @shutdown. Only Directors may use this command. Shuts down the MAZE. Must be typed in full. & @wipeout Syntax: @wipeout <player> type=<type> This command will destroy all of <player>'s possessions of type <type>. Requires POW_SECURITY. & @name @name <object>=<new name> [<password>]. Changes the name of <object>. <object> can be a thing, player, exit, or room, specified as <name> or #<number> or 'me' or 'here'. For a player, it requires the player's password. & @open @open <direction>[;<other direction>]* [=<number>]. Creates an exit in the specified direction(s). If <number> is specified, it is linked to that room. Otherwise, it is created unlinked. You or anyone else may use the '@link' command to specify where the unlinked exit leads. Opening an exit costs 1 Credit. If you specify <number>, linking costs 1 more Credit. See also @link and @dig. & @password @password <old password>=<new password>. This changes your password. It can be abbreviated @pass. & @pemit @pemit <player> = <message>. Emits the message to <player>. The message may be anything with one exception. The message cannot start with the name of a player, or of an object present int the room. Sorry, no spoofing. :) Note: to emit messages to everybody in a room (or in an object), or to every room in a zone, use @remit or @zemit. The use of @pemit to send a message to everyone in a room is obsolete, although it will work for now. & @search @search [<player>] [<class>=<restriction>]. This command searches the database and lists objects which meet user specified search criteria. If a <player> argument is supplied, only objects owned by that player will be listed. If a <class> argument is supplied only objects of a certain class will be listed. Possible <class>es include (TYPE, NAME, EXIT, OBJECT, ROOM, PLAYER, and FLAG). If <class>=TYPE, possible <restriction>s include (OBJECT, ROOM, EXIT, PLAYER). If <class>=NAME, only objects whose name begin with the string <restriction> will be listed. If <class>=EXIT, OBJECT, ROOM, or PLAYER, only objects of that type and whose name begin with the string <restriction> will be listed. Finally if <class>=FLAG, only objects with the list of flags specified by <restriction> will be listed. For the the class TYPE=PLAYER, and for PLAYER=<player-name>, anyone may obtain information on any player. In all other cases, only Officials may obtain information about other players. Costs 10 Credits. Examples: @search flags=RHD <-- search for rooms set Haven and Dark. @search type=rooms <-- list all rooms owned by me. & @set @set can be used both to set flags and to set attribute values. To set a flag: @set <object>=<flag> To unset the flag: @set <object>=!<flag>; To set an attribute value: @set <object>=<attribute>:<value> A shorthand may also be used: @<attribute> <object>=<value> To copy attributes from one object to another, you can use: @<newattribute> <newobject>=_<oldobject>/<oldattribute> See help on FLAGS, Attributes & @stats @stats. Display the number of objects in the MAZE broken down by object types. Administrators can supply a player name to count only objects owned by that player. & @teleport @teleport [<thing>=] <room|object>. Teleports <thing> to <room> or <object>. The destination room must be set JUMP_OK (see 'help JUMP_OK flag') or it must have the same owner as <thing>. Any object or player can be @teleported home or to #0 by the owner of the room it is in. Exits can be moved to other rooms by @teleporting them but the room they are being sent to must be owned by the same person as the exit. Examples: @teleport blee=#0 - Sends object 'blee' to #0 @teleport foo=home - Sends the object 'foo' home. @teleport out=#48029 - Moves the exit 'out' to room #48029 @teleport #2000 - Sends yourself to #2000 @teleport may be abbreviated as @tel & @unlink @unlink <exit>; @unlink here. Removes the link on the specified exit, or removes the drop-to on the room. Be careful, anyone can relink an unlinked exit, becoming its new owner (but you will be reimbursed your 1 Credit). See @link. & whereis @whereis <player>. Tells you the location of the player. If you wish to remain unlocatable, set your DARK flag. (See FLAGS). The person being located will get a message to inform them that you have successfully or unsuccessfully located them. Ex: @whereis Jin & Flags FLAGS @set <object> = <Flags> to set, @set <object> = !<Flag> to reset. Everything in the universe of MAZE (Rooms, Exits, Objects, Players, etc...) are represented in the same way at the program level. A room merely has the room flags set and a player has the player flags set. In addition, flags also give objects abilities or qualities. For specific information on a particular flag, request help on a flag title. Example: help ROOM flag Flag Title Flag Title Flag Title ------------------------------------------------------------------ A - AUDITORIUM flag h - HIDE flag q - QUIET flag a - NO_ANN flag I - INHERIT flag R - ROOM flag b - BEARING flag J - JUMP_OK flag S - STICKY flag C - CHOWN_OK flag K - KEY flag s - SLAVE flag c - CONNECTED flag L - LINK_OK flag T - TRANSPARENT flag D - DARK flag l - LIGHT flag t - TERSE flag d - DESTROY_OK flag M - MONSTER flag v - VISIBLE flag E - EXIT flag m - MORTAL flag W - EQUIPMENT flag e - ENTER_OK flag N - NO_WALLS flag @ - ANSI flag F - FIGHT_OK flag n - NEWBIE flag + - NO_COM flag f - FLOATING flag o - OPAQUE flag * - NPC flag G - GOING flag P - PLAYER flag % - DEAD flag H - HAVEN flag p - PUPPET flag $ - SHOP flag ------------------------------------------------------------------ & AUDITORIUM flag AUDITORIUM When set on a room, it allows speech-locks (@slock) to be used. This flag has no affect on players, objects, or exits. See also : help @slock, @osfail, @asfail & NO_ANN flag NO_ANN A player with this flag set cannot announce. & BEARING flag BEARING. When set on any MAZE object, allows people to @addparent or @delparent objects they control to or from the object with the BEARING flag set. If BEARING is not set, the object can neither bear new children nor lose old ones. See @addparent, @delparent. & CHOWN_OK flag CHOWN_OK This flag, when set, allows you to transfer ownership to another player. To set it, you must be carrying the object. You also have to be in the room if you want to set this flag on rooms or exits. After this flag is set, the new player may gain ownership of the object by using the @chown command (See @chown). & CONNECTED flag CONNECTED This flag applies only to players and it shows if the player is connected or not. Thus, each time you are connected to the MAZE, you should see the 'c' flag set, otherwise, you are not here! You cannot reset this flag, and it is used internally by the code for things like tabulating players for the WHO list, etc. & DARK flag DARK If a room is DARK, then anyone who looks there sees only the room description, no objects. If a thing is DARK, then 'look' does not list that object in the room's contents. Players who do not wish to have their location found with the @whereis commands may set themselves DARK. Puppets cannot be DARK, but an object set puppet and DARK enters 'debug' mode, and relays to its owner everything it does as well as everything it hears. & DESTROY_OK flag DESTROY_OK When set on an object, it allows any player to destroy it as long as the object is not locked against them. This is good for things like notes, whereby the recipient can destroy the note after reading it, instead of having to look for you to destroy it. & ENTER_OK flag ENTER_OK If an object or person is ENTER_OK, other players may enter the object or person by using 'enter <object/person>. Players must also have the ENTER_OK set if they wish to be able to receive things given to them by other players via the 'give <player> = <object>'. & EXIT flag EXIT This flag is automatically set on exits when you @dig, @open or otherwise create an exit. It cannot be changed. & FLOATING flag FLOATING When set on a disconnected room or *one* room of a group of disconnected rooms it will supress the 'disconnected room' message. This flag should be used only by experienced builders. Your 'floating' rooms could easily be forgotten and/or misplaced. & GOING flag GOING Used internally for the @destroy command, it is set on objects that are set to be destroyed. If you change your mind about destroying an object, use @undestroy to unset it. & HAVEN flag HAVEN This flag when used on a player will enable you to ignore all messages from all other Citizens. When people page you, they will receive your +haven message. An object set HAVEN will be halted, and commands on its registers will not be triggered. See also: +haven & HIDE flag HIDE A flag used to mark players who do not want their names to show up on the WHO list. Set by @hide, and reset by @unhide. Administrators may set a player's HIDE flag by using @set <player> = (!)HIDE & INHERIT flag INHERIT If the INHERIT flag is set on an object, it inherits any special powers of the player who owns the object. Otherwise, the object has no special powers. An object set INHERIT retains the powers of the player who owns it even when the player is temporarily set MORTAL. & JUMP_OK flag JUMP_OK If a room is set JUMP_OK players can freely teleport to that room. (See also LINK_OK). & KEY flag KEY When set on an object prevents puppets from picking it up. This flag also causes objects to return to their home when the person holding them teleports away (except that the owner of the object can teleport with it). & LIGHT flag LIGHT When set on an object, it enables the object to be seen in a room set DARK. & LINK_OK flag LINK_OK If a room or object is LINK_OK, anyone can link exits to it (but still not from it). Anyone can also set that room or object as their home room. (See Homes). & MORTAL flag MORTAL When set on a player, it inhibits the use of any special powers associated with that player's Status. A wizard can set him/herself mortal for testing purposes, and then unset the flag again. & NEWBIE flag NEWBIE When set on a player, it inhibits ability to see dbref number and alerts other users that the player is new and may be in need of some asistance. Players may set themselves not newbie (@set me=!newbie). & NO_WALLS flag NO_WALLS When set on a player, it prevents the player from hearing any announcements from Officials or from the Announcement Office. This does not block out broadcasts, which are only used by Officials for emergencies. & OPAQUE flag OPAQUE When set on a player, it prevents other players from seeing what you are carrying in your inventory. Players can still see objects you are carrying that they own. & PLAYER flag PLAYER The PLAYER flag identifies you as a player. This flag cannot be reset by any player, not even a Director (not, yet, anyway *grin*). It is used mainly by the MAZE code to identify your commands, check for validity of commands or locks etc. & PUPPET flag PUPPET @set <object> = puppet. Causes an object to grow eyes and ears, and relay all it sees and hears to its owner. & QUIET flag QUIET When you set this flag on yourself, it will block out all the 'Set' and 'triggered' messages that you get when your objects are set ot triggered. This is useful if you have a lot of machines running continuously. It will also keep you from hearing 'shake and crumble' and 'deposit back' messages when you destroy your objects. & ROOM flag ROOM This flag is automatically set on rooms when you @dig a new room. It cannot be changed. & STICKY flag STICKY If a thing is STICKY, it goes home when dropped (See Homes). If a room is STICKY, its drop-to is delayed until the last person leaves (See DROP-TOs). Only meaningful for things and rooms. & SLAVE flag SLAVE A player set SLAVE will not be able to use any commands. However, the player can still talk, pose, and walk between rooms. & TERSE flag TERSE If a player has the TERSE flag set, room descriptions will not be displayed when they enter a new room. Contents and Exits will still be displayed. This is good when you wish to move about quickly, or do not bother to read room descriptions. Beware: You might miss some important information in some room descriptions. If an object is set terse, it will not 'shake and crumble' when it is destroyed. & TRANSPARENT flag TRANSPARENT If an exit is TRANSPARENT, then when you look at it you will see first its description; then you will look through it and see the description and contents of the room on the other side. & VISIBLE flag VISIBLE When set on your object, it allows other players to examine it and see all the object's attributes as if they owned the object. They cannot make any changes to the object. & EQUIPMENT flag EQUIPMENT An object with this flag is equippable for combat. & ANSI flag ANSI ANSI colors won't be shown unless you have this flag set. & NO_COM flag NO_COM This flag disallows you from sending messages over com channels. & NPC flag NPC If this flag is set on an object, the objects @talk, @atalk, and @otalk are triggered when you 'look' at it as well as when you 'talk' to it. See also: talk & Attributes Attributes are registers, attached to MAZE objects, in which you can store data or commands. There are built-in attributes, such as 'succ', 'osucc', 'fail', 'ofail', etc. These can be set on any MAZE object. The @defattr command can be used to define additional attributes on particular objects. (See the help on @defattr for more information on creating attributes). Those attributes can be set only on the object on which they are defined, or on descendants of that object. (See Inheritance). User-defined attributes can be set and unset the same way built-in attributes are set: with the @set command, or with the @<attribute> shorthand (see the help on @set). If an attribute is defined on an object obj1, then you can also set that attribute on children of obj1. You do not need to (and in general should not) use @defattr to define the attribute on the children as well. If two attributes defined on different objects have the same name, they are different attributes (much like local variables in all standard programming languages). If one object is a child of another with a similarly-named attribute there is an overlap. In such a case, the variables are considered lexically scoped and an object can reference only the most local version. (See Inheritance for more information on this topic). & Control Control. In general, you can examine, modify, or otherwise user or abuse an object if you control it. You control everything you own. Unless you are an Official, you do not control anything else. Officials and Administrators have various degrees of control over objects and players they do not own. There is one exception to this rule: anybody controls an unlinked exit, and can link to it. The exit is automatically @chown'ed to the player who links it. Unlinked exits can thus be stolen; all builders should be aware of this. & Exits Exits. Exits may be linked from rooms or objects into other rooms or objects. Thus you may take an exit and find yourself inside an object; if there are no obvious exits where you are, try 'leave' before giving up. & Getting started Some commands to start with: QUIT - Wake up. Effectively quitting the MAZE WHO - print list of users currently on this MAZE help - access online help news - access online news about this MAZE's events and topics say <something> - make your character 'say' <something> Example: say Hi Everyone! page <player>=<message> - send a <message> to a <player> on the MAZE Example: page Jin=Hello, Can you help me? look - look at the room you're in, or at a person or object in it. Examples: look look Tourbot Please see: +channel, channels, register, syntax & Here Here. The word 'here' refers to the room you are in. For example, to rename the room you're in (if you control it), you could enter "@name here=<new name>". & Locks A lock is an attribute that determines who may take, use, enter, or otherwise control an object. Currently in DreamsMAZE 4 locks are defined: the regular lock (@lock), the enter-lock (@elock), the leave-lock (@llock), and the use-lock (@ulock). Help is available on each of those. In this discussion we will refer to the @lock, but the same options are available for all the other locks. All of the following lock types are available: Ordinary locks (that work as in previous versions of MAZE) Is locks Carry locks Indirect locks Object Attribute Locks Register Locks Help is available on each of the above topics. Any lock of any type may be combined with any other in a boolean expression, using '&' (and), '|' (or), '!' (not), and parentheses ('(' and ')') to group. The lock is satisfied if the boolean expression evaluates to true. & register locks A register lock is a mechanism for locking a specific $ or ! event, unlike the @ulock which locks all of the $ and ! events on an object. The syntax for seting individual register locks is: @<attr> <object>=$<verb-pattern>:/<lock>/<action-list> Example: @va object=$blee:/#1/"foo If Jin types 'blee' in the presence of the object, the object will say 'foo', but the pattern 'blee' will not match this register for anyone else. That is, anyone else typing 'blee' will receive the standard 'Huh?' error message. & ordinary locks An ordinary lock is checked against the player (or object) trying to pick up the locked object (or trying to walk through an exit). It is also checked against any object the enactor is carrying, and against the zone the enactor (and hence the object) is currently in. It can be specified as a <name> or a #<dbref>, or as 'me' or 'here'. To lock to a specific player, prefix their name with '*' (ex. '*Jin'). Examples: @lock purse = #123 Can be picked up by player #123, or by anyone carrying object #123, or by anyone currently in zone #123. @lock purse = *Jin Can be picked up by Jin, or by anyone carrying Jin. Objects can also be locked to the value of an attribute on the enactor (attributes on ordinary locks are not also checked on objects carried by the enactor). Examples: @lock thing=sex:m* Object may be taken by anyone whose sex starts with an 'm'. @lock thing=last:>612345678 will lock thing to anyone whose 'last' attribute is greater than 612345678. The value for the attribute may also be specified as a function, which is evaluated each time an attempt is made to take the object. Example: @lock thing=sex:[add(3,4)] will allow people whose sex is '7' to take the object. & Me Me. The word 'me' refers to yourself. Some things to do when starting out: 1) give yourself a description with "@describe me=<description>", then look at yourself with "look me". 2) set your gender, if you wish it known, with "@set me=sex:male" or "@set me=sex:female" (or "@set me=sex:neuter" to be an 'it'). & Puppets Puppets. An object is made into a puppet by doing @set [object]=puppet, once an object is a puppet it will relay all that it sees and hears to its master. All objects created by a puppet are owned by its master, when puppets spend or earn Credits they are also taken from and given to its master. In order to prevent puppets from screwing up puzzles, objects may have the key flag set, this will prevent puppets from picking the object up. A puppet may be commanded by its master by: @force [object]=command or shorthand version: [name/# of puppet] command Example: @force fred="hi there. or fred "hi there. or #4342 "hi there. & Arguments V(0) through V(9) are the ten items on the argument list. Arguments can be set by either parameters after an @trigger or asterisk substition in pattern matching. Example: @listen item=* foo *; @ahear item=: [v(1)] bar [v(0)]. & Timezones Timezones This feature coverts MAZE Standard Time to your preferred Time Zone. All times are now stored internally as a single integer representing the exact number of seconds since a fixed long-ago date. When you run a command that involves time, such as +laston, +uptime, or the time() and xtime() functions, the MAZE checks your @tz setting to determine what time to print out to you. See @tz for more details. The Default timezone for this MAZE is U.S. Mountain Standard time. & Types of objects Types of objects. There are 4 types of objects: things, players, exits, and rooms. The first letter following an object's ID number indicates the type: P(layer), E(xit), R(oom), otherwise, thing. Things are inanimate objects that can be carried. Players are animate objects that can move and carry. Exits are the means by which objects move. Rooms are locations that contain objects and linked exits. Things can be programmed using V-Registers so that they perform useful and interesting behaviors. & @edit @edit <object>/<attr> = {oldstring},{newstring}. <Object> can be a thing, player, exit, or room; <attr> can be any attribute on <object> that holds a string value (e.g. desc, succ, adrop, listen, ahear, va, vb, etc.). The first occurrence of oldstring is replaced by newstring. If the strings contain only alphabetic characters, the curly braces may be omitted. & @halt Usage: @halt [=<command>] Description: @halt halts all commands waiting to be executed by the invoking object, or by all objects owned by the invoking player. Optionally, <command> will be run afterwards. & mid function mid(str,startchar,howmany) returns 'howmany' characters from str starting at the startchar'th character. (i.e. mid(hithere,2,3) returns the) characters are numbered starting at 0. & tan function tan(num) Returns the tangent of num. & arcsin function arcsin(num) Returns the arcsine of num. & arccos function arccos(num) Returns the arccosine of num. & arctan function arctan(num) Returns the arctangent of num. & log function log(num) Returns the logarithm base 10 of num. & ln function ln(num) Returns the natural log of num. & exp function exp(num) Returns num raised to the power of 'e' (reverse ln). & pow function pow(n1,n2) Returns n1 raised to the n2'th power, where n1 and n2 are & fadd function fadd(n1,n2) Returns n1+n2 where n1 and n2 are floating point numbers. & fsub function fsub(n1,n2) Returns n1-n2, where n1 and n2 are floating point numbers. & fmul function fmul(n1,n2) Returns n1*n2 where n1 and n2 are floating point numbers. & fdiv function fdiv(n1,n2) Returns n1/n2, where n1 and n2 are floating point numbers. & sin function sin(num) Returns the sine of num. & cos function cos(num) Returns the cosine of num. & land function land(a,b) Logical AND of a,b returns 1 if both 'a' and 'b' are true. (see truth function) & lor function lor(a,b) Logical OR of a,b returns 1 if one or more of 'a' and 'b' are true. (see truth function) & lxor function lxor(a,b) Logical XOR of a,b returns 1 if one of 'a' and 'b' is true, but not both. (see truth function) & lnot function lnot(a) Logical NOT of a if truth(a) returns 1, this function returns 0. if truth(a) returns 0, this function returns 1. see truth function. & band function band(a,b) Bitwise AND of a,b (signed decimal integers) & bor function bor(a,b) Bitwise OR of a,b (signed decimal integers) & bxor function bxor(a,b) Bitwise XOR of a,b (signed decimal integers) & bnot function bnot(a) Bitwise NOT of a (signed decimal integers) & sgn function sgn(a) 1 if a>0, -1 if a<0, 0 if a=0. & truth function truth(a) Returns 0 on the empty string, the number 0, and dbref #-1. Returns 1 otherwise. & abs function abs(a) Absolute value of a. & base function base(num,oldbase,newbase) Converts 'num' from oldbase to newbase. Bases must be between 2 and 36. Digits in 'num' must be in range of the oldbase. Digits above 9 are 'a'(=10) through 'z'(=35), or 'A' through 'Z'. Examples: base(14,10,2) = 1110 base(aa,16,10) = 170 & sqrt function sqrt(number) Returns the square root of 'number', rounded down to the nearest integer. If number is negative, returns the square root of its absolute value. & pi function pi() Returns 'pi', which is approximately 3.1415927 & gt function gt(num1,num2) Returns 1 if num1 is greater than num2, 0 otherwise. & lt function lt(num1,num2) Returns 1 if num1 is less than num2, 0 otherwise. & fsqrt function fsqrt(num) Returns the floating-point square root for 'num'. If 'num' is negative, returns 0. & lnum function lnum(num) Returns a list of numbers from 0 to (num-1). The maximum legal value for num is 250. Example: lnum(5) returns '0 1 2 3 4'. & simp function simp(<floating-point number>) Returns the simplifacation of a floating- point number. For example, 027.603100 would return 27.6031. & dist2d function dist2d(x1,y1,x2,y2) Returns the distance between x1,y1 and x2,y2 as if on a 2-dimensional graph. & dist3d function dist3d(x1,y1,z1,x2,y2,z2) Returns the distance between x1,y1,z1 and x2,y2,z2 as if on a 3-dimensional graph. & comp function comp(n,m) returns 0 if n = m, -1 if n < m, 1 if n > m. The comparison is numeric only. Alphabetic strings are treated as equal to 0. & scomp function scomp(str1,str2) returns 0 if str1 = str2, -1 if str1 < str2, 1 if str1 > str2. For the purposes of comparison ascii values of characters are used, and str1 is less than str2 if it occurs earlier alphabetically. Examples: scomp(a,b) = -1 scomp(abc,aba) = 1 scomp(abc,abcd) = -1 scomp(A,a) = -1 scomp(a,A) = 1 &rand function rand(num) a number between 0 and num-1 & -------end math functions--------- & xtime function Given an ASCII time string, returns a timezone-independent x-value. This function is the inverse of the time() function. xtime() -- xtime() returns the timezone independent X-value for the current time. This X-value may later be converted to any timezone using the time() function. For a discussion of X-values, see the help entry above for the time() function. xtime(s) -- xtime(s) converts an ascii string `s' (without the quotes) into an X-value. Xtime() has been written to analyze and interpret a variety of string representations of the time. If it won't recognize a particular specification, please advise nils@geom.umn.edu and we will try to increase its flexibility. It is important to realize that an ascii string representation of the time must be in `some' timezone. This timezone must be known during the time of conversion in order to calculate the timezone independent X-value. The following rules will be used to determine the best guess at the timezone for the string `s'. A) If the string `s' contains a timezone specification such as `gmt', `edt', `est', `cdt', `cst', `mdt', `mst', `pdt', or `pst', that timezone will be assumed during conversion. B) If A) fails, and the calling object has a TZ value set, that value will specify the timezone. C) If A) and B) fail, and the owner of the calling object has a TZ value set, it will specify the timezone. D) if A), B) and C) all fail, then the MAZE default timezone will be used. xtime(s,tz) -- Same as above, but with the timezone set explicitly as 'tz'. See also time(), @tz, Timezones. & time function time() Returns the current system time and date, in an alphanumeric format; the exact value returned depends on your @tz setting. The default is U.S. Mountain Standard Time. time() first checks the @tz value on the object calling time(), and if none is present it next checks the @tz value of the object's owner. time(tz) Returns the current system time and date, using 'tz' as the timezone value. 'tz' should represent a number of hours before or after GMT and can include an optional ':Y' or ':N' suffix which indicates if U.S. style daylights savings time is to be taken into consideration. 'tz' can also be the special value 'D' which means that the object's default timezone is to be used. time(D) returns the same value as time(). time(tz,x) Returns the time and date represented by the long integer 'x' in timezone 'tz', where 'tz' is as above and 'x' is the timezone-independent internal representation of the time, expressed as the exact number of seconds since Midnight Greenwich Mean Time in the morning of Jan 1, 1970. time(D,x) returns the time represented by 'x' while using the object's default timezone. See also xtime(), @tz, Timezones. &get function get(obj,attr) get(obj/attr) These two formats are equivalent and each returns the value of the 'attr' attribute on object 'obj'. Examples: @sex me = neuter get(me/sex) then returns the string 'neuter'. get(#123,va) returns the value of 'va' on object #123. & strlen function strlen(str) number of characters in str "a function quota(player) returns the quota of player "a_left function quota_left(p) returns the balance of unused quota for player p. &credits function credits(player) returns the number of credits belonging to player &s function s(str) does pronoun substitution on str. &num function num(obj) obj. # of obj. &con function con(obj) first thing in the contents list of obj. See also 'next function'. &exit function exit(obj) first exit in a room. (i.e. exit(here) -> first exit ) exit() on a thing returns its home. See also 'next function'. &next function next(obj) next thing in a list. (i.e. next(exit(here)) -> second exit) &link function link(obj) destination of an exit; home of a player or object; dropto of a room. &loc function loc(obj) location of obj. (Room #) &owner function owner(obj) number of the owner of obj. &name function name(obj) name of obj. (obj is probably #<obj. num.>) &match function match(s1,s2) returns 1 if s1 matches s2, 0 otherwise. s1 is a character string, and s2 is a string which may contain wildcards. &pos function pos(str1,str2) returns the position in str2 where str1 first appears. &extract function extract(str,wordnum,howmany) returns the string from str starting at word number wordnum and containing 'howmany' words. (i.e. extract(four score and seven years,2,3) returns score and seven.) extract(str,1,1) == first(str). Words are numbered starting at 1. &remove function remove(str,wordnum,howmany) return the remainder of string 'str' after removing 'howmany' words starting at wordnum. (i.e. remove(four score and seven years,2,3) returns 'four years'.) Words are numbered starting at 1. &delete function delete(str,charnum,howmany) returns the remainder of string 'str' after deleting 'howmamy' characters starting at charnum. Characters are numbered starting at 0. (i.e. delete(abcdef,2,3) returns 'abf'.) &flags function flags(obj) Returns a string consisting of the current flags on obj. &class function class(player) Returns the class of a player. &zone function zone(obj) If obj is a room, returns the db # of the room's zone. If obj is an exit, thing, or player, returns the db # of the room the obj is in. The function checks for objects inside other objects and traces all the way back to a room before returning a zone #. &wmatch function wmatch(str,arg) Takes a string of words/numbers (str) separated by spaces, and locates the position of the argument (arg). The function returns a value of '0' if the argument is not in the string. For example: "wmatch(blee foo garb fargle,foo)" will return a value of '2'. The wmatch() function is not case sensitive. & privacy This help topic attempts to explain to what extent your communications with other users on the MAZE are kept private. Reading this section will give you a better understanding of how 'safe' your privacy is. 1) When you speak normally, using the 'say' command, you are heard by every object in the room that is 'listening'. To determine who and what is listening, the user may use the @sweep command. You may see objects 'listening' that listen only for a particular command, but unless you own the object you cannot know for certain whether an object in the @sweep list is listening to everything you say. 2) This MAZE does not record ordinary speech, pages, or whispers within its log files or any other fashion. If nobody in the room is listening, there is no way for anybody outside the room to know what you are doing. The only exception to this rule is that, for debugging purposes, we may occasionally log the last few commands executed just before a system crash, but never more than that. Even in such cases, commands executed more than one minute before the crash will never be logged. 3) Things said with the 'whisper' and 'page' command, when these are used correctly, are heard only by the player to whom they are addressed. No other user or object can hear them. 4) Things broadcast over the +com channels are heard by everyone on the channel. Read the online help to learn how to tell who is on the channel. 5) Any user may use the @whereis command to determine the location of another user. If you do not wish to be located, you may use the command '@set me=dark' to prevent other users from locating you. When you use the @whereis command, the other user receives a message to the effect that you are finding out where they are. 6) Any user may use the @hide command to remove their name from the WHO listing. There is a charge for this each time you use it. To restore your name on the list, use the @unhide command. You are also unhidden automatically each time you reconnect to the MAZE. 7) Users may use the command '@set me=Haven' if they do not wish to receive pages, and '@set me=No' if they do not wish to hear public announcements. This topic is long. If you missed any of it and do not have a scrollback option, try setting '/more on' in tinyfugue and reading it page by page. & @echo @echo <message>. This command displays <message> to you only. See also: @necho & @necho @necho <message>. This command displays <message> to you only, but also allows n-phrasing, so you could type multiple spaces and other characters that wouldn't normally come out with @echo. If this command is used in an attribute, it still must be @nset. See also: @echo, @nset & entrances function entrances(<object>) is a function analogous to @entrances, (actually, @entrances uses entrances(), and was implemented as a command on the universal zone object). It returns a list of exits leading into <object>, in a format suitable for use by @foreach (that is, space-separated dbrefs). & objlist function objlist(<object>) returns a list of space-separated dbrefs of the list of objects beginning with <object>. It is analagous to using the 'next' function repeatedly on an object and return the list of results. The two most common ways to use this function are in conjunction with con() or exit(). Here are some examples: @foreach objlist(con(here))=say %0 is here! this will cause you to tell about all objects that are in the current room @foreach objlist(exit(here))=say %0 is a way out! this will go through all exits leading out of the current room, and cause you to tell people that they can get out through them. & @remit @remit <object> = <message> Emits <message> to the contents of <object>. <object> is generally a room. This command supersedes @pemit <room> = <message>, which is now obsolete, although it will continue to work for a while. See @pemit, @zemit. & truth function truth(a) Returns 0 on the empty string, the number 0, and dbref #-1. Returns 1 otherwise. & @getalias @getalias User Tells you the user's alias, if any. & objmem function objmem(object) Returns the number of bytes used by the object. & playmem function playmem(player) Returns the total number of bytes used by all the objects owned by the player. & @oemit @oemit <object>=<string>. This command emits <string> to everything in the room *except* <object>. See also @emit, @pemit. & @noemit @noemit <object>=<string>. Emits <string> (w/o eliminating extra spaces) to everything in the room *except* <object>. See also: @emit, @pemit & if function if(test,act) This function checks the test, and returns act1 if the test is true, otherwise it returns nothing. The test is false if it evaluates to 0, to #-1, or to the null string. Otherwise it is true. See also ifelse(), truth(). & ifelse function ifelse(test,act1,act2) This function checks the test, and returns act1 if the test is true, act2 if the test is false. The test is false if it evaluates to 0, to #-1, or to the null string. Otherwise it is true. See also if(), truth(). & wcount function wcount(string) Returns the number of words in the string. & strcat function strcat(str1,str2) Returns the concatenation of the two strings, str1 and str2. Example: strcat(abc,def) returns abcdef. & @nemit @nemit <string> Works just like @emit except does not parse its argument. May be used for emitting strings with spaces in them, or with brackets and parentheses, without worrying about functions being evaluated or spaces being removed. See also @npemit, @nset. & @npemit @npemit obj=<string> Works just like @pemit except does not parse its argument. May be used for pemitting strings with spaces in them, or with brackets and parentheses, without worrying about functions being evaluated or spaces being removed. See also @nemit, @nset. & @nset @nset <obj>=<attr>:<commands> Works just like @set does for setting attribute values, except does not parse its argument. May be used for setting attribute values with leading or embedded spaces, or with brackets or parentheses, without worrying about functions being evaluated or spaces being removed. See also @set, @nemit, @npemit. & lwho function lwho() Returns a list of dbrefs of connected users. If an object uses this function it is charged 50 credits. & idle function idle(user) Returns the idle time, in seconds, of the given user. If the user is not connected, nonexistant, or hidden, the function returns #-1. & onfor function onfor(user) Returns the connect time, in seconds, of the given user. If the user is not connected, nonexistant, or hidden, the function returns #-1. & host function host(user) Returns the hostname of the given user. If the user is not connected, nonexistant, or hidden, or if you are not authorized to see the user's hostname, returns #-1. & type function type(object) Returns the type of the object, where type is one of Player, Room, Exit, or Thing. & lattr function lattr(obj) Returns a list of the attributes on object 'obj' that have a non-null value. See also lattrdef(). & lattrdef function lattrdef(obj) Returns a list of the attributes defined (with @defattr) on object 'obj'. See also @defattr, lattr(). & tms function tms(num) Takes a number of seconds, and returns the time represented by the given number of seconds, in the format of the idle column in the WHO list, showing 's' for some number of seconds, 'm' for some number of minutes (dropping any fraction), 'h' for some number of complete hours, or 'd' for some number of complete days. Examples: tms(33) returns '33s'. tms(121) returns '2m'. tms(86401) returns '1d'. & tml function tml(num) Takes a number of seconds, and returns the time represented by the given number of seconds, in the format of the 'On For' column in the WHO list, showing hh:mm for times less than one day, and dd hh:mm for periods longer than one day. Examples: tml(33) returns '0:33'. tml(121) returns '02:01'. tml(86401) returns '1d 00:01'. & flip function flip(string) Returns the character-reversal of the argument string. Example: flip(abcd efg) returns 'gfe dcba'. & string function string(char,num) Returns a string of 'num' occurences of 'char'. Example: string(*,6) returns '******'. & matchplay function matchplay(player) Returns the dbref number of player. This is different from the num function in that it only works on players, and the player need not be in the same room as you. & ljust function ljust(string,num) Returns the string, left-justified in a field of width 'num'. & rjust function rjust(string,num) returns the string, right-justified in a field of width 'num'. & cjust function cjust(string,num) Returns the string, center-justified in a field of width 'num'. & spc function spc(n) Returns a string consisting of n spaces. & plural function plural(num,suffix) Returns the 'suffix' text if 'num' does not equal 1. This returns a null string otherwise. & art function art(word) Returns an article of a word; basically 'a' if the first letter of the word is a constanant, 'an' if it's a vowel. This function may be improved later. & subj function subj(<object>) Returns the subject form of <object> (he, she, it), depending on its sex. Similar to %s, but returns 'it' instead of the subject's name if the sex is neither male nor female. See objn(), poss(). & objn function objn(<object>) Returns the object form of <object> (him, her, it), depending on its sex. Similar to %o, but returns 'it' instead of the object's name if the sex is neither male nor female. See subj(), poss(). & poss function poss(<object>) Returns the possesive form of <object> (his, her, its), depending on its sex. Similar to %p, but returns 'its' instead of the apostrophe-S version of the object's name, if the sex is neither male nor female. See also subj(), objn(). & lcon function lcon(<object>) Returns a space-separated list of items in <object>. & lexit function lexit(<object>) Returns a space-separated list of exits in <object>. & rtime function rtime([<seconds>]) Returns a short time readout in hours, seconds, minutes, and AM or PM. <seconds> may state the number of seconds starting at a fixed point of time. <seconds> can be added together with 'xtime()' to in- crease or decrease the current 'rtime' by seconds, minutes, or hours. If <seconds> is omitted, the current time will be displayed. & stime function stime(<seconds>) Returns the string-readout of the time in <seconds> after a fixed point of time. & nearby function nearby(obj1,obj2) Checks to see whether obj1 is 'nearby' obj2. Two objects are near each other if they are in the same room, or if one is inside the other. Returns 1 if the objects are nearby, 0 if not, and #-1 if either object cannot be identified or if you cannot find the location of either object. You must control both objects to get a precise outcome. & room function room(<object>) Traces all the way back to the actual room that <object> is in, and returns that room number. This works no matter how deep inside boxes an object might be. & controls function controls(p1,p2,power) Returns 1 if player1 has a specific 'power' over player2, else 0. An example of a 'power' is Join. & hasflag function hasflag(<object>,flag) This will return 1 if <object> has the specified flag, and 0 if not. Example: say [hasflag(*Jin,c)] -see if Jin is connected & haspow function haspow(<object>,power) This will return 1 if <object> has the desired power, and 0 if not. An example of 'power' is Join. & @npage @npage <player>=<message> Pages a player without parsing the message. For example.. using @npage, you can type '@npage player=()*{} []' and it will come out exactly that way. See also: page & @apemit @apemit <object>=<commands> These set of commands will be activated whenever <object> gets a @pemit. See also: @apage, @awhisper & @grep @grep <object>|ALL=<string> This command displays all attributes on <object> that contain <string>. If ALL (case-sensitive) is specified, every attribute on every object in the database will be searched. Requires pow_database and you must be able to examine the object if you use the ALL feature. & @admin @admin This command displays the members of the DreamsMAZE administration and if they are currently connected. & @powcount Syntax: @powcount <power> This command will show everyone that has the power of <power> and what level is it. & @cemit @cemit <channel>|<channel alias>=<mesg> This command will emit <mesg> onto the specified channel. Requires POW_SPOOF. & @inactive @inactive This command will show a list of all players inactive for 6 months (180 days) or more. Requires POW_MISC. & change function change(str1, str2, n) This function will change the 'n'th character in str1 to str2. If there is more than one character in str2, they will be inserted. Characters are numbered starting at 1. Examples: [change(abcdefg, x, 3)] = abxdefg [change(abcdhijkl, defg, 4)] = abcdefghijkl & linkup function linkup(object) Returns a list of dbref numbers of objects @linked to 'object'. & +queuelag +queuelag. This command tells the time between typing the command and when the actions are performed. For example, If You typed +queuelag and recieved "Difference of commands: 2s - 07:50:04 PM & 07:50:06" that means it would take 2 seconds between the time you typed a command until its execution. & inventory inventory. Lists what you are carrying. Can be abbreviated to 'i'. & talk talk <thing> This command will trigger <thing>'s talk, atalk, otalk. Used by builders for NPC's mostly. & changes changes changes all changes list changes today|yesterday changes <date> This command shows the hardcode changes log. When passed no arguments it will display all the changes since you last used the command with no arguments (as per the LastChange attribute). When 'all' is specified the entire file. If you specify 'list' it will show all dates that hardcode changes were recorded on. If you specify 'today' or 'yesterday' it will show all changes made that day or the day before respectively. If you specify <date> it will show changes that were logged on that date. NOTE: <date> is in the format month/day/year (e.g. 7/8/96). & whois whois <player> This command tells you various information about <player>. To set your own whois information, set your @rname, @email, and @whois attributes. If you need further help ask a director. &fcomp function fcomp(n,m) returns 0 if n = m, -1 if n < m, 1 if n > m. Where n and m are floating-point numbers, the comparision is numeric only. Alphabetic strings are treated as equal to 0. & justify function justify(text,line#,char-length) This function fully-justifies a line of words and prints them out accordingly, up to the maximum character-length specified, or until the end of the <text> is reached. It will display the specified <line#> of the text, filled with spaces necessary to fill up the last <char-length>-th column. Example: justify(ab cd ef gh. ij kl mn op,1,10) equals.. ab cd ef whereas: justify(ab cd ef gh. ij kl mn op,2,10) equals.. gh. ij kl and: justify(ab cd ef gh. ij kl mn op,3,10) equals.. mn op & replace function replace(string,word,replacement) This function will replace the 'word' in 'string' with 'replacement' Example: replace(foo bar blee,bar,bonk) would return 'foo bonk blee' because it replaced 'bar' in the string 'foo bar blee' with 'bonk'. & rank function rank(player) This function would return one of the following numbers according to the player's class: Lamb: 1 Squire: 5 Advisor: 9 Worker: 2 Guard: 6 Overlord: 10 Peasant: 3 Knight: 7 Adventurer: 4 Leader: 8 These number can then be used in boolean expressions. Example: @switch [rank(v(N))]=>5,{say HELLO!},{say Sorry, Officials only.} In this example, it would say 'HELLO!' if you where of a rank higher than 5, wich would be a Guide, and say 'Sorry, Officials only.' if you where a Guide or lower. & dayofyear function dayofyear(time()) or This function will return the actual day of dayofyear(wtime()).. the year, from 1-366. & insert function insert(string,wordnum,word) This function will insert 'word' after the specified word in 'wordnum' inside 'string' Example: insert(blee foo bar,2,wooblam) This would return 'blee foo wooblam bar' because the example says to insert the word 'wooblam' after the 2nd word in the string 'blee foo bar' & switch function switch(<str>[,<pat1>,<res1>]...[,<dflt>]) The switch function compares <str> against <pat1>, <pat2>, etc (allowing * to match any number of characters and ? to match any 1 character), and returns the corresponding <resN> parameter for the first <patN> pattern that matches. If none match, then the default result <dflt> is returned. Example: > say switch(c,*a*,A,*b*,B,*c*,C,*d*,D,E) You say "C" > say switch(f,*a*,A,*b*,B,*c*,C,*d*,D,E) You say "E" > say switch(cab,*a*,A,*b*,B,*c*,C,*d*,D,E) You say "A" > say switch(f,*a*,A,*b*,B,*c*,C,*d*,D) You say "" See also: @switch, match(). NOTE: You may only check against 4 different matches and a default. & foreach function foreach(list,action) analagous to @foreach command, but a function. example: [foreach(a b c,x[name(v(0))]x)] -> xax xbx xcx & stringeq function stringeq(arg1,arg2) This function returns 1 if arg1 matches arg2 exactly. 0 is returned if it does not. This function does not accept wildcards like match() does. & round function round(number) This function will round 'number' to the nearest ones place. Example: round(6.789) would return 7 & comma function comma(number) This function inserts commas in 'number' to divide the number into it's proper places. Example: comma(10000000000) would return 10,000,000,000 & ctof ctof(degrees celcius) This function will convert celcius to fahrenheit. & ftoc ftoc(degrees fahrenheit) This function will convert fahrenheit to celcius. & hasstr function hasstr(string1,string2) This function checks to see if string1 is located in string2. If it is, a 1 is returned, and if it is not a 0 is given. Example: hasstr(blee foo bar,foo) would return 1 because string2 'foo' is found in string1 & nspc function nspc(string) This function removes the spaces around a string. For example, nspc( foo bar blee ) would return 'foo bar blee' with no spaces around it. & is_are function is_are(string) Returns 'is' if string is 1 and returns 'are' if string is 0. & andf function andf(string) This function inserts 'and' before the last word in a string. Example: andf(boo blee foo) would return 'boo blee and foo' & lrest function lrest(string) This function returns all of the words in string except for the last one. Example: lrest(blee foo bar) would return 'blee foo' & llast function llast(string) Returns the last word in string. Example: llast(draco Acme Zephyr) would return 'Zephyr' & pnum function pnum(player) Returns the dbref number of 'player' Example: pnum(Zephyr) would return #40043 & fdate function fdate(time()) This function will return the date in time() in a word form. Example: fdate(time()) would return 'Saturday, May 29, 1993' if you happen to use fdate() on that day. & eq function eq(n1,n2) Returns 1 if n1 and n2 are equal, else 0. & roman function roman(number) Returns the roman numeral for <number>. & fill function fill(number, zeroes) This function will fill up the remaining digits on the left side of the number with zeroes. Example: fill(45,6) = 000045 & between function between(number,n1,n2) Returns 1 if <number> is equal to n1, equal to n2, or between n1 and n2. 0 otherwise. & isattr function isattr(obj/attr) Returns 1 if obj/attr is a valid attribute, 0 otherwise. & wchange function wchange(sentence,word#,newword) This function replaces word# with <newword> in <sentence>. Example: wchange(ab cd ef gh,2,blee) = ab blee ef gh & mudname function mudname() Returns the name of the MAZE. This is usually the name that appears in various mud lists, and is the name that the mud is listed under in reports from RWHO servers (that is, if the mud sends its WHO information to an RWHO server). & parseobj function parseobj(player, obj#) This function will parse out the name of the object# that you specify, along with its actual number and flags (depending if <player> can see it), and its ansi colors (again, if the player is set ansi) all in a string. obj# must be a valid name, or could be #<number, ranging from -4 to the last object in the database>. & madd function madd(n1,n2,...,n10) Multiple addition. There can be up to 10 args. & lteq function lteq(arg1,arg2) Returns 1 if arg1 is lower than or equal to arg2. It returns 0 is it is not. & gteq function gteq(arg1,arg2) Returns 1 if arg1 is greater than or equal to arg2. It returns 0 if it is not. & date function date() Returns the date & is_a function is_a(object,parent) Returns 1 if 'object' has 'parent' as a parent. Example: is_a(#40043,#4000) would return 1 because #40043 is a child of #4000 &isdigit function isdigit(<char>) This function gives a 1 if <char> is a digit (0-9), and 0 if it is a letter, or symbol. & hasgoal function hasgoal(object,goal) Returns 1 if <object> has <goal> in its goals list. Otherwise, returns 0. & nextgoal function nextgoal(player) Returns the next goal that <player> has to do. & mazename function mazename() Returns the name of the MAZE. & players function players() Returns a list of dbref numbers representing all the players on DreamsMAZE. & start function start(<word>) Returns the first letter of <word>. & end function end(<word>) Returns the last letter of <word>. & last function last(<sentence>) Returns the last word of <sentenece>. & strchr function strchr(<string>,<char>) Returns 1 if <string> contains <char>. & anum function anum(<char>) Returns the ASCII decimal value of <char>. & dtof function dtof(<celcius degrees>) Converts degrees Celcius to degrees Fahrenheit. & dtoc function dtoc(<fahrenheit degrees>) Converts degrees Fahrenheit to degrees Celcius. & randword function randword(<string>) Returns a random word from <string>. Example: say I'm going to the [randword(store park)] today. Might say 'I'm going to the store today.' Might say 'I"m going to the park today.' & denied function denied() Returns a permission denied message. & randroom function randroom(<area>) Returns a random room in area <area>. Used for combat mostly. Ignore it. & huh function huh() Returns a random huh message. & chr function chr(<num>) Returns the representative character from the ASCII table. Requires POW_FUNCTIONS. & randclr function randclr(<string>,<color list>) This will color each character in <string> with a random color from <color list>. <color list> must be a list of colors seperated by spaces. For a list of colors see 'help colorlist'. & float function float(<number>,<format>) This function will truncate a floating-point number to a given place. If the format number is negative, then after the normal truncation takes place, it will go through the number and remove any trailing zero's (0) as well. NOTE: If rounding is necessary, this function will do it. Examples: float(12.3456,2) returns 12.35 float(12.3456,6) returns 12.345600 float(12.3456000,-6) returns 12.3456 float(99.9999,2) returns 100.00 &even function This function gives 1 if its argument is an even number, and 0 if it is odd. &odd function This function gives 1 if its argument is an odd number, and 0 if it is even. & @defown @defown <PLAYER>=<# of PLAYER2> (default is PLAYER2=PLAYER) This command is used in the group ownership feature. PLAYER is usually yourself. '# of PLAYER2' is the object# for a second player (the groupchar) when this is set, everything created by PLAYER is owned by PLAYER2. EXAMPLE: @defown me=#4550 (everything you create while this is set is owned by player #4550) @defown me= (this cancels out @defown) At the present time, the only valid player numbers for this command is your own, and that of any group that you belong to. there is no limit on the number of groups you can belong to. SEE ALSO: group ownership, @users & first function first(str) the first word of str & rest function rest(str) everything *BUT* the first word of str & tmf function tmf(seconds) This function returns the number of seconds in a full word form, such as '49 seconds', or 'an hour', or '2 days'. & color DreamsMAZE is equipped with ANSI colors. To use these, you simply put the color name in caps between two |'s. To make it so you can see colors you must type: @set me=ansi To color an object/room/player, you simply type the color name in caps. You don't need the |'s. Exaple: @color box=R You may also use other options to effect the color. These options are: +, b, REVERSE. Example: @color box=+B For a list of colors see 'help colorlist'. & colorlist Available colors are: |+N|N |B|B |R|R |M|M |G|G |C|C |Y|Y |W|W You can also set the background color with these: |0| |n| 0 |4| |n| 4 |1| |n| 1 |5| |n| 5 |2| |n| 2 |6| |n| 6 |3| |n| 3 |7| |n| 7 Color options are: + b r Example: @color toy=+bG See also: color