A Guideline for Making Resets
This is intended as a set of guidelines to those
who are just beginning as Builders. Nothing here is written in stone,
this file is based on my experience and the online help files.
Herne the Hunter
Remember that most important command:
SAVEAREA
Please
Note: Many of these help files have been written or rewritten
by the various hard-working Immortals of the Realms of Despair.
Without these people, there would be no need for these guides, nor
would they be nearly as comprehensive as they are now. |
Table of Contents:
The Heart of the System
Without a reset list, an area wouldn't refill itself
when it came time for "repop". The reset list is the file
the MUD uses to set everything in the area back to where it should be,
restocks the mobs, and resets all the doors.
Making a Reset List
Every area MUST have a reset list. Whether you use
INSTAZONE, INSTAROOM or add the resets manually with RESET
ADD is up to you, but an area must have a reset list. Also, any time
you make a new mob, object or exit with a door, you must add a reset
for it or it will not repop when the area resets itself.
The two easy methods of making a reset list; INSTAZONE
and INSTAROOM.
INSTAZONE (Shortform:
INSTAZ)
Syntax: instazone
Syntax: instazone nodoors
Instazone will write (or rewrite) the resets for
the entire area based on the current positions of your mobs and objects.
All you have to do is place each mob in its proper room, wearing what
it should be wearing, carrying what it should be carrying, and objects
in their proper places, or in their proper containers, and doors in
their proper states, (open, closed, locked). It's kind of like taking
a "snapshot" of your proto area, everything will be set on
the reset list as it appears in the area. If you've left a door open,
it will always repop as open. If you've forgotten to add a mob, it won't
appear unless you either manually add it, or do another Instazone. You
may also add the option of "nodoors" and no door resets will
be created.
**NOTE:
This command will wipe out ALL existing
resets! Do not use this command after you have added your own resets
with 'reset add'. The recommended procedure is to use instazone, then
use the 'RESET' command to add any special resets, and NOT use instazone
again.
INSTAROOM (Shortform:
INSTAR)
Syntax: instaroom
Functions the same as instazone, but is room-based
instead of area-based, this command will write (or rewrite) the resets
for the room you are in. This command is most useful for making small
modifications to an existing reset list.
**WARNING:
Both "Instazone" and "Instaroom" have a problem
when it comes to handling nesting objects, ie: objects that repop within
containers on the ground. The best way to handle these objects is to
add them manually with RESET.
RESET
Syntax: reset
list [start] [end] |
(Example: reset list 1 10) |
Syntax: reset
delete [number] |
(Example: reset delete 5) |
Syntax: reset
add (resetcommand) {parameters} |
Syntax: reset
insert (number) [resetcommand] {parameters} |
Syntax: reset
edit (number) [resetcommand] {parameters} |
Syntax: reset
area |
|
This command is used to display, edit, delete, add
and insert resets for your area.
Reset list:
|
List the resets for the entire area
or a range of resets. |
Reset delete:
|
Delete a specific reset or a range
of resets. |
Reset add:
|
Add a reset to the end of the reset
list. |
Reset insert:
|
Insert a reset before a specific
reset number. |
Reset edit:
|
Edit an existing reset. |
Reset area:
|
Reset the area based on defined
resets. |
**WARNING:
The order that resets are in is VERY important. You cannot equip a mobile
with an object before putting the mobile into a room first. Likewise,
you cannot put an object into a container until the container is put
into a room first.
RRESET
Syntax: rreset
list [start] [end] |
(Example: rreset list 1 10) |
Syntax: rreset
delete [number] |
(Example: rreset delete 5) |
Syntax: rreset
add (resetcommand) {parameters} |
Syntax: rreset
insert (number) [resetcommand] {parameters} |
Syntax: rreset
edit (number) [resetcommand] {parameters} |
This command is used to display, edit, delete add
and insert resets to your area in much the same way the reset command
does. However, rreset works in the specific room you are in (which makes
rreset list the most useful aspect of this command).
The Main Help Files
RESETCMDS RESETCOMMANDS
Syntax: reset
edit (number) {commands} |
[edit an existing reset ] |
Syntax: reset
insert (number) {commands} |
[insert a reset before (number)] |
Syntax: reset
add {commands} |
[add reset to end of reset list] |
Commands: |
Description: |
MOB (mobile vnum) {room vnum} [limit] |
[loads a mobile into a room] |
OBJ (object vnum) {room vnum} [limit] |
[loads an object into a room] |
GIVE (object vnum) [limit] |
[gives object to last loaded mob] |
EQUIP (object vnum) {position} [limit] |
[equips object on last loaded mob] |
PUT (object vnum) (object vnum) |
[puts and object into another obj] |
DOOR {room vnum} (door dir) [state] |
[resets a door to a certain state] |
RAND {room vnum} (last door dir) |
[randomizes a range of exits] |
TRAP (vnum) {type} [charges] (flags) |
[sets a trap] |
HIDE (object vnum) |
[hides an object (last object loaded)]
|
Examples using
the RESET Command
Example: |
Description: |
reset add mob 1000 1000 1 |
Loads mob 1000 into room 1000, limit
1 |
reset add obj 1200 1000 5 |
Loads object 1200 into room 1000,
limit 5 |
reset add give 1000 |
Gives object 1000 to the last mob
loaded |
reset add equip 1000
legs |
Gives object 1000 to the last mob
loaded and forces it to wear object on legs |
reset add put 1000
1200 |
Puts obj 1000 into object 1200
Object 1200 must already exist as last object loaded |
reset add door 0 1 |
Close the north door door
must exist |
reset add rand 3 |
Randomize exits n, s, e, w |
reset add hide 1000 |
Hide object 1000 defaults
to last object loaded if object not specified |
For EQUIP position, see WEARLOCS.
For DOOR door dir, see DOORDIRS.
For TRAP setting see TRAPSETTING.
WEARLOCS
Here are the various locations where items may be
equipped:
light |
finger1 |
finger2 |
neck1 |
neck2 |
body |
head |
legs |
feet |
hands |
arms |
shield |
about |
waist |
wrist1 |
wrist2 |
wield |
hold |
dual_wield |
ears |
eyes |
ankle1 |
ankle2 |
back |
face |
|
|
See RESETS and RESETCMDS.
DOORDIRS
When making an exit, the direction can be specified
numerically or as a character. Here is the order of the exits, and their
corresponding bitvector values:
Direction |
Value |
Short |
North |
0
|
N
|
East |
1
|
E
|
South |
2
|
S
|
West |
3
|
W
|
Up |
4
|
U
|
Down |
5
|
D
|
Northeast |
6
|
NE
|
Northwest |
7
|
NW
|
Southeast |
8
|
SE
|
Southwest |
9
|
SW
|
Somewhere |
10
|
?
|
See REDIT,
RSTAT and RESETCMDS.
DIG EXITS
Diggable exits may work two ways:
A. You are digging out a door.
If you intend to just dig out and find a door/trapdoor
or whatever your exit will need three flags at least: "isdoor
closed dig". When a person digs out this entrance, it will
remove the "dig" flag and leave you with a closed door. Your
resets will need to reset the "dig" flag, and this must be
done manually by using:
Syntax: reset bit set door [roomvnum]
<dir> dig
B. You are digging the passage itself.
If you intend to dig out a hole that leads someplace,
you need two flags: "closed dig". When a person
digs this out, it will remove the "closed" flag and leave
the "dig". In your resets you will need to reset the "closed"
flag and this must also be done manually by using:
Syntax: reset bit set door [roomvnum]
<dir> closed
Traps
Traps are a bit unusual most of the following
trap effects can be duplicated with room programs. The only difference
is, room programs can't be disarmed, they don't run out of charges,
and they can't be detected by the "detect trap" spell. Most
builders simply use programs because they're easier to set up to do
specific tasks this is not necessarily a good thing.
TRAPSETTING
Setting a trap is a little tricky.
The Immortal named Edmond on Realms of Despair seems
to have the best ideas on how to make traps, so I'm going to borrow
his ideas for this file.
Edmond says;
Traps as created by "resets" are generally
useless. The problem with this is that even now being able to determine
the level of an object in an area reset, the "reset trap"
code only uses object 31 which is the generic trap. There is
no way to change the level of that particular object without a ogreish
use of mobprograms to mposet it.
What I suggest is this; avoid using the reset command.
Use a trap from your own area set of objects. The v#'s (bitvectors)
determine the type, number of charges, and damage value of a trap
already the reset command just provides an automated way to
set those values. So here we have it already in "help
objectvalues" we have the list of v#'s for traps:
Item Type |
V0 |
V1 |
V2 |
V3 |
trap |
charges |
type |
level |
flags |
V2, or level, would be most accurately defined
as "damage". The damage a trap does is a number in the range
of (v2)d2 (or V2 times 2). The only really cryptic thing left to determine
are the "flags" a trap can have. To simplify this process,
I've added "oset <item> trapflags <flags>" for
items set to trap (This option may only be available on Realms
of Despair). This works very similar to container flags and trigger
flags for levers and switches.
Note: You must always add all the trap flags
you want on each oset. For instance, if you "oset vnum trapflags
room" and then "oset vnum trapflags enter", only the
value for "enter" will be applied to v3 of the item. You
must "oset vnum trapflags room enter".
For further information on setting trap values,
or the applicable values for each of the other v#'s, see TRAPS
BY EDMOND, TRAPFLAGS, and TRAPTYPES.
To sum it all up, to create a trap follow
the following steps:
Steps |
Description |
ocreate <vnum> 31 trap |
makes a copy of ovnum 31, gives
keyword "trap" |
oset <vnum> v0 10 |
sets the number of charges to 10 |
oset <vnum> v1 6 |
sets the trap type to "blinding
gas" |
oset <vnum> v2 200 |
sets the damage from 200-400 |
oset <vnum> trapflags obj
examine |
makes the trap trigger on open or
close. |
For an object trap, whether the object is a container
or not, you need to reset your "trap" into the object you
want to trap. If you want to trap an object on "examine" that's
not a container, you will still need to add the reset via: reset add
put <trapvnum> <object vnum> [limit] (See RESETCMDS)
For a room trap, simply drop the trap, and instaroom.
TRAPS BY EDMOND
Syntax: reset add trap (vnum)
[traptype] [charge] {trapflags}
Example. reset add trap 1000 4 10 obj open
|
The vnum of either the room or object
to be trapped |
|
The type of trap. (See TRAPTYPES) |
|
The number of charges this trap
should contain. |
|
Flags specifying the characteristics
of the trap. (ie: room trap or object trap, what triggers the trap,
etc.)
(Note: You must always specify AT LEAST room/obj in trap
flags) |
Note: The syntax shown in the "reset"
command display is wrong. There is currently no way to increase the
strength of a trap, beyond raising the lower hard level of the area
it is reset in.
See RESETS, TRAPTYPES
and TRAPFLAGS.
TRAPFLAGS
Flags to describe a trap and what triggers it:
Flag |
Description |
ROOM |
Trap is in a room |
OBJ |
Trap is on an object |
ENTER |
Trap is triggered by entering the
room |
LEAVE |
Trap is triggered by leaving the
room |
OPEN |
Trap is triggered by opening |
CLOSE |
Trap is triggered by closing |
GET |
Trap is triggered by getting the
object |
PUT |
Trap is triggered by putting the
object |
EXAMINE |
Trap is triggered by examining
the object |
PICK |
Trap is triggered by picking the
object |
UNLOCK |
Trap is triggered by unlocking
the object |
NORTH |
Trap is triggered by moving north |
SOUTH |
Trap is triggered by moving south |
EAST |
Trap is triggered by moving east |
WEST |
Trap is triggered by moving west |
UP |
Trap is triggered by moving up |
DOWN |
Trap is triggered by moving down |
See RESET, TRAPSETTING
and TRAPTYPES.
TRAPTYPES
Number (v1) |
Description |
Damage Done (default damage is
v2 to 2*v2) |
1 |
Poison gas |
Casts
poison ( Level of spell = v2 ) if poison fails, then it does
the default amount of damage |
2 |
Poison dart |
3 |
Poison needle |
4 |
Poison dagger |
5 |
Poison arrow |
Casts poison only ( Level of spell
= v2 ) |
6 |
Blindness gas |
Casts blindness ( Level of spell
= v2 ) |
7 |
Sleeping gas |
Casts sleep ( Level of spell =
v2 ) |
8 |
Flame |
Casts fireball ( Level of spell
= v2 ) |
9 |
Explosion |
Casts fireball ( Level of spell
= v2 ) |
10 |
Acid Spray |
Casts acid blast ( Level of spell
= v2 ) |
11 |
Electric Shock |
Does default amount of damage (preset
by the MUD) |
12 |
Blade |
Does default amount of damage (preset
by the MUD) |
13 |
Sex change spell |
Casts change sex ( Level of spell
= v2 ) |
See RESETS, TRAPSETTING
and TRAPFLAGS.
A Final Word
When you've finally completed your area you will
need to provide answers to a few questions before your area can be installed
as a regularly loaded area. Some answers will be predetermined for you
and can't be changed without changing the area itself.
Most Builders won't have access to the following
two commands, but it's important for all Builders to know the parameters
needed to complete an area before it is installed.
INSTALLAREA
Syntax: installarea <builder.are>
Example: installarea herne.are
When your area is completed and it has been checked
for errors in programs, spelling, grammar, game balance, etc, then your
game administrator (or you yourself if this is your own MUD) would use
"Installarea" to bring the area into the MUD for mortal use.
Note: This command is not for just anyone
to use it is suggested that only the well-experienced Immortal
use it as once an area is installed it becomes increasingly difficult
to edit it, and any changes made could have a widespread effect on the
MUD.
Installarea will remove all prototype flags, move
the area into the "area" directory, and add the area itself
to the "area.lst" file (found in the area directory) so that
it will be loaded when the MUD boots up. The area is then loaded and
reset as normal.
Once the area is installed, "aset" would
be used to set the required values (see below), and then the area can
be linked into the MUD proper. See Getting
Started "How do I edit an existing area?" for more
information on how to edit an existing (installed) area.
After everything is installed, then you can load
the builder up and remove the vnumbers from the builder's player file,
either by editting the file itself (the best idea), or by assigning
the player vnum ranges from 0 to 0 (ie; rassign <player> 0 0).
It is suggest you do this when the player is offline.
ASET
Syntax: aset {area
filename} [field] (value)
Aset is used to set the following fields for an individual
area:
author
|
The name of the area's author [Builder
Name] |
name
|
The full "name" of an
area... [Builder supplies this] |
filename
|
The filename (ie: somearea.are)
[Usually depends on name of area] |
lo_room
|
The lowest room vnum [Already assigned] |
hi_room
|
The highest room vnum [Already assigned] |
lo_obj
|
The lowest obj vnum [Already assigned] |
hi_obj
|
The highest obj vnum [Already assigned] |
lo_mob
|
The lowest mob vnum [Already assigned] |
hi_mob
|
The highest mob vnum [Already assigned] |
low_economy
|
Minumum amount of gold the area
will start with at reboot |
max_economy
|
Maximum amount of gold the area
_can_ start with at reboot |
softrange
|
The level range the area is intended
for [Example: 1 - 10] |
hardrange
|
The enforced level range (if any) |
resetmsg
|
Message displayed throughout the
area at reset |
resetfrq
|
Number of minutes between area resets
[Default is 20] |
flags
|
Area-wide flags [Example:
nopkill] |
Area-wide flags include;
Area Flag |
Description |
FREEKILL |
Players can pkill in area without
triggering illegal pkill warnings. |
SILENCE |
Entire area is silent. |
NOWHERE |
Players can not see where other
players are in the area. |
HIDDEN |
Area will not appear on the "areas"
list. |
NOSUMMON |
Mobs and players can not be summoned
out of the area. |
NOPKILL |
Deadly players are not able to
enter the area. |
NOTELEPORT |
Players can not teleport into the
area. |
SPELLLIMIT |
*Not currently operational* |
NOHOVER |
Disallows fly throughout the area. |
NOLOGOUT |
Cannot quit within the area. |
NOPORTALIN |
Cannot portal into the area. |
NOPORTALOUT |
Cannot portal out of the
area. |
NOASTRAL |
Players can not astralwalk (or
similar spells) into the area. |
NOFOLD |
Cannot fold the area. |
ORDER |
Denotes the area as a Order HQ
in the area list. |
CLAN |
Denotes the area as a Clan HQ in
the area list. |
GUILD |
Includes the area as a guild HQ. |
NATION |
Denotes the area as a Nation hometown
in the area list. |
NOLOGIN |
Does not allow logging in within
an area. |
Builders should be ready to supply the following
information when your area is to be installed;
1. |
The name of the Area (Example:
The Castle of Rasputin) |
2. |
The suggested soft level range (Example:
20 - 40) |
3. |
A suggested unique filename (Example:
rasputin.are) |
4. |
A resetmsg [70 char limit] (Example:
Maniacal laughter echoes through the ancient castle.) The default
resetmsg is "You hear some squeaking noises" |
5. |
Your resetfrq [Newbie areas would
reset faster than Av areas.] |
[ Rooms
] [ Objects ] [ Mobs ] [ Resets ] [ Programs ] [ Resources ] [
FAQ ]
The entire
contents of this page is Copyright ©1997-2007 FoxDesigns
|