------------------------------------------------------------------------
OasisOLC Handbook
By Tasslehoff <brack@draper.net>
Based on a document by Ergo of Enertopia Mud
------------------------------------------------------------------------
Building a great zone takes many things, one is time and patience,
good grammer/spelling, knowing how to balance your zone, and a lot of
work. Now this all may sound like a lot to do, but I can assure you
that with this document, others help, and you not pressuring yourself
to much, you can do this with out any problems.
Building was once explained as writing a story for the mortals of
the mud. As you go through the zone, it unfolds into different twist in
the plot. Try imagining writing a small book when writing the descriptions
for your zone. If this doesn't work, drop the idea, everyone has their own
style of writing zones.
Here are a few things that should be done when creating a zone.
1: Keep balance with your equipment and the toughness of your mobs.
2: All mobs' Hit Points are determined by hit point bonus field in Medit
NOT Hit Point "Dice" <You will see when reading the Medit section.
3: All Shopkeepers Should be !Charm
4: Remember, if you mess up, and the building port does crash, it happens
to everyone once and a while, just find an *Imp and tell or mudmail
him.
5: Please refrain from Cutting and Pasting from one window, to OLC, strange
Characters have been known to slip in and crash the building port.
6: Also, please refrain from using the ~ character, because this will crash
the building port.
7: Please indent the first sentence of your descriptions
8: Please keep the room descriptions over 3 lines.
9: REQUIREMENTS: must have a program other than zMUD to connect with
------------------------------------------------------------------------
The next thing that should be brought to attention is the usage of
proper grammer. Please check for the proper punctuation, and
capitalization.
Hints on making a better zone:
1: Do not include specific monsters into the room descriptions.
For Example Of What Not To Do:
You walk into a large room. You see a black shadowy figure who attacks!
This is bad because, sometimes the mob will not load, and you are
telling the mort that something is going to happen, when it really is
not going to. It could be that someone has already killed him, or he
was taken out in some form.
It is acceptable to place what will be known as filler mobs, such
as townspeople or animals. It may be good to have several mobs that you
describe load in the room for effect.
For Example:
You walk into a crowded market place where people hurry around to get
the best deals.
Or:
You are walking through a dark forest. You see birds flying over head.
2: When making your mobiles, be careful how you word what they are
wearing.
For Example Of What Not To Say:
The werewolf is huge. He is wielding a Mace of Oblivion.
Reason being, if he doesn't load the Mace, this would not make any
sense.
3: Some people's monitors do not have word wrap. Try to keep
your lines between 65-75 characters
4: Phrases such as "behind you" and "in front of you" and "on your
right" are not very good things to say, because you never know which
direction a player is coming from. This means make things generic enough
that it makes sense to them coming OR going.
5: Don't us Numeric values in the zone descriptions. This means type
fifty instead of 50. (but be realistic about it, if you have a number like
1,323,534,542,234,234,929.902, just type it out, but make sure you can't
replace that number with a smaller or larger word number for example, cut
that down to 1 billion instead of that large number.)
6: Adding penalties to eq is recommended. This allows players to
compromise. Perhaps a braclet is +10 Strength, but -150 Hit Points.
The +str is pretty inticing, but the player would have to decide
how important to him/her those 150 Hit Points are.
--------------------------------------------------------------------------
Now for Circle Mud there are five files which make up a zone. The
first is the world file. This contains all info about a room, including
what it looks like, where the exits lead, whether there are doors on the
exits, and many other facts. The rooms are each numbered individually so
that no two rooms have the same number. Room 3014 is the Market Square
found in zone 30. Room 5250 is in zone 52, and room 19001 is in zone 190.
The second file is the mobile file. this contains all
information about the monsters that are to be in your zone. The mobile
file controls how each mobiles behave, and how the look. Like the room
numbers, mobiles each have a specific number which also contains the zone
number. For example mobile 3000 is the wizard located in zone 30. Mobile
5804 is in zone 58, and mobile 901 comes from zone 9.
The third file is the object file. This file contains
information about objects and how they affect players in the game. Objects
are all things in the game that players can handle or manipulate. This
includes fountains, weapons, food, armor, even corpeses. In the object
file you can define exactly what an object does.
The fourth file is the zone file. The zone file contains the
most important information of all, for it controls how the zone operates.
The zone file close and locks doors. It loads mobiles, it equips mobiles
with objects. It fills fountains.It can even remove an object from a room
if you desire.
The fifth file is the shop file. This is a rather complicated
file which alows you to set up a shop where objects are sold. With the
shop file you can designate which mobiles will be the shopkeepers, what
items will be sold, and what time the shop is open for business.
-------------------------------------------------------------------------
REDIT (Room EDIT)
-------------------------------------------------------------------------
Redit is a command that is used to build a room online. To edit
a room which already exists, all you need to do is enter the room and type
redit. This is usefull for correcting mistakes. If you redit a room
which is already in existance, you will see all the information about
the room. How ever if you are building a new zone, you will not want
to edit existing rooms. Here's how you do it.
I want to build a brand new room in the new zone 58. I would simply
type redit 5800. I would then see a display of an unfinished room. The
default messages always indicate that nothing has been insterted into the
field.
For Example:
--Room Number : [5800]
1) Name : An unfinshed room
2) Description :
You are in an unfinished room.
3) Room flags : NOBITS
4) Sector type : Inside
5) Exit North : -1
6) Exit East : -1
7) Exit South : -1
8) Exit West : -1
9) Exit Up : -1
A) Exit Down : -1
B) Extra Descriptions Menus
Q) Quit
Enter Choice :
I would begin by naming the room. I would hit 1. It would ask me for
a room name. I would type in, A Red Room. When I hit enter after I
type A Red Room, the computer will insert that information where it
previously said, An unfinished room. I would then enter my description
of the room by hitting 2. i would type in the description, which would
include the obvious exits of the room. When I am done, I would start a
new line, and enter @ to end the descrition. This @ will now show up
in the room description.
Option 3 in olc is room flags. Room flags is how we include
information about the room whic affects players.
The Flags are
1 DARK Room is dark.
2 DEATH Room is a death trap; char 'dies' (no xp lost).
3 NOMOB MOBs (monsters) cannot enter room.
4 INDOORS Room is indoors.
5 PEACEFUL Room is peaceful (violence not allowed).
6 SOUNDPROOF Shouts, gossips, etc. will not be heard in room.
7 NOTRACK "track" will never find a path through this room.
8 NOMAGIC All magic attempted in this room will fail.
9 TUNNEL Only one person allowed in room at a time.
10 PRIVATE Cannot teleport in or GOTO if two people here.
11 GODROOM LVL_GOD and above only allowed.
12 HOUSE Reserved for internal use. Do not set.
13 HOUSE_CRASH Reserved for internal use. Do not set.
14 ATRIUM Reserved for internal use. Do not set.
15 OLC Reserved for internal use. Do not set.
16 BFS_MARK Reserved for internal use. Do not set.
These flags are numbered accordingly to 1-16. Do NOT use the
flags 11-16. You can have as many flags you wish for the room to
have. Upon completion of entering room flags, enter 0 to exit the
room flags menu. This will take you back to the OLC menu. You will
then see all the flags you chose next to the room flags option. If
you wish to remove a bitvector flag from a room, all you need to do is
go back to the room flags, and enter the number for the flag that you
wish to remove. In other words, entering a flag tice in a room will
remove it.
Sector type is option 4. Sector type only affects travel, whether
it involves movement points, or prohibits movement into the room unless
you are ha boat. As of now, we do not have underwater or flying rooms.
Do NOT use these fields. YOu can only ahve one sector type per room.
This is not a bitvector.
Here are the sector types:
0 INSIDE Indoors - typically small number of move points needed.
1 CITY The streets of a city.
2 FIELD An open field.
3 FOREST A dense forest.
4 HILLS Low foothills.
5 MOUNTAIN Steep mountain regions.
6 WATER_SWIM Water (swimmable).
7 WATER_NOSWIM Unswimmable water - boat required for passage.
8 UNDERWATER Underwater.
9 FLYING Wheee!
Options 5-A are exits. If you want the room you are building to
have a north exit to a room, you simply use option 5. This will bring
up another menu in which you can enter information about where the exit
goes to, what description will be seen if the player looks in that
irection, what the name of the door (if any) is called, what object
number actually unlocks the door (if any), and whether the exit is a
door and/or pickproof. If you make a mistake and have a room with an
exit that isn't suppost to be there, simply hit 6 (purge exit) under
the exits menu, and all info about that exit will be wiped, including
extra descripts.
You can NOT set an exit to a room that does not exist. You must
first build the adjoining room before you connect to it. Also, just
because room 5801 might lead north to 5802, 5802 doesn't necessarily
have to have an exit south back to 5801. This is usefull if you want
to confuse players, or trap them from excape.
The last option on the olc menu is B) Extra description menu.
This is useful if you have a window in your room, and you want to
have a view to accompany with it. To enter this info, simply it B.
A new menu will be presentedto you. Option one is keywords. This
is where what the players would look to see something. In this
case it is a window, but theoretically, it could be anything. hit
1 to enter the keyword. Then type window. When you hit enter, you
will go back to the extra descriptions menu. It is possible to have
more than one word per extra description. For example, you could
also use glass outside window to display the same description. If
a player types look glass, or look outside, or look window, the
player will all see teh same description, which you would enter
into the room, by chosing option 2 at the extra descriptions menu.
You would write out the message and terminate the description just
like you would a room description, by starting a new line, and
hitting @.
For now, OLC will not allow quotation marks to start out
an extra description.
When you are done with the room, hit Q for quit. It will
ask you if you want to save the room internally. If you are
happy with the room, enter yes. If you don't really want to
include the changes into the room, for example, it may be
a pre-existing room that someone might not want changed, enter
no. However the room has not been saved to the actual computer
that runs the gaem. To save the room, you would type
Redit save 58, if you are dealing with zone 58. If you are
building zone 90, you would enter redit save 90.
------------------------------------------------------------------------
MEDIT (Mobile EDIT)
------------------------------------------------------------------------
Medit is the online means of creating a monster. Similar to
REDIT, MEDIT uses menu options to enter in fields of information.
If you are building zone 58, you would simply type medit 5800
to create a mobile numbered 5800. If this number is already used
by a mobile, you will be shown all the stats on the mobile. Otherwise,
like REDIT, it will put in some default information about the unfinished
mob. All that you need to do is eter the field in which you wish to
edit, and fill in the information.
The D-Desc is what the mobile looks like when it is looked at,
simply type in what the mobile looks like. To terminate the description
start a new line and enter @.
it is recommended that you put some sort of vulnerability on a
mobile, for instance, if it hits very hard, and hits consistantly, put
low hitpoints on it.
The experience that a player gets for killing a mobile is NOT
the number that you enter into the Experience points field. That number
tells you what someone of hte same level as the mobile will get.
If a player is level 15, and kills a level 15 mobile, then the player
will get the experience points you prescribe. However, if a level 30 kills
the same mob, that player won't be rewarded with as much.
It is VERY IMPORTANT that you always give mobiles aliases. If you
not the game will be very disturbed. Aliases are the name that you
type to kill the mob, look at the mob, or steal from the mob.
There are a number of bitvectors available that should not be used.
Most of these are internal flags, such as group. Please do not use
any of these flags that don't actually affect the mobile. Also be aware
that just like rooms, if you wish to remove a flag from a mob, simply
repeat the flag.
Action Bitvector
SPEC This flag must be set on mobiles which have
special procedures written in C. In addition to
setting this bit, the specproc must be assigned in
spec_assign.c, and the specproc itself must (of
course) must be written. Talk to an *Imp for more
information.
SENTINEL Mobiles wander around randomly by default; this
bit should be set for mobiles which are to remain
stationary.
SCAVENGER The mob should pick up valuables it finds on the
ground. More expensive items will be taken first.
ISNPC Reserved for internal use. Do not set.
AWARE Set for mobs which cannot be backstabbed.
Replaces the ACT_NICE_THIEF bit from Diku Gamma.
AGGRESSIVE Mob will hit all players in the room it can see.
See also the WIMPY bit.
STAY_ZONE Mob will not wander out of its own zone -- good
for keeping your mobs as only part of your own
area.
WIMPY Mob will flee when being attacked if it has less
than 20% of its hit points. If the WIMPY bit is
set in conjunction with any of the forms of the
AGGRESSIVE bit, the mob will only attack mobs that
are unconscious (sleeping or incapacitated).
AGGR_EVIL Mob will attack players that are evil-aligned.
AGGR_GOOD Mob will attack players that are good-aligned.
AGGR_NEUTRAL Mob will attack players that are neutrally aligned.
MEMORY Mob will remember the players that initiate
attacks on it, and initiate an attack on that
player if it ever runs into him again.
HELPER The mob will attack any player it sees in the room
that is fighting with a mobile in the room.
Useful for groups of mobiles that travel together;
i.e. three snakes in a pit, to force players to
fight all three simultaneously instead of picking
off one at a time.
NOCHARM Mob cannot be charmed.
NOSUMMON Mob cannot be summoned.
NOSLEEP Sleep spell cannot be cast on mob.
NOBASH Large mobs such as trees that cannot be bashed.
NOBLIND Mob cannot be blinded.
Affection Bitvector
BLIND Mob is blind.
INVISIBLE Mob is invisible.
DETECT_ALIGN Mob is sensitive to the alignment of others.
DETECT_INVIS Mob can see invisible characters and objects.
DETECT_MAGIC Mob is sensitive to magical presence.
SENSE_LIFE Mob can sense hidden life.
WATERWALK Mob can traverse unswimmable water sectors.
SANCTUARY Mob is protected by sanctuary (takes half damage).
GROUP Reserved for internal use. Do not set.
CURSE Mob is cursed.
INFRAVISION Mob can see in dark.
POISON Reserved for internal use. Do not set.
PROTECT_EVIL Mob is protected from evil characters.
PROTECT_GOOD Mob is protected from good characters.
SLEEP Reserved for internal use. Do not set.
NOTRACK Mob cannot be tracked.
UNUSED16 Unused (room for future expansion).
UNUSED17 Unused (room for future expansion).
SNEAK Mob can move quietly without room being informed.
HIDE Mob is hidden; can only be seen with sense life.
UNUSED20 Unused (room for future expansion).
CHARM Reserved for internal use. Do not set.
Alignment
A number from -1000 to 1000 representing the mob's initial alignment.
-1000...-350 Evil
-349...349 Neutral
350...1000 Good
------------------------------------------------------------------------
OEDIT (Object EDIT)
------------------------------------------------------------------------
OEDIT enables you to create new objects for your zone. Just like
rooms and mobiles, the zone number will in the number of hte object.
Therefore object 19020 will be part of zone 190. If you were building
zone 58, you would type medit 5800 to build object 5800.
Extra descriptions on an object are always encouraged. These
descriptions tell what the object looks like when someone looks at it.
This gives the players a more realistic world to be part of. Extra
descriptions on objects are similar to extra descriptions on rooms.
You can even put different keywords on an extra descrtipion so there
is more to look at. Take, for example, a knife. You could first put
an extra description on the knife itself:
The knife is rusting. It appears as though something is written on the
handle.
Then you can put an extra description on the knife using the keyword
"handle" and put the writing on there. This makes players very excited
because they feel though they are in a more cohessive world.
All keys must be flagged !RENT. They must also have the TAKE
and HOLD flag on them. ll items are set to automaticly be taken. If
you don't wish for a particular object, perhaps a fountain, to be taken
simply remove the take flag from the object.
Here are what some of the flags mean:
Type Flag
LIGHT Item is a light source.
SCROLL Item is a magical scroll.
WAND Item is a magical wand.
STAFF Item is a magical staff.
WEAPON Item is a weapon.
TREASURE Item is treasure other than gold coins (i.e. gems)
ARMOR Item is armor.
POTION Item is a magical potion.
WORN Currently not implemented. Do not use.
OTHER Miscellaneous object with no special properties.
TRASH Trash -- junked by cleaners, not bought by shopkeepers.
CONTAINER Item is a container.
NOTE Item is a note (can be written on).
DRINKCON Item is a drink container.
KEY Item is a key.
FOOD Item is food.
MONEY Item is money (gold coins).
PEN Item is a pen.
BOAT Item is a boat; allows you to traverse SECT_WATER_NOSWIM
FOUNTAIN Item is a fountain.
Extra (Effects) Bitvector
GLOW Item is glowing (cosmetic).
HUM Item is humming (cosmetic).
NORENT Item cannot be rented.
NODONATE Item cannot be donated.
NOINVIS Item cannot be made invisible.
INVISIBLE Item is invisible.
MAGIC Item has a magical aura and cannot be enchanted.
NODROP Item is cursed and cannot be dropped.
BLESS Item is blessed (cosmetic).
!GOOD Item cannot be used by good-aligned characters.
!EVIL Item cannot be used by evil-aligned characters.
!NEUTRAL Item cannot be used by neutral align characters.
!MAGIC USER Item cannot be used by the Mage class.
!CLERIC Item cannot be used by the Cleric class.
!THIEF Item cannot be used by the Thief class.
!WARRIOR Item cannot be used by the Warrior class.
NOSELL Shopkeepers will not buy or sell the item.
Wear Bitvector
TAKE Item can be taken (picked up off the ground).
FINGER Item can be worn on the fingers.
NECK Item can be worn around the neck.
BODY Item can be worn on the body.
HEAD Item can be worn on the head.
LEGS Item can be worn on the legs.
FEET Item can be worn on the feet.
HANDS Item can be worn on the hands.
ARMS Item can be worn on the arms.
SHIELD Item can be used as a shield.
ABOUT Item can be worn about the body.
WAIST Item can be worn around the waist.
WRIST Item can be worn around the wrist.
WIELD Item can be wielded; e.g. weapons.
HOLD Item can be held (the "hold" command).
Weight
The weight of the object. The weight controls how many strength points
a character must have to take the object, and is used to calculate when bags
and other containers become full.
Cost
The value of the object in gold coins; used by shopkeepers.
Rent Per Day
The cost per day to rent the object in the Reception.
LIGHT (Type Flag 1)
value 0: unused
value 1: unused
value 2: Capacity of light in hours.
0: Burned out light.
-1: Eternal light source.
value 3: unused
SCROLL (Type Flag 2)
value 0: Level at which scroll's spells are cast.
value 1: Spell number 1
value 2: Spell number 2
value 3: Spell number 3
If less than 3 spells are desired, set unused values to -1.
WAND (Type Flag 3)
value 0: Level at which wand's spell is cast.
value 1: Charge capacity of wand (>= 1)
value 2: Current number of charges remaining
value 3: Spell number
STAFF (Type Flag 4)
value 0: Level at which staff's spell is cast.
value 1: Charge capacity of staff
value 2: Current number of charges remaining
value 3: Spell number
WEAPON (Type Flag 5)
value 0: unused
value 1: Number of damage dice
value 2: Size of damage dice
value 3: Weapon type for damage messages, one of:
0 hit/hits
1 sting/stings
2 whip/whips
3 slash/slashes
4 bite/bites
5 bludgeon/bludgeons
6 crush/crushes
7 pound/pounds
8 claw/claws
9 maul/mauls
10 thrash/thrashes
11 pierce/pierces
12 blast/blasts
13 punch/punches
14 stab/stabs
ARMOR (Type Flag 9)
value 0: AC-apply of the armor. Note that the effective change to AC
is this value times a multiplier based on where the armor is
worn. Values >0 enhance the armor class; values <0 damage
the armor class (cursed armor, for example).
value 1: unused
value 2: unused
value 3: unused
POTION (Type Flag 10)
value 0: Level at which the potion's spells are cast.
value 1: Spell number 1
value 2: Spell number 2
value 3: Spell number 3
If less than 3 spells are desired, set unused values to -1.
OTHER (Type Flag 12)
value 0: unused
value 1: unused
value 2: unused
value 3: unused
TRASH (Type Flag 13)
value 0: unused
value 1: unused
value 2: unused
value 3: unused
CONTAINER (Type Flag 15)
value 0: Capacity (max containable weight) of container
value 1: Container flag bitvector (MUST be a numeric bitvector)
1 CLOSEABLE Container can be closed and locked.
2 PICKPROOF Lock on container cannot be picked.
4 CLOSED Container is closed when created.
8 LOCKED Container is locked when created.
value 2: The vnum of the key object that opens this container.
-1 if it has no key.
value 3: Reserved for internal use -- always set as 0.
NOTE (Type Flag 16)
value 0: Language of writing (unimplemented).
value 1: unused
value 2: unused
value 3: unused
DRINKCON (Type Flag 17)
KEY (Type Flag 18)
value 0: unused
value 1: unused
value 2: unused
value 3: unused
FOOD (Type Flag 19)
value 0: The number of hours of hunger satisfied by this food.
value 1: unused
value 2: unused
value 3: Non-zero if the food is poisoned, 0 otherwise.
MONEY (Type Flag 20)
value 0: The number of gold coins in the pile.
value 1: unused
value 2: unused
value 3: unused
PEN (Type Flag 21)
value 0: unused
value 1: unused
value 2: unused
value 3: unused
BOAT (Type Flag 22)
value 0: unused
value 1: unused
value 2: unused
value 3: unused
FOUNTAIN (Type Flag 23)
-----------------------------------------------------------------------
ZEDIT (Zone EDIT)
-----------------------------------------------------------------------
Zedit is how we can use OLC to tell the zone how to behave. This
is designated in a room by room manner. Therefore each zone command that
you edit only takes place in one room, until you move.
To edit or add zone commands you simply go into the room in which
you wish for the zone commands to affect. If you wanted to add zone
commands for room 5850, you would simply go into that room and type zedit.
This brings up a menu similar to the other OLC commands. Suppose you wanted
to load a high priest (5801) into room 5850. You would go into 5850 and
type zedit. Then you would choose N for new command. It will ask you
what number in the commands for that room, you enter 0.
Then it will ask you what command are you going to use. You will
see a menu of commands. In this case, you would enter M to load a mobile
into a room. It will ask you what mobile number, you would then
enter in 5801 for the high priest. Then it will ask you how many
mobiles can exist. If it is a one of a kind mobile, then you enter 1.
This prevents the mobile from loading anywhere else in the game, and also
it prevents it from loading again untill it is dead. Then you would
enter Q to quit the command option menu. You will then be sent back
to the main ZEDIT menu.
If you wanted to load an object onto a mob, you must first tell the
zone file that the mobile will be loading into that room. Then you would
enter N for New command. You will be asked where in the command line
he new command will be located. To load an object onto a mobile, you must
enter in the number which immediatly follows the command which loads the
mobile. The computer will then ask you if the command will be dependant
on the success of the last command. You MUST enter yes. This means
that if the mobile is already loaded, and maxxed, the game will not
loadthe mobile, therefore it will not try to load the object onto the
mobile.
You may wish to have an item load on the ground. This is fine. Not
all equipment has to load onto mobiles. However, you may want there
to be several of these items. It may be a rose in a garden. You would
simply go to the command options menu and tell teh zone file to load
an object into a room. However, the object will continue to load into
the room, until it is maxed. To prevent 50 roses from loading
into the room, simply hit N for new command. It will ask you where
the command should be placed. Use the SAME number as the command
which loads the rose. This will bump the command which loads the
rose down. Then you will be at a command option's menu. Enter R
for remove an object from a room. If no one comes along and gets the
rose, the game will remove it and load another one. This will
prevent build up. ALso use the remove option to remove fountains
before they reload so it will be full after every reset.
It is possible to load objects on any location of a mobile. Even
if the item is flagged for hands, you can use the zone commands to load
it on the mobiles feet.
It is also possible to use the zone commands to load objects into
containers. You put as many objects into a container regardless of the
containers maximum containable weight.
You must use the ZEDIT command to shut or lock all doors. The D
command under the command options menu controls all doors. Don't forget
to actually MAKE a door in the REDIT exit menu. You must enter it
shut/lock commands on BOTH sides of the door for the command to
function properly.
It may become necessary that you delete a command from the command
line. There for hit D for Delete. It will ask you what command to delete,
simply enter then number of the unwanted command.
If you wish to change a command, perhaps to lower the maximum existing
objects, simply hit E under the ZEDIT main menu. You will be asked which
command to edit. Enter in the command that is not of your liking. Using
the edit command to change a command line simply start the command
over, so you could essentially change a command from load a mobile to close
and lock a door, if you so choose to.
----------------------------------------------------------------------------
End Of Handbook
----------------------------------------------------------------------------