If you are new to WindsMARE, type: | help getting started |
For general information on WindsMARE: | help general info |
For a list of helpfile topics: | help topics |
For a list of common commands: | help commands |
For a list of building/coding commands: | help @commands |
For a list of built-in attributes: | help attributes |
For a list of global functions: | help functions |
For a list of object flags: | help flags |
Getting Started
Welcome to WindsMARE! Here are some basic commands that will help you get
started on your journies as an Adventurer:
QUIT | - | Exit from WindsMARE. Must be in all caps. |
who | - | Print a list of users currently online the system. |
look | - | Look at the room you are in, or at a person or object inside. |
"<msg> | - | Make your character say <msg> in your current room. |
=<msg> | - | Transmit a message over the default [public] +channel. |
page <player>=<message> | - | Sends <message> to <player>, who must be online. |
General Information
WindsMARE, which stands for Multi-User Adventure Role-Playing
Epic, is a virtual reality text-based fantasy game combining
the survival and exploration objectives of the real world into
a theme of medieval proportions, where high priests, lords,
wizards and arch-magi, master thieves, dragons, fierce demons,
and even the gods themselves may come into play.
There are 5 types of objects: Players, Rooms, Zones, Exits, and Things, each which make up their own part of the virtual database. Rooms are the backbone of the world, for every object in some way must be inside a room. Things can be placed into rooms or other things, acting as containers. Players have the ability to move through rooms or enter things. Exits link the various Rooms of the world together, and are used for movement in towns, castles, and the countryside. Zones chart off sectors of numerous rooms for use in full areas of development in the database.
Most basic commands, such as look or take, require typing in a particular <object>. By specifying this <object> (such as a Player, Thing, or Exit) by its name, you can tell the computer exactly what you would like to do with it. If there was more than one object of the same name in the room, you may specify it with an additional number in suffix. Example:
QUIT | RECONNECT |
ann
announce <message>
This command makes an announcement across the entire
game. Every player currently online at the time of the
announcement will see this message prefixed with your name.
Making an announcement costs a rather hefty fee and is usually
discouraged except in under extreme circumstances.
behavior
behavior <option>
This command modifies your combat behavior strategy when
encountering enemies in the wilderness. Typing this
command without an option displays the selections available
to you and what setting you are currently using.
The game checks your combat behavior every time you move to
another room in the world. Behavior set more aggressively
will force your character to automatically attack enemies
waiting for you in the next room, while defensive behavior
gives the player more time to cast spells or use items before
the battle begins. Defensive options are better when you want
to travel quickly across the land, and aggressive options are
suitable when exploring in areas where battles are quick and
you have little time to react. More options may become
available to you as you study new skills and techniques.
cast <spellname>
cast <spellname>=<target>
This command calls upon a learned technique and executes it
at the given target, if specified. While casting a spell,
you cannot move, fight, or use any other item; you must have
complete concentration during the chant. How long it takes to
chant a particular technique solely lies upon the chosen spell
itself. All techniques require and consume some amount of either
Magic Points or
Endurance Points.
You may use the spells command
to list or view the current spells that you have learned.
Examples:
See also: spells, Endurance, Magic Power
clear
This command clears the screen. If the
Status Bar is turned on,
it will also be reset to the current
Terminal Emulation mode.
drop <object>
This command drops a thing from your
inventory into
the room at which you are currently standing in. This
works without restriction in rooms that you own,
however, you are not able to drop objects into various
rooms composing the village or countryside, or other
rooms that you do not own.
Event Items, on the other
hand, may be dropped anywhere. Event items are not
locked, and can be picked up by anyone else with the
get command. Items
dropped in Oceanic
rooms sink (disappear) when the game shuts down.
See also: get, inventory, items, Oceanic
enter <object>
This command allows you to enter a specified object
present in the current room. This object serves as a
container, holding you in its inventory. You can freely
enter any objects that you own that are not
@elocked. For you to
enter objects owned by other people, the
Enter_Ok flag must
first be set on it. To return to the original room once
within an object, type 'leave'.
See also: leave, @elock, Enter_Ok
eq
equip all
equip <item>
equip =*<playername>
This command equips your character with a specific
type of weapon or armor shown within your personal
items inventory.
Weapons are normally equipped in the right hand, and
shields are normally equipped in the left hand. You may
not equip a shield with weapons that are two-handed, and
only with a special skill can you equip each hand with a
one-handed weapon. All armor is equipped in their designated
slots.
Typing eq without any arguments shows the layout of your character and all of the weapons and armor that have been previously equipped, along with the current Attack Power and Defense Power your character has: both with and without the equipment.
Typing eq all searches your item list and equips the optimum (that is, the best) weapons and armor available to your character. Wizards may type eq =*<playername> to view the current weapons and armor equipped on another player on WindsMARE. Examples:
ex
examine <object>
examine <object>/<attribute>
examine <object>=all
examine <object>=brief
examine <object>=*pattern*
This command displays all the information contained
within a particular object in the virtual database. The
information listed includes the
description of the object,
as well as its owner, the flags set on it, the amount of memory
it is currently using, the last time it was modified, and any
other such attributes set or coded within the object itself.
The object's contents, as well as its
link and
location are also
displayed. You must be able to own the object to view a complete
list of information within it, however, if the object also has the
Visible flag set, anyone else may
examine the object.
Typing examine without any arguments examines the current room you are in. You can also specify a distinct attribute to display on the object. If you specify this command with the argument all, then all attributes inherited by the object's parents will also be listed, prefixed with the number of generations above the attribute has passed through. If used with the keyword brief, then the contents and exits list of an object will not be displayed. If a *pattern* is specified, only those attributes whose values match the pattern will be shown.
exits
This command displays all of the obvious exits
found within the current room, as well as the names
of the rooms of the destination that each exit
is linked to.
fight <enemy>
fight <full name of player>
This command engages combat against a particular
enemy or player located in the current room.
Within one round, which usually lasts about
5 or 6 seconds and is dependent upon one's
Agility, you will
attack the specified target using either your fists
or your equipped weapon. Your fighting power, or the
amount of damage you inflict on the enemy, is determined mostly
by your Attack Power.
If your opponent is still alive by the time you deliver the shot (if any), your enemy may automatically engage into battle against you, striking back before the next round. The battle ends when either you or your opponent is vanquished. You may use any item or any technique maneuver while the fight proceeds to ensure victory, yet you cannot direct a normal attack until all other such techniques are either stopped or executed.
To prevent the accidental initiation of battle against player characters, the name of the player you wish to fight must be typed out in full. See the topic Fighting for a complete summary on the sequence of battles.
See also: cast, equip, use, status, Fighting
get <object>
This command picks up an object, located within the current
room, and places it into your
inventory.
Only objects which are not @locked
may be picked up by any player. You may not pick up other players
or exits found within the room.
The commands get and take are equivalent.
give <recipient>=<object>
give <recipient>=<event item>
give <recipient>=<amount of Gold Pieces>
This command gives either an object found within your
inventory, or a reasonable
amount of Gold Pieces,
to the specified recipient. The recipient must be in the
current room that you are in, and can be either a player or
another object.
Any amount of Gold Pieces may be given freely to another player, provided you have enough to cover the transaction. Money given to an object that does not have a @cost attribute set will not be accepted. Objects may only be given to another player or object if it is under your ownership or if it has the Enter_Ok flag and the @elock attribute set appropriately. Event items may also be sent to other players in the current room. The item that you wish to send must be found in your items list, and must not be equipped at that moment. Normal event items, such as the Acorns of Life, or legendary pieces of weapons and armor cannot be given to anyone else online.
See also: grab, inventory, put, @cost, @elock, Enter_Ok
go <exit>
goto <exit>
This command makes your character move through
an exit in the current room. As an abbreviation,
one may just type the name of the exit, or its
direction, to pass through to its destination.
The commands goto and move are equivalent.
grab <object1>=<object2>
This command takes object2 from object1, and places it
into your inventory. Object1 must also be in your inventory
for you to take things from it. Things may be
grabbed only if you own their container or if the
Grab_Ok flag and the
@lgrab attribute on
the container is set appropriately.
Example:
See also: give, inventory, put, @lgrab, Grab_Ok
help
help ?
help <topic>
This command displays an information screen which provides
online help to a player. A player may choose to specify
a particular topic to read about, or use ? as
the argument to obtain the current version information
of the helptext viewer.
inv
inventory
This command lists all of the database objects that
you are currently carrying. It should not be confused with
the items command, which
lists all of your unequipped items, weapons, and armor.
See also: items
it
items <page>
items <item name>
items =*<playername>
This command shows you the layout of all of the
event items, normal consumable items, and unequipped
weapons and armor that you are currently carrying.
It displays how much you have of each item, and
a brief description of what each item does when used.
If you have too many items, the list will be broken
up into various pages. The page number viewed is
displayed in the box at the top of the list.
Typing items with the name of a carried item,
either listed with the method above or by using the
equip command, will
display detailed information about the item itself.
Wizards also have the option of typing items =*<playername> to view the list of items that another player has. Examples:
See also: equip, inventory, use
leave
This command makes your character leave from the
object you are currently inside of. You cannot
leave from anything except an object, and you must
be able to pass the @llock
set on the object itself. This is the opposite of
the 'enter' command,
which allows you to enter an object in the current room.
load
Currently unimplemented.
look
look <object>
look <player>'s <object>
This command looks in the current room, or just
at a particular object if specified. Looking within
a room will view the room's description, along with
whatever contents and exits are therein.
If a room has the Dark
flag set, objects within can only be seen when
you or another person in the room is using a Torch.
Objects or exits set Dark can not be seen unless
specified as the actual target to the look
command.
If the database reference number of a room is specified when using the look command, you will also view any visible attributes coded within. If you wish to otherwise view attributes, use the examine command instead. If you own the current room, all objects within (including ones set Dark will also be listed).
lore
This command lists the lore learned by your character
as you travel throughout the storyline theme of the game.
The column at the far left lists your available battle
tactics, which usually include
Fight,
Cast,
Use, and
one or two other current guild commands from
skills that you have learned. The next column over
to the right lists other informational commands, such as
Status,
Items,
Equip,
Spells,
Skills, and
Save.
These commands may be typed in at almost any time
to receive information during the game. Help is
available for each in further detail.
Also displayed in the lore command is the current storyline chapter that you are on, as well as the race of your character and all of the guilds that you belong to. Any other special effects will also be noted.
map
map <floor>
This command displays the current map of the wilderness
or dungeon that your character is exploring. The flashing
star in the center of the map drawing is your present
location. Terminals without ANSI emulation will find
most maps hard to follow.
In the wilderness, a miniature drawing of your surroundings are displayed. Various text pictures found on the map represent different nearby countryside landmarks. There are generally three types of wilderness. Normal wilderness, which includes normal countryside, mountainous, or arid desert regions, display a fair size distance map. Swamp and marsh regions display a smaller than normal map layout. Rhovanion regions, which include great fields and plains, display a much larger map layout.
Dungeon maps, on the other hand, are quite different. The dungeon sector number, along with a list of the floors (or vertical levels present in the dungeon) are displayed. Depending upon whether or not you have gotten any special dungeon items determines the outlook of the rest of the map. First, each dungeon has a separate map hidden in a Treasure Chest somewhere that includes an ANSI representation of each floor present. Without the map in hand, the only thing you will see is the flashing white star denoting your position in the dungeon. With the map, you can view a preset floor display, which fills up to your current screen size, settable by using the +term command. Second, each dungeon has a compass which uses the map to point to the lair of the boss within. A bright yellow flashing X will appear next to the floor icon to the left which tells which floor the boss is located on. The X will also appear in the physical map of that floor. If the dungeon boss has been defeated, a solid red X will appear instead.
In a dungeon, typing map <floor> will display the actual map of a floor different from the one you are standing on. Each map also displays the compass location, which is translated as the distance from the origin point marked on the map. The origin point is usually the entrance to the dungeon or the central crossroads of the wilderness. Example:
money
money <playername>
This command displays how many Gold Pieces you have,
both on hand and in the local Vault. Wizards may
choose to type money <playername> to
find the assets of another player on WindsMARE.
See also: status
move <exit>
This command makes your character move through
an exit in the current room. As an abbreviation,
one may just type the name of the exit, or its
direction, to pass through to its destination.
The commands move and goto are equivalent.
open <object>
This command opens a particular object in the room,
such as a Treasure Chest, and gives you its contents.
Once a chest is opened, it can never be reopened by
the same player.
page <playername>=<message>
This command sends a message to any other player currently
online. You may send messages to more than one
player at a time by using spaces in between the player
names. If the player you specify is disconnected or
hidden, their @away
message will be displayed. If the player is idle, or
hasn't typed in any command longer than five minutes,
their @idle message
will be displayed. If the player is currently not
accepting pages and has their
@plock attribute
set against you, you will see their
@haven message.
Examples:
See also: @away, @haven, @idle, @plock
pick
This command searches the wilderness area around you
and picks the plant that is most abundant in the area.
The effects of the plant are immediate, and could be
both helpful or harmful to the player depending upon what
type of plant it is.
Only rangers are known to preserve the plants they pick
for later use, either for themselves or against their foes.
See also: search
pose <message>
This command emits a message in your current room,
using your character's name as the first word of
the sentence. For example, if your name was Bob and
you typed 'pose laughs!', everyone else will see
the message 'Bob laughs!' This command may be
abbreviated using :<message>, or by
using ;<message> for possessives.
Examples:
put <object1>=<object2>
This command puts object2 inside of object1, both
of which are originally located in your inventory.
Objects can only be put inside others that are
under your ownership, or if they have the
Enter_Ok flag
and the @elock attribute
set appropriately.
See also: give, inventory, @elock, Enter_Ok
quests
This command lists the names of the level quests you've completed
during your adventuring career. Level quests reduce the number of
Experience Points needed
on a specific level to get to the next level.
Upon completion of a level quest, the player gains an amount of EXP inversely
proportional to the number of quests available for a particular level.
If only one quest exists, then the player gets half of the EXP needed.
If two exist, then the player gets one-third EXP for each completed, and so on.
The player is only granted experience points at the time of completing the
quest when he is already on the specified level, otherwise the player will
automatically get the experience points when he achieves a levelup to that
level. If a level quest is marked as required, a player may not advance to the
specified level for which the quest is required to be done. The player's
Experience For Next will remain at 0 until the quest is completed,
where it will then automatically levelup that player. Required level quests
may or may not grant any EXP.
You can view the list of all available level quests by typing the command @list quests, or using @list quest=<level> for detailed descriptions about each one on a particular level. A level quest cannot be completed by any player whose level is higher than that specified. You can also see the number of level quests completed by using the score command.
See also: score, Experience
run
This command attempts to escape from a hazardous battle
in the dungeon or countryside. Upon escaping, you will move
through a random exit, or whichever is not blocked by
monsters. Running from difficult monsters is a good
practice, as long as you don't make it a habit to venture
often into the uncharted wilderness until you raise your
levels high enough to win most battles successfully. You
cannot run when fighting a major boss enemy.
save
This command saves your current status and location
in the game. You must either own the room you are in,
or it needs to have the Abode
flag set, represented by an A appearing after
the database reference number of the room. You cannot
save in boss zones or if you have a disruptive ailment.
say <message>
This command makes your character say a message
to all the other people in the room. You may
see who else is in the room by typing
'look'.
This command may be abbreviated using
"<message>.
score
score <player>
This command shows your current score in the game,
including some of the most commonly requested statistics
about your character, status attributes, and health that
your character is currently experiencing. Further detail
can be viewed through the other game information commands:
status,
lore, and
summary.
Only Wizards have the ability to view the score of
other players in the realm.
search
This command makes your character search your
surroundings in the current room that you are
standing in. You will be notified if you find
anything unusual nearby. It is a good practice
to search often while exploring dungeons or
unmapped rooms, for many hidden secrets such as
treasure chests could be revealed.
sector
This command displays information about the wilderness zone area
that you are currently standing in. It shows the defined sector
number and name, along with the common enemy encounters you will normally
find as you move through the rooms within. Sector also brings up
information about the current room, such as which flags it has and
which floor you are on (in dungeons). Most dungeon and wilderness
sectors have their own rooms mapped out, and are visible to players
by using the map command.
sk
skills <page>
skills <technique name>
skills =*<playername>
This command gives you a layout of all of the special
skills that you have learned during your journeys.
It displays the percentage of mastery that you have
of each, and a brief description of what each does.
Skill effects are automatic; they cannot be used by
any direct means, but are instead triggered through
the usage of other actions only a percentage of the
time. If you have too many learned techniques, the
list will be broken up into various pages. The page
number viewed is displayed in the box at the top of
the list.
Typing skills with the name of a technique will display further detailed information about the particular skill, including how many Endurance Points it costs to activate the skill, and how many Technique Points are needed for the next percentage level of mastery. Various skills aid you in your quest in many numerous ways, and it is recommended that you learn as many as you can throughout your adventure. Each separate guild has their own learnable skill, with unique effects pertaining to that guild's field of study. Some skills enable the usage of other commands, which appear under the list of combat tactics using the lore command. Wizards may type skills =*<playername> to view the current list of skilled techniques that another player has. Examples:
sp
spells <page>
spells <spellname>
spells =*<playername>
This command gives you a layout of all of the spells
that you have mastered. It displays the current level
and percentage of mastery that you have of each, followed
by a brief description of what each does. Spells can be
used in or out of combat or by using the
cast command, as long
as your character is not in a Muted condition.
If you have too many learned techniques, the list
will be broken up into various pages. The page number
viewed is displayed in the box at the top of the list.
Typing spells with the name of an incantation will display further detailed information about the particular spell, including how many Magic Points are needed to successfully cast the spell, how long it takes to cast the spell, and its specified attack type. Elemental attack types are broken down into four categories: Single- hits one enemy only, Group- hits a species of enemies or an entire party of players, All- hits all enemies in the current room, and Global- hits all enemies and party members in the room. Wizards may type spells =*<playername> to view the current list of spells that another player has. Examples:
st
status
status <enemy>
This command displays in full your character's current
status in the game. Among the list of items displayed
are your current and maximum
Hit Points, your
current and maximum Magic Power,
current and maximum Endurance,
your character's Level,
your total Experience and how
much you need for the next level, your current alignment
(Virtue), how many
non-fatal deaths you have undergone during your adventure, and
how many steps you've taken from the start.
Various attributes are also listed, including your current
Strength,
Dexterity,
Wisdom,
Intelligence,
Agility,
Luck,
Attack Power,
Defense Power, and
Magic Attack Power.
The amount of Gold Pieces both on hand and in the Vault is displayed, with the amount of Task Points that you have earned. Your Critical Rate and Experience Rate are also displayed, along with the number of sessions you have connected to the game and the amount of time you have spent online (in hours:minutes). Wizards have the ability to status other players and enemies in the realm. Help is available for each of the topics mentioned above.
See also: lore
stop
This command stops any current incantation being
casted, or any special
technique being used within or outside of battle.
If used in the heat of battle, your technique will
merely stop and you will attack your enemy at the next
possible chance.
See also: cast
suicide
This command brings death to your character at an
instant, returning you to The Prairie to await
resurrection at your previous save
point. Use this command when you find yourself stuck in a
labyrinth (such as a house in a Residential Zone that
has no 'Out' exit), or if you are Wounded and there
is no enemy nearby to finish you off.
See also: save
summary
This command shows you the battle summary of your online
session, including the number of monsters you have killed
and the number of times you have died. Among the fields,
Experience Gained is the number of
Experience Points
gotten from killing enemies or players. Gold Difference is
the total amount of Gold Pieces
that you have both on hand and in the Vault, and
how it has changed (positively or negatively) since
the time you have last connected. Steps Taken is the number
of room moves while online. Total Damage Inflicted is the
amount of damage actually absorbed by the enemies you have
fought. The Hit Average readout is a percentage of the number
of successful hits that you have made against an enemy, divided
by your total number of attacks.
Two more fields are present. Damage taken without protection is the total amount of damage that an enemy has actually inflicted upon you, without subtracting any rebound movements or armor defense points. Damage taken with protection is the total amount of Hit Points that you have lost, with armor defense points added, from attacks inflicted by enemies. It is a general rule that if the amount of damage taken with protection is greater than half of the amoung of damage taken without protection, that you are fighting in too heavy of a territory and the monsters might be a bit too strong for you. On a further note, this is the same screen that is displayed when you disconnect from the game using QUIT.
See also: QUIT
take <object>
This command picks up an object, located within the current
room, and places it into your
inventory.
Only objects which are not @locked
may be picked up by any player. You may not pick up other players
or exits found within the room.
The commands get and take are equivalent.
talk <person>
Talk to townspeople and various other non-player
characters by using this command. Many townspeople
give clues and other hints about the storyline
that you are role-playing, while others just go
about their normal way through the town unwilling
to talk to a perfect stranger about the local events
and happenings. It is a good habit to always talk
to a person more than once, for they often say
something different.
to <playername> <message>
This command sends a message to all the players
who are in the current room. The message is prefixed
with your character name, and the name of the
person you are directing the text to. This command
may be abbreviated using '<playername> <message>.
Using : or ; as the first letter of
the message changes the output to a pose.
Examples:
unequip <object>
This command unequips any weapon or armor that you currently
have equipped, provided it is not cursed, and places it into
your items listing. The
changes in your Defense Power are
also displayed.
use <item>
use <item>=<target>
use <object>=%0,%1,..,%9
This command uses a particular item, found within your
items list. If no
target is specified, the game assumes you would like to
use the item on yourself. Each item has a different
effect, which is displayed when you examine it further
by typing items <itemname>. Depending upon
the available skills, you may use variour armor and
weapons to produce different effects against a target
enemy. Regular items disappear when used, however
special weapons and armor may have several or
infinite charges. Objects with the
@use,
@ause, and
@ouse attributes set
appropriately may also be used, and additional arguments
passed to the command will be parsed as %0, %1, and so on.
weather
This command displays the game's weather almanac,
which includes data on various climate temperatures
around your area, the sunrise and sunset of the current
day, chance of rain, humidity, wind speed and direction,
precipitation, visibility, and barometric pressure.
It also shows the phase of the moon, as well as the
current game time since the "beginning" of the world.
Various functions listed below can also be used to obtain
almanac information through coding.
See also: alttemp(), avgtemp(), gettemp(), wdate(), wtime()
where
whereis <playername>
This command shows you the location of a particular
player currently online the game. You may set the
Dark flag on your
character if you do not wish to be located by other
players. Setting the @hlock
attribute appropriately, or hiding from a user, is
also a decent way to protect your location from
being known. Typing where without any arguments
will scan the rooms around you for any monsters or other
players visible in the distance. You can only scan for
players in the open wilderness.
whisper <player>=<message>
This command whispers a message to the specified
player, who must be located in the same room you are in.
Other people in the room will see that you are whispering
to someone, but will not be able to make out the
contents of the message.
See also: page
who
who ?
who <flags>
who =<playerlist>
who <flags>=<playerlist>
This command displays the list of players currently connected
to the game. Hidden players are not listed, but could still be
counted in the value of total users shown at the end of the list.
The <playerlist> is a space-separated list of the only players
that you would like to see on the wholist.
<flags> is a list of words which represent the columns that you would like to see in the who list. There are two versions of each column: short and long. If the first letter of the flag is capitalized, the game will display the long version, as opposed to lowercase for the short. Type who ? for a list of currently available flags. If no flags are specified, the who list defaults to name online idle Level gender Occupation doing poll, or if there are over 200 people online, just name level. Your default flag settings may be changed by using the @whoflags attribute to store the value on yourself.
See also: @whoflags
wimpy
wimpy <Hit Points>
This command either displays or sets your current Wimpy
percentage value. When an enemy hits you with an attack,
the game checks this value to see if your
Hit Points
has gone below that marked percentage. If your Hit Points
are low enough, your character will wimp out and automatically
run away from the battle.
Use this mostly when exploring new territory and are unsure
of what type of monsters you might encounter there.
See also: fight, run, Fighting, Hit Points
wish
wish <name>
wish <name>=<target>
You can get wishes by having enough
Task Points on hand. A wish
is something that can not be gotten by normal means on the game,
such as an added effect to your character, increased stats, or
the like. Type wish by itself for a list of wishes to
choose from. Using the name of the wish, you can get more
information about what each one does. The wish will not be
requested and no Task Points
will be used unless you specify a valid <target> for the wish,
which is usually an item you are carrying or the word me.
If you're looking for a wish that isn't available, speak with a
Wizard online and it might be added, as long as it's reasonable.
+ch
+channel <channel name>
+channel -<channel name>
This command lists or sets your channels for the online
communications system. The +com
system supports an arbitrary number of case-sensitive 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.
+ch <channel name> sets the default channel for use with the abbreviated communications command, =msg. +ch -<channel name> removes a channel from your list. Typing +ch without any arguments shows the list of channels that you are currently listening to. You can listen to as many simultaneous channels as you wish. For a general chatting channel, turn to channel 'public'.
See also: +com
+com <channel>=who
+com <channel>=<message>
This command sends a message over a particular
communications channel, quite like an interactive
speaking radio. You can get a list of your current
channels by using the +ch
command. If the message sent contains only the word
who, you will receive a listing of all the
players currently on that channel. Channel names are
case-sensitive. Speaking on your default channel
may be abbreviated by using the command =msg.
See also: +channel
+i
+info ?
+info all
+info <topic>
This command displays the current database breakdown of
the Mare, showing many statistics of different categories.
The display has been broken up into several topics, which
may be displayed by typing +info <topic>. Typing
+info ? will show you the full list of current
topics visible. Typing +info all will display
full information about each topic, which can get rather large.
See also: +uptime, +version, @stats
+f
+finger <playername>
This command displays extended information about a
specific player on the game. It shows the level, race,
and list of occupations that the player has, along with
the time spent online, real life name, email address,
and a possible @plan that
the player has set on himself or herself. If the player
is not online or hidden from you, it will show you the
last time the player connected to the game.
+lang
+language <new language>
Displays or selects your currently spoken language. This affects
commands that say things in the room, such as
say,
pose, and
to. It does not affect out-of-character
commands such as page
and +com. Setting a language
may enhance or cripple your ability to
talk with non-player
characters as you meet them in the story.
When another player hears you speak a language they don't know 100%, your words are replaced by gibberish depending on how much they know that language. Knowing a language at least 10% allows you to somewhat read scrolls and write words. 50% is required to be able to speak in a tongue. At 90%, you can fluently speak the language and teach it to others.
Over time, you can learn the language that others are speaking by joining in a +party with them. They must have the language selected and in use during your travels. You will not know if you have learned the language until it reaches 10%. Some races initially start off with the ability to speak or understand more than one language.
+last
+laston <playername>
This command tells you the last time the player
has logged onto the game, and if the player is
currently disconnected, the last time the player
has logged off. You cannot view the login times
of players that are hidden from you.
+mail
The +mail system allows a user to send messages to anyone
else online, and read messages sent by other players.
To send someone a message, type +mail <player>=<text>.
You may specify more than one player to send mail to by
separating their names with a space, but standard prices
apply for each additional message to be sent.
Typing +mail without any arguments will display the
list of messages you currently have in your mailbox. To view
a message, type +mail <message#>. To delete a
message, type +mail delete=<message#>. Deleted
messages disappear from your mailbox when you leave the game.
A full list of +mail commands is shown below.
+mail [list] | - | Lists your current mail messages. |
+mail check | - | Checks if new mail has arrived. |
+mail clear | - | Completely clears out your mailbox. |
+mail clear=<msg#> | - | Erases a particular message number. |
+mail delete=<msg#> | - | Marks a message for deletion. |
+mail undelete=<msg#> | - | Saves a message from deletion. |
+mail protect=<msg#> | - | Protects a message from being erased with +mail clear. |
+mail unprotect=<msg#> | - | Returns message status to normal. |
+mail [read] <msg#> | - | Reads a particular message. |
+mail [send] <player>=<text> | - | Sends a message to a player. |
+mail reply <msg#>=<text> | - | Replies to a particular message. |
+mail forward <msg#>=<player>[,<text>] | - | Forwards a message to another player. |
+mail rewrite/purge | - | Purges mailbox, zapping all messages marked deleted. |
+mail version | - | Prints out the current TinyMARE Mail System version. |
Wizard commands: | ||
+mail scan <player>[=<msg#>] | - | Views mailfile of another player. |
+mail remove <player>=<msg#> | - | Removes a message from player's mailfile. |
+mail reset | - | Erases the entire mailfile. |
+motd
Displays the current message of the day. The file
that you see is the same one that is presented each
time you log into the game, just before connecting.
+news
Currently unimplemented.
+party
WindsMARE's +party system allows a group of people to explore the wilderness
and dungeons together as a single party of adventurers. Members of this
group follow a designated leader as a team, each taking their turn to
attack monsters and share in the experience gained. Party members are
oriented by rank and formation, with the leader in the front row. The
leader can choose different formations based on his or her combat ability.
All members can see their position on the field, as well as the status of
each and every other member of the party. A party of players makes for a
formiddable opponent against any threat that crosses your path.
How it works:
It only takes one person to begin a party. You can start a new party by entering the command '+party create=<name>', where <name> is the name of your new party. Next, you can check out the status of your party by typing '+party status'. This will show your vital party statistics, including when it was created, how many Experience Points have been earned, and who is in your party.
A box to the left of the main status display shows your current party's formation as it would be on the field of battle. The numbers in the box show where your party members are in relation to each other, according to rank. In normal attacks, enemies If the party leader dies, he will exchange places with rank #2. People in a party not fighting in the same sector of the wilderness will not obtain the experience points the other gains from killing an enemy. Otherwise, all Experience Points gained is equally divided among members with a remainder going to the topmost in rank. Gold Pieces won from enemies are given out randomly to the party members present. Technique Points are given to the player who defeats the enemy. While fighting, your Agility determines who goes first in the party. You will automatically leave the party if you disconnect from the game.
+party status can show a general display of your present party's statistics. In the flags line, L stands for Leader (rank 1). F indicates that the person is following the leader around the wilderness (normally this should be the case). H means that the person is hiding his party title from other players outside of the party. A means the player has a condition ailment associated with his status. You may use +party com or the command -<msg> to send a message to everyone in the party. A full list of +party commands is shown below.
Party Member Commands: | ||
+party list | - | Lists the parties currently running in the game. |
+party status | - | Shows the current status of the party. |
+party create=<name> | - | Create a new party. |
+party join | - | Join the party that you have last been invited to. |
+party leave | - | Leave the current party. |
+party follow | - | Start/stop following your leader through rooms. |
+party hide | - | Hide/Show that you belong to the current party. |
+party row=<rank#> | - | Switch to a lower rank in party formation. |
+party com=<message> | - | Sends a message to everyone in the party. |
Party Leader Commands: | ||
+party name=<new name> | - | Rename the current party. |
+party invite=<player> | - | Invite another player to your party. |
+party kick=<player> | - | Boots the player out of the party. |
+party leader=<player> | - | Selects someone else to be the leader. |
+party rank=<player>,<rank#> | - | Positions a player to a specific rank. |
+party formation=<strategy> | - | Selects a new party formation during combat. |
+party reset | - | Clears the Exp/Min and resets party's creation time. |
+sbar on|off
+sbar reset
+sbar floor
+sbar color=<0-10>
+sbar clock=on|off|default|12|24|game|game-24|age
The status bar is a real-time region that gets fixed
to the top of your viewing screen, using VT100
or ANSI terminal emulation. The components of
the status bar are your current
Hit Points,
Magic Power,
Endurance,
Gold Pieces,
Level, and current
Condition. Also shown
is your total Experience,
and how many points you need for the next level.
Type +sbar on or +sbar off to turn your status-bar on or off. The status bar will be removed when you properly disconnect from the game. If your status-bar ever gets jumbled, typing +sbar on or clear will redisplay the screen, hopefully fixing any errors. The background color of the status-bar may be set by using +sbar color=#, where # is a number from 0 through 10. To reset your entire status-bar configuration to default vaules, type +sbar reset.
In this status bar is also implemented a real-time clock. You may alter the clock, using the command +sbar clock, to show 12 or 24 hour real-life or current-game time. You may also specify to display your character's age, shown in hours:minutes. Also, at times during your travels, you will notice two letters appear in the upper right corner of your status bar. This tells you that you have changed to a new floor, or level, in a particular dungeon. To view the current floor you are on, type +sbar floor.
See also: clear, sector, weather, +term
+term
+term <setting>
+term <setting>=<value>
This command displays and sets the terminal attributes
on your particular character, for use with the game's
output display. Typing +term alone shows you a
list of both modifyable and inferred settings. If you
type +term <setting>, you will be shown a
list of values appropriate for that particular setting.
Inferred variables may not be changed, but are presented
to the game depending upon the current state of your
connection. Upon creation of your character, most of
these settings are asked in the form of a brief
questionnaire. Most commands look nicer if your terminal
has ANSI emulation present.
+tz
+tzone <offset>:<y|n>
This command tells the Mare which timezone you are in,
so that all functions dealing with time will be adjusted
according to where you live in real life. <offset>
is the number of hours before or after Greenwich Mean
Time, from -10 to 13. Default offset for the Mare is
usually -5, Eastern Standard Time. <y|n> refers
to whether or not your timezone changes to Daylight
Savings Time every 6 months. Default is Yes.
+uptime
This command displays various runtime statistics
concerning the game itself, including the exact time
in which the game was last turned on, last rebooted,
and how many minutes it will be until the time the
game next saves its database.
+version
This command displays current version information for
netmare, including which type of operating system it
was compiled on, what compiler did the effort, the
date of the last hardcode upgrade, and the current
database version being used.
QUIT
This command disconnects you from the game, saving
your entire character's status, location, and inventory.
Items you are holding do not disappear when you are away
from the game, and things will resume as normal when you
reconnect. If you have fought at all during your stay
online, you will also be shown a
summary status screen
displaying your battle statistics for the session. Please
note that this command must be typed in all CAPS.
See also: summary
RECONNECT
Similar to QUIT, the
Reconnect command disconnects your character from
the game and immediately returns you to the login prompt,
where you may once again connect to your character or
select a new one to login to.
See also: QUIT
@addparent <object>=<parent>
This command gives an object a new parent. Objects may
have any number of parents related to them. The parent
object must be either controlled by you or have the
Bearing flag set.
An object inherits attribute definitions from its parent,
and may also inherit attribute values, if the inherit
option is set on the particular attribute. See the topic
Inheritance for
more detailed information.
See also: @delparent, Bearing, Inheritance
@addrelay <object1>=<object2>
This command adds object2 to the list of relays on object1.
An object, with a relay set, will send all that it hears to
object2, in the form that corresponds to the
@rhear attribute. This
works much like how a puppet sends what it hears to its owner.
Non-player objects may relay data only when their
@listen attribute is
appropriately defined. You must be able to control both
objects for this to work properly.
For example, typing the following commands will set up a relay between room #2000 and room #195. All the messages heard in room #2000 will be sent to everything in room #195 with the prefix 'From afar,':
See also: @delrelay, @listen, @rhear
@addzone <room>=<zone object>
This command adds a zone object to a particular room.
A zone object must be an object that was previously
created with the @zone
command. Once a room is zoned, exits from within may not
be linked to other rooms outside of the zone.
Wilderness sector information for the specific room
will always use the first zone added to the list for calculations.
You must own both the room and the zone for this
command to work. See the topic
Zones for more
detailed information about zones.
See also: @delzone, @zone, Zone, Zones
@chown <object>
@chown <object>=<player>
This command changes ownership of a particular object,
room, or exit. To @chown things, you must be carrying them.
For rooms or exits, you must be in the room that they are in.
Unless you are a wizard, objects must have the
Chown_Ok flag set
on them. Any chowned object is automatically set
Haven for security purposes.
Wizards have the ability to chown any item to any player they wish.
@clone <object>
@clone <object>=<newname>
This command makes an exact duplicate of the specified
object, and puts it in your inventory. If <newname> is
specified, the object created will be named as such.
You must be able to control the object to clone it.
Monsters and other items with a combat status set
may not be cloned.
@create <object name>
This command creates an object with the specified name, and
puts it in your inventory. Creation costs a subtle amount
of Gold Pieces. You
do not get your money back when the object is destroyed.
@cycle <object>/<attr>=arg1,arg2,..,arg100
This command cycles the contents of a particular attribute on
<object> with the next argument in the series. If the last
argument is reached, the @cycle command will switch it back to
the first, and so on.
Example:
See also: @set
@decompile <object>
This command outputs a series of instructions, in regular
text, that may be quoted or typed back into TinyMARE to
reproduce the object in its entirity. This command is
useful for copying objects between multi-user realms
or recording the data of an object for personal use
offline, most likely as backup or for local editing.
This command does nothing to the object itself,
only merely displays its contents in command form.
@def
@defattr <object>/<attr>
@defattr <object>/<attr>=<options>
@defattr <object>/<attribute pattern>=<options>
This command creates a new attribute, with name <attr>, on a particular object. The attribute can be set to a value using the @set command, or by using the abbreviation @<attr> <object>=<value>. The <options> argument is a space-separated list of any options that you would like to give the attribute (listed below). The @defattr command may be used on an existing attribute to change its options. You may use either the examine command, or the attropts() function to display the current options on a particular attribute. If you specify an <attribute pattern> using wildcards, this command will attempt to set the flags on all matching attributes instead of defining a new attribute on the object. No object can have more than 255 attributes defined on it. A full list of the attribute options is shown below.
osee | - | Enables the attribute contents to be seen by anyone who examines it, and not just the owner. |
dark | - | Its value is not displayed during an examine, and its contents may not be retrieved by using the get() function. |
wizard | - | This attribute may only be set by the owner of the parent in which it is defined, or by a wizard of the game. |
unsaved | - | This attribute is not saved along with the database, and thus is erased each time the game restarts. |
hidden | - | With the exception of God, the contents of this attribute can not be viewed or modified. |
date | - | The contents of this attribute will be expanded to correspond to the time and date, much like what xtime returns, adusted to the player's timezone value. |
inherit | - | The attribute contents will be seen on all children of that particular object. Unless marked wizard or nomod, the attribute on the object's children may still be changed to any other value. |
lock | - | The contents of this attribute will be expanded to a boolean lock expression when examined. |
function | - | This attribute may be called upon as a user-defined function, as in attr(args). Arguments to the function are passed to the attribute contents as %0 through %9. |
haven | - | This attribute may not be triggered or executed using $ or ! Events. |
bitmap | - | The number in this attribute is expressed in hexadecimal format when examined. |
dbref | - | The number in this attribute is parsed to the database reference number when examined. |
Examples:
See also: examine, @set, @undefattr, Events, Inheritance, attropts(), get(), xtime()
@delparent <object>=<parent>
This command removes a parent from the object. You must
be able to own the object's parent, or the parent must
already have the Bearing
flag set. Any attribute values set on the object whose
actual attributes were defined on the parent will be lost.
See the topic Inheritance
for more detailed information.
See also: @addparent, Bearing, Inheritance
@delrelay <object>=<object2>
This command removes object2 from the list of relays
on object1. It may be appropriate to also remove the
@rhear attribute on
the object, if no relays are present.
See also: @addrelay, @listen, @rhear
@delzone <room>=<zone object>
This command removes a zone object from the list
of zones on a room. You must be able to own both the
zone object and the specified room. See the topic
Zones for more information.
See also: @addzone, @zone, Zone, Zones
@destroy <object>
@destroy <object>=Now
@destroy <object>=<seconds>
This command destroys a thing, room, or exit currently
in the player's possession. All rooms that are destroyed
will be automatically set with the
Going flag, and the room
itself will be destroyed nearly 10 minutes after
the command is issued. During that time, you may type
@undestroy to
stop the process. If you are unsure of destroying an
object, you may also schedule its destruction time by
entering in the amount of <seconds> it has remaining.
All objects found with a room at the time of destruction
will be sent to their homes, and all players will
instantly die. All exits leading to and from the room
will also be destroyed.
See also: @undestroy, Going
@dig <room>
@dig <room>=<exit to>,<exit back>
This command creates a new room with the specified name, and
displays its number. If you include additional exit names, they
will be opened up from the room you are in (and back again, if you
include the <exit back>). You cannot open any exits out of a
room that you do not own. Exitnames may be given aliases by using
a semicolon to separate them from the full name. The @dig
command copies the @color,
@floor,
and Zone of the previous room.
Examples:
See also: @color, @create, @floor, @link, @open, @zone, Zones
@echo <message>
This command parses and sends a message to the player who
executes it, namely yourself. It is mostly useful
for objects, or for parsing function values.
Example:
@edit <object>/<attr>=$,<string to append>
@edit <object>/<attr>=^,<string to prepend>
@edit <object>/<attr>=<old string>,<new string>
This command edits a particular <attr> of an object, replacing
all occurances of <old string> with <new string>. If ^ or $
is used, the string will be prepended or appended, respectively. If
the string contains complex characters such as non-alphabetic or
numeral characters, curly braces are required around the string.
Example:
@emit <message>
This command parses and sends a message to
all of the players who are in the current room
that you are in. You cannot spoof, however, or begin
the message with the name of another player,
and pretend to be that other person.
See also: @nemit, @npemit, @oemit, @oremit, @pemit, @remit, @zemit
@find
@find <pattern>
This command searches the database and lists all of
the objects that you own, whose names match <pattern>.
If no arguments are presented, this command will list all
rooms and things that you own. It will not work on exits.
Finding objects requires a subtle fee.
See also: @search
@fo
@force <object>=<commands>
This command forces a particular object to execute a
set of <commands>. The list of commands is in the
same format as action attributes, in that they are
each separated by a semicolon. Only wizards are able
to force other players to do things.
Example:
See also: @switch, @trigger, @wait
@foreach <wordlist>=<actions>
This command executes <actions> (which may be a semicolon-separated
list of commands) for each word in <wordlist>, whose elements
are separated by spaces. If a %0 or [v(0)] occurs anywhere in the command,
it will be substituted by the current word from the wordlist, in order,
while iterating.
Examples:
@halt
@halt <object>
@halt <object>=<commands>
This command halts all of the objects owned by you. Any
command currently in the queue for an object will be removed,
and all will be silent. If you specify an object as the target,
only that object will be halted. If you also list any semicolon-separated
commands, the object will execute those after it halts everything else.
Wizards have an additional ability to type @halt ALL, which
instantly clears all queued commands on every object in the game.
@iterate <pattern>=<command>,<action>
Invokes the command <action> for every output line of <command>
that matches <pattern>. Unmatching parts of the output get discarded.
Since <action> is placed into the command queue and executed
only after the full output of <command> is done, the
Quiet flag need not be set
to protect against infinite recursion. This command is equivalent to setting
the @listen and
@ahear attributes on an object to
<pattern> and <action> respectively, and then forcing that
object to execute <command>. More than one command or action can be
specified at a time by using curly braces around the set, with individual
commands separated by semicolons. Examples:
See also: @ahear, @listen, @open, Quiet
@link <exit>=<destination>
This command links an exit, to a destination room.
The destination is usually specified as a database
reference number, such as #12345. You may link an
exit to any room you own, or to any room set with the
Link_Ok flag.
Linking exits requires a small fee.
Wizards may link an exit to 'home'. This allows
anyone passing through the exit to be immediately
transported to the place where they had last used
the save command.
See also: save, @dig, @open, Link_Ok
@list
@list <category>
@list <category>=<value>
This command lists various tables of data, configured
in the source code of netmare. Typing @list on
a line by itself without arguments shows you the possible
categories that can be obtained. Type @list <category>
to get a full readout of that particular category. If you
would like to limit the readout to only certain values,
then you may specify them in the above command.
@memory
@memory <player>
This command shows the complete memory usage of you, or
another person online. It also tells you the percentage
of objects and bytes used out of the total of the entire
game, combining all of the players and objects in the database.
Wizards have the ability to check on the stats of players
other than themselves.
@misc
Used for artificial intelligence robots that correspond
to multi-user realms such as TinyMush and TinyMuse,
this command displays the original error message used
by those programs. Since most maas-neotek robots use @misc
as their way of checking to see if the local mud is still
alive, it is appropriate to have this command available
in TinyMare.
@name <object>=<newname>
This command changes the name of an object, room,
or exit, to a new name. You must be able to control
the object to change its name. Exits may have aliases
set after their full name by separating them with a
semicolon. Only wizards are able to change the names
of players online.
Example:
@necho <message>
This command sends a message to the player who
executes it, namely yourself. Unlike
@echo,
no spaces are removed from the message text,
and no functions are parsed.
See also: @echo
@nemit <message>
This command sends a message to all of the
players who are in the current room that you
are in. You cannot spoof, however, or begin
the message with the name of another player,
and pretend to be that other person. Unlike
@emit,
no spaces are removed from the message text, and
no functions are parsed.
@npemit <object>=<message>
This command emits a message to one
object or player only. You cannot begin the
message with the name of another player, and
pretend to be that other person. Unlike
@pemit,
no spaces are removed from the message text, and
no functions are parsed.
See also: @emit, @nemit, @pemit
@oemit <object>=<message>
This command parses and emits a message to
everybody in the room you are in, except for
the specified <object>. You cannot begin the
message with the name of another player, and
pretend to be that other person.
See also: @emit, @oremit, @pemit, @remit
@open <exit>
@open <exit>=<destination>
This command opens an exit, from the current
room you are in, to a destination room (if
specified). You must own the current room to create
an exit, and the destination room must be either
controlled by you or set with the
Link_Ok flag.
Opening exits costs a small fee, and linking them
costs an additional fee. Exit names may contain
aliases, which are separated by semicolons from
the name of the exit itself.
Example:
See also: @create, @dig, @link, @zone, Link_Ok
@oremit <object>=<message>
This command parses and emits a message to
everybody in the room that <object> is in,
except for the specified <object> itself.
Unlike @oemit,
this command may be used to send a message to an
entirely different room than the one you are in.
The same rules on spoofing still apply.
See also: @emit, @oemit, @pemit, @remit
@passwd
@passwd <playername>
This command allows you to change the password of
your character. You will be prompted to enter in
your old password with local echo turned off, so that
others in the room will not easily see what you are
typing. Then you may enter your new password twice,
once to verify that it is correct. The @passwd
command may only be used in direct mode and not
executed by using a command in the Queue.
Wizards also have the option to specify an additional
<playername> to change the password of.
@pemit <object>=<message>
This command parses and emits a message to one
object or player only. You cannot begin the
message with the name of another player, and
pretend to be that other person.
See also: @emit, @nemit, @npemit
@poll
@poll <message>
This command sets the Quote of the Day, seen by using
the who command, with
the poll who-flag
in use. Once the quote has been set, it cannot be changed
for another 15 minutes. If no arguments are given, this
command will clear the current quote of the day. Wizards
have the ability to modify this message whenever they please.
@ps
@ps <category>
@ps <category>=<player>
This command lists all of the elements in each queue
scheduled to take place in the next slice of time.
Typing @ps without arguments will list all of
the commands currently waiting to be executed by the
use of the @force,
@trigger, and
@wait commands, for all
objects either owned or controlled by you. Depending
upon what has been configured in the game, there might
be other categories present in the stats layout. Wizards
may include a specific <player> to check the queue of,
and all objects owned by that player will be reported
in the readout.
The Command Queue is operated on a first-in first-serve basis. When an object is forced to execute a command, it will place the command into the queue until the next time slice that the game has nothing else to do but wait for input or output on the server port. Configuration variables may be defined in the game itself to include a maximum number of commands in the queue for one object, or the maximum number of @wait commands for all objects, at any one given time. Each command executed in the queue costs a minute fraction of a Gold Piece, preventing troublesome users from creating infinite loops through the use of @triggers or action attributes. When an object exceeds these set limits, it will be considered a "Run-Away", and will be set with the Haven flag. While an object is set haven, it cannot execute any commands in the queue. You may use the @set command to release the object from this state, and to try out your code again.
See also: @force, @trigger, @wait, Haven
@push <object>
This command pushes an object or exit up to the top
of the contents list or exits list in a particular room.
You must own the object's location to be able to move
the item around in the stack.
@redef
@redefattr <object>/<attr>=<newname>
This command renames the attribute <attr>, on <object>,
to <newname>. All of the object's children, if any,
with this attribute set will have it renamed. An attribute
name may not shadow, or be equal to, a built-in attribute
that is already in the game itself, such as
@desc or
@succ.
See also: @defattr, @set, @undefattr, Inheritance
@redir
@redirect <object>=<commands>
This command redirects the output of a particular command
to <object>. It is similar to @force,
except that the commands specified will be executed immediately.
The resulting <object> sees the output
as you would see it, even if the <object> does not have
the special powers you have.
See also: @force
@remit <room>=<message>
This command parses and emits a message to
all of the objects located in the specified
room. You cannot spoof, however, or begin
the message with the name of another player,
and pretend to be that other person.
See also: @emit, @oremit, @zemit
@search
@search <player>
@search <category>=<type>
@search <player> <category>=<type>
This command searches through the database, and lists all
players, things, rooms, and exits for which <type> matches
on the object under the specified <category>. If no
arguments are given to the command, it will display all of
the objects you own or control, including exits (unlike
@find). All exits
displayed are listed with their source room and destination
room. All things are listed along with their location.
Because of the strenous processor usage that this command takes
up to fulfill the search, a rather large fee is required to operate
this command. A full list of @search categories is shown below.
@search attr=<name>:<pattern> | - | Displays all objects with a matching <pattern> on attribute <name>, both which may contain wildcards. |
@search class=<rank> | - | Display all players whose class matches <rank>. |
@search exit=<pattern> | - | Display all exits whose names match <pattern>. |
@search flags=<flaglist> | - | Display all objects whose flags contain those letters listed in <flaglist>, as they appear after the database reference number. All flag letters are case-sensitive. |
@search inzone=<object> | - | Display all rooms whose zone is linked to a particular <object>. |
@search links=<room> | - | Displays all objects that are linked to <room>. |
@search name=<pattern> | - | Display all objects, of any type, whose names match <pattern>. |
@search player=<pattern> | - | Display all players whose names match <pattern>. |
@search room=<pattern> | - | Display all rooms whose names match <pattern>. |
@search thing=<pattern> | - | Display all things whose names match <pattern>. |
@search type=<pattern> | - | Display all objects whose type matches <pattern>, which must be one of Player, Thing, Room, Zone, or Exit. |
@search zone=<pattern> | - | Display all zones whose names match <pattern>. |
Examples:
See also: @find
@set <object>=<flags>
@set <object>=<attribute>:<value>
@<attribute> <object>=<value>
The @set command may be used to assign values to attributes,
or to mark certain flags on various objects. To set a flag on an
object that you own or control, type @set <object>=<flag>.
You may set more than one flag at a time by separating the words with
spaces. To remove a flag from an object, type
@set <object>=!<flag>. Both built-in or user-defined
attributes may be set in the same manner, using the command
@set <object>=<attribute>:<value>. There is a shortcut
method, which just allows you to type
@<attribute> <object>=<value> without even touching
the @set command.
Examples:
See also: @defattr, Attributes, Flags
@stats
@stats me
@stats <player>
This command views the current database statistics of the game,
showing the total number of objects both online and active,
and the total number of rooms, things, exits, and players that
comprise the total amount of objects. Also listed are the number
of players in each administrative class rank. If the number is
less than 20, then the players' names will be displayed along
with their rank. You may also view the complete stats of only
the objects that you own, and if you are a wizard, you may view
the database stats of any other player as well.
See also: +info
@swi
@switch <expression>=<result1>,<commands1>,..,<default commands>
This command tests an expression with a series
of specified values, and places an action into
the command queue corresponding to the appropriate
value. First, it evaluates <expression>,
and tests it with <result1>. If it finds a
match, then it executes <commands1>
following the comma. If it does not find
a match, then it tests it with <result2>,
and so on. If no matches are found, the last
result expression in the list will be executed.
Wildcards are allowed in the result expressions.
Examples:
See also: @force, @trigger, @wait
@text
@text <filename>
@text <filename>=,,<object>
@text <filename>=<top line#>,<bottom line#>
@text <filename>=<top line#>,<bottom line#>,<object>
This command outputs a local file, from the game's
main directory listing of files, to yourself, or a
different player if <object> is specified. Typing
@text by itself will give you a directory
listing of all available files that this command can
work with. Other directories in this listing will be
represented with a / as the last character of the
filename. You may type @text <directory>,
without the slash, to receive a listing of that
directory as well. Typing @text <filename>
views the specific file, and you may add in which
lines to read selectively using the syntax listed
above. At this time, only Wizards may send files to
other objects or players.
@time <commands>
This command times the execution of a particular group
of commands, separated by semicolons. After the
commands are executed, you will receive a display of
how long the command took to process completely. Note
that any commands put into the queue will not affect
the end result time. In all respect, this command is equivalent
to @force me=<commands>,
but with an added time counter.
See also: @force
@tr
@trigger <object>/<attr>=%0,%1,..,%9
This command triggers a particular attribute, filled
with a list of commands separated by semicolons, on an
object. The object will execute the commands, if possible,
substituting %0 through %9 with the various arguments that
are placed into the @trigger command itself.
All commands executed are placed into the queue for further
processing.
Examples:
See also: @force, @switch, @wait, Events
@undef
@undefattr <object>/<attr>
This command permanently removes a previously
created user-defined attribute on an object.
All values set on this attribute, whether it is
the object itself or any children with the object
as its parent, will be lost. All references to
the attribute, following the executing of this
command, will cease to exist. Built-in attributes,
such as @desc or
@succ, may not
be removed from the game.
See also: @defattr, @redefattr, @set, Inheritance
@undestroy <object>
This command saves an object, particularly a room,
from destruction. Its Going
flag will be removed, and its destruction counter will
be cleared.
@unlink <exit>
This command unlinks an exit from its destination
room. Nobody will be able to use the exit until it
is further linked, by the owner, to a new location.
See also: @link
@unlock <object>
Removes the @lock on an object or exit.
This command is a synonym for @lock <object>.
See also: @lock
@update <object>
This command merely sets the Modification Time,
seen when using the examine
command, on an object to the current time, thus
updating it without doing anything to the object itself.
See also: examine
@upfront <object#>
This command, when used on an already destroyed object
with the Going flag set,
moves the specified object number up to the top of the
free list. This means that the next time a person goes to
@create,
@dig, or
@open an object, it will
have the database reference number characteristic of the
one on the top of the free list; most likely the one you've
selected with the @upfront command.
See also: @create, @destroy, @dig, @open, Going
@wait <seconds>=<commands>
This command places a series of commands into the
wait queue. The commands will not be executed until
the number of <seconds> in real time have
elapsed. Commands on the argument line may be
separated by using a semicolon. You may check the
queue by using the @ps
command to see how much longer it will be before
a particular command executes.
See also: @force, @ps, @switch, @trigger
@wipe <object>
@wipeattr <object>=<attribute list>
This command removes all modifyable attribute values on
a particular object. All user-defined attributes will
remain, including those that are unsettable by yourself.
If <attribute list> is present, this command will wipe
out all attributes on an object that match the ones listed.
This command should be used with caution, for no attributes
may be recovered from a wipe.
Examples:
@zemit <zone object>=<message>
This command parses and sends a message to all of
the objects located in each of the rooms that are
linked to a particular <zone object>. You must
own the zone to be able to send messages to its
contents. The same rules for spoofing another player
apply to this command as like using
@emit.
This command may not be used on the Universal Zone
Object, since it covers all rooms in the world and
would use up quite a lot of processing time. A wizard
may use the @wemit
command to send a message to everyone online the game at
the current time. See the topic
Zones
for more detailed information.
See also: @emit, @remit, @wemit, @zone, Zones
@zone <object name>
This command creates a zone object with the specified name.
Zone objects cannot be placed in any room, player, or
thing, and must be accessed by database reference number.
Creation of a zone object is much more expensive than a
thing, room, or exit. You do not get your money back when
a zone object is destroyed.
See also: @create, @dig, @open, Zones
Powers: Build, Teleport
home
See also: save, @link, @teleport
Powers: Join
join <playername>
Powers: Combat
slay <object>
slay <object>=<cause>
Powers: Summon
summon <playername>
Powers: Combat
@addeq <player>=<item number>
@addeq <player>=<item number>,<amount>
See also: @deleq
Powers: Combat
@addtech <player>=<technique>,<number>
@addtech <player>=<technique>,<number>,<level>,<value>
Both <level> and <value> are optional fields that, if left blank, are filled in with zeroes. <level> is an 8-bit number from 0 to 255 that determines the mastery level of a spell, quantity of an item on hold, and so on. Its meaning is different for each technique type. <value> is a 32-bit integer that can be set to any positive or negative value that the technique entry should have. Refer to the Wizard's Manual for a list of technique types and what arguments for <level> and <value> they expect. Examples:
Powers: Combat
@advance <player>=<spell name>
@advance <player>=<spell name>,<technique points>
@advance <player>=<spell name>,<technique points>,<technique type>
See also: @addtech
Powers: Combat
@bitmap <object>=<attribute>,<value>
@bitmap <object>=<bitpos>,<bitlength>,<value>
Wizards may also choose to set particular bitmap positions to desired values on a player. This is especially used for storyline values, where regular attribute names cannot be created to cover the myriad of variables. <bitpos> may be from 0 to 8191 (storyline variables usually start at 4096), and their corresponding <bitlength> may be from 1 to 32. A bitmap value can only contain negative values if its bitlength is 32. Examples:
See also: @addparent, @copybitmap, bitmap(), soul()
Powers: Boot
@boot <playername>
@boot <playername>=<message>
@boot all
Powers: Broadcast
@broadcast <message>
See also: announce
Powers: Capture
@capture <player>
@capture <player>=<reason>
See also: @uncapture, Slave, X-Zone
Powers: Boot
@cboot <connection id>
Powers: Spoof
@cemit <channel>=<message>
Powers: Chown
@chownall <player1>=<player2>
See also: @chown
Powers: Combat
@chapter <number>
@chapter <number>=<title>
@chapter <Prologue|Epilogue>=<title>
@chapter <player#>=<chapter>
Events occuring between character creation and actually being able to roleplay in the story is considered the Prologue to the game. It is a general rule that any characters still in the Prologue have not moved out of the starting room on the game. During the Epilogue when the game is beaten, a player may continue to use his character anywhere on the game and is not forced to restart back on Level 1. However, no further storyline exists for the player to explore, except for that which the player missed on his first time around.
Powers: Security
@class <player>=<rank>
See also: @empower, @powers, class()
Powers: Config
@config <environment>=<value>
Powers: Console
@console <player>=<options>
See also: +sbar, @input, @output
Powers: Combat
@copybitmap <object1>=<object2>
See also: @bitmap
Powers: Console
@cpage <connection id>=<message>
See also: page, @ctrace, @output
Powers: Shutdown
@crash
See also: @dump, @reboot, @shutdown
Powers: Console
@ctrace
Powers: Database
@dbtop
@dbtop <category>
@dbtop <category>=<depth>
Powers: Combat
@deleq <player>=<item number>
See also: @addeq
Powers: Combat
@deltech <player>=<technique>,<number>
See also: @addtech
Powers: Combat
@dflag <object>
@dflag <object>=<settings>
Without any <setting> specified, all flags set on the object will be deselected. To set a dataflag, type @dflag <object>=<flag name>. To clear the flag list before adding new settings, use a * as the first character of the flag list. To remove dataflags, place a ! in front of the flag name that you wish to unset. More than one dataflag can be selected at a time by separating them with spaces on the command line. This works much like the @set command when turning flags on or off.
See also: @set
Powers: Database
@dump
If an error occurs where the database cannot be saved, netmare will attempt to try again within 5 minutes, for 10 straight tries. If 10 attempts pass and it still cannot save the database properly, netmare will save the database in the foreground, halting all activity online until the save is finished. If an error occurs in this manner, it will be reported on the _log_err channel, and the game will continue to function normally as if the database had saved. If the database cannot be saved for obvious reasons, do not attempt to @reboot or @shutdown the game.
Powers: Combat
@enemy <name>=<parent>,<destination room>
@enemy <name>=<parent>,<destination room>,<combat target>
See also: sector, @aclone, @addparent, @create, @encounters, Monster, Zones
Powers: Combat
@enemycond <object>
@enemycond <object>=<conditions>
See also: status, @setcond, @set
Powers: Security
@empower <player>=<power>:<yes|yeseq|yeslt|no>
Powers: Combat
@event
@event <target>=<action>
Powers: Combat
@exp_raise <playername>=<amount>
Powers: Combat
@fight <player>=<enemy>,<technique name>
@fight <player>=<enemy>,<technique name>,<targets>
See also: fight, @afight, Fighting
Powers: Console
@flush <player>
@flush <player>=<options>
See also: @output, @input, @console, Status Bar
Powers: Animation
@fmap <filename>
@fmap <filename>=<player>
@fmap <filename>=<player>,<zoom%>
@fmap <filename>=<player>,<zoom%>,<columns>,<rows>
@fmap <filename>=<player>,0,<XB>,<XE>,<YB>,<YE>
@fmap <filename>=<player>,0,<XB>,<XE>,<YB>,<YE>,<columns>,<rows>
A Zoom% value may also be specified to zoom in or out around the map screen that the player normally sees. Numbers greater than 100% make distant surroundings available to the player, but some detail is lost. Numbers less than 100% zoom in onto the near surroundings of the player, perhaps doubling text onto the screen. Negative numbers flip the map image reversely onto the screen. If 0 is specified for the Zoom%, netmare tries to use the following 4 arguments to crop the picture fitting either the screen size or the specified <columns> and <rows>. In short, <XB>, <XE>, <YB>, and <YE> stand for the X-Coordinate-Begin, X-Coordinate-End, Y-Coordinate-Begin, and Y-Coordinate-End respectively. These are values that are # spaces away from the central origin point of the actual map screen. Negative values for these arguments are allowed. Zoom% may contain a decimal number. Examples:
See also: map, sector, +term, @compass
Powers: Combat
@forge <player>=<name>,<wear>,<strength>,<value>,<dmgtype>,<density>,<color>,<flags>,<stats>,<weight>,<condition>
The <wear>, or Wear Pointer, is a number from 0 to 15, indicative of what type of item it is from the following list in sequential order: Item, Weapon, Shield, Helmet, Neck, Amulet, Torso, Cloak, Arms, Hands, Legs, Feet, Waist, Relic, Finger, or Rod. Next, <density> is a number indicative of what form of weapon or armor the equipment is. If it is a weapon, then the following names apply from 0 to 19: Stick, Sling, Dart, Dagger, Knife, Bola, Glove, Sap, Boomerang, Whip, Bow, Hammer, Club, Axe, Staff, Spear, Javelin, Scimitar, Scythe, and Sword. Otherwise if it is a piece of armor, then the following names apply from 0 to 31: Silk, Cloth, Feather, Fur, Leather, Rubber, Scale, Bone, Ivory, Limestone, Wood, Bronze, Brass, Copper, Tin, Platinum, Silver, Granite, Opal, Iron, Steel, Mithril, Gold, Electrum, Quartz, Diamond, Crystal, Elemental, Titanium, Adamantium, Plasma, and Astral respectively.
The <color> argument is a number between 0 and 15, specifying the color of the item. <flags> is a bitmasked number representing the special abilities of the equipment, as shown in items. In order of powers of 2 from 1 to 32, they are respectively: Cursed, Legendary, Forged, 2-Hand, Universal, and Holy. <stats> is a 32-bit number representing the changes in Agility, Intelligence, Wisdom, and Luck, each using signed 8-bit parts of the number from high order to low, range -128 to 127. <weight> represents the weight of the item in grams, and <condition> grants the equipment a special bitmasked condition on which it either protects or attacks with.
For security precautions, one player may not have more than 10,000 pieces of forged equipment, either in their items inventory or currently equipped, at any given time. Example:
Powers: Nuke
@inactivity
@inactivity all
@inactivity <playername>
Once every Saturday night at sunset in game-time, netmare will automatically @nuke all characters who are considered inactive. A wizard may type @inactivity all to nuke all such characters at different times of the week. It is also possible to save any character from destruction completely by setting that player with the Inactive_Ok flag.
See also: @nuke, Inactive_Ok
Powers: Combat
@init <player>
@init <player>=<new race>
If <new race> is specified, this command will not reinitialize the player, but instead reroll his or her status attributes at the same Level and Experience values that the player had before, only that these values will be modified by the new race. In this fashion, no other changes are made to the player's bitmap values.
Powers: Console
@input <player>=<object>/<attr>
@input <player>=<object>/<attr>:<prompt>
An optional <prompt> for the player can be specified by using a colon after the attribute to be triggered. Server state commands, such as QUIT or RECONNECT, are still in effect during a prompt and can be used to regain control of the game driver. Status Bar updates continue to be in effect during a prompt, as well as other messages from the game unless they have been turned off with the @console command. During a prompt, queued commands on a player will be executed in the background as normally done, however the @input command has no effect for unconnected players or other object types. Lastly, for security reasons, the God character can never lose control of the game driver and can not be prompted by any object.
See also: @console, @cpage, @output, Status Bar
Powers: Combat
@levelquest <level>=<quest name>:<bit position>:<flags>:<description>
@levelquest <level>=<quest name>
@levelquest <player>=<quest name>
The second form of the command actively sets the storyline bits on a particular player and invokes the routines for the completion of a levelquest. At this time, if the player is currently on the same level as the quest is specified, he will instantly gain a certain amount of Experience Points not exceeding the number of points needed for the next level. If his Experience For Next was 0 at the time of the quest completion, he will automatically be promoted to the next level. See the helpfile on the 'quests' command for more information on levelquests. Example:
See also: quests, Experience
Powers: Security
@log <logfile>=<message>
Powers: Nuke
@nuke <playername>
See also: @boot, @crash, @inactivity
Powers: Console
@output <player>=<message>
See also: @console, @cpage, @input, Status Bar
Powers: Pcreate
@pcreate <playername>
See also: @init
Powers: Money
@pennies <player>=<amount>
See also: money, @bitmap, Gold Pieces
Powers: Examine
@powers
@powers <player>
Powers: Security
@priority <process id#>=<value>
Powers: Database
@purge
Powers: Shutdown
@reboot
@reboot <options>
During reboot, TinyMARE loads a temporary file containing the list of all people online prior to the shutdown (if present). Next, TinyMARE begins to open the database, loading the present system configuration variables and sector area tables. Then, TinyMARE loads each object in the database, from #0 to the top, making sure each is consistent with the latest version of source code. Once that is finished, TinyMARE preforms a list of tasks that act as database checkup facilities to make sure everything is running properly and smoothly. Lastly, TinyMARE is ready for new connections, and those that have been waiting through the @reboot will reconnect automatically. If an error in the database occurs while reloading, TinyMARE will shutdown completely until the owner of the game can find out what the problem is, and hopefully fix it without having to revert to a previous database.
The <options> field can be used to specify a space-separated list of flags to modify the boot process. Available options include the following: Restart, which bypasses the standard execution calls to the system and actually shuts down the current process, knocking all people offline as the game reboots. Quiet, which reboots the game without any visual output to those who don't have access to channel logfiles. This allows reboots to be performed without normal players even noticing the game going offline. Validate, which reboots the game without writing any temporary configuration such as who belongs to which +parties and any pending semaphores. This option should only be used with a corrupt or edited database and is not meant for standard daily rebooting. Note that bootflag options during database loading have no meaning if the Restart option is used, or if the game is starting up for the first time.
See also: @crash, @shutdown, @startup
Powers: Combat
@sbar
@sbar <player>=<field>
See also: +sbar, @bitmap, @sbar
Powers: Combat
@setcond <object>=<conditions>
@setcond <object>=<conditions>[,<value>][,<type>]
Wish is the set of all conditions that were applied to your character through the use of a Limited Wish. These have the highest priority and replace any other means of condition setting, even through equipped items. Race is the set of all racial abilities or condition modifiers on a player's character during time of character creation. This list is removed every time a player is reinitialized for combat. This can also be used for setting permanent characteristics on monsters that you do not want altered by adventurers casting various enchantment/dispel spells. Ailment, the default, is the list of all 'ailment' or 'aid' conditions that the player has picked up on his journeys. Those three types can be combined with zero or one of the types listed in Set B. The default is to use no type from Set B, which means to treat all conditions as active ailments, relic effects, and/or wishes on the player. Types in Set B should not be used for any of the above, and are only useful when setting valid values with conditions.
Protect is a classifier that determines a player's Saving Throw Level against an ailment. This is separately defined from other conditions with a value from 0 to 10 incidating the protection level. Attack is a classifier that adds a particular condition to a weaponless attack. Used mainly for monsters, this allows attacks to randomly inflict the condition on the opponent. The value used here is a range from 0 to 255, indicating how often the condition is to be triggered--255 being always. Note that this still must pass the opponent's Saving Throw. Remedy is a classifier similar to Attack, but instead unsets the condition from the opponent. Useful for unsetting conditions that aid the enemy, such as Ruse or Divine.
Using this command with an empty <conditions> field will clear all ailment conditions inflicting the player (the default). If a <type> is specified, it will instead clear all conditions set for that particular type (including wishes, etc). Conditions can be prefixed with a ! symbol, which means to remove the condition no matter what, even if a <value> is specified. Setting a condition with no <value> specified will set the value to 1, unless the condition is already set (in that case it will retain its original value). If the first character of the conditions list is a * symbol, then all conditions will be removed before adding the new. This works much like the @set command when turning flags on and off. Examples:
See also: status, @enemycond, @set, Condition
Powers: Shutdown
@shutdown
Powers: Combat
@task <player>=<task points>:<event name>
See also: Task Points
Powers: Build, Teleport
@tel
@teleport <destination#>
@teleport <object>=<destination#>
Restrictive teleportation to wizards and/or mortals may be set in netmare by using the @config command. If mortals are allowed to teleport, they may only do so within rooms or objects that they own. Mortals may be able to teleport themselves to a room owned by someone else if that room is set with the Jump_Ok flag. Players with the Build power are not hindered by the restrictive teleportation variable set in the system configuration (@list config), but they must still abide by the rules of owning the destination room or having set the Jump_Ok flag.
See also: move, @config, @push, Jump_Ok
Powers: Combat
@town <name>
@town <name>=<bit position>,<zone>
Note: Bit positions for towns are currently 2 bits in length. Thus, a town set to 2048 will take up both 2048 and 2049. This may change back to 1 bit in the near future.
See also: @chapter
Powers: Capture
@uncapture <player>
See also: @capture
Powers: Broadcast
@wemit <message>
See also: @emit, @nemit, @remit, @zemit
Powers: Nuke
@wipeout <player>
Type: Inherit
@acfail
See also: give, @cfail, @lcost, @ocfail
Type: Inherit
@aclone
See also: @clone, @enemy, @oclone
Type: Inherit
@aconnect
See also: @adisconnect
Type: Inherit
@adefeat
See also: fight, @afight, @akill, @kill, @okill
Type: Inherit
@adesc
See also: look, @desc, @ndesc, @odesc
Type: Inherit
@adisconnect
Type: Inherit
@adrop
Type: Inherit
@aefail
See also: enter, @efail, @elock, @oefail, Enter_Ok
Type: Inherit
@aenter
See also: enter, @elock, @enter, @oenter, Enter_Ok
Type: Inherit
@afail
See also: take, @fail, @lock, @ofail
Type: Inherit
@affail
See also: fight, @ffail, @offail
Type: Inherit
@afight
See also: fight, @adefeat, @akill
Type: Inherit
@agfail
See also: grab, @gfail, @lgrab, @ogfail, Grab_Ok
Type: Inherit
@agive
See also: give, @apay, @elock, @give, @ogive, Enter_Ok
Type: Inherit
@agrab
See also: grab, @llock, @grab, @ograb, Grab_Ok
Type: Inherit
@ahear
See also: @listen, @rhear, Events Wildcards
Type: Inherit
@aidesc
See also: look, @desc, @idesc, @oidesc
Type: Inherit
@akill
See also: fight, @adefeat, @afight, @kill, @okill
Type: Inherit
@aleave
See also: leave, @leave, @llock, @oleave
Type: Inherit
@alevel
See also: fight, @adefeat, @afight, @akill, Experience
Type: Inherit
@alfail
See also: leave, @elock, @lfail, @llock, @olfail
Type: Haven, Osee
@alias
On exits, the @alias is a list of semicolon-separated words that give shorthand names for the exit. Example:
Type: Inherit
@amoon
See also: weather, @asunrise, @asunset, moonphase()
Type: Inherit, Wizard
@amove
See also: move, enter, @move, @omove
Type: Haven, Inherit
@aopen
Type: Inherit
@apage
See also: page
Type: Inherit
@apay
See also: give, @agive, @cost, @lcost, @opay, @pay
Type: Inherit
@asearch
Type: Inherit
@asfail
Type: Inherit
@asucc
See also: take, @lock, @osucc, @succ
Type: Inherit
@asunrise
See also: weather, @amoon, @asunset
Type: Inherit
@asunset
See also: weather, @amoon, @asunrise
Type: Inherit
@atalk
Type: Inherit
@atime
The actual number of seconds between successive @atime executions is specified by the ATIME_INTERVAL configuration variable. See help on this term for more information regarding when @atime attributes are triggered.
See also: @wait ATIME_INTERVAL
Type: Inherit
@aufail
See also: use, @ause, @oufail, @ufail, @ulock, @use, Events
Type: Inherit
@aunidle
See also: @idle
Type: Inherit
@ause
See also: use, @ouse, @ulock, @use
Type: Haven, Inherit
@away
See also: page, @haven, @idle, @reply
Type: Haven, Inherit
@caption
Type: Haven, Inherit
@cfail
See also: give, @acfail, @lcost, @ocfail
Type: Haven, Wizard
@channel
Type: Haven, Inherit
@color
The different fields the @color attribute determines when the color goes into effect. There can be up to a maximum of ten different fields separated by commas. The first field contains the daytime color of the object, or what color a room is underground when lit by a torch. The second, optional field, contains the nighttime, or darker color. If provided, the next set of four fields contain the daytime colors for the seasons Winter, Spring, Summer, and Autumn, depending upon the date and year in game time (seen with the weather command). The next four are those same seasons for nighttime use, respectively. If some fields are not specified, the first ones mentioned take priority. The values 0 through 15 are described in the table below.
0 | - | Normal | 8 | - | Dark Gray |
1 | - | Red | 9 | - | Light Red |
2 | - | Green | 10 | - | Light Green |
3 | - | Brown | 11 | - | Yellow |
4 | - | Blue | 12 | - | Light Blue |
5 | - | Purple | 13 | - | Light Purple |
6 | - | Cyan | 14 | - | Light Cyan |
7 | - | Grey | 15 | - | White |
Examples:
Type: Haven, Inherit, Wizard
@compass
Type: Haven, Inherit
@comtitle
Type: Haven, Inherit
@cost
See also: give, @apay, @cfail, @lcost, @opay, @pay
Type: Haven, Inherit, Wizard
@damage
See also: move, Hit Points
Type: Haven, Inherit
@desc
See also: look, @adesc, @idesc, @ndesc, @odesc
Type: Haven, Inherit
@doing
Type: Haven, Inherit
@drop
See also: drop, @adrop, @odrop
Type: Haven, Inherit
@ealias
See also: enter, @lalias, Events
Type: Haven, Inherit
@efail
See also: enter, @aefail, @elock, @oefail, Enter_Ok
Type: Lock
@elock
See also: enter, @aefail, @efail, @oefail, Locks
Type: Haven, Inherit
@email
See also: @rlname
Type: Dbref, Haven, Inherit, Wizard
@encounters
Enemy encounters should be arranged such that the weakest monsters found in the sector are first, and so on up to the most difficult or rarest in the 6th slot. The word order for each slot goes as the following: Easy, Common, Difficult, Night, Rare, Major. By default, the 2nd slot Common will be the most common of all 6 enemy encounters, except during night, when the 4th slot will be the most common (only outside in the wilderness). Only the three most common encounters, if present, will be mentioned when a player uses the sector command. The 6th and last encounter on the list is considered a Fatal Attack, which should be an enemy twice as difficult to defeat as the normal ones in the current sector. If the 6th encounter is equal to the 2nd slot, then during a Fatal Attack, 8-12 enemies will appear on the screen.
You may also set this attribute on a specific room in the sector to specify which slot to use as the most common encounter for that room. Whichever slot is defined as the most common is always checked first, then the game begins checking slots from 1 on up to 6, skipping the previously mentioned most-common. The value from 1 to 6 may be placed in the attribute for checking on a room. If a '6' is specified as the most common, the Fatal Attack message will not appear. If the number is a '0', enemy encounters will be turned off for that room. Example:
Type: Haven, Inherit
@enter
See also: enter, @aenter, @elock, @oefail, Enter_Ok
Type: Haven, Inherit, Wizard
@eventkey
Another use for @eventkey is for treasure chests that can hold a limited number of items in them. Set the value of the attribute to 'Chest #', where # is the maximum number of items allowable in the chest at one time. If the @eventkey attribute is removed while items are in the chest, those items cannot be taken from the chest using grab and more items cannot be given to the chest.
See also: give, grab, use, @agive, @agrab, @give, @grab, @ogive, @ograb
Type: Haven, Inherit
@fail
See also: take, @afail, @lock, @ofail
Type: Haven, Inherit
@ffail
See also: fight, @affail, @offail
Type: Haven, Inherit
@floor
A room without a @floor attribute set makes it switch to the default floor. Wizards may set the @floor of room #0 to determine the default floor for all rooms in the realm. This is usually set as 1F. The floor variable is currently not case-sensitive, but it may be so in a later version of netmare. The Status Bar reads data for each digit in the attribute from the msgs/block.db file, located in the netmare runtime directory. Example:
See also: map, sector, @floor, +sbar
Type: Haven, Inherit
@gfail
See also: grab, @agfail, @lgrab, @ogfail, Grab_Ok
Type: Haven, Inherit
@grab
See also: grab, @llock, @agrab, @ograb, Grab_Ok
Type: Haven, Inherit
@haven
See also: page, @away, @idle, @plock, @reply
Type: Lock, Wizard
@hlock
See also: page, who, @away, Locks
Type: Haven, Inherit
@idesc
See also: look, @aidesc, @desc, @oidesc
Type: Haven, Inherit
@idle
See also: page, who, @away, @haven, @reply
Type: Haven, Inherit
@kill
See also: fight, slay, @akill, @okill
Type: Haven, Inherit
@lalias
See also: leave, @ealias, Events
Type: Dark, Haven
@lastfrom
Type: Lock
@lcost
See also: give, @acfail, @cfail, @elock, @lgive, @ocfail, Locks
Type: Haven, Inherit
@leave
See also: leave, @aleave, @llock, @oleave
Type: Haven, Inherit
@lfail
See also: leave, @alfail, @elock, @llock, @olfail, Locks
Type: Lock
@lgive
See also: give, @aefail, @efail, @elock, @oefail, Locks
Type: Lock
@lgrab
See also: grab, @agfail, @gfail, @ogfail, Locks
Type: Haven, Inherit
@listen
See also: @addrelay, @ahear, @rhear
Type: Lock
@llink
See also: @link, Link_Ok, Locks
Type: Lock
@llock
See also: leave, @alfail, @lfail, @olfail, Locks
Type: Lock
@lock
See also: move, take, @afail, @fail, @ofail, Locks
Type: Haven, Inherit, Wizard
@locklev
See also: Door
Type: Lock
@lsearch
See also: search, @asearch, Locks
Type: Haven, Inherit, Wizard
@map
In the first part, the first word contains the bitmap position of the Dungeon Map (or World Map if this is a wilderness sector). You could only view the full map if the value for this position on the player is 1. The next word is the bitmap position of the Dungeon Compass, which marks a big X on the map indicative of the dungeon lair. If the sector is not a dungeon, the second word may be used for Swampland sectors, in which case the bitmap position determines if you can freely walk through the swamp without its harmful gases affecting you. The third word is the matching floor of the boss' lair, such as B3 or 7F. The next two words contain the X and Y coordinates on the map of where the actual lair is located on the specified floor. The next word in this field contains the bitmap position for the variable which tells if the player has defeated the dungeon boss yet. If a particular dungeon has no compass or boss, it is safe to leave those words out entirely from the @map string.
The second set of values after the comma are separated into 4 groups of space-separated words for each floor of the dungeon or stronghold. The first word contains the floor icon, usually arranged from highest to lowest level in a particular dungeon. The second and third contain the X and Y coordinates of where the map should be centered on the map screen. The fourth number is a color code from 0 to 15 which determines the color of the Floor icon on the map screen. The colors used can be found by typing 'help @color.'
Since the bit position '0' on any player is always 1, you may set any number to 0 in @map to enable or 1 to disable each feature for all players. Examples:
See also: map, sector, @color, Zones
Type: Haven, Inherit
@move
See also: move, enter, @amove, @omove
Type: Haven, Inherit
@ndesc
Type: Haven, Inherit
@notify
Type: Haven, Inherit
@ocfail
See also: give, @acfail, @cfail, @lcost
Type: Haven, Inherit
@oclone
See also: @aclone, @clone, @enemy
Type: Haven, Inherit
@odesc
See also: look, @adesc, @desc, @ndesc
Type: Haven, Inherit
@odrop
Type: Haven, Inherit
@oefail
See also: enter, @aefail, @efail, @elock, Enter_Ok
Type: Haven, Inherit
@oenter
See also: enter, @aenter, @elock, @enter, Enter_Ok
Type: Haven, Inherit
@ofail
See also: take, @afail, @fail, @lock
Type: Haven, Inherit
@offail
See also: fight, @affail, @ffail
Type: Haven, Inherit
@ogfail
See also: grab, @agfail, @gfail, @lgrab, Grab_Ok
Type: Haven, Inherit
@ogive
See also: give, @agive, @opay, @elock, @give, Enter_Ok
Type: Haven, Inherit
@ograb
See also: grab, @llock, @agrab, @grab, Grab_Ok
Type: Haven, Inherit
@oidesc
See also: look, @aidesc, @desc, @idesc
Type: Haven, Inherit
@okill
See also: fight, @akill, @kill
Type: Haven, Inherit
@oleave
See also: leave, @aleave, @leave, @llock
Type: Haven, Inherit
@olfail
See also: leave, @alfail, @elock, @lfail, @llock
Type: Haven, Inherit
@omove
See also: move, enter, @amove, @move
Type: Haven, Inherit
@opay
See also: give, @apay, @cost, @lcost, @ogive, @pay
Type: Haven, Inherit
@osucc
See also: take, @asucc, @lock, @succ
Type: Haven, Inherit
@otalk
Type: Haven, Inherit
@oufail
See also: use, @aufail, @ause, @ouse, @ufail, @ulock, @use, Events
Type: Haven, Inherit
@ouse
See also: use, @ause, @ulock, @use
Type: Haven, Inherit
@pay
See also: give, @apay, @give, @cost, @lcost, @opay
Type: Haven, Inherit
@plan
See also: +finger
Type: Lock
@plock
Type: Haven, Inherit
@prefix
See also: @suffix
Type: Haven, Inherit
@prompt
See also: +sbar
Type: Haven, Inherit
@reply
See also: @away, @haven, @idle, +mail
Type: Haven, Inherit
@rhear
See also: @addrelay, @ahear, @listen
Type: Haven, Inherit
@rlname
See also: @email
Type: Haven, Inherit, Wizard
@sector
Type: Haven, Inherit
@sfail
See also: say, @asfail, @slock
Type: Haven, Inherit, Wizard
@shop
Type: Lock
@slock
See also: pose, say, @asfail, @sfail, Locks
Type: Haven, Inherit
@sound
Type: Inherit
@startup
See also: @reboot
Type: Haven, Inherit
@succ
See also: take, @asucc, @lock, @osucc
Type: Haven, Inherit
@suffix
Type: Haven, Inherit
@talk
See also: talk, @atalk, @otalk
Type: Haven, Inherit, Wizard
@treasure
This attribute can also be set on a Zone object, which determines the availability of random items when a player uses the search command in the wilderness. Examples of common random items are weak arrows or pebbles for a sling.
Type: Haven, Inherit
@ufail
Note that ! events on locked objects are not matched by any text, and therefore do not print the @ufail. Also note that if a @ulock is set and neither a @ufail or a @aufail are set, the command will not match the object's $ event at all.
See also: use, @aufail, @oufail, @ulock, @use, Events
Type: Lock
@ulock
See also: use, @aufail, @oufail, @ufail, @ulock, Events, Locks
Type: Haven, Inherit
@use
See also: use, @ause, @ouse, @ulock
Type: Lock, Wizard
@vlock
See also: look, @caption, Locks
Type: Haven, Inherit, Wizard
@weather
Type: Haven, Inherit
@whoflags
Notes on special whoflags. The Flags column contains any of four letters which display H if the player is hidden, I if the player is over 5 minutes idle and he or she has an @idle message set, P if the player is not accepting pages from you, and B if the player is an authorized builder on the game. The Occupation column may have a symbol to the left of the player's occupation showing session status. The symbol can be a * indicating Administration, or & to indicate the player is currently busy, not accepting any text output from the game. This can occur during the death animation screen or during race selection, where the output of the game can not be seen. All text sent to the player is saved and restored the moment he or she becomes unbusy, missing nothing.
See also: who
A | - | Abode | B | - | Builder | C | - | Chown_Ok |
D | - | Dark | E | - | Exit | F | - | Floating |
G | - | Going | H | - | Healing | I | - | Illness |
J | - | Jump_Ok | K | - | Key | L | - | Link_Ok |
M | - | Monster | N | - | Nest | O | - | Oceanic |
P | - | Player | R | - | Room | S | - | Shaft |
T | - | Transparent | U | - | Universal | V | - | Visible |
W | - | Wall | X | - | X-Zone | Z | - | Zone |
a | - | Arena | b | - | Bearing | c | - | Connected |
d | - | Door | e | - | Enter_Ok | f | - | Fishable |
g | - | Grab_Ok | h | - | Haven | i | - | Inactive_Ok |
l | - | Light | m | - | Marked | o | - | Opaque |
p | - | Puppet | q | - | Quiet | s | - | Slaved |
t | - | Terse | u | - | Unsaved | v | - | Verbose |
w | - | Wander |
Abode
This flag on a room indicates that all players
have the ability to use the save
command in the room, as long as there are no ailing
conditions still present on the player.
Arena
This wizard flag may be set on a room to create a fighting
arena for players. All players in such a room may fight
without penalties to their Virtue or
Gold Pieces, and no
extra deaths will accumulate. When a player is defeated, the
@adefeat attribute on the
room will be triggered. This attribute is responsible for
restoring the life of the defeated player and teleporting
him or her out of the arena to a safe haven.
Non-player enemies in an arena are treated normally with no
special effects from the game. Players or enemies may not
be knocked unconscious during a challenge.
See also: @adefeat
Bearing
This flag may be set on a thing to allow other people,
other than the object's owner, to
@addparent or
@delparent
their particular objects to the said thing. You cannot
unset the flag unless there are no children attached
to it, or unless you are a wizard.
See also: @addparent, @delparent, Inheritance
Builder
This wizard flag gives an ordinary player character
unrestricted building access with the
@clone,
@create,
@dig, and
@open commands.
On most games, building access is not restricted to
wizards only, and this flag is hardly used. TinyMARE
can be configured to restrict access to one or more
of the above fields using @config
command.
See also: @clone, @config, @create, @dig, @open
Chown_Ok
This flag may be set on any room, thing, or exit.
It allows another player, other than the object's owner,
to use the @chown
command, taking over ownership of the object. Players
must carry the objects to be able to @chown them.
See also: @chown
Connected
This flag is automatically marked on players when
they are currently connected online to the game.
It cannot be unset except by use of the
@boot command, or
any other action that forces the particular player
to log off of the game.
See also: @boot
Dark
This flag may be set on any room, thing, exit, or
player. When set on rooms, all things and exits normally
visible and not glowing (with the
Light flag) will
disappear entirely from the normal Contents and
Obvious Exits list. When set on things or exits, only
that particular object will be unseen with the normal
look command. This
flag, when used on players, still keeps the player in
the contents list, but disallows others to use the
whereis command to
locate a player's location from afar.
See also: look, whereis, Light
Door
This wizard flag can be set on an exit to enable it to
become a Commonly Locked Door. These doors make use
of the @locklev
attribute, which determines the strength of the door.
Doors are useful for mortal houses in a residental
area whose exits cannot normally be locked by the
@lock attribute.
Enter_Ok
This flag, set on a thing, allows the object to be
entered by any
player online instead of by just the owner of the
object. This also allows players to use the
give command to give
other objects to one that is owned by someone else.
The @elock
enter-lock must still be set appropriately for the
move to succeed.
See also: enter, @elock, Locks
Exit
An exit is one of five different types of objects
in the realm. Its location is the source room, and its
@link is its destination.
See also: Player, Room, Thing, Zone
Fishable
This wizard flag should be set on all wilderness rooms which
are suitable for use with the Fishing Skill. This also includes
lake rooms and any large sources of water found underground that
might contain an abundant number of fresh-water fish.
Floating
This flag may be set on a room to suppress messages which
say that the room is disconnected from the 'outside world'.
This message is sent about every 10 minutes only if
there are no exits leading up to it from the origin room, #0.
See also: Marked
Going
This flag is automatically set by TinyMARE to indicate
that an object is scheduled for destruction, or if it has
already been destroyed and is in the free list, owned by God.
Objects may be set Going by using the
@destroy command on a room
or on an object who still has children attached to it. It may
be removed by using @undestroy.
See also: @addparent, @destroy, @undestroy, Inheritance
Grab_Ok
This flag can be set on an object to allow players
other than the object's owner to use the
grab command to take
items from the object. The @lgrab
grab-lock must still be set appropriately for the
move to succeed.
Haven
If an object is set haven, it cannot execute
any commands in the background Command Queue or
Wait Queue. If a player is set haven, he or she
may not @trigger or
@force himself or
herself to execute any commands, however he or she
may still type commands into the game successfully
in direct mode.
See also: @force, @trigger, @wait
Healing
This flag may be set on a room to designate it
as a healing area. All players who are in that room,
unengaged in combat and without ailments in their
Condition, will experience a faster
regeneration rate of Hit Points,
Magic Power, and
Endurance. Most inns
and cottages located in the wilderness (with a fireplace)
have this flag set on the room location.
Illness
This flag may be set on a room to designate it
as a place where players may easily get a Sickness,
such as near a real cold spray of water or in a
plague-infested area. All players in these areas
will increase their sickness level by 1 point at about
every 3 minutes or so. The maximum level of sickness
is the 15th degree. Inns cure sickness by 1 point for
every night stayed.
Inactive_Ok
This wizard flag may be set on a player to
indicate that this player should not abide by
the normal rules of Inactivity. With this flag
set, a specific player will never be deleted due to automatic
inactivity purposes. The player may still be deleted by using
the @nuke command.
See also: @inactivity, @nuke
Jump_Ok
This flag can be set on a room to enable regular players
to @teleport to
it from afar, depending upon whether or not Teleportation
is restricted on the game. If the flag is not set, only
the owner of the room may teleport to it. This flag
also enables the database reference number to be seen
when a person uses the look
command.
Key
This flag is used on objects to control the rate of
using user-defined commands. If an object is set Key
when a person activates a ! or $ Event,
the object automatically becomes set with the hidden
Marked flag. When the
event finishes, a @unlock
command is required to unset the flag so that it may accept
the next command. During this time, a player may not use any
further ! or $ Events on the object until the queue completes
its round. This is very useful to keep players from using
@force to execute an
event twice when it was only meant to be executed once.
See also: @force, @unlock, Events, Marked
Link_Ok
This flag, when set on a room, enables other players who
do not own the room to be able to @link
their exits to that room. This does, however, not allow
other players to @open exits
back from that room to their own. If unset on a room, all
exits already linked to that room will remain linked until
either @destroyed or
relinked to a different destination. Remember that an object
must be able to pass the @llink
lock to successfully link to the room.
See also: @destroy, @link, @llink, @open, Locks
Light
This flag may be set on an object or exit in a
Dark room so that
players venturing inside will still be able to see that
object even without having a Torch equipped in hand.
If set on a room, the room emits such intense brightness
that any players inside cannot see unless they cast a
Dark spell or use a special item to block the light.
This flag has no meaning for zones or players.
Marked
This wizard flag is automatically set by TinyMARE whenever
the @asearch attribute of a
room is triggered by the search
command or when an object set with the
Key flag is triggered by
means of the use command or
! or $ Events. These
attributes should include use of the
@unlock command, which
removes the Marked flag so that players may once again
use the object.
The Marked flag is also used internally in the check for disconnected rooms every 10 minutes or so. During each check, all rooms will have their Marked flag unset, and all players will be notified if there are any rooms that are not connected with exits to the origin room, #0.
See also: search, use, @asearch, @unlock, Events, Floating, Key
Monster
This wizard flag is automatically set by TinyMARE on an
object that is considered an enemy familiar. Enemy familiars
are created with the @enemy
command, and cannot have any stats except their current HP/MP/EN
and Condition altered from
the value that their parents behold.
Like the Wander flag, these
enemies move about automatically every minute or so.
See also: @enemy, Condition, Wander
Nest
This wizard flag may be set on a room to indicate
a boss area. In these rare rooms marked Nest,
no random enemy familiars will be encountered, no enemies
or players can have a Wounded
Condition, players
may not use techniques (such as run)
to escape from battle, and players may not use the
save command.
When the enemy in this particular room set with the Boss bitmap attribute is defeated, all other enemies set with the Monster flag will be destroyed automatically, and a loud explosion will result from the boss. Only the player defeating the boss will retain the full amount of experience points gained.
See also: run, save, Condition, Monster, Nest
Oceanic
This flag may be set on a room to indicate that the room
is an oceanic, or waterlogged, area. Rooms that have a
sizable amount of water filled in them, where players must
use the Swim technique, should have this flag set. Players
that do not know how to swim will lose
Hit Points gradually
for every move they make in the water and for how long they
stay afloat. The amount of life lost is near the same as if
a player had a 10th degree Illness.
See also: Illness
Opaque
This flag may be set on a thing or player to hide the contents
of that thing from normal view, only when a player uses the
look command while not
actually inside the object. It has no significance for
rooms or exits.
See also: look
Player
A player character is one of five different types of
objects, which can specifically be connected
to on the game via an outside link to the real world.
In brief, players act much like objects of type
Thing, except that
players may not enter other players, and that they
own themselves.
See also: Exit, Room, Thing, Zone
Puppet
This flag may be set on a room, thing, or exit. When set,
the object relays all that it hears to its owner, with
the name of the puppet object prefixed. The only
current drawback to this is that the
@ahear attribute and any !
Events, which normally listen
for certain message patterns, will not be triggered.
See also: @ahear, @listen, Events, Verbose
Quiet
When this flag is set on any type of object, all
coding confirmation messages, such as 'Flag set', will be
suppressed from the screen. This is mostly for objects
who do a lot of triggering and are listening for key
Events, or for players
who have a slow connection and cannot take the amount of
text that shows up on the screen while programming.
Restricted
This flag, when set on a zone, places a portion of the game under special
restrictions that gives players limited building abilities while operating
within the parameters of the game. First, it only allows players to go
through exits that have a return exit pointing back from the destination
room. This ensures that players do not create bogus exits that trap others
inside. Second, players cannot @lock or
@unlock exits in a Restricted zone.
Lastly, players cannot set exits Dark in
a Restricted zone.
When the system configuration variable RESTRICT_TELEPORT is in effect, then this flag has special meanings. It allows restricted use of the @teleport command to jump between rooms only within the zone and when not crossing the zone's boundaries. Similarly, @link can be used to link exits and droptos only within a Restricted zone, even when the rest of the game is unreachable.
See also: @link, @teleport, RESTRICT_TELEPORT
Room
A room is one of five different types of objects
which can be found in the realm. Rooms hold the
backbone to the database, consisting of exits,
things, and players.
See also: Exit, Player, Thing, Zone
Shaft
This flag can be set on a room to indicate a type
of crawlspace, where the area is not big enough for
a player to engage in combat with normal weapons or
skilled techniques. Magic is a must in this area.
Slaved
This wizard flag may be set on a troublesome player
in order to quiet him up, temporarily disabling all
of the building and normal game commands available
to the player except look,
say, and
move.
Terse
This flag can be set on a player to suppress the
descriptions on a room from view. Exits will be shown
in aliased format to the right of the room name, and
contents will be shown right below the room name. This
is most useful if a player is trying to reach an area
quickly, but has a slow connection and cannot take the amount of
text that shows up on the screen.
See also: Quiet
Thing
A thing is one of five different types of objects
which make up the database. Any thing may be created
using the @create
command and can be placed inside any player, room,
or another thing. Players may take
or drop things, as well as
enter them if the appropriate
flags are set.
See also: drop, enter, take, @create, Exit, Player, Room, Zone
Transparent
This wizard flag can be set on a thing to allow its contents to be
visible during a normal look in
the object's room. When inside the object, players may use normal
exit directions to control the movement of the object. Typing
look from within the object will
show the object's brief @idesc
followed by the description, contents, and exits of the room
containing the object. The leave
command behaves like normally, leaving the object and the effects
of the transparency.
Universal
This flag may be set on a zone object to signify a
universal background zone across all of the rooms in
the database. Any ! or $ Events
coded on this object will be available to any object online,
as well as triggering the @aconnect
or @adisconnect attributes
each time a player logs on or off of the game. While Universal,
the zone may continue to function like any other normal zone.
See also: @aconnect, @adisconnect, Events, Zone
Unsaved
This flag can be set on normal things to specify that
it is an object that cannot be saved in the database
during reboots. Upon startup of the game, the object
will automatically be destroyed.
Verbose
This flag may be set on a room, thing, or exit. When set,
the object relays all of the commands that it executes
to its owner, with the name of the object prefixed. It
is similar to the Puppet
flag, but no disadvantages arise from using this command.
See also: Puppet
Visible
If this flag is set on a room, thing, exit, or player,
different players, other than the owner of the object,
will be able to examine
the object, seeing all the code within and how everything
works. Players set Visible can also have the
status command used on
them by different players successfully.
Wall
If a room is set Wall, all magic spells within
the room will be dissipated and non-functional. Magical
equipment and magical items, such as Warp Boots or
Wind Essence, will not work as well. The magic will work
again when the player moves to a new room that does not
have the Wall flag set.
Wander
This flag enables a thing to pick a random exit to move through
every interval before an @atime
attribute is triggered. This is more efficient to use than setting
commands on @atime to move the object in a random direction.
See also: @atime
X-Zone
This wizard flag may be set on a room to designate a
fourth-dimensional space in the world. All players and
things within this room will not be able to see or talk
to each other, yet all exits present will still be accessible.
No battle movements may take place in this room, and a
player's age is also slowed down to a halt. X-Zone
is normally used for a room that one would go to after he or
she dies, where the game is waiting for that person to go
through the 'Continue' exit.
Zone
A zone is one of five different types of objects comprising
the TinyMare database. A zone is linked to any number of rooms
through the use of @addzone
and @delzone, allowing
its commands to be used by any player in those rooms. Once a room
is linked to a zone, exits may not be made to and from rooms
outside of the zone unless you are the zone's owner.
See also: @addzone, @delzone, @zone, Zones
Functions
Functions provide the backbone to coding commands and objects on TinyMARE.
They are used to call on-the-fly routines which take text arguments
(input strings) and manipulate them to print its results within the
the context of a command.
Functions can be present in the text areas of many different commands (such as say or @emit) and take the form: [function(arguments)], where <function> is the name of the function used, and <arguments> is a comma-separated list of input parameters given to the function. In most commands, the brackets [] are required to tell TinyMARE that the text inside is indeed a function call and not to be represented literally. For example, the most common way to test the results of a function is to say it in the room, like this: say [add(2,2)]
Functions may be nested within each other, as in the phrase [first(rest(This is a nice day))], which returns the string 'is'. Note that additional brackets are not required around the rest() function because the game already knows it is a function call. In this manner, the game can differentiate between a text string and a function call if there is only one word followed by a matching set of parentheses. Likewise, most coding commands do not require brackets around a function if they are the only thing present in an argument field. For instance, the function use in '@wait mul(60,5)=@emit Tick!' is legal because the [mul()] function is the only text present in the <seconds> field.
Not all commands parse (or expand) functions. Some commands such as page or +mail will not parse functions so that players may send messages with literal function strings in them. Players wishing to parse functions can prefix the command line with the string '@force me=' to send the text into the parser. When coding, it is imperative that you understand which commands perform automatic parsing and which do not. See 'help parser' for more information on the command-line parser.
Any function fed with illegal input strings beyond what it can handle will return an error. Errors begin with the word #-1 and may or may not contain text after it describing the error. For example, using the function [get(#1,desc)] to get the description of object #1 in the database will print '#-1 Permission denied.' because you do not own that object. Mathematical functions will generally return 0 or inf on error (for infinity).
For help with a particular function, type 'help functionname()'. See 'help Function List' for a list of the available functions broken down into groups. Type '@list functions' for a semi-alphabetical list of all the functions built into the game. A tutorial on functions is available, describing their most common and challenging uses: 'help Function Tutorial'.
See also: Function List, Function Tutorial, Parser
Function Tutorial
This section is meant as a reference guide to describe how functions can
be integrated with commands on TinyMARE. You may type 'help functionname()'
for help on a particular function at any time during this tutorial.
Using the Tutorial: If you are reading this file from within TinyMARE, then you may have trouble entering in commands at the pager prompt. You can enter normal game commands by prefixing them with a ! symbol. When the command finishes, you will return to the pager prompt. If the screen gets cluttered, you can type 'r' and press return to redraw the current page.
abs(<number>)
Returns the absolute value of <number>.
Examples:
abs(-4) | : | 4 |
abs(2) | : | 2 |
acos(<number>)
Returns the arc-cosine of <number>, expressed in radians.
add(<number>,<number>)
Returns the sum of two integers.
alttemp()
Returns the current temperature difference from the
average daily temperature from the
weather almanac.
See also: weather, avgtemp(), gettemp(), wtime()
ascii(<character>)
Returns the ASCII value of <character>.
See also: chr()
asin(<number>)
Returns the arc-sine of <number>, expressed in radians.
atan(<number>)
Returns the arc-tangent of <number>, expressed in radians.
avgtemp()
Returns the current average daily temperature from the
weather almanac.
See also: weather, alttemp(), gettemp(), wtime()
band(<number>,<number>)
Returns the value of a Binary AND operation between two numbers.
base(<number>,<oldbase>,<newbase>)
Converts <number> from <oldbase> to <newbase>.
Bases must be numbers between 2 and 36, and the digits in
<number> must be in the range of <oldbase>. Common
bases are 2-Binary, 8-Octal, 10-Decimal,
and 16-Hexadecimal. Digits above 9 are marked as A (=10)
through Z (=35).
Examples:
base(127,10,16) | : | 7f |
base(101011,2,10) | : | 43 |
between(<number>,<low>,<high>)
Returns 1 if <number> is between <low> and <high>
or equal to either <low> or <high>. Returns 0 otherwise.
bitmap(<object>,<bitpos>,<size>)
This returns a number from the combat system bitmaps defined on
<object>. A valid <bit position> can be from 0 through 4095.
A valid <size> can be from 1 through 32. For example, the Hit Points
marker on an object is defined as a 32-bit number, using bit positions
256 through 287. To retrieve it, use bitmap(object,256,32). There is
also the opportunity of doing soul(object,level) to get the same
result. The bitmap() function is mainly used for storyline variables
in the bit position range of 2048 and higher, which are undefined by the
combat system and reserved solely for storyline purpose. In terms of
inheritance, children retain all bitmaps above 512 from their parented
objects, and only bit positions 0 through 511 may be modified on objects
set with the Monster flag.
See also: @addparent, Inheritance, Monster, soul()
bor(<number>,<number>)
Returns the value of a Binary OR operation between two numbers.
bxor(<number>,<number>)
Returns the value of a Binary XOR operation between two numbers.
canequip(<player>,<item number>)
Returns 1 if <player> is able to equip a specified
<item number> of a piece of equipment from the item database.
Returns 0 otherwise.
ceil(<number>)
Returns the least integral value greater than or equal to <number>.
center(<string>,<width>)
center(<string>,<width>,<fill>)
This function will center a string in a field <width> characters
wide, using <fill> characters for padding on either end.
If no fill character is specified, then a space is used. If the
length of <string> is longer than <width> characters, then
the rightmost end of the string will be truncated.
Examples:
See also: fill(), ljust(), rjust()
chapter(<number>)
Returns the complete name of the storyline chapter.
Number can be 0 for Prologue and 255 for Epilogue.
See also: @chapter
children(<object>)
Returns a list of database reference numbers of
all of the children of <object>.
See also: parents()
chr(<number>)
Returns a character equivalent to the ASCII code for <number>.
Only wizards are allowed to use control characters in this function.
Example:
chr(65) | : | A |
class(<player>)
Returns the name of the class hierarchy that <player> belongs to.
See also: rank()
cmds(<player>)
Returns the number of commands a player has executed since logging on.
comp(<string1>,<string2>)
Compares two strings. It returns 0 if they are the same, -1 if string1 is
less than/preceeds alphabetically string2, 1 otherwise. Strings are
case-sensitive: all capital letters precede lowercase letters.
concid(<player>)
Returns the connection-id number of a player that is currently logged on.
cond(<player>)
Returns a space-separated list of all conditions set on <player>.
If the player has no conditions, this function will return a null string.
For those with the Combat wizard power,
this function also returns all innate relics and wish settings on the player.
config(<variable name>)
Returns the value stored in the specified system configuration variable.
See @list config for details.
controls(<object1>,<object2>,<power>)
Returns 1 if <object1> has a certain wizard <power>
over <object2>, otherwise 0. <power> can only be
any of the powers listed using @list powers.
cos(<number>)
Returns the cosine of <number>, which should be expressed in radians.
cpu()
Returns the current CPU Usage as a percentage in floating-point format.
CPU Usage is updated every 60 seconds. This value reads 0 for two
minutes after the game turns on.
See also: lag()
create(<object>)
Returns the creation time of the object in seconds format (since Jan 1 1970),
used with time().
credits(<player>)
Returns the amount of money <player> is currently carrying on hand.
csi(<code>)
Returns a string of the format `ESC <code>'. Only wizards may use this
function.
See also: esc()
date()
date(<seconds>)
Returns a string in the form of `Dayofweek, Month Day, Year'.
If <seconds> is specified, it will calculate using the number
of seconds since January 1, 1970. The date displayed depends on your
current timezone settings. See 'help +tzone' for more
information.
See also: +tzone, time(), xtime()
dbtop()
Returns the #dbref of the highest object number in the database.
dec(<number>)
Returns <number> minus 1. <number> may also contain a string,
however it must end in either a positive or negative integer.
Examples:
dec(4) | : | 3 |
dec(Table-30) | : | Table-31 |
degrees(<x,y>)
Returns a compass pointing from 0 to 359.99 in the direction of <x,y>
from coordinate <0,0> on a linear graph. For example, 0 is
directly positive on the Y-Axis, and 270 is directly negative on the X-Axis.
delete(<string>,<first>,<len>)
Returns a modified <string>, with <len> characters
starting after the character at position <first> deleted. In
other words, it copies <first> characters, skips <len>
characters, and then copies the remainder of the string.
Example:
delete(abcdefg,3,2) | : | abcfg |
dice(<number1>,<number2>)
Imitates a standard random roll of dice. <number1> determines
how many times one die should be rolled, and <number2> is the
highest number found on the die.
Example:
dice(2,6) | : | Roll of 2 standard dice. |
div(<number>,<number>)
Returns the integer quotient of the first number divided by
the second number.
See also: mod()
e()
Returns the value of e, (2.718281828).
edit(<string>, <search>, <replace>)
edit(<string>, $, <string to append>)
edit(<string>, ^, <string to prepend>)
This functions in a similar way to the
@edit command. Instead of
taking an attribute from an object, it takes an arbitrary string.
The first form of the function searches <string> for <search> and
replaces it with <replace>; the other two forms append and prepend
text to <string>, respectively.
Examples:
edit(This is a test,is,Is) | : | ThIs Is a test |
edit(abcdefg,^,123) | : | 123abcdefg |
entrances(<room>)
Returns a space-separated list of all of the exits leading into
<room> in #dbref format. You must own the room to find its
entrances.
eq(<number>,<number>)
Returns 1 if both numbers are equal, 0 otherwise.
eqvalue(<player>,<item#>,<type>)
Returns the amount of Gold Pieces
that a particular weapon, armor, or item, specified by <item#>, is worth.
This function depends on the <player> for any special skills learned
that may affect the outcome of the appraisal. <type> is an integer
determining what kind of value to display. Type=0: Merchant Shop Value of
the item. Type=1: Item Sell Value. Type=2: Sell Value on an Equipped Item.
esc(<code>)
Returns a string of the format `ESC [ <code>'.
Only wizards may use this function.
See also: csi()
exp(<number>)
Returns e to the power of <number>.
extract(<string>,<first>,<length>)
extract(<string>,<first>,<length>,<delimiter>)
Returns a string of <length> words, starting with the word
<first>. Words are numbered starting from 1. If a
<delimiter> is specified, words are counted by a symbol
rather than a space.
Examples:
extract(This is a test,1,2) | : | This is |
extract(West-North West-North,1,2,-) | : | West-North West |
fadd(<number>,<number>)
Returns the sum of two floating point numbers.
fdiv(<number>,<denominator>)
Returns the quotient of the two numbers. Note that the
div() and
mod() functions
cannot be used on floating point numbers.
fill(<string>,<width>)
This function returns a numeric string right-justified in a field of
zeroes that are <length> characters in total size. The numeral
can be an integer or floating-point constant. If the length of
<string> is longer than <width> characters,
the string returned is not truncated.
Examples:
See also: center(), ljust(), rjust()
findsp(<technique name>)
Returns the matching number of an item, equipment, spell, or special
technique or skill in the item database. The name must be typed out
in full.
first(<string>)
first(<string>,<delimiter>)
Returns the first space-separated word of <string>.
If specified, a <delimiter> can be used instead of spaces
to determine words.
See also: rest()
flags(<object>)
Returns a string consisting of the flags of <object>,
just as they would be seen after their database reference
number in an examine. The result is only just one word.
flip(<string>)
Returns <string> with all of its contents
flipped backwards from right to left.
See also: wordflip()
floor(<number>)
Returns the greatest integral value less than or equal to <number>.
fmul(<number>,<number>)
Returns the product of two floating point numbers.
foreach(<word list>,{<function>})
This function prints out a space-separated list of results from
<function>, which is executed for each word in <word list>.
Like @foreach, the word appears as %0.
Example:
foreach(3 7 -2 8 1,{[add(v(0),13)]!}) | : | 16! 20! 11! 21! 14! |
fsub(<number>,<number>)
Returns the subtraction result of two floating point numbers.
gender(<playername>)
Returns 0 if the gender of <playername> is male,
1 if the gender is female, or #-1 if the object is
not a player.
get(<object>,<attribute>)
Returns the string stored in the attribute of <object>.
You may get the attributes of objects you control, the attributes you
control on other objects, and publicly accessible attributes.
gettemp()
Returns the calculated current air temperature as shown in the
weather almanac.
See also: weather, alttemp(), avgtemp(), wtime()
gt(<number1>,<number2>)
Returns 1 if <number1> > <number2>, 0 if otherwise.
gteq(<number1>,<number2>)
Returns 1 if <number1> >= <number2>, 0 if otherwise.
guild(<player>)
Returns the name of the primary guild that <player>
belongs to. Players not yet belonging to a guild are
considered Adventurers.
has_a(<room>,<parent>)
Returns a space-separated list of database reference numbers
of all of the objects in <room> that are parented to
<parent>. You must own the specified room.
home(<player>)
Returns the database reference number of the room <player>
is saved at. For objects, this is merely an alias for the
link() function.
host(<playername>)
Returns the hostname of a connected player. You need wizard
powers to see hostnames of users other than yourself.
idle(<playername>)
Returns the idle time of a connected player in seconds.
if(<expression>,<string>)
This function evaluates <expression>. If the expression
is true (being anything but a 0, #-1, or null), the function
will return <string>, otherwise it will return an empty string.
ifelse(<expression>,<string1>,<string2>)
This function evaluates <expression>. If the result of the
expression is true (being anything but a 0, #-1, or null), the
function will return <string1>. If instead false, it will
return <string2>.
immortal(<object>)
Returns 1 if an <object> or player holds any immortal rank and
powers, 0 if the object is owned by a normal player character.
inc(<number>)
Returns <number> plus 1. <number> may also contain a string,
however it must end in either a positive or negative integer.
Examples:
inc(3) | : | 4 |
inc(Table-30) | : | Table-29 |
input(<playername>)
Returns the number of bytes inputted to the game by a player online.
You need wizard powers to check other players' session statistics.
int(<number>)
Returns the integer form of <number>, truncating (not rounding)
any digits after the decimal point.
See also: round()
inzone(<zone object>)
Returns a space-separated list of database reference numbers
for each room that is linked to <zone object>. You must
have ownership permissions on the zone object.
is_a(<object>,<parent>)
Returns 1 if <object> is parented to <parent>,
0 if otherwise. You must own <object> to be able to
check its parents.
items(<player>)
This wizard function returns a space-separated list of the
numbers of each item or equipment in the inventory of
<player>. It only lists one number for each different
item. If a player holds more than one of a specific item,
the quantity will be displayed after the number separated
by a colon. This function works on rooms and objects as well
as players.
lag()
Returns the current average TinyMare runtime lag, in seconds,
between checking for commands on the port. Normal average lag
is 0.10 seconds. This value may be high if the game is under
serious usage, and this value can also be used to check if the
lag is coming from the game itself or instead from your network
connection to the game.
See also: cpu()
land(<expression>,<expression>)
Logical And.
Evaluates the boolean expressions and returns 1 if both of them are true.
lattr(<object>)
Returns a space-separated word list of all of the visible attributes
set with a value on <object>.
lattrdef(<object>)
Returns a space-separated word list of all the user-defined attributes
created on <object>, whether they have a value set or not. You must
be able to own the object to list its attributes.
lcon(<room>)
Returns a list of the database reference numbers of each
object located in <room>. If you do not own the room,
only those objects which you control or those which are visible
in the current room of the invoker will be listed.
lcstr(<string>)
Takes a string and transforms all text within it to lowercase characters.
Anything that is not a letter is not affected.
level(<number>)
level(<playername>)
Returns the proper name of a particular level,
characterized by <number>, just as it appears in
the who list.
Whether the level name returned is Male or Female
is based on the gender of the invoker. Level names
below 20 are shown by numbers. You can also find the
levelname of another <player> in the game with
this function.
See also: who
lexits(<room>)
Returns a list of the database reference numbers of each
exit leading from <room>. If you do not own the room,
only those exits which you control or those which are visible
in the current room of the invoker will be listed.
link(<object>)
Returns the database reference number to which <object>
is linked to. Rooms and zones, if unlinked, will return #-1.
You must own the object to determine its link.
linkup(<room>)
Returns a list of database reference numbers of each object
that is linked to <room>, whether it is a player, thing,
exit, or zone. Only the objects you own will be shown in the list.
ljust(<string>,<width>)
ljust(<string>,<width>,<fill>)
This function pads a string in a field of size <width>
characters with trailing spaces so that the string is left-justified.
If no fill character is specified, then a space is used. If the
length of <string> is longer than <width> characters, then
the rightmost end of the string will be truncated.
Examples:
See also: center(), fill(), rjust()
ln(<number>)
Returns the natural log of <number>.
lnum(<amount>)
lnum(<amount>,<start value>,<stepping>)
Generates a space-separated list of counting numbers starting from 0 up
to <amount - 1>, for a total of <amount> numbers. A different
<start value> other than 0, or a different <stepping> other
than 1 may also be specified.
Examples:
lnum(4) | : | 0 1 2 3 |
lnum(4,7,2) | : | 7 9 11 13 |
loc(<object>)
Returns the database reference number of the location of <object>.
The object must be either in a room set with the
Jump_Ok flag, in a room
that you own, or be owned by you in order to view its location.
log(<number>)
Returns the logarithm (base 10) of <number>.
lor(<expression>,<expression>)
Logical Or.
Evaluates the boolean expressions and returns 1 if either are true.
lt(<number1>,<number2>)
Returns 1 if <number1> < <number2>, 0 if otherwise.
lteq(<number1>,<number2>)
Returns 1 if <number1> <= <number2>, 0 if otherwise.
lwho()
Returns the list of database reference numbers for
each user that is online and connected to the game.
Any players hidden from the who list will not be listed.
lxor(<expression>,<expression>)
Logical Xor.
Evaluates the boolean expressions and returns 1 if, and only if,
one of the two inputs are true.
match(<string>,<pattern>)
This function checks each word in <string>, matching it with
<pattern>. The pattern may contain wildcards * and ?, and
it may also contain boolean testing functions such as ! < and >.
It returns the number of the word that matched (starting at 1), or
0 if no match was found.
Examples:
match(2 7 1 34 8 4,8) | : | 5 |
match(2 7 1 34 8 4,*4*) | : | 4 |
match(2 7 1 34 8 4,>3) | : | 2 |
mglvl(<player>,<technique>,<number|name>)
mglvl(<player>,<technique>,<number|name>,<request>)
Each player has a technique table with different entries for different
spells, items, guilds, languages, etc. This function scans the technique
table for a particular <technique> type for <number|name>,
and returns the Level associated with that particular technique.
If <request> is present and nonzero, this function will return
the Value associated with that technique instead of the Level. Note
that this is the same list that is scanned when typing 'ex me/tech'.
This function returns #-1 if the technique does not exist in the
player's database.
Examples:
mglvl(me,language,sylvan) | : | Returns the level of the Sylvan language mastered. |
mglvl(me,magic,refresh,1) | : | Returns the number of TP gained for Refresh so far. |
mglvl(me,memorize,1) | : | Returns the room number of Memorize Slot #1. |
mglvl(me,apprentice,3,1) | : | Returns the #Dbref value of Guild Apprentice #3. |
mid(<string>,<first>,<length>)
Returns a segment of <string>, the <length> characters
to the right of the <first> character inward. Note that
the first character in a string is numbered zero, not one.
mod(<number>,<number>)
Mod returns the remainder of the integer division of the first
number by the second.
See also: div()
modify(<object>)
Returns the modification time of the object in seconds format (since Jan 1 1970),
used with time().
moonphase()
Returns an integer value between 0 and 7 depicting the
phase of the moon. Phases are listed below.
0 | - | New Moon | 4 | - | Full Moon |
1 | - | Waxing Crescent | 5 | - | Waning Gibbous |
2 | - | First Quarter | 6 | - | Last Quarter |
3 | - | Waxing Gibbous | 7 | - | Waning Crescent |
mudname()
Returns the name of the local TinyMare database.
mul(<number>,<number>)
Returns the product of two numbers.
name(<object>)
Returns the full name of <object> in the database.
Any aliases on an exit will not be shown by this function.
neq(<number>,<number>)
Returns 1 if both numbers are NOT equal, 0 otherwise.
nextexp(<player>)
nextexp(<level>)
If a valid <player> is specified, it returns the amount
of experience needed by the player to achieve the next level.
Otherwise, this function returns the value of total experience
points needed for level <level>, an integer greater than 1.
not(<expression>)
Takes the boolean value of <expression> and returns its inverse.
If <expression> is true, it returns a 0, otherwise it returns 1.
num(<object name>)
Returns the database reference number of the first object matching
<object name>.
objmem(<object>)
Returns in bytes the amount of memory taken up in the database by
<object>. Note that the data in attributes is compressed,
and comparing object memory values while setting attributes
may produce some interesting results.
See also: playmem()
oexit(<exit>)
Returns a list of database reference numbers of all returning
exits linked from the destination of <exit> to the exit's
source. You must own <exit> to be able to list the
returning paths.
okitem(<string>)
Returns 1 if <string> is a valid name for an item or
technique, 0 if otherwise. This is mainly used with
creating new user-defined equipment for the game.
See also: @forge
onfor(<playername>)
Returns the total session time of a connected player in seconds.
oper(<word list>,<start value>,{<function>})
This function performs <function> for each word in <word list>.
The function relies on %0 as the current word being processed. However,
another variable %1 is also used as the result of the previous
function with the previous word. In this manner, only the last
value calculated is returned by this function. <start value>
can be used to set %1 at initialization, before the first word is
processed by <function>.
Examples:
oper(lnum(5),0,{[add(v(0),v(1))]}) | : | 10 |
oper(b c d e,a,{%0%1}) | : | edcba |
output(<playername>)
Returns the number of bytes of output sent by
the game for a player's current session online.
You need wizard powers to check other players'
session statistics.
owner(<object>)
Returns the database reference number of the owner of <object>.
parents(<object>)
Returns a list of database reference numbers of
all of the children of <object>.
See also: children()
parse_lock(<player>,<privs>,<string>)
This boolean function mimics checking of a locked attribute for passage.
<string> is any normal attribute value with functions and
boolean symbols consisting of the lock. <player> is the object
trying to pass the lock, and all functions and priviledges used
within the lock are executed from the viewpoint of <privs>.
You must own <privs> for this to properly succeed.
A 1 is returned if <player> passes the lock,
otherwise a 0 is returned.
pi()
Returns the value of pi, (3.141592654).
playmem(<player>)
Returns in bytes the total amount of memory taken up in the
database by <player> and all of the objects he or she owns.
See also: objmem()
plcon(<room>)
Returns a list of database reference numbers for each player that
is located in <room>. If you do not own the room,
only those players visible in the current room of the invoker
will be listed.
pnum(<playername>)
Returns the database reference number of <playername>, which
can either be the partial name of a player currently connected,
the full name of any player in the game, or a player's alias.
port(<playername>)
Returns the value of the active unix port of a connected
player. You need wizard powers to see the port values of
users other than yourself.
pos(<substring>,<string>)
Returns the first character position that <substring> is found in
<string>. The first character is regarded as a 1. If no matches
are found, it returns 0.
pow(<number>,<exponent>)
Returns <number> to the power of <exponent>.
powers(<object>)
Returns a space-separated list of the immortal
powers granted to <object>.
race(<player>)
Returns the name of the race that <player> belongs to.
Players in the process of creating their characters will be
shown with a ? for their race.
rainbow(<string>)
rainbow(<string>,<starting color>)
This wizard function takes a string and returns its resulting
output using the rainbow color generator which cycles through 12
different shades of colors and hilites. If <starting color>
is present, it will attempt to begin the cycle with that shade.
A description of starting colors can be seen in 'help @color'.
See also: @color
rand(<number>)
Returns an random integer between the range 0 and <number - 1>.
If <number> is less than 1, it always returns 0.
randexit(<object>)
Returns a database reference number for a random accessible exit
found in the location of <object>. If there are no obvious
exits or all exits are locked from the object, it returns #-1.
rank(<player>)
Returns the rank number of the class hierarchy that <player> belongs to.
A general hierarchy begins with 1 as a normal player character and 5 as
a maintainer with all the abilities to run the game.
See also: class()
relay(<object>)
Returns a list of database reference numbers of
all the rooms that <object> is relaying its messages to.
relics(<player>)
This wizard function returns a space-separated list of innate
race effects, equipped relic conditions, or special magical
enchantments currently possessed by <player>.
remove(<string>,<first>,<length>)
remove(<string>,<first>,<length>,<delimiter>)
Returns the remainder of <string> after removing <length>
words starting at <first>. Words are numbered starting from 1.
If a <delimiter> is specified, words are counted by a symbol
rather than a space character.
Examples:
remove(This is a test,3,1) | : | This is test |
remove(West-North East-South,2,1,-) | : | West-South |
repeat(<string>,<number>)
This function simply repeats the specified <string>,
<number> times. No spaces are inserted between each repetition.
Example:
repeat(Test,5) | : | TestTestTestTestTest |
rest(<string>)
rest(<string>,<delimiter>)
Returns all except the first word of <string>.
If specified, a <delimiter> can be used instead of spaces
to determine words.
See also: first()
rjust(<string>,<width>)
rjust(<string>,<width>,<fill>)
This function pads a string in a field of size <width>
characters with leading spaces so that the string is right-justified.
If no fill character is specified, then a space is used. If the
length of <string> is longer than <width> characters, then
the leftmost end of the string will be truncated.
Examples:
See also: center(), fill(), ljust()
rmatch(<object>,<match phrase>)
This function performs a remote-match using <object> as its
central viewpoint. <match phrase> is the prefix or full name
of an object, 'here', or 'me', used in finding another
object in the room or vicinity of <object>. A database
reference number is returned, or #-1 if no object matches. You must
be able to control <object> to match things from its viewpoint.
room(<object>)
Traces back the database reference number of the prime room
of <object> if it were nestled down in the location
of multiple objects inside each other. If an object is inside
itself or no room is to be found at the top of the stack, this
function instead returns #-1.
See also: loc()
round(<number>)
round(<number>,<decimal places>)
Rounds a floating point number to its nearest integer value, or
a number of decimal places (up to 9) if specified.
See also: int()
s(<expression>)
Performs pronoun
substitution and function evaluation on the given
expression, from the point of view of the object using
the function. Its main purpose is to be used in the middle of
other functions or expressions.
Example:
s({%N - [v(level)]}) | : | God - 1000 |
scramble(<string>)
This function scrambles a string, returning a random permutation of its
characters. For example, "[scramble(abcdef)]" might return "cfaedb".
Note that this function does not pay any attention to spaces or other
special characters; it will scramble these characters just like normal
characters.
secure(<string>)
Returns a secure version of <string> with all dangerous
characters removed. All occuraces of ( ) [ ] { } $ % , \ ^ and ; will be
replaced by space characters. This can make output slightly ugly,
but it's a good way of preventing other people from doing nasty
things with your objects.
setq(<number>,<string>)
The setq() function is used to copy strings into local registers.
It returns a null string; it is a purely "side effect" function.
There are ten local registers, numbered 0 through 9. They are cleared
at the start of each new queue cycle (i.e. whenever a new command is
evaluated). They are most useful for storing complex function evaluations
which are used repeatedly within a single command. <number> must
be one of the local registers, from 0 through 9.
Registers set via setq() can be accessed using the v()
function or using the percent-substitution of %0 through %9.
Example:
shl(<number>,<count>)
Performs a leftwards bit-shift on <number>,
shifting it <count> times. This is equivalent to
mul(<number>,pow(2,<count>), but much faster.
shr(<number>,<count>)
Performs a rightwards bit-shift on <number>,
shifting it <count> times. This is equivalent to
div(<number>,pow(2,<count>), but much faster.
sign(<number>)
Returns the sign of a number; 0 if the number is 0,
1 if the number is positive, and -1 if the number is negative.
sin(<number>)
Returns the sine of <number>, which should be expressed in radians.
soul(<object>,<combat attribute>)
Returns the value of <combat attribute> on <object>. A combat
attribute is one that is saved in bitmap format on each player character
or object with a valid fight status set. The list of combat attributes
available may be displayed by typing @list soul. Invalid
combat attributes will return a value of 0.
You may only view the values of objects you control.
See also: bitmap()
spc(<number>)
Returns a string with a <number> of blank spaces.
sprslt(<player>,<item#>,<field>)
This returns an attribute of a skilled technique
specified by the <item#>, held by <player>.
The type of string returned depends upon the <field>, an
integer number designating which attribute of the item is to
be displayed. Due to the developmental stages of the combat
system, the meaning of attributes and fields are unknown and
may change without prior notice.
sqrt(<number>)
Returns the square root of <number>.
<number> cannot be negative.
stats()
stats(<player>)
Returns a space-separated list of the actual database
breakdown count, as shown by using the
@stats command.
If a <player> is specified, it will obtain the
database usage of all the objects owned by that player.
Only wizards may view the statistics of another player.
See also: @stats
strcat(<string>,<string>)
Concatanates two strings together, with no space between them.
strlen(<string>)
Returns the length in characters of <string>.
sub(<number>,<number>)
Returns the integer subtraction of two numbers.
switch(<expression>,<result1>,<string1>,..,<default string>)
This function matches <expression> against the <result>s,
returning the corresponding <string>. If nothing is matched,
the <default string> is returned, or an empty string is returned
if no <default string> is present. Wildcard patterns are allowed.
There may be a maximum of ten arguments total to the function.
Examples:
See also: @switch
s_as(<expression>,<cause>,<player>)
Performs pronoun
substitution and function evaluation on the given
expression, using the priviledges and point of view of
<player> and imitating the cause of the function from
<cause>. Like s(), this
enables you to assign values to %# and %! as <cause> and
<player>, respectively. You must be able to control
both <cause> and <player> to perform an accurate
substitution.
Example:
s_as({%N(%#) -> %U(%!)},me,here) | : | Gandalf(#14) -> Gandalf's Patch(#2) |
tan(<number>)
Returns the tangent of <number>, which should be expressed in radians.
time()
time(<seconds>)
Returns an alphanumerical string of the current system date and time.
If <seconds> is specified, it will calculate using the number
of seconds since January 1, 1970. The time displayed depends on your
current timezone settings. See 'help +tzone' for more
information.
See also: +tzone, date(), xtime()
timeofday()
Returns 1 if the game time is currently during the day, and
0 if it is instead during the night (after sunset and before
sunrise).
tma(<seconds>)
Returns a string displaying the number of <seconds>
using all components of time, such as '3h, 25m, 12s'.
tmf(<seconds>)
Returns a string displaying the number of <seconds> in
a full word form of the most significant part of the time,
such as '39 minutes', 'an hour', or '2 days'.
tml(<seconds>)
Returns a string displaying the number of <seconds> in
the long form, such as '00:45' or '1d 13:52'.
tms(<seconds>)
Returns a string displaying the number of <seconds> in
the short form, such as '4s' or '13m'.
truth(<expression>)
Evaluates <expression> and returns 1 if the result is
true, or 0 if it is false. An expression is false if the
result is either an empty string, a 0, or a #-1. All other
results are considered as true.
type(<object>)
Returns the type of <object> in word form. Types can
be one of the following for any one object: Room, Thing,
Exit, Player, Zone, or Garbage.
ucstr(<string>)
Takes a string and transforms all text within it to uppercase characters.
Anything that is not a letter is not affected.
unparse(<object>)
Displays the name, database reference number, and flags of
<object> for standard output. If the invoker of this
function has wizard powers, this will also print the object
title in color depending if the viewer's terminal is set to
ANSI mode via use of the +term
command.
See also: +term
uptime()
Returns a value representing the number of seconds since the
game has last completely restarted (not since the last reboot).
v(<attribute>)
This function behaves exactly like get(me,<attribute>),
soul(me,<combat attribute>), or performs
pronoun substitution on
a symbol or character. If a valid attribute is found on the
invoker, this function will print its contents. Next, it
checks for any available pronouns such as v(#) which returns
the cause of the function or v(n) which returns the
object name of cause. Lastly, if no pronouns or attributes
match, this function checks any combat attributes
on the player and returns the value of an integer. If nothing
matches, v() returns 0.
Unlike pronoun substitution using %, data in v() is not made secure. None of the dangerous characters such as ; and [ ] are stripped out, and they can be hazardous to your program if v() is not used within other functions but instead isolated by itself. If you simply must use a [v()], try padding it with a number of % or \ symbols to escape any parsing that might get to it before the actual queue command is executed.
Here is a list of pronoun symbols available for use with v():
0..9 | - | Prints one of the 10 local environment registers, behaving much like the pronouns %0 through %9. |
N | - | Returns the name of the cause of the function, like %N. |
# | - | Returns the number of the cause of the function, like %#. |
L | - | Returns the location number of the cause of the function, like %L. |
U | - | Returns the name of the function invoker, like %U. |
! | - | Returns the number of the function invoker, like %!. |
Examples:
v(desc) | : | You see someone special and unique. |
v(hitpoints) | : | 186 |
v(n) | : | Gandalf |
See also: Pronouns
version()
Returns the current source code version of TinyMare.
wcount(<string>)
wcount(<string>,<delimiter>)
Returns the number of space-separated words in <string>.
If a <delimiter> is specified, it uses that instead
of a space character to determine words.
wdate()
wdate(<seconds>)
Returns a string in the form of `Dayofweek, Month Day, Year',
using the current game time.
If <seconds> is specified, it will calculate using the number
of seconds since January 1, 0001.
weapon(<player>)
Returns the name of the weapon currently being held by
<player>. If no weapon is held, the word 'Fists'
is returned. If <player> is an object without a
fight status, #-1 will be returned.
weight(<player>)
Returns the number of grams that <player> is carrying.
If <player> is an object, it returns the weight of the
object in grams. Weight includes all equipped items,
Gold Pieces,
and all items currently being carried in the player's
inventory.
wmatch(<string>,<pattern>)
Returns the number of the word within <string>
that matches <pattern> without any wildcards allowed.
Words are numbered starting from 1. If <pattern> is
not in the string, a 0 will be returned.
wordflip(<string>)
Returns <string> with all of its words,
excluding text within the word, flipped backwards
from right to left.
See also: flip()
wtime()
wtime(<seconds>)
Returns an alphanumerical string of the date and time according
to the current game clock represented in the
weather almanac.
If <seconds> is specified, it will calculate using the number
of seconds since January 1, 0001.
xtime()
Returns the current system time in the form of a number of
seconds since January 1, 1970. The value returned is a
floating point number independent of any timezone, and
always refers to the representation of the system clock
on which TinyMare resides.
See also: time()
zone(<object>)
Returns a list of database reference numbers of
all the zones that are currently linked to <object>.
zwho(<zone>)
Returns a list of database reference numbers of all the
player characters that are currently located in a room
linked to <zone>. All players are shown, no matter
if they are online, hidden, or disconnected. You must own
the zone object to be able to check for players inside.
building: how to check for costs in creating objs/flags
Macros
Along with the wide variety of commands that are available to the average
player on the game, TinyMare also supports a quick set of one-symbol
macros to allow easier gameplay and manipulation of your character.
Each macro symbol is to be typed in as the first character in the line,
with an additional message following that symbol. No space is needed
between the symbol and the message. The list of available macros is
shown below.
"<message> | - | Imitates the say command, printing a message prefixed by your name to everyone in the room. |
'<player> <message> | - | Sends a message to a specific player in the current room, like the to command. |
:<pose> | - | Poses a message to everyone in the room, prefixed with your name. |
;<pose> | - | Poses a message to everyone in the room prefixed with the possessive form of your name. |
#<object number> <commands> | - | Like @force, this command forces a particular object to execute <commands>. This macro, however, executes the commands instantly rather than putting them into the command queue. |
=<message> | - | Sends a message to the default +com channel. |
-<message> | - | Sends a message to the channel of the current party group (see the +party command). |
\<message> | - | Imitates @emit, sending a message to everyone in the room prefixed by nothing. |
^<command> | - | The remark symbol; comments out a coded command from execution. |
&<attr> <object>=<text> | - | This macro sets <text> on a specified attribute of <object>, performing no parsing on the contents of <text>. See @set for more details on setting attributes. |
There is another macro that may be used in attributes that are to be triggered. This macro is @@, which is intended as a remark between a set of semicolon-separated commands. A remark performs no action or prints no message.
Zones
Zones comprise a small area of the world, usually composed of an average
of 20-50 rooms. Sector names allow small parts of the world to be
geographically defined, according to the land features or towns nearby.
The link of a global zone is also important acting as the primary point for a particular sector. For outside sectors, the linked room should be located in the most central part of the zone, such as a crossroads or clearing. For all cave or dungeon sectors, the link should be the room that lies directly outside of the cave, or the pointer for exit spells or other teleportation devices. For towns and shrines, this should be the town gate or main entrance found in the sector itself.
WIZLOCK_LEVEL
This variable controls the rank of players that are allowed to login
to the game. The default setting, 0, allows all ranks to connect.
Setting a 1 allows only ranks 1 and above in and disallows normal
player characters. Setting this value to a number above the highest rank
will give access only to God.
This variable also controls whether players can create their own characters at the login screen. By setting this value to -1, you allow all players with already existing accounts to log in, but disallow new player creation. A -1 does not turn off Guest account access.
See also: GUEST_LOGIN
GUEST_LOGIN
Controls whether players are allowed to create Guest accounts
at the login prompt. A 1 means to turn on Guest creation, and
0 means to disable it. Guest logins are only acceptable when
GUEST_PREFIX and
GUEST_START are set appropriately.
See also: GUEST_PREFIX, GUEST_START
USER_LIMIT
This value puts a cap on the number of users that can connect to the game
through the standard game ports (as defined in run/etc/ports).
Wizards can still connect on the admin ports beyond this limit. If
this value is 0, then the number of logins is limited by the maximum
number of available connections a process can have, as shown in
+info cpu.
INACTIVENUKE
This value holds the number of days a player can refrain from logging
into the game before being marked as Inactive. Every Saturday
night, the game will automatically purge the database of inactive
players that are not set Inactive_Ok.
If this value is set to 0, then no automatic purging will
be done, and Wizards must use the
@inactivity command to
manually delete old players. Setting this value to 1 will turn on
standard Inactivity Nuking for a default time period of 6 months.
If COMBAT is turned on, then the default inactivity period (INACTIVENUKE set to 1) depends on several factors of the player's status: Players who haven't yet passed the opening Prologue chapter get 7 days. Players who haven't gotten to Level 2 get 1 month. All other characters get 6 months.
See also: @inactivity
ERR_SIGNAL
When set to 1, the game will attempt to catch errors with the
TinyMARE program, displaying a report to all players online as the problem
is encountered. In the case of Infinite Loops or Segmentation Faults,
TinyMARE will restart the game engine and reconnect users to the point
where the game is playable again. This allows administrators to quickly
pinpoint the problematic command and fix it or report it to the TinyMARE
maintainer.
There is a maximum limit of 128 errors that the game will catch before it aborts the server. If this value is set to 0, then no error catching will be performed, and the first problem with the program will terminate the TinyMARE server with a core dump.
LOG_FAILED_CMDS
When set to 1, TinyMARE will log all failed commands executed by
non-player objects to the logs/playerlog file on the local machine.
A failed command is any such command that produces an "Unrecognizable Command"
error or random typo message.
HIDDEN_ADMIN
When set to 1, all traces of rank distinction between players and
administrators will be removed from players' sight. Specifically,
@stats will not display the number of
players in each rank level, +finger
will not show the classname of a player, and the number of administrators
logged in will not be shown on the who list.
Also, any objects owned by a Wizard will have their Owner:
field masked out when a normal player attempts to
examine them.
TIMEZONE
This value holds the base timezone offset of the machine that the game is
running on, in number of hours + or - Universal Coordinated Time (UTC).
For example, EST/EDT is -5, PST/PDT is -8, EET is +2, and JST is +9. Use
this with the HAVE_DST variable
accordingly and TinyMARE will automatically handle timezone adjustments,
displaying the correct time to players with a different
+tzone set.
HAVE_DST
This variable must be set to 1 if the system TinyMARE is running on
changes the clock for Daylight Savings Time. This variable is required for
players to get correct time readouts, and works in conjunction with the
TIMEZONE configuration variable.
See also: TIMEZONE
DB_FORK
Set this variable to 1 if you would like TinyMARE to fork() its
database saves into the background, allowing for the game to continue
serving players while the save takes place. On most modern UNIX machines, this
offers no performance decrease and is recommended to be turned on. However,
on some older systems, doing a fork() duplicates the entire program contents
and can take upwards of several minutes for a large database save to complete.
Only for this case should DB_FORK be set to 0.
DB_LIMIT
Specifies the maximum number of objects that can be created in the database.
When this number is reached, no new objects or players can be created until
other objects are destroyed. This is useful to prevent people from
accidentally creating objects that clone themselves over and over. The
default value of 0 turns off any such limit.
DB_BACKUP
This variable determines the number of successive daily database backups that
are kept in the db directory. Backups are automatically created on the
first database save after midnight of each day, and the database file
is appended with the current checkpoint number and compressed.
If this value is 0, no backups will be kept. This variable must be used in conjunction with DB_EPOCH, which determines the number of days between successive backups.
See also: DB_EPOCH
DB_EPOCH
This value determines the number of days between successive backups when the
DB_BACKUP variable is set to 1
or greater. Setting DB_EPOCH to a number less than 1 will still
allow backups to take place once per day.
See also: DB_BACKUP
RESTRICT_BUILD
Setting this variable to 1 restricts normal players from building on
the game. Specifically, this prohibits the use of
@create,
@dig,
@open,
@link,
@zone,
@clone, and
@chown.
A player must be set with the Builder
flag by a Wizard, or have the Build power,
in order to build when the restriction is in effect. This variable only
restricts the exit-linking aspects of @link.
See also: Builder
RESTRICT_TELEPORT
Setting this variable to 1 forces a number of restrictions on the game.
It is used most when administrators want to limit a players' ability to move
around anywhere or bypass certain areas. First, it disables the use of
@teleport to any room that is not
within a Restricted zone, even
if the room is set Jump_Ok.
Wizards can choose which zones have the
Restricted flag, thereby assigning
areas where players can have free reign over teleportation commands, but only
within the zone in question. In this manner, players will only be able to
reach home if their home resides in the
same zone they are currently located in.
Second, players are not allowed to drop objects in rooms they do not own, unless again, the room is a member of a Restricted zone. Similarly, players cannot force objects to move across boundaries from one zone to another, nor can objects move while carrying players (independent of zone). Wizards can use this to keep players from cluttering public game areas or cheating by moving puppets ahead to scout out the area.
Players who have the Builder flag or Build power will automatically bypass all restrictions listed above, except in the case of objects moving around while carrying players. Players with the Teleport power will bypass all restrictions listed above, except for being able to @link players to remote rooms, @link exits to "home", and set Droptos on rooms.
See also: @teleport, Builder, Restricted
RESTRICT_HASPOW
Setting this variable to 1 restricts the use of the
powers(),
controls(), and
haspow() functions, such that players
without the Examine power will not be able to use them to find out
what powers administrators have.
RESTRICT_HIDDEN
Setting this variable to 1 prohibits players from changing their
@hlock to hide themselves from
the who list. With this restriction enabled,
the who list will not display the number of hidden players on the game,
thus giving an added layer of security for players who have been explicitly
set hidden by an administrator.
Administrators must have the Wizattr power to both set and remove a player's @hlock when RESTRICT_HIDDEN is in effect.
ZONE_COST
The cost per use of the @zone command
to create a zone object.
ROOM_COST
The cost per use of the @dig command
to create a room, plus the EXIT_COST
and LINK_COST for each individual
exit opened and linked automatically.
THING_COST
The cost per creation of an object in the database, using either
@create or
@clone.
EXIT_COST
The cost per creation of an exit by using the
@open command. An added
LINK_COST is applied if the exit is
to be linked to a room.
LINK_COST
The cost per use of the @link command to
link an exit to another room. Using @link on anything but an
Exit is free of charge.
SEARCH_COST
The cost per use of the @search command
on any number of objects.
FIND_COST
The cost per use of the @find command
on any number of objects.
PAGE_COST
The amount of money charged for each player a message is directly sent to
using the page command.
COM_COST
The amount of money charged for each use of the
+com command to talk on a channel. This
is also the amount charged for talking on a
+party channel when combat is turned on.
ANNOUNCE_COST
The cost per use of the announce
command, which sends a message to all players currently online.
MAIL_COST
The amount of money charged for each player that a message is locally sent
to using the +mail subsystem. A local
+mail message is one sent to a player on the current game, rather than
a player on a remote TinyMARE or to a valid internet email address.
NEWS_COST
The amount of money charged for each post to a newsgroup by using the
+news command.
EMAIL_COST
The amount of money charged for sending a
+mail message to an address
external to TinyMARE, such as an alternate MARE or to an
internet email address. Because of the overhead involved, the charge
is not refunded even if the remote address is unknown or does not exist.
QUEUE_COST
This value represents the charge of 1/QUEUE_COST coins for each
command that is queued by an object, as opposed to running it interactively.
For example, if this value is the default 16, then an object
has a 1 in 16 chance of being charged 1 coin per queued command.
Queue commands consist of executing any @triggers, ! or $ Events, @force, or @wait commands by an object or player. One cannot queue commands when there is no money remaining. The queue is free if this value is set to 0, or if the player has the Queue power.
LINK_OK_COST
The cost per enabling of the Link_Ok
flag on a room. The charge is not refunded when the flag is removed.
JUMP_OK_COST
The cost per enabling of the Jump_Ok
flag on a room. The charge is not refunded when the flag is removed.
ABODE_COST
The cost per enabling of the Abode
flag on a room. The charge is not refunded when the flag is removed.
DARK_COST
The cost per enabling of the Dark
flag on a room or exit. This charge is not applied when setting an object
or player Dark.
HEALING_COST
The cost per enabling of the Healing
flag on a room. The charge is not refunded when the flag is removed.
ILLNESS_COST
The cost per enabling of the Illness
flag on a room. The charge is not refunded when the flag is removed.
OCEANIC_COST
The cost per enabling of the Oceanic
flag on a room. The charge is not refunded when the flag is removed.
SHAFT_COST
The cost per enabling of the Shaft
flag on a room. The charge is not refunded when the flag is removed.
WALL_COST
The cost per enabling of the Wall
flag on a room. The charge is not refunded when the flag is removed.
MAX_OUTPUT
This is the maximum number of characters of output a player can accumulate
in a single time-frame. A time-frame describes when the game runs
all queued commands, reads input from all players connected, and
sends output to all connections. Output from commands are generally saved
in a buffer to be sent out all at once at the end of the time-frame. If new
output would cause the amount of buffered output to exceed this parameter,
then the oldest pending output is discarded and an
«Output Flushed» message is displayed in its place.
QUEUE_QUOTA
The total number of commands that an object can have in the queue at a
single time. When an object reaches this limit, the object is set
Haven and the message "Run away object"
is sent to the object's owner.
This has no effect if the owner of the object has the Queue power.
MAX_PLAYER_WAIT
The maximum number of @wait commands that
can be in the queue before an additional @wait issued by a player
is refused. For security reasons, this value should be set to half
that of MAX_WIZARD_WAIT, which
has the same meaning but for Wizards instead of players.
See also: @wait, MAX_WIZARD_WAIT
MAX_WIZARD_WAIT
The maximum number of @wait commands that
can be in the queue before an additional @wait issued by a Wizard
is refused. This variable is separate from
MAX_PLAYER_WAIT and should be
set higher such that players cannot flood the @wait queue to break
code set on Wizard objects. Administrators need the Queue power
to be classified under the MAX_WIZARD_WAIT category.
Setting both MAX_PLAYER_WAIT and MAX_WIZARD_WAIT to 0 will prevent any @wait commands from being queued. This is not recommended.
See also: @wait, MAX_PLAYER_WAIT
FUNC_RECURSION
This directive sets the maximum number of nested function calls that can
be executed before the function call is aborted and the string
"#-1 Too many levels of recursion." is returned. Normally this is not a
problem, but functions such as s_as()
can otherwise be used to cause infinite recursion.
See also: MAX_FUNCTIONS
MAX_FUNCTIONS
This value represents the total number of functions that can be executed
by the parser for a single command, excluding percent-substitutions. If the
function limit is exceeded, the string "#-1 Too many functions." is returned,
and function loops such as foreach()
and oper() will stop processing input.
See also: FUNC_RECURSION
LOCK_LIMIT
The total number of locks that an object
@lock can reference, either
sequentially or recursively. When this limit is reached, all additional
locks in the same reference point will immediately fail. This limit is
necessary because locks can reference additional attributes on other
objects for checking, and this can be done in a cyclic or recursive manner.
The owner of an object's @lock will be
notified at each attempt when the limit has been reached.
See also: @lock
DUMP_INTERVAL
Specifies the time in seconds between automatic database dumps.
If a database save fails, an error message will be reported to all players
online and the next save will be scheduled 5 minutes later. If 10 successive
saves fail, the game will attempt to save without forking into the background
so that additional errors can be reported in the logs.
A value of 0 disables database checkpointing, forcing administrators to manually use the @dump command to save the database. This option is not recommended, since any failure in power or uncaught Segmentation Fault can cause the TinyMARE process to abort, and any changes since the last save will be lost. Manually saving the database before a @reboot or @shutdown is not necessary.
See also: @dump, @reboot, @shutdown
WEATHER_INTERVAL
Specifies the time in seconds between successive Weather System updates.
Each update changes the current cloud cover slightly, according to
the game's weather patterns and predictions. Players who are in rooms
designated Outside will be notified of the current cloud cover and any
changes in weather (for better or worse). This update will also print
to everyone online any sunrise or sunset messages, depending on the time
of day and the current season.
In addition, if COMBAT is turned on, this variable determines how often a players' sickness level will increase or decrease when they are outside in rainy or cold weather.
See also: weather
ATIME_INTERVAL
Specifies the interval of time in seconds of how often the game will trigger
the @atime attribute on a single object.
When TinyMare is turned on, a loop counter is initialized at object #0. Every
second, TinyMare will increment that counter and execute enough @atime
attributes such that it will complete the entire object database when
ATIME_INTERVAL seconds have lapsed. When the counter reaches DBTOP,
it will reset itself back at #0 and begin the process over.
In its loop iterations, TinyMare will skip all objects that do not have an @atime set, skip all HAVEN objects, and skip all players who are not currently connected. The game will only process a set number of objects per second based on the total database size. For example, if there were 1000 objects in the database and the ATIME_INTERVAL was set to 60 (once per minute), then at most 17 @atime attributes will be triggered per second (17*60 = 1020). The current object being processed can be viewed on the +info game screen.
The ATIME_INTERVAL also controls how often objects automatically move around the realm when it has the Wander flag set. The same incremental counter is used to determine which object should move next.
TIMEOUT_LOGIN
Specifies the number of seconds a player can remain idle at the login screen
between typing two commands. Idle checks are made once per minute, and the
game will instantly disconnect the player if idle for longer than this
amount.
See also: LIMIT_LOGIN, LIMIT_SESSION, TIMEOUT_SESSION
TIMEOUT_SESSION
Specifies the number of seconds a player can remain idle when connected to
the game, either after putting in their password or actually appearing on
the who list. A player will be instantly
disconnected if idle for longer than this amount.
See also: LIMIT_LOGIN, LIMIT_SESSION, TIMEOUT_LOGIN
LIMIT_LOGIN
Specifies the total amount of time a player can remain at the login screen
before connecting as a player or guest (in seconds). A player will be instantly
disconnected if online for longer than this amount. This value is useful
to keep players from flooding the number of available connections by
staying logged into the game without creating a character.
See also: LIMIT_SESSION, TIMEOUT_SESSION, TIMEOUT_LOGIN
LIMIT_SESSION
Specifies the total amount of time a player can remain connected to their
character during normal gameplay, in seconds. A player will be instantly
disconnected if connected for longer than this amount. This value is
useful if there are a limited number of available connections (as per
operating system restriction) and a large number of players wanting
to connect to the game.
See also: LIMIT_LOGIN, TIMEOUT_SESSION, TIMEOUT_LOGIN
MUD_NAME
This is the default name of the TinyMARE Game as reported in the
+version information and to remote
who (RWHO) servers when reporting information. This value is always saved in
the database even if netmare is compiled with the correct name.
TECH_EMAIL
This value stores the email address of the maintainer of the site. It should
be set to a contact address that players can refer to when they forget their
passwords, have trouble connecting, or have problems with other players online.
This is also the address that appears in the identification string during
remote email and HTTP connections.
MAILHOST
This value is set to the remote hostname or IP address that TinyMARE uses to
send outgoing email. If this value is blank, then the default server
"localhost" will be assumed. The host specified must be able to accept
SMTP connections on port 25 and have relaying support turned on
(except for localhost).
See also: +mail, EMAIL_ADDRESS
EMAIL_ADDRESS
This value specifies the internet email host address from which all outgoing
email sent from TinyMARE is to appear. This address is prefixed with the
player's name (in lowercase) and a @ symbol. This is the same as the
From: address, allowing remote hosts to send a reply back to the
player on TinyMARE. This value must be set to allow players to send
outgoing email.
To receive incoming email, a special redirection must be set up with the sendmail program running on the local machine. This program must correctly identify the EMAIL_ADDRESS and redirect it to the TinyMARE game port using a special SMTP connection. See the file lib/smtp/README in the netmare package for details.
MAIL_EXPIRE
This value specifies the number of days +mail
is to be automatically deleted from the player's mailbox after being read.
The number of days corresponds to when the
+mail was first read and
not when it was first sent. New mail has no expiration date.
See also: +mail
PLAYER_START
This variable holds the database room number where all new player
characters will be created. This is also the default room for
players to enter when one's current location is being destroyed.
If a player's home is destroyed, it will automatically be relinked
to this room.
The room marked by PLAYER_START has other interesting side effects as well. Exit depth statistics (shown by the +info game or @purge commands) are counted by taking the longest path of exits from PLAYER_START. Also, any rooms that are not directly accessible using exits from PLAYER_START, and are not set with the Floating flag, will be classified as Disconnected.
See also: Floating
GUEST_START
This variable contains the database room number where all new Guests will
enter the realm. It can be different from the
PLAYER_START variable,
which contains the location for normal player character creations.
This value can only be set to a room dbref#.
See also: GUEST_LOGIN, PLAYER_START
GAME_DRIVER
The Game Driver is a designated object that executes internal Mare
commands requiring Wizard privileges. Commands that are too difficult
to handle internally are placed into the command queue for automatic
or delayed (via @wait) processing by
the Game Driver. For example, the Combat System uses the Game Driver to
trigger actions on spells, whose commands are not tied to any
database object attribute.
The Game Driver can be any type of object (room, zone, or thing) that is not set Haven. The Haven flag is automatically removed from this object during system startup. Do not assign this value to an object owned by a non-Wizard.
DUNGEON_CELL
This dbref# specifies the room to which players will be sent to when they
are jailed using the @capture command.
For the jail to work effectively, the room should have no unlocked exits
and should be set X-Zone to keep players
from performing normal game commands and talking on
+com channels.
GUEST_PREFIX
This variable contains a short name, such as "Guest", that will be
prefixed to each Guest character that is created. A Guest ID is appended
to each guest name, starting from 1, for each consecutive player that
connects as a Guest. A Guest's alias is taken from the first letter of
the GUEST_PREFIX, appended with the Guest ID.
This variable is required to be set to allow any Guest access and must begin with a letter.
See also: GUEST_LOGIN
START_BONUS
The amount of money that a new player is given at character creation. A
player can use the money to talk to others, buy initial supplies, or
save for for later quests.
See also: GUEST_BONUS
GUEST_BONUS
The amount of money that a Guest is given at character creation. This value
is necessary if there are simple charges for
PAGE_COST and
COM_COST, otherwise Guests would not
be able to use the page and
+com commands to talk to other players.
This value can be better judged by remembering that Guests cannot
give money to other players, nor can players give money to Guests.
See also: START_BONUS
ALLOWANCE
This is the amount of money players receive each day they connect to
the game. Players do not automatically get their allowance if they
stay connected longer than 1 day, and they must reconnect in order to
get that day's paycheck.
MONEY_SINGULAR
Specifies the string to use to describe the money of the realm when it is
being referred to singularly. For example, "You found a Penny!" would be
displayed if this value is set to "Penny".
See also: MONEY_PLURAL
MONEY_PLURAL
Specifies the string to use to describe the money of the realm when it is
being referred to plurally. For example, the phrase "You have <number>
Pennies." would be shown in a player's inventory if this value is set to
"Pennies" (as long as <number> is not 1).
See also: MONEY_SINGULAR
Spell Attributes
Numerical values:
$action | $caption | $cast | $command | $desc | $drop | $fail |
$fumble | $lock | $message | $ocast | $odrop | $ofail | $ofumble |
$osucc | $remote | $succ | $tfail | $tfumble | $tsucc | $ufail |
$usage |
$type
This attribute designates the type of spell, item, technique, or equipment.
It can be set to one of the values found in @list types. Values
from 0 to 63 denote equipment that can be wielded or worn,
values from 64 to 79 denote different types of items, and
values from 80 and up deal with techniques, spells, and items that
work with magic. The default item type is 0 (Stick).
$color
A numerical value representing the color of an item. This $color is
more limited than that of the @color
attribute, in that items can only be set with a foreground and background
color, with the optional ability for rainbow.
To set a color, begin with the foreground by picking a number from 0 to 7: 0=Black, 1=Red, 2=Brown, 3=Green, 4=Blue, 5=Purple, 6=Cyan, 7=Gray. If you want the foreground color to be hilited, add 8. Next, a background color is chosen by multiplying one of the above numbers from 0 to 7 with 16 (i.e. a blue background is 16*4 = 64), and add this to the number. If you want the capability for a rainbow item, add 128 to the color.
$value
This value represents the full price of an item as it would be displayed
on a shop menu. Shops will buy items back for half of this amount, or
varied depending on a player's skill at bargaining. The maximum possible
value of an item is 999,999,999.
$weight
This attribute determines the weight of an item in grams. Each player has a
limit to the number of items he or she can carry determined by the weight
of each item. More lighter items can be held or equipped than heavier
items, and lighter equipment is less restrictive in battle. This value is
equivalent to the @weight attribute
that can be set on an object.
See also: @weight
$material
This attribute is defined for equipment that can be worn. It describes the
type of material the equipment is made out of, and judges an equipment's
hardness, density, and resilience during physical attacks. Different types
of materials can have interesting special properties. This value can be
set to one of the entries shown in @list materials. A material is
defined to be 0 (Eggshell) by default, but it will not show up on anything
else but equipment unless it is nonzero.
$flags
This attribute holds special flags that change the behavior of an item.
An item's flags are a space-separated list of words from the table below
that enable special features. All flags are specific to a group of item
types, and some item types may not reflect the actions of a flag.
Legendary | - | This flag can be set on a item or equipment to signify its uniqueness in the game. Such an item can not be discarded, given to other players, sold to a shop, or otherwise destroyed in battle. |
Quiet | - | Setting a usable item or spell Quiet will prevent it from displaying a -< Battle >- message when the technique is used. |
Fragile | - | An item set Fragile will instantly disappear the moment it is dropped in a room by a player or enemy. Setting the $drop and $odrop attributes will suppress the "shattered" message that players will see. |
$level
Items, when held in a player's inventory, do not have the Level setting
that all Spells and Skills do. This attribute sets the default level of a
technique when used as an item rather than casted as a spell. The maximum
level of an item can be 10.
$cost
This attribute determines the
Magic Power or
Endurance point cost of casting the spell
or executing the technique. Magic Power is only used when the
$type of the spell is set to Magic,
and Endurance is used when the type is set to Special. A
technique can not be used unless the $cost requirement is fulfilled.
For all other item types, this attribute has no effect.
Note: This value is not checked when using a spell/skill as an item. Instead, the number of items in the player's inventory will decrease by 1.
$chantrate
This attribute determines the duration of time, in 1/10ths of a second,
that it takes to cast a spell or execute a technique. For example, if this
value was set to 45, then it would take 4.5 seconds before the spell began.
This value only has meaning when the $type
is set to Magic or Special. Setting this value to 0 will
set the chanting rate to the player's default battle speed, or
Vigor. The maximum chantrate an item can
have is 255.
$areaatk
Specifies the area attack range of a spell or skilled technique. The range
determines who and how many targets can get hit with the blast of a single
attack. A spell's $areaatk is one of 8 different types, plus an
optional set of one or more space-separated flags that modify the range of
effect. This attribute is required for all techniques that use the combat
system.
Area Attack Types: | ||
NoTarget | - | No target is required for this spell. The spell will reference its caster by default. |
Single | - | A single target is the victim of the attack. |
Group | - | References a +party of players or a group of enemies with the same name (or species). |
Objtype | - | All opponents in the room with the same object type, except for the caster's Group. |
Everyone | - | Everyone in the room except for the caster's group. |
Global | - | Everyone in the room except for the caster. |
All | - | Everyone in the room (including the caster). |
Multi | - | Range specified at the time of an attack (see below). |
Optional Flags: | ||
Caster | - | Automatic spell casting (by enemies, Tactics, or Artifical Intelligence) will default to casting these spells on themselves. |
Attack | - | Signifies an attack spell. Players cannot cast these spells on themselves. |
Random | - | Always pick 1 target from the list of members of the Area Attack Type. |
Remove | - | Removes the specified target from the list of Area Attack members. This is useful if you want to heal everyone in your party except the caster, for example. |
Fumble | - | Allow for the chance of a fumbled technique. The target of the fumble is determined by a $fumble attribute's area attack. |
NoReflect | - | Keep a spell/skill from ever becoming reflected by the target. |
Room | - | Allow the keyword 'here' as a target. |
Thing | - | Allow anything in the room to be a target, not just those with a Combat Status. |
Exit | - | Only match exits in the room. |
Items | - | Only match inventory items, event items, and equipment. |
Invert | - | Match all living things in the room except listed targets. |
Wounded | - | Only target wounded enemies. |
See also: $fumbleatk
$fumbleatk
This attribute determines the Area Attack Range of a fumbled attack. It is
necessary in order to have a different range than would otherwise normally
occur if the spell was successful. When an attack fumbles, a random living
creature in the room becomes the target of the attack. Then, this value
determines the range of the attack, which is one of the Area Attack
Types specified in 'help $areaatk'.
Only the types have valid meanings for this value. The Optional Flags
cannot be used here.
See also: $areaatk
$charges
Specifies the number of enemies a player must defeat before he or she can
use this skilled technique again. The number of battles is recorded by a
32-bit integer specified using the $bitpos
attribute, and both must be set correctly to enable this feature. This
attribute only has meaning for spells and skills, and has no effect on
items.
See also: $bitpos
$bitpos
Specifies a 32-bit area in a player's Bitmap where an internal counter
will be stored. When a player uses this spell, this value will get set to
the number of enemies defeated + the value of this spell's
$charges attribute. The player will be
unable to use this spell again until he or she has defeated enough enemies
to surpass what is stored in this bit position.
Valid bit positions are anywhere from the beginning of the storyline section (2048) to the end of the bitmap (defined by MAX_BITMAP, usually 4096) minus 32.
See also: $charges
$component1
One of three item numbers that, if specified, are required to be held in a
player's inventory for successful casting of a spell or skill. Item numbers
must defined in the spell database, and can have any type as long as the
player is allowed to hold them. These items are depleted from a player's
inventory at the time the spell is cast.
Up to three components can be specified as 'required' for spell completion. If $component2 and $component3 are also set, then the spell will not succeed unless the player has all three items in his or her possession.
$component2
One of three item numbers that are required for the successful casting of
a spell or skill. See $component1
for details.
$component3
One of three item numbers that are required for the successful casting of
a spell or skill. See $component1
for details.
$applyitem
This attribute specifies a particular item number that can be held in a
player's inventory. The success rate of this spell or technique will
increase by 50% if the $applyitem is currently held by the player.
The item will not disappear when this spell is cast.
See also: $applyequip, $applyskill
$applyequip
This attribute specifies a particular item number of a piece of equipment
that can be worn or wielded by a player. The success rate of this spell
or technique will increase by 50% if the $applyequip is currently
equipped by the player. The equipment will not disappear or be removed
when this spell is cast; it only acts as a modifier.
See also: $applyitem, $applyskill
$applyskill
This attribute specifies that the success rate of the spell or technique
can be further enhanced through the application of a skill. This value
is set to the number of a skill that can be learned by a player. The
success rate of this spell will increase up to 50%, 1 percentage point
for every 2% of the skill mastered by the player.
See also: $applyitem, $applyequip
$food
Specifies the number of food points this item will give the player when
eaten. This attribute is required for the player to be able to
eat the item. The actual amount of food
points increased depends on the duration of time since the food was
created.
$spoil
Specifies roughly the number of minutes a piece of food is good for until
it is no longer edible. The amount of spoilage can decrease the number of
food points gained when eating this item, or can cause sickness and poisoning
if completely rotten. Food spoils faster in damp areas such as a dungeon or
swamp, so this value should be only set as a term relative to other food
products (e.g. iron rations will last much longer than milk). In towns and
shrines, this value equals precisely the number of hours a food product will
last. A food item's $spoilage
attribute will increment every 15 minutes, no matter if the player holding
it has logged off.
$spoilage
This attribute can only be stored on user-defined items held in a player's
inventory. It displays the number of minutes of 'spoilage' that has elapsed
since the food was created. A piece of food becomes spoiled when this value
becomes larger than its $spoil value.
$hardness
This attribute determines the hardness rating of a material, from 0 to 255.
Hardness determines an armor's relative protection against slashing
attacks. It is used primarily for controlling the rate of armor degradation
when compared to the density of an opponent's weapon.
100 is roughly the maximum for a naturally occurring substance,
such as Diamond. 25-50 is normal for most substances such as metals and
crystals. This value only has meaning for
$type equals Material.
See also: $density, $resilience
$density
This attribute determines the density rating of a material, from 0 to 255.
Density determines an armor's relative protection against piercing
attacks. It also determines a material's damage potential to an opponent's
armor when used as the basis for a weapon.
On the average, metals tend to be softer and more pliable than crystals, meaning lower hardness and density ratings. This value only has meaning for $type equals Material.
See also: $hardness, $resilience
$resilience
This attribute determines the resilience rating of a material, from 0 to 255.
Resilience determines an armor's overall protection against blunt attacks.
It also determines a material's shatter resistance when used as a weapon
(how easily it will break when it strikes an object).
Resiliency ratings for metals are higher than for crystals and gems. Clothing tends to have decent resiliency ratings, but its hardness and density ratings are abysmally low. This value only has meaning for $type equals Material.
$skill
When set on an item number whose $type is
Skill, this determines the reference number of the skill as hardcoded
in the TinyMARE Combat System. A list of hardcoded skill numbers can be viewed
by typing @list skills. Defining your own skills in the database allows
you to enhance and otherwise describe skills that players can use. Also, two
skills can both be linked to the same reference number, thereby possessing
the same qualities but under a different name.
$techbase
This value determines the base amount of Technique Points a player must
accumulate before the first 1% of skill mastery is automatically learned.
This value is used in conjunction with
$techlevel and
$techraise to set a scale of increasing
difficulty for skill mastery up to 100%.
See also: $techlevel, $techraise
$techlevel
This value determines the base amount of Technique Points needed
per 1% of mastery level beyond the first percentage point.
See also: $techbase, $techraise
$techraise
This value is defined as an increase to the number of Technique Points
a player must obtain, added onto the
$techlevel value.
See also: $techbase, $techlevel
$maxtrain
This attribute limits the maximum mastery percentage that this skill can
be trained at when paying money to a guild trainer. The value can be set no
higher than 100%. If this value is 0, then 100 is assumed by default. It only
has an effect on item numbers whose $type
is Skill.
See also: $maxpercent
$maxpercent
This attribute limits the maximum mastery percentage that this skill
can automatically increase to while gaining Technique Points by
fighting enemies in the wilderness. Players must find other ways to raise
a skill's percentage higher, such as training in a guild or through
the completion of special quests. If this value is 0, then 100% is assumed
by default. It only has an effect on item numbers whose
$type is Skill.
See also: $maxtrain
$learn
This attribute contains the item number of another Skill as
defined in the item database. When a player reaches 100% mastery in
this skill, then the player will automatically learn a new skill
specified by this value, starting at 1%. This attribute only has an
effect if the item $type is Skill.
$power
This value is automatically set on equipment to determine
the current +Strength of a weapon or armor compared to its
$maxpower value. As equipment
becomes damaged, its $power slowly saps away until it reaches 0,
at which point it shatters completely. Equipment must frequently need
repairing to bring $power back up to the $maxpower level.
Magical enchantments can increase an equipment's $power above $maxpower, thereby increasing its attack or defense power. Equipment of type Clothing has both $power and $maxpower set to 0, thereby offering no defense. Clothing shatters when its $damage increases to 10000 points.
$maxpower
For equipment, this attribute determines the highest +Strength
rating that the particular equipment can attain without magical
intervention. A piece of equipment that is at perfect (100%) condition
has $power equal to $maxpower
and 0 $damage points.
This value must be set on equipment in the item database before any equipment is created. Equipment bought at a shop holds the highest +Strength value and 0 $damage points. Equipment found on monsters in the wilderness can have anywhere from 75% to 100% condition, and must be repaired to deliver its full potential.
$damage
This value is automatically incremented on equipment during battle to track
the damage at its current $power level.
Equipment cracks when its $damage points become 1000 times that of
its current $power level. At that point, the power level decreases
by 1 and $damage resets to 0, and the wearer of the equipment is
notified of the loss of strength. Equipment cracks faster as its
$power approaches 0.
An equipment's rate of damage depends on the type of material it's composed of. Each material has three damage ratings: Hardness, Density, and Resilience, each which give their own spin as to how weapon and armor damage is dealt and received. See the help on $hardness, $density, and $resilience for more information.
$desc
Contains the description of the item as shown when a player
looks at or
examines an item or spell.
An item description should physically describe the item or explain
the actions of a spell and how a player would use the spell. However,
the specifics of what it really does should be better reserved for an item's
$caption instead.
The $desc can contain %-substitutions as well as functions, which are only
given the permissions of the player looking at it. The following
pronouns are defined:
%#,%! | - | The player# looking at the item. |
%0 | - | Item name. |
%1 | - | Item number. |
%2 | - | Level of item if a spell, or $level if found in a player's inventory. |
%3 | - | Damage range based on level. Value can be in the form 'x' or 'x-y'. |
$caption
The caption is a short message up to 48 characters long, that identifies an
item for its use in and outside of battle. While an item's
$desc physically describes an item or spell,
the $caption shows its precise function in the combat system. Captions
provide a quick way for players to skillfully select which items to use in
the heat of battle, and are thus displayed alongside each item and quantity on
the items screen.
Examples of useful captions would be 'Recovers HP by %3 points', or 'Teleports to the dungeon entrance'. Pronoun substitution for this attribute is the same as that of $desc.
See also: $desc
$command
This attribute defines a command word that can be used to execute a defined
technique, rather than through the usual use
or cast commands. This value is most
widely used for command-based Skills that have no meaning for use or
cast. An example $command would be 'steal' as defined on a
Steal skill, which executes the events on the skill when the player types
'steal <enemy name>'.
Note: Setting this attribute on an item or spell does not disable the use or cast commands, instead it allows for both methods to be available.
$usage
This attribute defines the meanings to possible arguments that can be used
with an item or selected with a spell. Only the arguments need to be defined,
not the full 'use' or 'cast' command that goes along with it. For example,
setting this value to '<enemy>' will display the following Usage:
line for each of these three different types of items:
Item: | use Steal=<enemy> |
Spell: | cast Steal=<enemy> |
Skill: | steal <enemy> |
$action
This attribute contains a semicolon-separated list of Mare commands that
the Game Driver will execute when the spell is cast. These optional commands
will trigger after any events on the spell have gone into effect. Specifying
$action on an item forces that item to become usable even if there
aren't any active events programmed on it. An item with only command
actions and no events will always return successful, unless the
$lock attribute prohibits the player
from using the item. The following pronouns are defined:
%! | - | Game Driver, who executes the command. |
%# | - | The spell caster / user of the item. |
%0 | - | Item name. |
%1 | - | Item number. |
%2 | - | Level of item if a spell, or $level if found in a player's inventory. |
See also: $lock
$lock
This attribute sets a lock on the usage of an item or spell. If a player fails
the lock, then a failed attempt message will be printed the moment he or she
tries to use the item or casts the spell. All spells that do not pass the lock
for a player will appear grayed-out when he or she views the spell list.
The $lock attribute is checked first before any other event-based checking and before the target of the technique is known. Therefore the lock cannot be based on the target or arguments of the spell. $lock can be used to restrict the spell to certain areas or sector types, but not to specific groups of enemies (which can be accomplished in more detail on the event-level of control).
$lock has the same semantics as the object attribute @lock, with %# equal to the player# using the item and %! set to the Game Driver with privileges to operate the lock. No other environment variables are defined. The $ufail attribute can be used to override the message that appears when the lock is failed.
See also: $ufail
$ufail
This attribute contains the message that is to be displayed to the player
when he or she fails the $lock on an item
while typing use or
cast. If not set, the default phrase
"You can't use %0 here." is displayed. Variable substitution is as follows:
%#,%! | - | The player# using the item. |
%0 | - | Item name. |
%1 | - | Item number. |
%2 | - | Level of item if a spell, or $level if found in a player's inventory. |
$cast
This attribute contains the verbal component to the spell. It is a per-spell
definable message printed to the caster when he or she types the
cast command, instead of the phrase
"You chant the spell of %0." Variable substitution is as follows:
%#,%! | - | The player# chanting the spell. |
%0 | - | Spell name. |
%1 | - | Spell number. |
%2 | - | Spell level. |
%3 | - | The chanting duration in 1/10ths of a second, based on level. |
$ocast
This attribute contains the message displayed to everyone in the room except
the caster when he or she types the cast
command. It is displayed instead of the phrase "%N chants the spell of %0."
Variable substitution is the same as with the
$cast attribute.
$message
This attribute is displayed to everyone in the room at the moment an item
or spell gets executed, after the -< Battle >- message and before
the item's events trigger. This message only gets displayed once and is
directed at the original target, even if the
$areaatk specifies a group of enemies
or the target does not actually get hit (because the Remove or
Invert flags were specified). The following pronouns are defined:
%! | - | The player using the technique. |
%# | - | The primary target of the technique. |
%0 | - | Item name. |
%1 | - | Item number. |
%2 | - | Level of item if a spell, or $level if found in a player's inventory. |
$succ
This attribute holds the message the caster would see if the technique usage
successfully strikes its victim, one per enemy targetted. It is displayed
before the event's messages (such as HP damage) are displayed. Use in
conjunction with $osucc and
$tsucc.
The following pronouns are defined:
%! | - | The player using the technique. |
%# | - | The target of the technique. |
%0 | - | Item name. |
%1 | - | Item number. |
%2 | - | Level of item if a spell, or $level if found in a player's inventory. |
%3 | - | [Attack event only] The actual damage inflicted on opponent. |
$osucc
This attribute holds the message everyone in the room except the
caster and the target would see when a technique successfully strikes
its victim. It is displayed once for each successful strike in an area
attack. See $succ for details and
pronoun usage.
$tsucc
This attribute holds the message that the target of the spell would see
if the spell scored a successful hit. The message would appear before
the event's messages (such as HP damage) are displayed. See
$succ for details and pronoun usage.
$remote
This is a special message that only a select number of events use. It
is displayed to everyone in a remote or adjacent room before the spell's
events are triggered. An example of using this attribute would be a message
that is shown in the destination room during a Teleport event before
the player appeared in that room.
This message is only displayed when a spell is successful. Pronoun usage is the same as in $succ, except for %3, which references the remote room's dbref#.
See also: $succ, $osucc, $tsucc
$fail
This message is displayed to the caster when the technique misses its
intended target. It replaces the default "Miss" message that the event
would have normally printed on the screen. Pronoun usage is the same
as that of $succ, except %3 is blank.
$ofail
This attribute holds the message everyone in the room except the
caster and the target would see when a technique misses its inteded
target. It is displayed in place of the default "Miss" message that
the event would have normally printed on the screen. Pronoun usage is
the same as that of $succ, except
%3 is blank.
$tfail
This attribute holds the message that the target of the technique
would see in the case of a miss. It is displayed in place of the default
"Miss" message that the event would have normally printed on the screen.
Pronoun usage is the same as that of $succ,
except %3 is blank.
$fumble
This message is displayed to the caster when he or she fumbles his attack
onto an unsuspecting victim. It is in effect the same as a success message,
except the target (%#) may or may not be different (a fumble can occur on
the intended target, only a different message may be printed). This message
is displayed before the event's normal messages (such as HP damage) are
displayed. Pronoun usage is the same as that of
$succ.
$ofumble
This attribute holds the message everyone in the room except the
caster and the adjusted target would see if the caster's technique has
fumbled onto that target. It is displayed once for each target that
matches the spell's area attack. See
$fumble for details and pronoun usage.
$tfumble
This attribute holds the message that the target of the spell would see
if the caster fumbled an attack on the target. The target may or may not
be the intended target from the beginning. This message would appear
before other event messages (such as HP damage) are displaaed. See
$fumble for details and pronoun usage.
$drop
This message will be displayed to the player who drops an item from the
inventory to the floor. When both $drop and
$odrop are set on an item, and the
item's $flags contain the Fragile
option, the phrase "%0 shatters on the floor!" will be suppressed.
This message need not be set for a Fragile item if the
@eventkey on the room is expecting
someone to drop that item in a specific location. The following pronouns
are defined:
%#,%! | - | The player# dropping the item. |
%0 | - | Item name. |
%1 | - | Item number. |
%2 | - | Level of item if a spell, or $level if found in a player's inventory. |
See also: $odrop
$odrop
This message will be displayed to everyone else in the room a player drops
this item from his or her inventory to the floor. See
$drop for details and pronoun usage.
See also:
$drop
Copyright ©2000 by Byron Stanoszek
Last Index Update - October 15, 2000
All Rights Reserved