Building on Ack!mud - Part #3.  Updated 10/21/98 
by Kobaan@CiP (Chaos in Paradise)
original builder files from Michlotixlan@AA (Ancient Adventures)

**** MEDIT AND MOBILES ****

You can either edit an existing mobile by typing "medit <vnum>", or you can
create a new mob using "addmob <vnum> <keyword>".  Just as with rooms 
you can type "list" to see how the object is built.  As usual, things are
different about mobiles, and are discussed here.

Mobile Basics

Mobiles is the longer and more proper way of saying "mob".  Mobiles are
different from objects in that they are capable of reacting in various
ways.  Usually, mobs are placed in ackmud as things to be killed for
experience, but not always.

When an mobile is first created, a keyword must be supplied with the object.
You can change the keyword using the command "name <keyword>".  You can also
give the mob several keywords using the command
"name <keyword1> <keyword2> <keyword3> ...ect".  Remember, ALL keywords must 
be included whenever you change the keyword(s), otherwise previous keywords 
will be lost.
Example- You use the following command to name the object: 
         name evil goblin
         These are but some of the commands players can use to interact with 
         the mob:   kill goblin;  look evil
!!!WARRNING!!! - Do NOT use color in the keyword.  It is incorrect and will 
                 confuse players.

You can set the level of the mob with the simple and almost obvious
command:  "level <level>"
This primarily determines how difficult the mob will be.

You then need to set the short and long descriptions.  The short description 
is the one seen by players in combat.  You should include the keyword(s) in 
this description, otherwise players will have a hard time interacting with 
it.  "short <description you want>" sets this descrip.  Players see long 
descriptions when the mob is in the current room.   You can set this using 
"long $edit".  You will then go into the text editor where you can edit this
description.  It is necessary to format the description properly, otherwise 
cloaks and shields may appear incorrectly, and several incorrect descriptions
may actually appear all on the same line!  Avoid this problem by using 
long $edit.   It may be somewhat acceptable to not include the keyword(s) 
in the long descrip if you want.

"align <number>" sets the alignment (1000 to -1000) of the mob.  When players
kill this mob, their align may change if the alignment isn't 0.

Race is set with a number, i.e. "race 0" generally sets it to Human.

Sex should be obvious.

Class affects what skills and spells may be used by the mobile if it gets
charmed, or otherwise affected by players.

"hr_mod" and "dr_mod" can be used to affect the hitroll and damroll of the 
mob respectively.  The higher it is, the harder the mob is.

"ac_mod" can be used to affect the armor class of the mob.  Remember, this 
value should be negative for a more powerful ac.

Mob Flags - simply type in the flag's name to toggle it.
is_npc      Label the mob as a npc *Do not remove!*
sentinel    Mob stays in the same room, instead of wandering
scavenger   Mob picks up items laying around
remember    Mob will attack players that have attacked it before
no_flee     Players cannot flee from this mob
aggressive  Mob will attack players on sight
stay_area   Mob will not leave the area it's in
wimpy       Mob will flee if low on hitpoints
pet         Labels it as a pet, to be put in a pet room
train       Mob can train players, and let them gain levels
practice    Players can practice skills from this mob
mercenary   Mob can be hired to attack other players (not working in 4.3)
heal        Mob heals itself up when low on hitpoints
adapt       Mob will adapt weapons it finds (broken)
undead      Mob is undead, and won't attack other vamp players
bank        Banker will take players' money for safe keeping
no_body     Mob is immune to certain physical attacks
hunter      Mob will hunt down players if they flee
no_mind     Mob is immune to certain mental attacks
postman     Will take messages and deliver them to the mudmail system
rewield     Mob will equip itself with weapons
reequip     Mob will equip itself with armor
intelligent Makes mob react in intelligent ways (broken)
vampire     Mob leaves behind no corpse (great for shopkeepers)
breeder     Mob multiplies to make more of itself
solo        Mob is harder to kill
werewolf    (broken)
mount       Mob can be riden on with mount skill
no_blood    Mob cannot be bloodwalked to, or fled upon

Affected by - again, just type in the affect you want the mob to have.
The names should be evident.  If you don't know what these affects do, 
you need to play the game more.

Skills -  Type in "skills" by itself to list all the skills the mob can use.
Then type "skills <skillname>" to add it.  You can remove it from the mob 
by typing in the skill again.

Cast -  Type in "cast" by itself to list all the spells the mob can use.
Then type "cast <spellname>" to add it.  You can remove it from the mob 
by typing in the cast again.

Magic reals (4.3) - Same deal.  Aren't these toggleable flags great?


