The following Smaug mobprogs have been graciously donated by Shalarra of Edge of Creation. Smaug mobprogs are not that different in structure from ROM mobprogs, so you may wish to use the mobprog guide as a general document.

For those unfamiliar with Smaug, the groupings of three letters (pur, ora, bro and lbl) are colour codes, standing for purple, orange, brown, and light blue. If prefixed by an underscore (_pur), the string will appear purple. If prefixed by an asterisk (*pur), the string will appear purple and blink. The mpsleep command is from a snippet, allowing a mobprog writer to add a pause without having to use delays.

I'm displaying these exactly as they were sent to me, with the exception of indentations to make if-else-endif statements easier to follow.

Quick Table-of-Contents

  1. Simple mobprogs
  2. Tilzari the Fortune-Teller
  3. The Temple of Mal-Hodi
  4. The Frog Prince
  5. The Stranded Family
  6. Morgan the Craftsman

Simple Mobprogs

These first three are simple speech progs; the first two are duplicate progs, telling the player what those tasty-looking blue berries are for. Duplication like this is important sometimes; you wouldn't want someone to miss an important clue about a quest if they ask about "the gold mines", but the trigger is for "the gold mine". Anyway, the third prog is apparently for a flirt.

1>speech_prog 100 berry
say Oh, you mean the light blue ones from the garden?
mpsleep 3
mpecho _lbl He continues, "Those are sanctuary berries. They will help you stay safe."
2>speech_prog 100 berries
say Oh, you mean the light blue ones from the garden?
mpsleep 3
mpecho _lbl He continues, "Those are sanctuary berries. They will help you stay safe."
4>speech_prog hello
say Hello to you, $n. I like you.
lgrin $n
wink $n

These next three are more simple ones; the first deals with a dying mob. It loads some objects into the room upon death. The second is a greet prog, and the third is a little prog for a dolphin. No, they're not exciting here, but they make MUDs come alive ^.^

3>death_prog 17
mpoload 210508 100
mpoload 210506 99
1>greet_prog 95
nod
tell $n I'll be out of your way soon.
3>rand_prog 1
mpecho The lively dolphin splashes you with water to get your attention.

Shalarra told me that she often uses tells instead of says, and mpechoat instead of mpecho, so that the room isn't spammed for every entry to the room. Good idea, I think, especially for progs like this.

1>act_prog p from the north.
growl
mpechoat $n The creature looks at you with menacing glee in his eyes.
tell $n What fool is this who walks in and volunteers?
muhaha
tell $n Come here, $n, I have something special for you!
wield hook
grin $n

Here's an interesting twist: using a roomprog as a mobprog. It can go the other way (mobprog being used as a roomprog), but that requires some fancy maneuvering and mobs with no long desc. This prog is for players who pick up everything - and tries to teach them a lesson. If Jeremy (an NPC) is in the room, he attacks the player. Otherwise, Avalon (I assume that's her name) will just whine a bit.

Name: Master Bedroom. Vnum: 40419.

1>act_prog p gets the rainbow cloak.
if mobinroom(40425)==1
  mpforce avalon say Jeremy, that person took my cloak!
  mpforce jeremy tell $n First you barge into our private room and now you steal my wife's cloak!
  mpforce jeremy tell $n It appears you must be taught a lesson!
  mpforce jeremy mpkill $n
  else
    mpforce avalon say Oh, dear! First my Jeremy is killed, and now that person took my cloak!
    mpforce avalon say This is just miserable! Oh, Jacob...Jack! Where are you?
endif

Back to top


Tilzari the Fortune-Teller

All of these mobprogs revolve around Tilzari, who is a fortune-teller. They are good examples of some complexity and good use of variables. Tilzari's predictions seem to be quite accurate. Unfortunately for those who visit her, the future is based on how much silver she's paid (ouch!).

Tilzari's standard greeting to anyone who enters her place of business; she doesn't let anyone know how much she wants for her services, though. Perhaps it's posted on a sign outside?

1>entry_prog 100
mpechoat $n _pur Tilzari smiles wryly and looks up from her cards at you.
mpforce Tilzari tell $n I've been waiting for you, $n.
mpforce Tilzari tell $n For a small fee I can tell you things that you want to know.
mpforce Tilzari lgrin $n

