Main Page
How To Build Mob Programs
Area Building Docs

Mob Program Examples



EXAMPLES

--------



Here are some MOBprograms I have been using to test this release. The

mobiles are from midgaard.are in the stock ROM 2.4b2.



---------------------------------------------------------------------------

#MOBILES



---------------------------------------------------------------------------

1. The baker has two triggers, the other is to greet all characters who

   enter the shop and the other to react to phrase "fine day" when

   spoken aloud in the shop. See programs #3001 and #3002 in the #MOBPROGS

   section.



---------------------------------------------------------------------------

#3001

baker~

the baker~

The baker looks at you calmly, wiping flour from his face with one hand.

~

A fat, nice looking baker. But you can see that he has many scars on his

body.

~

human~

ABV 0 900 0

23 0 1d1+999 1d1+99 1d8+20 beating

-15 -15 -15 -15

CDF ABCD 0 0

stand stand male 500

0 0 medium 0

M grall  3001 100~

M speech 3002 fine day~

---------------------------------------------------------------------------



2. The fido has several triggers related to fighting. When attacked, the fido

   will activate program #3062. Every combat round there's a 75% chance that

   the fido will call program #3063. The fido is cowardly, so when its hit

   point percentage falls below 70% it will try to surrender to the attacker.

   When the fido dies, it will call program #3064. However, if the attacker

   surrenders to the fido, the beast will call program #3071



---------------------------------------------------------------------------

#3062

fido dog~

the beastly fido~

A beastly fido is here.

~

Fido is a small dog that has a foul smell and pieces of rotted meat hanging

around its teeth.

~

fido~

AFGHU 0 -200 0

0 0 1d6+4 1d1+99 1d4+0 bite

10 10 10 10

0 0 0 0

stand stand either 0

0 0 small 0

M kill  3062 100~

M fight 3063 75~

M hpcnt 3072 70~

M death 3064 100~

M surr  3071 100~

---------------------------------------------------------------------------



3. This vagabond reacts to being given a "ring" (for no particular reason)

   and to receiving some money (more than 10 silver). Keyword "ring" could

   be replaced with an object vnum.



---------------------------------------------------------------------------

#3063

vagabond~

the vagabond~

A vagabond is here, looking for victims.

~

He looks pretty mean.

~

human~

ACS 0 -200 0

5 1 2d6+60 1d1+99 1d6+1 punch

7 5 5 10

BJNQ 0 0 C

stand stand male 18

0 0 medium 0

M give  3003 ring~

M bribe 3004 10~

---------------------------------------------------------------------------



4. This drunk demonstrates REMEMBER and DELAY actions. When someone enters

   the bar, the drunk will activate program #3066. When the delay timer

   of the drunk expires, it will execute program #3067.



---------------------------------------------------------------------------

#3064

drunk~

the drunk~

A singing, happy drunk wanders around, singing about Moria.

~

A drunk who seems to be too happy, and to carry too much money.

~

human~

AG 0 400 0

2 -1 2d6+22 1d1+99 1d6+0 beating

8 8 8 10

U 0 0 C

stand stand male 65

0 0 medium 0

M greet 3067 100~

M delay 3068 100~

---------------------------------------------------------------------------



5. The shopkeeper is greets customers as they leave his shop (south, exit

   number 2).



---------------------------------------------------------------------------

#3070

shopkeeper old man~

the ancient potion-brewer~

An old man eyes you greedily.

The old man says, 'Would you like to buy a nice love potion?'

~

He looks very dangerous.  I wouldn't try to rob him.

~

human~

ABQRV DEF 1000 0

32 0 1d1+999 1d1+999 10d10+10 magic

-15 -15 -15 -15

FGH ABCD 0 0

stand stand male 5000

0 0 medium 0

M exit 3070 2~

---------------------------------------------------------------------------



#MOBPROGS



---------------------------------------------------------------------------

1. The baker will greet people arriving to his shop. This particular baker

   is a real casanova and will pay special attention to ladies.



---------------------------------------------------------------------------

#3001

if isimmort $n

  say Greetings, master $N!

  bow

else

  if sex $n < 2

    say Hello! How may I serve you?

    chuckle

  else

    say Good day, milady! How may I be of help today?

    wink

  endif

endif

~

---------------------------------------------------------------------------



1. This program demonstrates 'affected' if_check.



---------------------------------------------------------------------------

#3002

if affected $n flying

or affected $n haste

  say My, aren't you in a hurry!

endif

say Yes, it's a splendid day, isn't it?

smile

~

---------------------------------------------------------------------------



2. When given a ring, the vagabond will return it to the giver.



---------------------------------------------------------------------------

#3003

say What do you want me to do with this?

give $o $n

~

---------------------------------------------------------------------------



2. When the vagabond is given more than 10 silver, it checks if the

   giver is below lvl 5. If so, the vagabond will try to rob the

   kind soul!



---------------------------------------------------------------------------

#3004

if sex $n < 2

  say Thank ye, kind sir!

else

  say Thank ye, milady!

endif

if level $n < 5

  say Since you have money in abundance, let me share your wealth!

  mob kill $n

endif

~

---------------------------------------------------------------------------



3. When the fido is attacked, it will simply emote something:



---------------------------------------------------------------------------

#3062

emote yelps in anger!

~

---------------------------------------------------------------------------



3. Every round of combat the fido will make noise. Note the separate

   commands for echoing to the opponent and to the room.



---------------------------------------------------------------------------

#3063

mob echoat $n $I barks and snarls at you!

mob echoaround $n $I barks and snarls at $n!

~

---------------------------------------------------------------------------



3. A nasty surprise! When the fido is killed, it will explode, causing

   minor and non-lethal damage to everyone in the room. The emote is

   necessary since mob damage will not echo anything.



---------------------------------------------------------------------------

#3064

emote explodes!

mob damage all 5 10 nokill

~

---------------------------------------------------------------------------



3. When someone surrenders to the fido, it is amused:



---------------------------------------------------------------------------

#3065

laugh

growl

~

---------------------------------------------------------------------------



3. This is what happens when the fido's hit points fall below 75% of the

   maximum:



---------------------------------------------------------------------------

#3066

whimper

surrender

~

---------------------------------------------------------------------------



4. Ok, this is the most complex of all the examples here.

   When the drunk sees someone enter, it will check if it already has

   a target (someone else has activated the delay timer). If it doesn't

   have a target, it will choose the person who activated the trigger

   (mob remember) and set the delay (mob delay 5).



---------------------------------------------------------------------------

#3067

if isdelay $i

  break

else

  mob echoat $n $I rises and begins to wobble towards you...

  mob echoaround$n $I rises and begins to wobble towards $N...

  mob remember $n

  mob delay 5

endif

~

---------------------------------------------------------------------------



4. This program activates 5*PULSE_MOBILE after the previous program.

   The drunk will check if the target is still present (hastarget).

   If the target ($q) is in the room, the drunk will be sick all over the

   poor sod. Finally, the drunk will forget the target and begin to wait

   for another victim.



---------------------------------------------------------------------------

#3068

if hastarget $i

  puke $q

  say S-sorry, matey...

  hiccup

else

mob forget

endif

~

---------------------------------------------------------------------------



5. This demonstrates exit trigger. As exit trigger blocks the exit, the

   mobile has to transfer the character outside the shop (location 3046).



---------------------------------------------------------------------------

#3070

if money $n > 10000

  say Do come again anytime, $N!

else

  say Come back when you've got more money!

endif

mob transfer $n 3046

~

---------------------------------------------------------------------------



   MOBROGS section is terminated with:



---------------------------------------------------------------------------

#0