RECIPE
Used for the herbalism system, the recipe command allows a detail to
list and create various item combinations to yield poisons and
potions. Currently, only food, herb, and component items can be
combined to make a useful potion or poison.
Type "recipe ?" for a complete list of commands and usage.
#
HERB HERBALISM PLANT HERBS PLANTS
The herbalism system is based on in-game plants, which are placed by
builders in various parts of the game world. All plants have the "take"
flag removed. The plant item must have the oval0 flag set to correspond
to which herb it yields when it is gathered.
The plant description should be somewhat ambiguous. The description of
an herb should include the actual name of the herb.
For example:
(long desc)A low-lying plant grows in the shade of a large oak tree.
(short desc)some alanal leaves
#
BOARD BOARDS
A board consists of an "board" object and a board definition. Here is
how to create a board definition:
> board create 1 staff_news 'News about staff events.'
The example above created the a board named "staff_news" that only players
at trust level 1 or above can read or write to.
The syntax is:
board create level board-name board-title
board save (Save board definitions to disk)
board delete board-name (Naturally, delete isn't implemented yet)
board ("board" by itself lists existing boards)
After a board is created, it must be saved using the "board save" syntax.
The instructions above simply define the board. For a player to be able
to use a board, a board object must be created and assigned to an existing
board.
> oset board name "staff_news board"
is the building command to define an object as a board. The object must
be of type board, and its first name element must be the name of the
board it represents.
There are a few special predefined boards:
lesser_oracle - Messages sent here are from the "lesser oracle" dream request.
lesser_answers - Answers to lesser_oracle requests by staff appear on this board for review of others.
greater_oracle - Messages sent by "greater oracle" dream request.
greater_answers - Staff answers to greater oracle.
prescience - Questions posed by players using the psionic prescience skill.
prescience_answers - Staff answers to prescience.
Staff members may answer lesser/greater oracle questions by using the
reply command:
> reply board 10
If your reply were to a message on the lesser_oracle board, then message
with the same number would be posted to the lesser_answers board, AND a
dream answer would be attached to the player-requestors pfile.
And, just by the way, once the player receives his/her dream, the player
can type "dreams" to figure out how many dreams he/she has had, and
"dreams <nn>" to review a specific dream.
Unix files
==========
... lib/boards - directory containing all board information
... lib/boards/board_list - definition of all boards
... lib/boards/<board>.nnnnnn - A specific message on a board.
Messages are stored as individual unix files in the boards directory. It
will not hurt the mud to wholesale delete messages from this directory as
long as the board_list file is left in-tact.
#
RCRET
Usage: rcret <direction> <difficulty>
RCRET creates a secret description which can only be found
through a successful use of the SEARCH skill. The difficulty
is a number from 0 to 100. Note: a difficulty of 50 or greater
will be impossible to find. A good range is 0-20, with a
preference to lower numbers.
Once the command is typed, you will go to the editor for the
actual description.
#
REPLACE
Usage: replace <"object"/"mobile"> <vnum> with <vnum>
Replace exchanges one equipped item for another across all zones.
It is a powerful command, and should be used carefully. Changes
become permanent after a save and reboot.
Example:
>replace object 10023 with 2501
>replace mobile 17901 with 5023
#
OUTFIT
Usage: outfit <mob/char name>
Outfit forces the named mobile or character to pick up and attempt to
wear and wield all items on the ground in that room. It is useful for
quickly equipping a newly loaded mob.
Example:
>outfit guard
#
OBJECT
Usage: object | object <vnum/name>
This is the base object editing command. Used with an object name or
vnumber it allows the builder to start editing that particular
prototype. When using a name to edit, that object must be in the
builders inventory, or in the room. Once editing a prototype, the current
statistics can be displayed by typing "object" alone, without any other
fields.
Newly OINITED objects are automatically in edit mode.
Examples:
>object 10002
>object sword
>object
See Also: OSET OINIT
#
OSET
Usage: oset <field> (value)
Oset is the object editing command which actually changes the
aspects of a prototype object. Start editing objects using the OBJECT
command. To get a list of all possible fields, type "oset ?"
Examples:
>oset name 'sword long sharp'
>oset oval1 5
See Also: OBJECT OINIT
#
VIS INVIS
These commands alternately make your immortal visible or invisible
to mortal eyes.
#
WEAPON
This is a list for weapon oval0-6. See bhelp OVAL for its
usage.
oval0 - corresponds to wielding position;
0 - primary hand
1 - secondary hand
2 - can be used in either hand
3 - two-handed weapon
oval1 - corresponds to number of 'dice' rolled, ex: oval1 2
oval2 - corresponds to size of 'dice' rolled,
ex: oval2 4 with the two previous examples, 2d4.
oval3 - corresponds to type of skill weapon requires;
1 - club 5 - axe
2 - spear 6 - whip
3 - sword 7 - polearm
4 - dagger
oval4 - hit theme of the weapon
0 - stab 3 - bludgeon
1 - pierce 4 - slash
2 - chop
oval5 - delay of hand caused by using weapon.
#
RUNUSED OUNUSED MUNUSED
Usage: RUNUSED <zone #>
Gives a list of unused, uninitialized rooms, objects, or mobiles
for the given zone.
#
RNAME
Usage: RNAME <New room name>
Changes the name of the room you are currently in.
#
RXCHANGE
Usage: RXCHANGE <old word> [new word | new words]
Can be used to correct typos, change words, insert words
or delete words from a room description. Find an experienced
builder for hints or try it out in a test room as it does not always
work as expected.
#
MCLONE
Usage: MCLONE <from vnum> <to vnum>
Clones one mob to another. This also works across
zones, and so is useful for making similar mobs in
different zones.
#
RPADD
Usage: RPADD <new prog #>
Adds a room program to the room. The newly added program
will be designated as program 1.
#
RPSTAT
Usage: RPSTAT
Shows the commands, keywords and programs of all programs in
the room.
#
RPCMD
Usage: RPCMD <Program Number> <word(s)>
Adds a command word to the room program. A Command word is
the first word of a two word trigger for the room. Usually
the action verb of a two word phrase. Multiple words can be
added using RPCMD
Example:
> rpcmd 1 press push depress
#
RPPROG
Usage: RPPROG <Program Number>
This is used to actually set the program for the room. You
will enter the editor after typing this command, and type '@'
as usual to exit. The room program is sequential; the first
line of the program being the first thing which will occur.
Basic commands available so far are:
atecho trans link exit ostr vstr atlook unlock
give take load force delete put unlink unexit
pain
There are also a series of if/else combinations:
if mexist if haso if link if exit
Writing room programs can be difficult at first, but sig-
nificantly increase the "reality" of the game. A good way
to learn how to write effective rpprogs is to use existing
programs. Use the RPSTAT command to examine other rooms'
programs.
Avendoral is currently undertaking a small project to create real
documentation for writing room programs, so bug him if you want
him to finish it earlier.
#
RPAPP
Usage: RPAPP <Program Number>
This command is identical to RAPP except that it allows you
to append additional lines of code to an existing room prog.
#
RPKEY
Usage: RPKEY <Program Number> <Keyword(s)>
Sets the second word of a two word "trigger phrase" for a
room program. This is usually a word located in the room
description, and is paired with a RPCMD word(s).
Example:
> rpkey 1 button stone rock
#
OCLONE
Usage: OCLONE <from vnum> <to vnum>
Clones one object to another. This also works across
zones, and so is useful for making similar objects in
different zones.
#
SHOPS
The following describes the procedure to build a shop:
1) You must first have, at the very least, a mob MINIT'd. If
you plan on having your shop within a room, i.e. stationary,
you should also have that room number RINIT'd with your mob
You should also know what sort of items your shop will buy
and sell; food, weapons, etc...
2) Use the MSET KEEPER command to initialize the shop, syntax is
MSET KEEPER. If this is not a newly created mob, you will probably
want to start editing it with MOB <vnum>. If the shop is a room, the
FLAG of the keeper should include Sentinel. Leave this flag out if you
want to make a wandering merchant. For the sake of simplicity
you might want to consider making a mob with the same v-number
as the room his shop is located. For example, a shopkeeper
whose shop is room 6123 would be minited as mob 6123.
3) Next, RINIT the store room. A shop keeper does not keep his
goods in his inventory, the items are placed in the store
room. All store rooms are located in Zone-2, and room 2000
contains a list of the numbering structure for your store
room based on what type of items the keeper will buy/sell.
For example; a weapons shop would have a store room number
in the range of 2500-2599, armor would be 2200-2299. Hint:
do a "show r 2 2500 2600" to find to find available rooms
for your store room within the proper range.
4) Now use the "LOAD obj <obj vnum>" inside your store room to
place the sell-able items in your shopkeepers listing. A
shop should not really contain more than 6-7 items, this
should allow a wide enough variety without providing a player
with access to too many items in one location. Now, when you
type "list" in the same room as your shop keeper, you should
see all the items you just loaded into your store room.
5) A shop can "reproduce" an unlimited supply of up to five
items. This adds a bit of "reality" to the game. If you
were in a tavern, you should be able to purchase more than
one tankard of ale. The MSET DELIVERY command allows you to
specify which items you want your shop to reproduce. Note: Some
discretion should be used in specifying which items will be
reproduced. For example, it would be common for a keeper to
produce an unlimited supply of ale, but not for a weapons-maker
to reproduce the finest chain mail, or the best broad-sword without
limit. Therefore, do not set "quality", "complex", or "unique" items
with MSET DELIVERY.
6) To set the types of items a shop will purchase from players,
use the MSET BUY command. Note: Some items should not be set
with BUY; Trash, Food, Other, and Note. However, setting these items
to not be bought with the MSET NOBUY command is a good idea.
7) Another thing to set when making a shop is its buy and sell
profit values. The MSET DISC command sets the percent value
that the keeper will try to purchase the item for. Example:
"MSET DISC 0.75, would mean that the shop keeper
would try to buy an item off the player at 75% of its real
cost. Similarly, with MSET MARK 1.1, the keeper will
try to sell the item 10% more than its cost.
#
FREEZE
Usage: FREEZE <zone>
Stops all mobile activity updates for the specified zone. Use
this to prevent mobiles from wandering during build/save periods.
Use THAW to reverse the affects of this command.
#
RDFLAG
Usage: RDFLAG <direction> <door flag>
Toggles the flags for the door in the given direction.
Currently you can set only set the PICKPROOF flag. If
you want to make a door "secret", use the RCRET command.
#
RDEL
Usage: RDEL <room number>
Deletes the specified room from the game. If you use the command again
on the same room number, the room will not be marked for deletion. Note
that this command will only result in the room being deleted permanently
if the zone is saved. Also, the world must be rebooted in order for the effect
to become visible. You are not able to delete a room# if you are in the room
being specified.
This command should be used with extreme caution, and remember to remove
all links to and from the room with the RLINKRM command before you RDEL
the room.
#
MINIT
Usage: MINIT <vnum>
Creates a new mobile in the current room. You might consider
using the FREEZE command to keep the mobiles from wandering
while you edit. You may use the MUNUSED command to get a list
of available vnums for the particular zone number.
#
OINIT
Usage: OINIT <vnum> <type | ?>
If a valid type is given, a new object of that type is created
and placed in your inventory. If '?' is given as the only
argument, then the possible types are listed. The OUNUSED
command can provide a list of available vnums within the
specific zone.
#
RAPPEND
Usage: RAPP
Allows the addition of text to the end of an existing room
description. No arguments are used, you will enter the editor
to append your additions. Use the "@" sign to terminate
for input.
#
RCLONE
Usage: RCLONE <source vnum> <target vnum>
Copies the name, description, sector type, and room flags of
the source room to the target room. Both rooms must already
exist and must be in the same zone.
#
RDDESC
Usage: RDDESC <direction>
Adds a description for exit (a door not have to be present)
in specified direction. You will be prompted for the description
after entering the command.
#
RDOOR
Usage: RDOOR <direction> [keyword(s)]
Creates a door in the specified direction provided an exit or
link exists for that direction. A keyword may be specified if
desired, the default is "door". direction is one of the
following: n,s,e,w,u,d.
#
REDESC
Usage: REDESC <keyword(s)>
Adds a keyword and extra description for something in the
current room. After the command with the keyword is given, you
will be prompted for a description. This is useful for describ-
ing signs and anything else that need not be an object or will
not be taken from the room.
#
REXIT
Usage: REXIT <direction> <target room>
Creates a one way passage in the specified direction to the
target room. Both rooms must exist. The exit is removed with
the REXITRM command.
#
REXITRM
Usage: REXITRM <direction>
Removes a one way link to the room in the direction specified,
See Also: REXIT
#
RDESC
Usage: RDESC
Allows entry of a new description for the room you are currently
in. Rdesc takes no arguments, you will enter the editor to
enter the description, terminate the editor with the "@" sign.
Keep in mind that there is no word-wrap, so be sure to enter a
newline when close to 80 characters. For adding to the end of
an existing description, use RAPPEND.
For further guidelines, refer to the Builder Guidelines Document.
Format:
1) Please place three blank spaces at the start of a new
paragraph.
2) Room descriptions should avoid any references to
"you" and "your".
3) Room descriptions should be at least 4 lines in length, try
to be descriptive; use references to smells and sounds as
well as visual perceptions when appropriate.
There is an option available for this command. If you type "RDESC REFORMAT",
the description will be adjusted so that none of the lines go over 80 columns.
#
RFLAGS
Usage: RFLAGS [flag/?]
Toggles the flags for the current room. If no argument is
given, the current room flags are shown. If a '?' is given
as the argument, all possible flags are shown.
#
RINIT
Usage: RINIT <Vnum>
Creates a new room with the supplied virtual number <Vnum>.
The number must be an unused vnum. Use the goto, rexit or
rlink commands to get to the new room. You may use the
RUNUSED command to get a list of available vnums of rooms for
a specific zone.
#
RKEY
Usage: RKEY <direction> <key number> <pick penalty>
Allows the door in the direction given to be locked an unlocked
using a key with the specified key number. Creation and placement
of the key is the responsibility of the builder as automation of
this process would take away from the flexibility of the OLC
system.
#
RLINK
Usage: RLINK <direction> <target room>
Creates a two way passage in the specified direction between
the room you are currently in to target room. Both rooms must
exist. The link is removed by using the RLINKRM command.
#
RLINKRM
Usage: RLINKRM <direction>
Removes a two way link between two rooms in the direction
specified.
See Also: RLINK
#
RSECTOR
Usage: RSECTOR [sectortype | ?]
Sets the sector type for the room. If no arguments are given,
this command returns the current sector type. If the argument
'?' is given then all possible sector types are listed.
Possible Sector Types:
Sector Type Movement Cost Special
----------- ------------- -------
Inside 1 None
City 1 None
Road 2 None
Trail 3 None
Field 4 Allows Camping
Woods 5 Allows Camping
Forest 6 Allows Camping
Hills 7 Allows Camping
Mountains 8 None
Swamp 8 None
Water_Swim 6 Too Much Encumberance and You Drown
Water_NoSwim7 None
Ocean 15 Allows Boats
Dock 2 Allows You to Exit a Boat
Reef 15 Causes Damage to a Boat
Crowsnest 8 Unknown
#
RFLAG
Usage: RFLAG [roomtype | ?]
Toggles the flags for the current room. If no argument is given, the current room flags are shown.
Rflag ? displays a list of all possible flags. Many of the flags are
simply used to control where a certain mob can go and mean
nothing by themselves. The flags and their functions are:
Dark - Room will be dark even in daytime. Torches still work.
Light - Room will always be lighted.
NoMob - Mobiles will not move into this room.
Indoors - Weather/sunrises/sunsets/etc cannot be seen and the room is always dark unless a Light flag is set.
Lawful - Crimes commited in this area will flag the criminal.
NoMagic - Spells cannot be cast.
SafeQuit - Players can quit the game here.
Fall - Anyone entering falls to the room below and cannot climb back up. Climb is irrelevant.
Climb - Requires a climb check to enter room.
<Diety> - Sets the room to be a temple of <Diety>.
NoMount - Mounts cannot be ridden into this room.
Psave - Objects left in room will save and not disappear.
Lab - Allows alchemy.
NoMerchant - Merchants won't wander in to sell their goods.
Floodable - Unknown.
NoPray and NoMagic don't appear to work, but are never used.
The following have no effect other than on mobs similarly
flagged for access with the "mset access TYPE" command:
Ruins Tunnel Cave Wild
Deep Temple Road
Wealthy Poor Scum
Dock Market Arena
#
SHOW
show m <zone> [name] - Show mobiles in zone, optional name to match.
show o <zone> [name] - Show objects in zone, optional name to match.
show a - Show object, mobile, player, room totals for all non- empty zones.
show z - Show all zones by name.
show s - Show grand-totals for rooms, objects and mobiles.
show r <zone>[low][high] - Show names and exit information for all rooms in zone.
show p - Show a list of the "real" names of all players.
show u <zone> - Show a list of rooms within a specified zone that have
no descriptions. Shop storage rooms will be prefaced with
an 'S'.
show stat - Show current statistics for the game including number of
mobiles, total rooms, total undescribed rooms, and other information.
**NOTE: information given by show o and show m is based on the master
for that obj/mob.
#
THAW
Usage: THAW <zone>
Re-enables mobile activity updates in the specified zone.
Mobiles will wander and perform special functions as in
normal game play. This command is used in conjunction with
the FREEZE command.
#
WSAVE
No arguments. This saves the entire world, from zone 0-99.
Use of this command is restricted to trust level 5 users and
should not be used by the normal builder. Use ZSAVE to save
your zone. This will use as much CPU time as it can as it is
meant as an emergency save tool for use in time constrained
situation. Be prepared to endure very heavy lag until the
entire world is saved.
#
ZLIFE
Usage: ZLIFE <minutes>
Sets the time between resets in minutes.
#
ZMODE
Usage: ZMODE <mode>
Sets the reset mode for zone you are currently in.
Mode is one of the following:
0 - Never reset
1 - Reset if no players in zone
2 - Reset always
#
ZNAME
Usage: ZNAME <name>
Sets the name for zone you are currently in.
#
ZREBOOT
*** NOT YET IMPLEMENTED ***
Usage: ZREBOOT <zone>
Full purge and reset of all rooms as determined by the last
saved configuration.
#
ZRELOAD
Usage: ZRELOAD <zone>
Purges all objects and mobiles from zone specified and reloads
them in the same manner as the last reboot.
#
RESET
Usage: RESET <zone>
Resets the specified zone, no purging is done.
#
ZSAVE
Usage: ZSAVE <zone>
Saves the rooms, mobiles and objects in the specified zone. Only
mobiles and objects that belong to that zone will be saved (SEE
ZONE LAYOUT for info on what belongs to what). Currently only
one level of recursion is saved for containers, therefore a bag
inside a box inside a chest will not save properly, but coins stored
inside a bag carried by a character save a expected.
#
SET
Usage: SET <option
The BHELP of SET only shows immortal commands. If you wish to
see player commands, type HELP SET.
SET Options only available to immortals:
immenter - The message seen when you enter a room via GOTO.
immleave - The message seen when you leave a room via GOTO.
visedit - Sets you so that you enter the fullscreen visual editor
during a oset desc, mset desc, or rdesc.
anonymous - Sets you so that you do not show up on the "who" list.
Lines ## - Set the number of lines to be displayed on the screen.
Affects VISEDIT.
Colums ## - Set the number of columns to be displayed on the screen.
Affects VISEDIT.
See Also: VISEDIT
#
VISEDIT
Visedit is the full-screen, visual editor component of the Harshlands OLC
system. It is quite powerful and is similar in many ways to the 'vi' editor
seen on UNIX and other Operating Systems.
Commands:
@ Exit editor
? Lists help screen
i Enter insert mode
d delete current line
j down
k up
o insert line below
O Insert line above
x delete character
m display map
<ctrl-L> refresh screen
N,S,E,W,U,D Move
#
MSET
MSET is used to do modifications to mobs and players. Typing mset ?
will give you the help list, which is shown below
Usage:
mset [mob-vnum] Optionally specify mob vnum
name "keywords"
short "a short name"
long "The long desc"
desc Enter a full description
params that take a simple numberic value:
access, armor | ac, clan1, clan2, moves, state (-1..4)
piety, natural, str, dex, int, wil, con, aur, bite,
height, frame, room (pc's only)
conds <drunk #> <full #> <thirst #> You must use all three
circle <0..9>
dam <#d#> Natural damage attack
[fightmode] <frantic | aggressive | normal | cautious | defensive>
helm <room-vnum>
hp | hits <hit-points>
skinobj <obj-vnum> What corpse skins into
attack <attack-type> Natural attack type: claw, etc
allskills | noskills Gives/removes every skills
delete Delete a mob.
'position-types' Type: tags position-types
'deity' Type: tags deity
'races' Type: tags races
'skills' <percent> Type: tags skills
'action-bits' Type: tags action-bits
'affected-bits' Type: tags affected-bits
dpos 'position-types' Default position
trudge, paced, walk, jog, run, sprint
keeper Associate shop with mob
markup <number> To sell multiplier
discount <number> To buy multiplier
econ_markup1,2,3 <number> To sell econ flagged multiplier
econ_discount1,2,3 <number> To buy econ flagged multiplier
nobuy <econ flag> Won't buy flagged item
econ1,2,3 <econ flag> econ_markup/discount flags
shop Shop room number
store Store room number
trades "'item-type' ... " Types of items traded
delivery "<ovnum> ..." Objects replaced after buy
#~