Oh, a romantic stranger ... not a bad deal for 100 silver.

3>bribe_prog 100
card $n
tell $n You will be visited soon by a romantic stranger.
lgrin
mpforce $n smile

Tilzari is a bit unhappy with a mere 200 silver coins - and predicts illness. I wonder if it'll come true ... ?

2>bribe_prog 200
card $n
mpechoat $n Tilzari studies the card that you have drawn.
tell $n You will be stricken with an illness soon.
tell $n It will be painful and will harm you.
tell $n You will need to return to me so I can remove the illness from you.
mpforce $n bow Tilzari
mpecho Leaving through the door, $n looks as if $e has just wasted $s money.

This one predicts several things about a player. Could be any player. Well, any player who wants to pay 250 silver to hear this.

1>bribe_prog 250
card $n
mpechoat $n Tilzari studies the card you have chosen.
mpechoat $n She looks at you and ponders for a minute.
sigh
tell $n You will wander these lands for a very long time.
mpsleep 5
tell $n You will meet many new friends and enemies.
mpsleep 6
tell $n You will gain great stature and will be equipped with the finest.
mpsleep 7
snicker
tell $n You will always wonder why you have paid me to tell you this.
lgrin $n

The illness that Tilzari predicted strikes with little warning to the player. A warning is flashed in orange (*ora). The damage done is dependent on how many maximum hit points the player has. It is never enough to outright kill the player, fortunately. At the end, the player is forced to kneel (how humbling), and Tilzari calls the act prog to heal the player.

3>act_prog p bows before Tilzari.
mpechoat $n You leave out the door to the east wondering if Tilzari's words are true.
if hps($n) >= 500
  mpdamage $n 150
  else
    if hps($n) >= 100
    if hps($n) < 500
      mpdamage $n 25
      else
        if hps($n) <= 25
          mpdamage $n 10
        endif
    endif
    endif
endif
mpechoat $n *ora You suddenly feel very ill!
mptrans $n 33221
mpat $n mpforce $n look
mpat $n mpechoat $n You stagger back into the door of Tilzari's house.
mpecho Back into the door staggers $n, looking pretty ill!
mpat $n mptrans $n 33311
mpforce $n look
mpforce $n kneel

A simple act prog, it's how Tilzari cures a player who has become stricken with that illness.

4>act_prog p kneels
smile $n
mpechoat $n Tilzari waves her hand over you and you feel much better!
c heal $n
c heal $n

This is the program for the romantic stranger. If the player has a female character, a man will appear; if the player has a male character, a woman will appear. Kisses follow (yay).

2>act_prog p smiles happily.
if sex($n) == 2
  mpmload 33117
  mpechoat $n Without warning, a mysterious and very handsome stranger appears!
  mpforce $n look
  mpechoat $n He looks deeply into your eyes.
  mpforce stranger kiss $n
  mpforce stranger bow $n
  mpechoat $n As quickly as he appeared, the stranger disappears through the door.
  mppurge stranger
  else
    if sex($n) == 1
      mpmload 33118
      mpechoat $n Without warning, a mysterious and very sensual lady appears through the door!
      mpforce $n look
      mpechoat $n She smiles seductively and looks deeply into your eyes.
      mpforce sensual kiss $n
      mpechoat $n She touches your face with her fingertips...
      mpechoat $n As quickly as she appeared, the beautiful stranger disappears from your life.
      mppurge sensual
    endif
endif

Back to Top


The Temple of Mal-Hodi

These mobprogs relate to the Temple of Mal-Hodi. This first one is set to either allow or deny entry to the Temple. If a player is devoted to any deity other than Mal-Hodi or Faelle, he is turned away from the Temple. If no deity has been chosen, or if the player is devoted to Mal-Hodi or Faelle, entry is granted.