SHOPKEEPERS
Setting up shopkeepers can be kinda tricky.  But here's how to make them:
Shop trade0 <type>  The key to making a shopkeeper is to set this. 
Make <type> an object type.  The mob will then deal with then become a 
shopkeeper, dealing in those types of objects, and will buy those object 
types.  If you want more types, just use trade1, trade2, trade3, and trade4.

shop openhour <number> signifies the hour the mob opens its shop.
shop closehour <number> signifies the hour the mob closes shop.  Hours go 
from 0 - 23, so if you set them 0-23 then it'll be open all the time.

shop profbuy <number> shows how much the mob will increase the base price
to make a profit when a player buys an item.  Should always be more than 100.
shop profsell <number> shows how much the mob will pay a player if they 
try to sell an item.  Should always be less than 100.
Remember, these numbers are a percent, with 100 being the base price.

Then give the mob the items it should sell with room resets.


PET STORES
First make a room for the shopkeeper.  Add a shopekeeper mob.  Then make 
the next room vnum (vnum + 1), flag it PET, and load charmed mobs in that 
PET room that will be sold as pets.  The shopkeeper in the previous room 
will sell the pets from this PET room :)


SPECFUNS
You can give the mob a special ability with spec.  Type "spec" by itself
to see the list, and then type (for example) spec spec_breath_any.
spec_breath_***   Mob uses a breath weapon, potentially destructive to player eq :(
spec_cast_adept   Spams the room with healing spells, and mana flare and healing light
spec_cast_cleric  Mob casts cleric spells (?)
spec_cast_judge   (broken)
spec_cast_mage    Mob casts mage spells (?)
spec_cast_undead  Mob casts undead style spells
spec_executioner  Mob attacks wanted players on-sight
spec_fido         Devours corpses, leaving equipment on the ground
spec_guard        Mob assists in killing wanted players
spec_janitor      Cleans up discarded equipement on the ground
spec_mayor        Mob shouts annoying things across the area
spec_poison       Mob bites to poison
spec_thief        Will steal gold from players (!)
spec_policeman    Similar to guard
spec_cast_cadaver Mob in moribund, to cast sight on players who've been killed
spec_rewield      Outdated by the MOB_FLAGS
spec_cast_bigtime Mob casting ability increased
spec_wizardofoz   (broken)
spec_vamp_hunter  Used to be used for Intelligent mobs, but now broken
spec_mino_guard   Mob will attack people without a mino pass
spec_tax_man      Mob teleports around, stealing money from players
spec_stephen      The wandering faerie, teleports around healing players :)



ROOM RESETS
Room resets are very important to auto-load mobs and objs into an area.
"showresets" shows all the resets in the room.
Then use "addreset" to add a room reset.
addreset mob   <vnum> <limit> - Loads a mob, limit is total mobs for the area
addreset obj   <vnum> <limit> - Loads an object, limit is total in the room
addreset give  <n.mob-vnum> <obj-vnum> - Give a mob an object
addreset equip <n.mob-vnum> <obj-vnum> <location> - Give and wear the object
addreset door  <dir> <state> - can force a door "open" "close" or "locked"
addreset rand  <num-dirs> - Use to randomize directions, like in moribund
addreset message <min_lev> <max_lev> <text> - ***BROKEN*** Do not use!


ADVANCED COMMANDS
High level builders will have access to more commands for setting up areas:
showarea - shows the current state of the area.
makearea <filename> <vnums>   Use this command to allocate an area. 
                              The filename should have a .are extension.
                              You type in how many <vnums> you want the area to 
                              have, and it will automatically find a vnum set 
                              to accomodate this.
setarea <type> <string> Very useful for setting up an area.  Type "setarea"
                        by itself to see a list of things you can change, and
                        then see the changes with "showarea".
owner       <name>     The owner's name to be shown on areas all, or alist  
read        [-]<name>  Who can see the area in the builder
write       [-]<name>  Who can change the area in the builder
gold        <amount>   Broken, don't change
title       <string>   The title of the area, shown on areas all, where, alist
payarea     Yes/No     Broken, don't change
min         <min_vnum> Change the minimum vnum *dangerous to change*
max         <max_vnum> Change the maximum vnum *dangerous to change too*
teleport    Yes/No     Players can, or can't teleport into this area
building    Yes/No     Disables ceratin things while under construction
show        Yes/No     Area won't show on the areas list
room_spells On/Off     Bad room spells (seal, mana drain) can or can't be used
min_level   <level>    Minimum level to be shown on areas list
max_level   <level>    Maximum level to be shown on areas list
level_label <label>    The levels {XX XX} to be shown on the areas list
keyword     <keyword>  A keyword for easy finding, is broken
repop_rate  <ticks>    Less = faster repops, more = slower repops
message     <message>  The message seen in the area during a repop
offset      <vnum>     VERY BROKEN, do NOT use!