[Herne's SMAUG Building Guides]
  [Introduction] [Building Rooms] [Making Resets]
  [FAQ] [Building Objects] [Making Programs]
  [Some of Herne's Ideas] [Building Mobs] [OLC Resources]
 
 

I am also working on making a PDF Version of this page.

This page last updated: Oct 2002
 
 

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:

1.  Getting Started
  • Instazone     • Instaroom     • Reset
2.  The Main Help Files
  • Resetcmds
     » Examples of Resets
  • Wearlocs
  • Doordirs
  • Diggable Exits
 

• Traps
     » Trapsetting — Setting up your trap
     » Trapflags — Setting the trigger
     » Traptypes — Setting the type of trap
     » Traps by Edmond — A new way of setting traps by Edmond from RoD

3.  A Final Word — Wrapping up your area for install
  • Installarea
  • ASET
     » Area Flags — Area-wide flags

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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).

[Back to Top]

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)]

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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

[Back to Top]

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.

[Back to Top]

TRAPS BY EDMOND

Syntax: reset add trap (vnum) [traptype] [charge] {trapflags}
Example. reset add trap 1000 4 10 obj open

VNUM —  

The vnum of either the room or object to be trapped

TRAPTYPE —  

The type of trap. (See TRAPTYPES)

CHARGES —  

The number of charges this trap should contain.

TRAPFLAGS —  

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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.

[Back to Top]

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  ]

[Back To My Homepage][Back to Top]
The entire contents of this page is Copyright ©1997-2007 FoxDesigns