if deity($n) == Mal-Hodi
or deity($n) == Faelle
  mpforce guard tell $n Welcome to the Temple of Mal-Hodi, $n.
  mpforce guard tell $n Those who follow the ways of balance are at home here.
  else
    if deity($n) != Mal-Hodi
    or deity($n) != Faelle
      mpforce guard tell $n I am sorry, $n. You do not follow the ways of Balance.
      mpforce guard tell $n You will not be allowed in the Temple of Mal-Hodi.
      mpechoat $n You feel terribly disoriented...as if you are floating!
      mptrans $n 33600
      mpat $n mpforce $n look
      else
        mpforce guard tell $n Welcome, $n. You have not chosen to devote to a god as yet.
        mpforce guard tell $n May your visit to the Temple of Mal-Hodi help you decide.
        mpforce guard tell $n May your heart find the way of Balance as you explore.
    endif
endif

This prog is to determine if the player has proven his devotion to Mal-Hodi or Faelle through the finding of certain tokens in a test. Druids must devote to Faelle, while everyone else is devoted to Mal-Hodi. Once properly devoted, a pair of presumably magical boots are given to the player. Huge number of if-else-endif statements here, but they flow pretty simply. The first two groups of three check hints that the player doesn't have all the requisite tokens, the next group of three rewards the player for having gotten the tokens.

if ovnumhere(33645) < 1
if ovnuminv(33639) == 1
if ovnuminv(33641) < 1
  tell $n Do you have another token from your second test, $n?
  tell $n If you have not yet obtained the token from the second test please say no.
endif
endif
endif
if ovnumhere(33645) < 1
if ovnuminv(33641) == 1
if ovnuminv(33639) < 1
  tell $n Do you have another token from your second test, $n?
  tell $n If you have not yet obtained the token from the second test please say no.
endif
endif
endif
smile $n
if ovnumhere(33645) < 1
if ovnuminv(33639) == 1
if ovnuminv(33641) == 1
  mpjunk token
  mpjunk token
  if deity($n) == Mal-Hodi
  or deity($n) == Faelle
    mpoload 33645 15
    give boots $n
    tell $n These boots may only be worn by those who have proven themselves as you have.
    tell $n Wear them with pride, ever to remind you that the Balance must be preserved.
    else
      if class($n) == druid
        mpforce $n devote Faelle
        mpoload 33645 15
        give boots $n
        tell $n These boots may only be worn by those who have proven themselves as you have.
        tell $n Wear them with pride, ever to remind you that the Balance must be preserved.
        else
          mpforce $n devote Mal-Hodi
          mpoload 33645 15
          give boots $n
          tell $n These boots may only be worn by those who have proven themselves as you have.
          tell $n Wear them with pride, ever to remind you that the Balance must be preserved.
      endif
  endif
endif
endif
endif

Back to Top


The Frog-Prince

This next set of mobprogs is for a frog, who was once a handsome prince. In the first prog, if the player's character is male, the frog simply sighs. Otherwise, he'll tell his short story and ask for a kiss.

1>act_prog p from the east.
say ribbitt
if sex($n)==1
  mpechoat $n The large green frog looks at you, sighs deeply, and closes his eyes.
  else
    mpechoat $n The large green frog looks at you and his eyes open wide.
    tell $n I know this is hard to believe, but I'm really a prince.
    chuckle
    tell $n Will you please kiss me and release me from this frog curse?
    mpechoat $n The frog looks at you with pleading eyes.
endif

If the player does decide to kiss the frog, this roomprog fires, and the frog undergoes a miraculous transformation to a handsome prince.

1>act_prog p kisses a large green frog.
mpecho The frog seems to be undergoing a marvelous transformation!
mpecho He has gotten very handsome and commands admiration!
mpecho You are overwhelmed with respect for this ....frog?
mpechoat $n You feel humbled in his presence and feel a need to bow.
mppurge green
mpmload 40402
mpforce $n look

This roomprog is active all the time, checking to see if both the frog and the prince are in the room. If so, the prince is purged away.

2>rand_prog 100
if mobinroom(40402)>=1
if mobinroom(40401)>=1
  purge prince
endif
endif

Once the frog has turned back into the prince, he shows his thanks with a ring, and heads back to his castle.

1>act_prog bows
bow $n
say Thank you, $n, for freeing me from that tormenting curse.
say As a reward, I will give you this ring.
mpoload 40401 40
give ring $n
smile $n
wave $n
mpechoat $n The handsome prince quickly leaves to return to his castle.
mpgoto 40401

Back to Top


The Stranded Family

These next progs are for a father, whose wagon has broken down, and for the blacksmith who can fix the wagon's wheel. The father can't leave his family to get the wheel fixed, so the ever-heroic player has the option of helping the family.

1>speech_prog hello
tell $n Hello, $n. Would you please help us? Our wagon wheel broke.
tell $n My wife isn't feeling well, and my son is not quite right in the head, so I can't send him.
tell $n If you would be so kind as to take our wheel with you to the blacksmith at the academy...
mpechoat $n he continues, "He knows us and I'm sure he would bring it to us when he's fixed it."
tell $n I know it's a lot to ask, but we're in a pretty big mess here, and we sure could use your help.
mpechoat $n _lbl He looks at you with pleading eyes.
mpechoat $n _pur What will it be? Yes ...or No?

These roomprogs are for the player's answer, and are fairly straightforward.

1>speech_prog no
mpsleep 5
mpechoa $n _lbl The man looks down sadly and says, "I understand, and thank you anyway."

2>speech_prog yes
mpforce father smile $n
mpforce father tell $n Thank you so much!
mpforce father mpoload 210517 30
mpforce mother smile $n
mpforce father give wheel $n
mpforce father tell $n The blacksmith is just inside of the Academy grounds. He has a little shop there.
mpforce father tell $n Thank you again, $n!

The blacksmith's progs are here; in the first one, it depends on if the player is the only one in the room with the blacksmith to see if he'll greet the player. Otherwise, he simply smiles (presumably occupied with another customer?).

1>act_prog p from the east.
if ispc($n)
if mortcount(210644)==1
  mpecho _bro Karl looks up from his work and smiles at you.
  smile $n
  tell $n Can I help you?
  else
    smile $n
endif
endif

Ah ... the wheel. Karl the blacksmith recognises it and willingly fixes it. He then gives the player a hammer. I know why, but I refuse to spoil the surprise (go play the MUD to find out).

2>act_prog p gives you A Broken wagon Wheel.
mpecho _bro Karl looks at the broken wheel and his face lights up with recognition.
tell $n I know where I've seen this! It belongs to my friends that just left for the market!
tell $n Well, it appears they've broken down on the road again..
tell $n That figures...that old wagon is really falling apart!
tell $n Thank you, $n, for bringing me the wheel. I'll fix it up and take it to them.
smile $n
tell $n Let me give you something for your trouble. You never know when you might need it.
smile $n
mpoload 210554 85
give hammer $n
tell $n Good luck to you on your travels!
wave $n

This is for the father, and is the first prog triggered - a simple greeting to players who arrive from the southwest. It brings about an interesting thought - if you've an idea for a good prog-made quest, write that first, and worry about the little details later (like actually introducing the quest ^^;).

3>act_prog p from the southwest.
mpforce father tell $n Hello, stranger.

Back to Top


Morgan the Craftsman

This last mobprog is for someone named Morgan, who is a "craftsman" living in a cave in the middle of some dangerous mountains. If the player gives him a certain piece of armour (vnum 400232), he'll offer to change its alignment, if he can have another of the same kind. Otherwise, the player can just say "not yet" and Morgan will return the armour.

if ovnuminv(400232)==1
  tell $n Very nice protective device. If ye give me another one I can change its alignment.
  mpsleep 3
  tell $n If you don't have another just say NOT YET and I'll return this one to ye.
  tell $n If ye DO have another and want it changed just give it to me now and I'll fix it up.
endif
if ovnuminv(400232)==2
  mpjunk armor
  mpjunk armor
  tell $n Ah, yes, I can fix ye right up here. Just give me a minute.
  mpsleep 4
  mea $n Morgan chants a few secret words as he works over the item.
  mpsleep 4
  tell $n Yes! This will do just fine!
  mpsleep 3
  smile
  mpoload 400233 100
  give armor $n
  mpsleep 3
  tell $n There ye go, young adventurer. May it serve ye well!
endif

Back to Top