tbamud-3.67/bin/
tbamud-3.67/cnf/
tbamud-3.67/lib/etc/
tbamud-3.67/lib/misc/
tbamud-3.67/lib/plrfiles/A-E/
tbamud-3.67/lib/plrfiles/F-J/
tbamud-3.67/lib/plrfiles/K-O/
tbamud-3.67/lib/plrfiles/P-T/
tbamud-3.67/lib/plrfiles/U-Z/
tbamud-3.67/lib/plrfiles/ZZZ/
tbamud-3.67/lib/plrobjs/A-E/
tbamud-3.67/lib/plrobjs/F-J/
tbamud-3.67/lib/plrobjs/K-O/
tbamud-3.67/lib/plrobjs/P-T/
tbamud-3.67/lib/plrobjs/U-Z/
tbamud-3.67/lib/plrobjs/ZZZ/
tbamud-3.67/lib/text/
tbamud-3.67/lib/text/help/
tbamud-3.67/lib/world/qst/
tbamud-3.67/lib/world/shp/
tbamud-3.67/log/
tbamud-3.67/src/
#0
Non-attachable trigger~
0 g 100
~
* You can't attach trigger 0!
~
#1
Mob Tutorial Example Quest Offer - M14~
0 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* A very basic 3 trigger receive quest. Trigs 1-3.
* Make sure the actor is a player first.
if %actor.is_pc% && %direction% == south
  * only greet players coming from the south.
  * wait 1 second, always give the player time before you start sending text.
  wait 1 sec
  say Can you help me, %actor.name%?
  wait 1 sec
  say An ogre has something of mine.
  wait 1 sec
  say If you slay him I'll give you all the coins I can spare.
  wait 1 sec
  say Please, bring me the wings he has stolen.
end
~
#2
Mob Tutorial Example Kill Ogre - 16~
0 f 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* A very basic 3 trigger receive quest. Trigs 1-3.
say You got the best of me, %actor.name%. But I'll be back.
* Load the wings to be returned to the questmaster.
%load% obj 1
* Reload the mob for the next questor.
%load% mob %self.vnum%
~
#3
Mob Tutorial Example Completion - 14~
0 j 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* A very basic 3 trigger receive quest. Trigs 1-3.
* Check if this was indeed the right object.
if %object.vnum% == 1
  wait 1 sec
  say Thank you, %actor.name%
  %send% %actor% %self.name% gives you a gold piece.
%echoaround% %actor% %actor.name% is rewarded for %hisher% valor.
  * Reward the actor with an entire gold coin!
  nop %actor.gold(1)%
  wait 5 sec
  %purge% %object%
else
  * This isn't the right object - don't accept it.
  say I don't want that - bring me back my wings.
  return 0
end
~
#4
Tutorial II Guard Greet - 24~
0 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* A basic guard bribe trigger. Trigs 4, 5, 7, 8.
* This is a N S road so only greet players arriving from the south.
if %direction% == south && %actor.is_pc%
  wait 1 sec
  emote snaps to attention. 
  wait 1 sec
  say Admittance to the city is 10 coins. 
end
~
#5
Tutorial II Guard Bribe 10 - 24~
0 m 1
~
* By Rumble of The Builder Academy    tbamud.com 9091
* A basic guard bribe trigger. Trigs 4, 5, 7, 8.
* This is a comment. Always use amplifying comments to explain your Triggers!
* If actor gives 10 coins or more.
if %amount% >= 10
  * If more than 10 give them change.
  if %amount% > 10
    eval change %amount% - 10
    give %change% coin %actor.name%
  end
  * Otherwise they must have given exactly 10 coins, open the gate.
  say Thank you.
  wait 1 sec
  unlock gateway
  wait 1 sec
  open gateway
  wait 10 sec 
  close gateway 
  wait 1 sec
  lock gateway 
  * Else they gave too few! be nice and refund them.
else
  say only %amount% coins, I require 10.
  give %amount% coin %actor.name%
end
~
#6
Obj Command Magic Eight Ball - O47~
1 c 2
shake~
* By Rumble of The Builder Academy    tbamud.com 9091
* Numeric Arg: 2 means in character's carried inventory.
* Command trigs do not work for level 33 and above.
* There are 20 possible answers that the Magic Eight Ball can give. 
* Of these, nine are full positive, two are full negative, one is 
* mostly positive, three are mostly negative, and five are abstentions. 
*
* Check arguments if they match. /= checks abbreviations.
set argcheck 'ball 'eightball
if %argcheck.contains('%arg%)%
  * Echo text to everyone else in the room and the actor.
  %echoaround% %actor% %actor.name% shakes %self.shortdesc% vigorously.
  %send% %actor% You shake %self.shortdesc% vigorously.
  * Use a switch to choose a random response (1-20).
  switch %random.20%
    * Send the answer! %self% is the 8ball, or whatever the trig is attached to.
    * Only the actor sees the answer.
    * Case is what we are trying to match. Does %random.20% == 1? 
    case 1
      %send% %actor% %self.shortdesc% reveals the answer: Outlook Good 
      * We are done with this case so check the next one.
    break
    case 2
      %send% %actor% %self.shortdesc% reveals the answer: Outlook Not So Good 
    break
    case 3
      %send% %actor% %self.shortdesc% reveals the answer: My Reply Is No
    break
    case 4
      %send% %actor% %self.shortdesc% reveals the answer: Don't Count On It
    break
    case 5
      %send% %actor% %self.shortdesc% reveals the answer: You May Rely On It
    break
    case 6
      %send% %actor% %self.shortdesc% reveals the answer: Ask Again Later
    break
    case 7
      %send% %actor% %self.shortdesc% reveals the answer: Most Likely 
    break
    case 8
      %send% %actor% %self.shortdesc% reveals the answer: Cannot Predict Now
    break
    case 9
      %send% %actor% %self.shortdesc% reveals the answer: Yes 
    break
    case 10
      %send% %actor% %self.shortdesc% reveals the answer: Yes, definitely
    break
    case 11
      %send% %actor% %self.shortdesc% reveals the answer: Better Not Tell You Now 
    break
    case 12
      %send% %actor% %self.shortdesc% reveals the answer: It Is Certain
    break
    case 13
      %send% %actor% %self.shortdesc% reveals the answer: Very Doubtful
    break
    case 14
      %send% %actor% %self.shortdesc% reveals the answer: It Is Decidedly So
    break
    case 15
      %send% %actor% %self.shortdesc% reveals the answer: Concentrate And Ask Again
    break
    case 16
      %send% %actor% %self.shortdesc% reveals the answer: Signs Point To Yes 
    break
    case 17
      %send% %actor% %self.shortdesc% reveals the answer: My Sources Say No 
    break
    case 18
      %send% %actor% %self.shortdesc% reveals the answer: Without A Doubt 
    break
    case 19
      %send% %actor% %self.shortdesc% reveals the answer: Reply Hazy, Try Again
    break
    case 20
      %send% %actor% %self.shortdesc% reveals the answer: As I See It, Yes
    break
    * Every switch should have a default. A catch-all if the cases do not match.
    default
      %send% %actor% %self.shortdesc% explodes since your question is unanswerable.
    break
    * Every switch must have a done! Just like every if needs an end!
  done
  * The actor didn't use the command shake with arg ball or eightball.
else
  * Return 0 allows the command to continue through to the MUD. The player will 
  * get the Huh!?! response or the shake social if you have one.
  return 0
end
~
#7
Tutorial II Guard Closes Gate - 24~
0 e 0
The gate is opened from~
* By Rumble of The Builder Academy    tbamud.com 9091
* A basic guard bribe trigger. Trigs 4, 5, 7, 8.
* This is required to close the gate after someone opens it from the other
* side.
wait 5 sec 
close gate 
wait 1 sec
lock gate
~
#8
Tutorial II Guard Closes Gate 2 - 24~
0 e 0
leaves north.~
* By Rumble of The Builder Academy    tbamud.com 9091
* A basic guard bribe trigger. Trigs 4, 5, 7, 8.
* This is required to close the gate after the guard is bribed and someone
* leaves to the north.
wait 5 sec 
close gate 
wait 1 sec
lock gate
~
#9
Tutorial Quest 1317 - Starter~
0 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Quest Trigs 9-12. If the player comes from the south and has not done the quest.
if %direction% == south && %actor.varexists(solved_tutorial_quest_zone_0)%
  wait 1 sec
  say you have already completed this quest.
  wait 2 sec
  say but you can try it again if you so desire. Would you like to find the magic eight ball again?
  rdelete solved_tutorial_quest_zone_0 %actor.id%
else
  wait 1 sec
  say Hello, %actor.name%. Could you find me the magic eight ball?
  say Please say yes, %actor.name%.
end
~
#10
Tutorial Quest 1317 - Accept~
0 d 1
yes~
* By Rumble of The Builder Academy    tbamud.com 9091
* Quest Trigs 9-12. If the player has not done the quest give them a hint.
if !%actor.varexists(solved_tutorial_quest_zone_0)%
  wait 1 sec
  say Perfect, %actor.name%. I'll make this easy. It is to the east.
  wait 3 sec
  say I'd go get it myself, but I'm lazy and you need the exercise.
  wait 1 sec
end
~
#11
Tutorial Quest 1317 - Completion~
0 j 100
~
* By Rumble of The Builder Academy    tbamud.com 9091 
* Quest Trigs 9-12. If the player returns the right object reward them. 
if !%actor.varexists(solved_tutorial_quest_zone_0)%  && %object.vnum% == 47 
  set solved_tutorial_quest_zone_0 1 
  remote solved_tutorial_quest_zone_0 %actor.id% 
  %purge% %object% 
  dance 
  wait 1 sec 
  say Thank you, %actor.name%. 
  nop %actor.exp(50)% 
  nop %actor.gold(50)% 
  say finally, now I can get some answers. 
  wait 1 sec 
  emote shakes the magic eight ball vigorously. 
  wait 1 sec 
  emote does not seem too pleased with his answer. 
else 
  say I don't want that! 
  junk %object.name% 
end
~
#12
Tutorial Quest 1441 - Load 8ball~
2 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Quest Trigs 9-12. Drop the 8ball on their head when they enter.
wait 1 sec
%echoaround% %actor% A magic eight ball drops from the sky striking %actor.name% on the head.
%send% %actor% A magic eight ball drops from the sky striking you on the head.
%load% obj 1394
%damage% %actor% %random.5%
~
#13
Restorative Comfy Bed 1401 - Sleep~
1 c 4
sl~
set argcheck 'bed
if %cmd.mudcommand% == sleep && %argcheck.contains('%arg%)%
  %force% %actor% sleep
  set laying_in_comfy_bed_14 1
  remote laying_in_comfy_bed_14 %actor.id%
end
~
#14
Restorative Comfy Bed 1401 - Heal~
1 b 100
~
* By Rumble of The Builder Academy    tbamud.com 9091 
* Healing Bed Trigs 13-15. Heals those who sleep on it. 
set room_var %actor.room% 
set target_char %room_var.people% 
while %target_char% 
  set tmp_target %target_char.next_in_room% 
  if %target_char.varexists(laying_in_comfy_bed_14)% 
    %damage% %target_char% -10 
    %send% %target_char% You feel refreshed from sleeping in the comfy bed. 
  end 
  set target_char %tmp_target% 
done 
~
#15
Restorative Comfy Bed 1401 - Wake~
1 c 100
wa~
* does not work for level 33 and above.
if %cmd.mudcommand% == wake
  %force% %actor% wake
  rdelete laying_in_comfy_bed_14 %actor.id%
end
~
#16
Damage Example~
2 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* First put a wait in so the echo waits for the player to get into the room.
wait 1 sec
%echo% As %actor.name% enters the room a bolt of lightning smites %actor.himher%.
* Take away 10 hitpoints
%damage% %actor% 10
wait 5 sec
%echo% The Gods feel sorry for %actor.name% and restore him to full health.
* Restore 10 hitpoints (-# heals the actor).
%damage% %actor% -10
* Another Example that damages actor to 1 hitpoint
wait 2 sec
%echo% hp: %actor.hitp%
eval all_but_one_hitp %actor.hitp% - 1
%echo% all_but_one_hitp: %all_but_one_hitp%
if %all_but_one_hitp% > 0
  %damage% %actor% %all_but_one_hitp%
  %echo% hp: %actor.hitp%
end
~
#17
Door Example~
2 c 100
move~
* Example by Falstar for room 14520
* The following trigger is designed to reveal a trapdoor leading down when 
* Player types 'Move Chest'
*
* The following ARGument determines what can be MOVEd ('move' Command inserted
* in Arg List of trigger)
if %arg% == chest
  *Send text to player to show effect of command
  %send% %actor% You move the chest across the floor, revealing a trapdoor underneath!!
  *Send text to other players in room to inform them of Player's discovery
  %echoaround% %actor% %actor.name% has discovered a hidden trapdoor under a chest!
  * Set door flags to 'ab' - Exit is a door that can be opened and closed, then close door
  %door% 14520 down flags ab
  * Change door name to 'trapdoor' (used in door commands, eg open trapdoor, lock trapdoor)
  %door% 14520 down name trapdoor
  * Set room that trapdoor exits leads to (Room 14521 in this case)
  %door% 14520 down room 14521
  * Set Exit desc for the wary adventure who decides to 'look down'
  %door% 14520 down description A wooden ladder leads down into the darkness.
  * Set the Vnum of the KEY OBJECT which will lock/unlock door
  %door% 14520 down key 14500
  * Now for Continuity, door commands must be set for reverse direction FROM 14521
  %door% 14521 up flags ab
  %door% 14521 up name trapdoor
  %door% 14521 up room 14520
  %door% 14521 up description A wooden ladder leads up into a storeroom.
  %door% 14521 up key 14500
  * IMPORTANT: Note reverse of direction in both the commands and extra 
  * descriptions and room numbers it can be very easy to get lost here and 
  * probably get your adventurer lost too. Finally set up what happens when 
  * adventurer tries to move anything else and end the trigger
else
  %send% %actor% Move what ?!
end
* Another example by Welcor
* if %arg% == tapestries
*   %send% %actor% You pull the tapestries down, and reveal a secret vault!
*   %echoaround% %actor% As %actor.name% pulls the tapestries down a secret vault is revealed.
*   %door% 23667 east flags abcd
*   %door% 23667 east key 23634
*   %door% 23667 east name vault
*   %door% 23667 east room 23668 
* else
*   %send% %actor% Pull what ?!
* end
~
#18
Switch Echo Example~
2 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Since this is an ENTER trigger we must put a wait in here 
* so it doesn't fire before the player enters the room
wait 1
switch %random.4%
  case 1
    * only the person (actor) entering the room will see this.
    %send% %actor% You trip over a root as you walk into the room. 
    * everyone in the room except the actor will see this.
    %echoaround% %actor% %actor.name% trips on a root while walking into the room.
    * everyone in the room will see this.
    %echo% The root suddenly springs to life and attacks!
    * let everyone in the zone hear about this.
    %zoneecho% %self.vnum% %actor.name% is a clutz.
  break
  case 2
    %send% %actor% You strut into the room. 
    %echoaround% %actor% %actor.name% Seems to have a big head..
    %echo% A strong breeze kicks some leaves up into the air.
  break
  case 3
    %echo% A light breeze picks up, causing the leaves to rustle quietly.
  break
  case 4
    * echoes go to everyone, even sleeping players. To prevent this try:
    set target_char %self.people%
    while %target_char%
      set tmp_target %target_char.next_in_room%
      if %target_char.pos% != sleeping
        %send% %target_char% You are not sleeping
      else
        %send% %target_char% You are sleeping
      end
      set target_char %tmp_target%
    done
  break
  default
    * this should be here, even if it's never reached
    %echo% This is the default case, just in case I missed something. Get it? Just in case!
  break
done
~
#19
AT Example~
2 b 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
%at% 33 %echo% at'd to a room
%at% Rumble %echo% at'd to Rumble
~
#20
Rumble's Spy~
0 d 100
*~
* By Rumble of The Builder Academy    tbamud.com 9091
* Arguments: * means all speech will trigger this.
* This will echo all speech to Rumble.
%at% rumble say %actor.name% says, '%speech%'
* doesn't work:
%at% rumble %echo% %actor.name% says, '%speech%'
~
#21
Transform Example~
0 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* As a greet trigger, entering the room will cause this mob to transform into
* a random mob vnum 100-199.
emote starts to twist and contort into something different.
eval number %random.100% + 99
%transform% %number%
say Transform complete to mob %number%.
~
#22
IF Example~
0 g 100
~
* By Rumble & Relsqui of The Builder Academy    tbamud.com 9091
* First we set %anumber% to some number between 1 and 100.
set anumber %random.100%
* Then the beginning of the if-block.
if %anumber% == 5
  * The following commands are only executed if the above condition is true.
  * That is, if %anumber% is equal to 5.
  clap
  say It's your lucky day!
  say You picked my favorite number!
  * If those commands were executed, the program skips to the next end.
  * Otherwise, it looks for an elseif.
elseif %anumber% > 90
  * To read the following commands, the program must have determined the
  * following: The first condition %anumber% == 5 is false.
  * The second condition %anumber% > 90 is true.
  emote shrinks down to the size of a mouse.
  say Squeak squeak squeak!
  * If the first elseif condition was also false, the program looks for the 
  * next one.
elseif %anumber% < 10
  * Here's a tricky one. If %anumber% equals 5, the program will already have
  * run the commands immediately after the if-statement at the top. Therefore,
  * the following commands only run when: %anumber% is not five (failing the;* first check) %anumber% is not greater than 90 (failing the second check)
  * %anumber% is less than 10 (passing the third check.)
  emote grows an elephant's nose.
  emote blows a mighty blast with %self.hisher% trunk.
  * And now, the default, when %anumber% fails all the above checks.
else
  * Note that else has no condition.
  emote disappears in a cloud of blue smoke.
  %purge% %self%
  * For that to happen, all of this must be true: %anumber% is not five. 
  * %anumber% is not greater than 90. %anumber% is not less than 10. If all 
  * those conditions are met, the mob will disappear in a cloud of blue smoke.
  * Finally, please don't forget the all-important...
end
* Ends are good. They tell the program when the if-block is over. After any of 
* the above sets of commands runs, the program skips to the next end. 
*
* We could have omitted the else. If we had, and none of the conditions had 
* been met, no commands in the if-block would run. However, there can never be
* more than one else. There is only one default. There must always be the same
* number of if's and end's. We could have had any number of ifelses, from zero 
* on up. To summarize, here is the basic format of an if-block:
* if (condition)
*   (commands)
* elseif (condition) <---optional. 0 or more
*   (commands)
* else <---optional. 1 or 0
*   (commands)
* end
*
* So the simplest possible if-block would be:
* if (condition)
*   (commands)
* end
~
#23
While Damage Example - Grenade O1301~
1 h 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* A small script to make a grenade go off 3 seconds after it is dropped.
* Set the rooms ID to a variable.
set room_var %actor.room%
wait 3 s
* Send a message when the bomb goes off.
%echo% The Grenade blasts into smithereens, striking everyone here.
* Target the first char.
set target_char %room_var.people%
* Now loop through everyone in the room and hurt them.
while %target_char%
  * Set the next target before this one perhaps dies.
  set tmp_target %target_char.next_in_room%
  * This is where the good/bad things are supposed to happen.
  %send% %target_char% The explosion hurts you.
  * Damage them... 30 hitpoints. To heal use -#.
  %damage% %target_char% 30
  * Set the next target.
  set target_char %tmp_target%
  * Loop back.
done
* After we go through everyone get rid of the grenade.
%purge% %self%
~
#24
Room While Teleport Example~
2 b 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Target the first person or mob in the room.
eval person %self.people%
wait 1 sec
*While there are still mobs or people in the room.
while %person%
  %send% %person% You are next!
  %echo% I am targetting %person.name%.
  %echoaround% %person% %person.name% is struck by a bolt of lightning. Leaving only a pile of ash.
  %teleport% %person% 3
  %force% %person% look
  eval person %self.people%
done
~
#25
Command Example~
2 c 100
l~
* By Rumble of The Builder Academy    tbamud.com 9091
* A command trigger to demonstrate basic usage. The Arg list 'l' will capture
* any 'l' word. We are looking specifically for the MUD command (all commands
* are listed under COMMANDS) 'look' with the abbreviated argument of 'window.'
if %cmd.mudcommand% == look && window /= %arg%
  %echo% %actor.name% typed %cmd% to %cmd.mudcommand% at the %arg%.
else
  * Without this return zero a player would be unable to look at anything else
  * in the room, leave, list, etc.
  return 0
end
~
#26
Blocks Mobs Not Following~
2 g 100
~
Name: 'Blocks Mobs Not Following',  VNum: [   26], RNum: [   26]
Trigger Intended Assignment: Rooms
Trigger Type: Enter , Numeric Arg: 100, Arg list: None
Commands:
* By Rumble of The Builder Academy    tbamud.com 9091
* This trigger blocks all mobs except those that are following.
* If actor is a mob, !is_pc actually means not a PC.
if !%actor.is_pc%
  * If the mob does not have a master.
  if !%actor.master%
    * Return 0 prevents the mob from entering.
    return 0
  end
end
~
#27
Actor Variables Example~
0 b 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* A listing and demonstration of all actor variables.
* Random triggers do not have actors so we must define one.
set actor %random.char%
* Make sure the actor can be seen and is a player.
if %actor.canbeseen% && %actor.is_pc%
  %echo% CHARISMA:        %actor.cha%
  %echo% CONSTITUTION:    %actor.con%
  %echo% DEXTERITY:       %actor.dex%
  %echo% INTELLIGENCE:    %actor.int%
  %echo% STRENGTH/STRADD: %actor.str%/%actor.stradd%
  %echo% WISDOM:          %actor.wis%
  %echo% ALIAS:           %actor.alias%
  %echo% ALIGN:           %actor.align%
  %echo% AFFECT:          %actor.affect%
  %echo% CANBESEEN:       %actor.canbeseen%
  %echo% CLASS:           %actor.class%
  %echo% DRUNK:           %actor.drunk%
  %echo% EXPERIENCE:      %actor.exp%
  %echo% FIGHTING:        %actor.fighting%
  %echo% FOLLOWER:        %actor.follower%
  %echo% GOLD:            %actor.gold%
  %echo% HAS_ITEM:        %actor.has_item(1332)%
  %echo% HESHE:           %actor.heshe%
  %echo% HIMHER:          %actor.himher%
  %echo% HISHER:          %actor.hisher%
  %echo% HITPOINTS:       %actor.hitp%
  %echo% HUNGER:          %actor.hunger%
  %echo% ID:              %actor.id%
  %echo% INV:             %actor.inventory%
  %echo% IS_KILLER:       %actor.is_killer%
  %echo% IS_PC:           %actor.is_pc%
  %echo% IS_THIEF:        %actor.is_thief%
  %echo% LEVEL:           %actor.level%
  %echo% MANA:            %actor.mana%
  %echo% MASTER:          %actor.master%
  %echo% MAX HP:          %actor.maxhitp%
  %echo% MAX MANA:        %actor.maxmana%
  %echo% MAX MOVE:        %actor.maxmove%
  %echo% MOVE:            %actor.move%
  %echo% NAME:            %actor.name%
  %echo% NEXT_IN_ROOM:    %actor.next_in_room%
  %echo% POSITION:        %actor.pos%
  %echo% PRACTICES:       %actor.prac%
  %echo% QUESTPOINTS:     %actor.questpoints%
  %echo% ROOM:            %actor.room%
  %echo% SAVING_PARA:     %actor.saving_para%
  %echo% SAVING_ROD:      %actor.saving_rod%
  %echo% SAVING_PETRI:    %actor.saving_petri%
  %echo% SAVING_BREATH:   %actor.saving_breath%
  %echo% SAVING_SPELL:    %actor.saving_spell%
  %echo% SEX:             %actor.sex%
  %echo% SKILL BACKSTAB:  %actor.skill(backstab)%
  %echo% THIRST:          %actor.thirst%
  %echo% TITLE:           %actor.title%
  %echo% VAREXISTS:       %actor.varexists(tba_greeting)%
  %echo% VNUM:            %actor.vnum%
  %echo% WEIGHT:          %actor.weight%
  * Objects TSTAT 28, Rooms TSTAT 29, Text TSTAT 30, Special TSTAT 31.
  *
  * equipment positions: 0-18 or light, rfinger, lfinger, neck1, neck2, 
  * body, head, legs, feet, hands, arms, shield, about, waist, rwrist, 
  * lwrist, wield, hold, inv
  * This example will check wield 16
  if %actor.eq(wield)%
    eval wield %actor.eq(wield)%
    %echo% WIELDING ID: %wield.id%, NAME: %wield.name%, SHORTDESC: %wield.shortdesc%, TIMER:: %wield.timer%, TYPE: %wield.type%, VAL0: %wield.val0%, VAL1: %wield.val1%, VAL2: %wield.val2%, VAL3: %wield.val3%, VNUM: %wield.vnum%, 
    %echo% CARRIED_BY: %wield.carried_by%, NEXT_IN_LIST: %wield.next_in_list%, WORN_BY: %wield.worn_by%, WEIGHT: %wield.weight%, COST: %wield.cost%, COST_PER_DAY: %wield.cost_per_day%
  end
end
~
#28
Object Variables Example~
1 b 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* A listing and demonstration of all object variables.
%echo% CARRIED_BY:   %self.carried_by%
%echo% CONTENTS:     %self.contents%
%echo% COST:         %self.cost%
%echo% COST_PER_DAY: %self.cost_per_day%
%echo% COUNT:        %self.count%
%echo% HAS_IN:       %self.has_in%
%echo% ID:           %self.id%
%echo% IS_INROOM:    %self.is_inroom%
%echo% NAME:         %self.name%
%echo% NEXT_IN_LIST: %self.next_in_list%
%echo% ROOM:         %self.room%
%echo% SHORTDESC:    %self.shortdesc%
%echo% TIMER:        %self.timer%
%echo% TYPE:         %self.type%
%echo% VAL0:         %self.val0%
%echo% VAL1:         %self.val1%
%echo% VAL2:         %self.val2%
%echo% VAL3:         %self.val3%
%echo% VNUM:         %self.vnum%
%echo% WEARFLAG:     %self.wearflag%
%echo% WEIGHT:       %self.weight%
%echo% WORN_BY:      %self.worn_by%
%purge% %self%
~
#29
Room Variables Example~
2 b 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* A listing and demonstration of all room variables.
%echo% CONTENTS:   %self.contents%
%echo% NORTH:      %self.north% %self.north(vnum)% 
%echo% SOUTH:      %self.south% %self.south(key)%
%echo% SOUTH:      %self.south% %self.south(vnum)%
%echo% EAST:       %self.east% %self.east(bits)%
%echo% WEST:       %self.west% %self.west(room)%
%echo% UP:         %self.up%
%echo% DOWN:       %self.down%
%echo% ID:         %self.id%
%echo% NAME:       %self.name%
%echo% PEOPLE:     %self.people%
%echo% RANDOM.DIR: %self.random.dir%
%echo% SECTOR:     %self.sector%
%echo% VNUM:       %self.vnum%
%echo% WEATHER:    %self.weather%
%echo% CONTENTS 1:   %self.contents(1)%
~
#30
Text Variables Example~
2 d 100
*~
* By Rumble of The Builder Academy    tbamud.com 9091
* A listing and demonstration of all text variables.
%echo% SPEECH:     %speech%
%echo% STRLEN:     %speech.strlen%
%echo% TRIM:       %speech.trim%
%echo% CAR:        %speech.car%
%echo% CDR:        %speech.cdr%
%echo% MUDCOMMAND: %speech.mudcommand%
%echo% CONTAINS:   %speech.contains(test)%
%echo% CHARAT 3:   %speech.charat(3)%
~
#31
Special Variables Example~
2 d 100
*~
* By Rumble of The Builder Academy    tbamud.com 9091
* A listing and demonstration of all special variables.
%echo% SELF ID:    %self.id%
%echo% HOUR:       %time.hour%
%echo% DAY:        %time.day%
%echo% MONTH:      %time.month%
%echo% YEAR:       %time.year%
%echo% PEOPLE:     %people.3%
%echo% RANDOM NUM: %random.99%
%echo% RANDOM PC:  %random.char%
%echo% SPEECH:     %speech%
%echo% FINDOBJ:    There are %findobj.3(33)% objects of vnum 33 in room 3.
%echo%             There are %findobj.3(guide)% objects of name guide in room 3.
%echo% FINDMOB:    There are %findmob.3(33)% mobs of vnum 33 in room 3.
~
#32
Mob Checks Player Inventory~
0 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* This trigger has been replaced by the has_item variable. But this is still a
* good example. if %actor.has_item(1300)% does the same thing.
if %actor.eq(wield)%
  eval wep %actor.eq(wield)%
  if %wep.vnum%==1300
    set has_it 1
  end
end
* Checks the actors inventory if not wielding it.
if !%has_it%
  eval i %actor.inventory%
  while %i%
    set next %i.next_in_list%
    if %i.vnum%==1300
      set has_it 1
      break
    end
    * checks inside containers
    if %i.type% == CONTAINER
      while %i.contents%
        if %i.contents.vnum%==1300
          set has_it 1
          break
        end
      done
    end    
    set i %next%
  done
end
* 
if %has_it%
  say %actor.name% has that special item.
else
  say %actor.name% doesnt have that crappy item.
end
~
#33
Mob Quote Using Arrays~
0 d 100
quote~
* By Jamie Nelson from the forum http://groups.yahoo.com/group/dg_scripts/
eval w1max %random.21%
eval w2max %random.21%
eval w3max %random.21%
eval w4max %random.21% 
eval w5max %random.11%
eval w6max %random.21%l
set  w1[1] rapid
set  w1[2] chilling
set  w1[3] insipid
set  w1[4] nauseating
set  w1[5] astronomical
set  w1[6] austere
set  w1[7] inevitable
set  w1[8] inescapable
set  w1[9] reckless
set  w1[10] haphazard
set  w1[11] accelerating
set  w1[12] profound
set  w1[13] awesome
set  w1[14] terrifying
set  w1[15] ubiquitous
set  w1[16] ignominious
set  w1[17] unprecedented
set  w1[18] unparalleled
set  w1[19] insidious
set  w1[20] broad
set  w1[21] phenomena
set  w2[1] decline
set  w2[2] prospects
set  w2[3] acceleration
set  w2[4] threat
set  w2[5] expansion
set  w2[6] oneness
set  w2[7] outgrowth
set  w2[8] madness
set  w2[9] evacuation
set  w2[10] diminishment
set  w2[11] consumption
set  w2[12] decay
set  w2[13] putrefaction
set  w2[14] vapidity
set  w2[15] downsizing
set  w2[16] degeneration
set  w2[17] litigation
set  w2[18] declivity
set  w2[19] hastening
set  w2[20] paradigm shifting
set  w2[21] growth
set  w3[1] urban tax dollars
set  w3[2] new technologies
set  w3[3] gender identification disorders
set  w3[4] censorship
set  w3[5] interpersonal communications
set  w3[6] modern life
set  w3[7] rampant paradigm shifts
set  w3[8] consumer spending
set  w3[9] rain forests
set  w3[10] human literacy
set  w3[11] natural resources
set  w3[12] traditional values
set  w3[13] media junk food
set  w3[14] family values
set  w3[15] corporate mentality
set  w3[16] the American justice system
set  w3[17] technological change
set  w3[18] the ozone layer
set  w3[19] human resources
set  w3[20] current epistemologies
set  w3[21] the Internet
set  w4[1] escalate
set  w4[2] aggrandize
set  w4[3] overhaul
set  w4[4] deteriorate
set  w4[5] revolutionize
set  w4[6] uglify
set  w4[7] put an end to
set  w4[8] enslave
set  w4[9] bankrupt
set  w4[10] truncate
set  w4[11] nullify
set  w4[12] sabotage
set  w4[13] destabilize
set  w4[14] incapacitate
set  w4[15] hasten
set  w4[16] dehumanize
set  w4[17] evaporate
set  w4[18] indenture
set  w4[19] intensify
set  w4[20] undermine
set  w4[21] forever dissipate
set  w5[1] tomorrow's
set  w5[2] the entrenchment of our
set  w5[3] worldwide
set  w5[4] our children's
set  w5[5] modern
set  w5[6] all of our
set  w5[7] our future
set  w5[8] our
set  w5[9] the demise of our
set  w5[10] our grandchildren's
set  w5[11] all hope for
set  w5[12] today's
set  w6[1] re-ruralization
set  w6[2] human condition
set  w6[3] family values
set  w6[4] self-esteem
set  w6[5] medical insights
set  w6[6] human psyche
set  w6[7] human depth
set  w6[8] egalitarianism
set  w6[9] World Wide Web
set  w6[10] future values
set  w6[11] hopes and dreams
set  w6[12] business models
set  w6[13] political climate
set  w6[14] education
set  w6[15] cultural heritage
set  w6[16] lifestyles
set  w6[17] fiduciary responsibility
set  w6[18] genetic diversity
set  w6[19] intestinal fortitude
set  w6[20] computer literacy
set  w6[21] business models
eval w1 %%w1[%w1max%]%%
eval w2 %%w2[%w2max%]%%
eval w3 %%w3[%w3max%]%%
eval w4 %%w4[%w4max%]%%
eval w5 %%w5[%w5max%]%%
eval w6 %%w6[%w6max%]%%
set msg The %w1% %w2% of %w3% will %w4% %w5% %w6%
say %msg%
~
#34
IS_PC Example~
2 c 100
target~
* By Rumble of The Builder Academy    tbamud.com 9091
* Player = 1, mob = 0, object = -1.
%echo% %actor.name% is targetting %arg% IS_PC: %arg.is_pc%
if %arg.is_pc% == 1
  %echo% It is a player.
elseif %arg.is_pc% == 0
  %echo% It is a mob.
else
  %echo% It is an object.
end
~
#35
Mob Room Specific Speeches~
0 b 5
~
* By Rumble
* So we don't get problems if more than one is loaded.
set room %self.room%
switch %room.vnum%
  case 1300
    say this is where I began my journey.
  break
  case 1301
    say Ah, yes, the beginning.
  break
  case 1302
    say TBA, The Builder Academy Implementation explained!
  break
  case 1303
    say Building blocks for beginners.
  break
  case 1304
    say Writing good descriptions. Very important.
  break
  case 1305
    say Learning redit.
  break
  case 1306
    say Oedit by osmosis.
  break
  case 1307
    say Medit by the numbers.
  break
  case 1308
    say Zedit confuses everyone.
  break
  case 1309
    say Sedit. We all love capitalism.
  break
  case 1310
    say Trigedit is tricky.
  break
  case 1311
    say Planning for those who lack direction.
  break
  case 1312
    say Advanced building, what an interesting topic.
  break
  case 1421
    say Storytelling, now that is a good idea.
  break
  case 1313
    say I'm finished. Finally. That Rumble is long winded.
  break
  default
    say so much reading, so little time.
  break
done
~
#36
Time Example~
0 b 1
~
* By Rumble of The Builder Academy    tbamud.com 9091
* A replica of the "time" command.
* Convert hour from 24 hour to 12 hour clock with am/pm
if %time.hour% > 12
  eval hour %time.hour% - 12
  set ampm pm
else
  set hour %time.hour%
  set ampm am
end
*
* No 0 hour. Change it to 12.
if %time.hour% == 0
  set hour 12
end
*
* Figure out what day (1-35).
switch %time.day%
  case 1
  case 7
  case 14
  case 21
  case 28
  case 35
    set day the Day of the Moon
    break
  case 2
  case 8
  case 15
  case 22
  case 29
  set day the Day of the Bull
    break
  case 3
  case 9
  case 16
  case 23
  case 30
  set day the Day of the Deception
    break
  case 4
  case 10
  case 17
  case 24
  case 31
  set day the Day of Thunder
    break
  case 5
  case 11
  case 18
  case 25
  case 32
  set day the Day of Freedom
    break
  case 6
  case 12
  case 19
  case 26
  case 33
  set day the Day of the Great Gods
    break
  case 7
  case 13
  case 20
  case 27
  case 34
  set day the Day of the Sun
    break
  default
    set day I don't know what day it is
    break
done
*
* What suffix should we use for the number of the day.
switch %time.day%
  case 1
  case 21
  case 31
    set suf st
    break
  case 2
  case 22
  case 32
    set suf nd
    break
  case 3
  case 23
  case 33
    set suf rd
    break
  default
    set suf th
    break
done
*
* What month are we in (1-17).
    set m1 Month of Winter
    set m2 Month of the Winter Wolf
    set m3 Month of the Frost Giant
    set m4 Month of the Old Forces
    set m5 Month of the Grand Struggle
    set m6 Month of the Spring
    set m7 Month of Nature
    set m8 Month of Futility
    set m9 Month of the Dragon
    set m10 Month of the Sun
    set m11 Month of the Heat
    set m12 Month of the Battle
    set m13 Month of the Dark Shades
    set m14 Month of the Shadows
    set m15 Month of the Long Shadows
    set m16 Month of the Ancient Darkness
    set m17 Month of the Great Evil
eval months %%m%time.month%%%
*
* My test to make sure my variables are printing out what I expect them to.
* %echo% Hour: %time.hour% Day: %time.day% Month: %time.month% Year: %time.year%
*
* Finally the output.
%echo% It is %hour% o'clock %ampm%, on %day%.
%echo% The %time.day%%suf% Day of the %months%, Year %time.year%.
~
#37
Obj Command quarter flip example~
1 c 2
flip~
* By Rumble of The Builder Academy    tbamud.com 9091
* Numeric Arg: 2 means in character's carried inventory
if coin /= %arg% || quarter /= %arg%
  %echoaround% %actor%  %actor.name% flips a coin high up into the air.
  %send% %actor% You flip the coin up into the air.
  switch %random.2%
    case 1
      %echo% The coin falls to the ground, bounces, rolls, and ends up showing heads!
    break
    case 2
      %echo% The coin falls to the ground, bounces, rolls, and ends up showing tails!
    break
    default
      %echo% The coin falls on its edge and balances perfectly.
    break
  done
else
  %send% %actor% flip What?
end
~
#38
Mob Receive and Assemble Example~
0 j 100
~
* By Aeon of The Builder Academy    tbamud.com 9091
* Check mob's inventory (this does not include equipped items).
if %self.inventory(16701)% && %self.inventory(16702)% && %self.inventory(16703)% && %self.inventory(16704)% && %self.inventory(16705)%
  * Removing items from the mob.
  %purge% %self.inventory(16701)%
  %purge% %self.inventory(16702)%
  %purge% %self.inventory(16703)%
  %purge% %self.inventory(16704)%
  %purge% %self.inventory(16705)%
  wait 2 sec
  * For roleplay sake
  say Thank you %actor.name%! Now here is the cake.
  * Give the reward
  %load% obj 16706 %actor%
  %send% %actor% %self.name% gives you a cake.
  %echoaround% %actor% %self.name% gives %actor.name% a cake.
end
~
#39
Mob Following Assist Master~
0 b 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Make following mob assist.
if %self.master%
  set master %self.master%
  if %master.fighting%
    say I will save you Master %master.name%
    wait 1 sec
    assist %master.name%
  end
end
~
#40
Random Equipment Scatter and Teleport~
2 g 100
~
* By Random of The Builder Academy    tbamud.com 9091
* Scatter the player and all of their equipment randomly across the zone.
wait 1 sec
%send% %actor% You feel you must not have been worthy when a powerful force hurls you back through the gates.
wait 2 sec
eval stunned %actor.hitp% -1 
%damage% %actor% %stunned%
eval num %random.99% + 20300
%teleport% %actor% %num%
while %actor.inventory%
  set item %actor.inventory%
  if %item.type% == CONTAINER
    while %item.contents%
      set stolen %item.contents.vnum%
      %echo% purging %item.contents.shortdesc% in container.
      %purge% %item.contents% 
      eval num %random.99% + 2300
      %at% %num% %load% obj %stolen%
    done
  end
  set item_to_purge %actor.inventory%
  set stolen %item.vnum%
  %purge% %item_to_purge% 
  eval num %random.99% + 2300
  %at% %num% %load% obj %stolen%
done
set i 0
while %i% < 18
  set item %actor.eq(%i%)%
  if %item%
    set stolen %item.vnum%
    set item_to_purge %%actor.eq(%i%)%%
    %send% %actor% You drop %item.shortdesc%
    %purge% %item_to_purge% 
    eval num %random.99% + 20300
    %at% %num% %load% obj %stolen%
  end
  eval i %i% + 1 
done
%force% %actor% look
~
#41
Memory and Mhunt Example~
0 o 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Fires if player is in mobs memory via mremember and the mob sees the actor.
%echo% Sleeping for 10 secs, give %actor.name% a head start.
sleep
%echo% Targetting %actor.name%
wait 10 s
wake
stand
%random.dir%
%random.dir%
%random.dir%
%echo% Hunting...%actor.name%
mhunt %actor%
~
#42
Container with Personal Key~
1 c 100
*~
* By Jamie Nelson from the forum http://groups.yahoo.com/group/dg_scripts/
* Container script for use with no key
if !%actor.is_pc%
  return 0 
  halt
end
*
switch %cmd%
  case codeset
    if %actor.name% != rumble
      %send% %actor% I am sorry %actor.name%, only Rumble can set the code.
      halt
    end
    if !%arg%
      %send% %actor% You must supply a code.
      halt
    else
      if %arg% <= 999
        %send% %actor% You must supply a code that is a number. (more then 1)
        %send% %actor% And for security reasons, greater then 4 digits.
        halt
      else
        nop %self.val3(%arg%)%
        %send% %actor% You set the code on %self.shortdesc% to %arg%.
        set fingerprint %arg%
        remote fingerprint %actor.id%
      end
    end
  break
  case recognise
    %send% %actor% A laser scans your fingerprint.
    if %arg% != %self.val3%
      %send% %actor% Access Denied.
      halt
    else
      %send% %actor% Access Granted. Fingerprint Memorized.
      set fingerprint %self.val3%
      remote fingerprint %actor.id%
    end
  break
  case fingerprint
    if %arg% != open
      if %arg% != close
        %send% %actor% You must type either: 
        %send% %actor% fingerprint open
        %send% %actor% or
        %send% %actor% fingerprint close
        halt
      else
        set oc 2
      end
    else
      set oc 1
    end
    %send% %actor% A laser scans your fingerprints.
    if !%actor.varexists(fingerprint)%
      %send% %actor% Access Denied.
      halt
    else
      %send% %actor% Access Granted.
      if %oc% == 2
        nop %self.val1(15)%
        %send% %actor% Closed and locked.
      elseif %oc% == 1
        nop %self.val1(0)%
        %send% %actor% Unlocked and open.
      else
        %send% Broken.
      end
    end
  break
  default
    return 0
  break
done
~
#43
Mob Wait Until Example~
0 ab 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Shopkeeper only works 6-9 then goes upstairs to sleep. The door is locked
* without a key so the player has to follow the mob and be quick about it.
* Closing time
wait until 21:00
emote looks sleepy.
wait 3 s
yawn
wait 10 s
say I'm closing up, have a nice day.
wait 10 s
emote works her way up the stairs and unlocks the door.
* Remove the locked and pickproof flags.
%door% 225 up flags ab
wait 2 s
open door
wait 2 s
up
wait 5 s
* Close the door and lock/pickproof it.
emote closes and locks the door behind %self.hisher%.
%door% 367 down flags abcd
wait 10 s
emote gets ready for bed.
wait 20 s
sleep
wait until 06:00
wake
wait 1 s
stand
say It's morning already!
wait 3 s
yawn
wait 10 s
emote goes about her business getting ready for the day.
wait 20 s
emote unlocks the door.
%door% 367 down flags ab
wait 3 s
open door
wait 1 s
d
wait 3 s
%door% 225 up flags abcd
~
#44
Mob Death Purges Equipment~
0 f 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Purge all inventory first.
say You damn whipper snappers. You may have beat me this time, but my equipment goes only to those who deserve it.
emote donates everything.
while %self.inventory%
  %purge% %self.inventory%
done
* While we have an equipment slot, purge that too.
set i 0
while %i% < 18
  eval item %%self.eq(%i%)%%
  if %item%
    %purge% %item%
  end
  eval i %i% + 1
done
~
#45
Rumble's Shotgun~
1 b 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* If the object is being wielded.
if %self.worn_by%
  * This is a random trigger so actor has to be defined.
  set actor %self.worn_by%
  * If the person wielding the object is fighting.
  if %actor.fighting%
    * Count the shots.
    eval shotgun_rounds %shotgun_rounds% + 1
    * Remember the count for the next time this trig fires.
    global shotgun_rounds
    * This double barrel shotgun, only has 2 rounds.
    if %shotgun_rounds% > 2
      * Detaching trig since gun is out of ammo.
      detach 45 %self.id%
      halt
    end  
    * We also have to define the victim.
    set victim %actor.fighting%
    * Send the messages and do the damage.
    %echoaround% %actor% %actor.name% points %self.shortdesc% at %victim.name% and pulls the trigger.
    %send% %actor% You point %self.shortdesc% at %victim.name% and pull the trigger.
    %damage% %victim% 10
  end
end
~
#46
Parrot Array Example~
0 d 100
*~
* By Meyekul of The Builder Academy    tbamud.com 9091
* Squak for the nice people, Polly
wait 1 s
emote squawks loudly.
wait 1 s
* 75 percent chance of learning phrase.
eval polly %random.4%
if %polly% > 1
  * Ignore if already known
  switch %speech%
    case %phrase(1)%
      case %phrase(2)%
      case %phrase(3)%
      case %phrase(4)%
      case %phrase(5)%
      case %phrase(6)%
      case %phrase(7)%
      case %phrase(8)%
      case %phrase(9)%
      case %phrase(10)%
      emote looks at you curiously.
    break
    default
      eval say %phrase(%%random.%number%%%)%
      emote squawks, %say%
    break
  done
  * Learn new phrases
  eval number (%number% + 1)
  set phrase(%number%) %speech%
  global number
  global phrase(%number%)
  * Reset array after 10 phrases
  if %number% == 10
    unset number
  end
end
~
#47
Mob Greet Steal~
0 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Steal the first item in the players inventory.
set item %actor.inventory%
if %item%
  if %item.vnum% != 1
    %echo% purging %item.shortdesc% with vnum %item.vnum% in %actor.name%'s inventory.
    %load% obj %item.vnum%
    %purge% %item%
  else
    %echo% can't purge %item.shortdesc% with vnum %item.vnum% in %actor.name%'s inventory because it may be a unique item.
  end 
else
  %echo% I can't find %item.shortdesc% with vnum %item.vnum% in %actor.name%'s inventory.
  %echo% I can't find an item in %actor.name%'s inventory.
end
~
#48
Object Command Assemble~
1 c 7
join~
* By Rumble of The Builder Academy    tbamud.com 9091
* Assemble an orb onto a staff to make a new item. Trig attached to obj 189
set currentroom %self.room% 
* Make sure they are in room 133 with the 2 objects.
if %currentroom.vnum(133)%
  if %actor.inventory(189)% && %actor.inventory(191)%
    * Purge 191, but leave 189 since we are going to %transform% it.
    %purge% %actor.inventory(191)%
    * lets make it a 50/50 chance of working.
    switch %random.2%
      case 1
        %transform% 12
        %send% %actor% As you join the orb to the staff it clicks into place.
        %echoaround% %actor% %actor.name% places an orb onto %actor.hisher% staff.
      break
      default
        %transform% 192
        %send% %actor% As you try to join the orb to the staff it turns in your hands and snaps in half.
        %echoaround% %actor% %actor.name% tries to place an orb onto %actor.hisher% staff until the staff twists in %actor.hisher% hands and snaps in half.
      break
    done
    detach 48 %self.id%
  else
    %send% %actor% You do not have the required items to do this.
  end
else
  %send% %actor% You can not do that here.
end
~
#49
Eval and Set Example~
2 d 100
test~
* By Rumble of The Builder Academy    tbamud.com 9091
* This is a speech trig 	RHELP TRIGEDIT ROOM SPEECH	n, say 'test' to activate.
* There is much confusion about the difference between set and eval. So this is
* the simplest way I can think of to explain it (assume %actor.level% = 34):
*
* Set stores the variable and will not process it until called.
* In the example below %set_variable% will contain '34 + 1' 
set set_variable %actor.level% + 1
%echo% Set Variable: %set_variable%
*
* Eval immediately evaluates the variable. 
* In the example below %eval_variable% will contain '35'
eval eval_variable %actor.level% + 1
%echo% Eval Variable: %eval_variable%
*
%echo% Level: %actor.level%
~
#50
Room Global Random Example~
2 ab 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Fires whether a player is in the room or not.
wait until 05:00
%echo% The butcher's assistant steps out of the shop to the North and turns the sign over from "closed" to "open."
%load% obj 69
if %findobj.291(70)%
  %purge% signclosed
end
wait until 21:00
%echo% The butcher's assistant steps out of the shop to the North and turns the sign over from "open" to "closed."
%load% obj 70
if %findobj.291(69)%
  %purge% signopened
end
~
#51
Room Random heal Example~
2 b 20
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Fires only when a player is in the room.
* Actor is not defined with trigger type random, you must define it.
set actor %random.char%
%damage% %actor% -10
%send% %actor% A healing breeze flows through the room.
%echoaround% %actor% %actor.name% looks refreshed.
~
#52
Room Command Example~
2 c 100
l~
* By Rumble of The Builder Academy    tbamud.com 9091
set bridge 'bridge
if %cmd.mudcommand% == look && %bridge.contains('%arg%)%
  %send% %actor% As you look at the bridge a small form staggers out from underneath it.
  %echoaround% %actor% As %actor.name% peers under the bridge a small form emerges.
  %load% mob 207
  wait 1 sec
  %echo% A filthy dog crawls out from underneath the bridge. It is covered in MUD.
else
  * If it doesn't match let the command continue. Without a return 0 a player
  * will not be able to "look" at anything else.
  return 0
end
~
#53
Room Speech Example~
2 d 1
*~
* By Rumble of The Builder Academy    tbamud.com 9091
*
* .car returns the first word in a string.
* .cdr returns the remaining string.
*
%echo% The first word is: %speech.car%
%echo% The rest of the string is: %speech.cdr%
*
* To go through a long string of text looking at each word you can
* use a while loop. You could also check for matching text.
*
* set the first word
set word %speech.car%
* set the rest of the speech string
set rest %speech.cdr%
* while there is a first word keep going
while %word%
  %echo% the first word is: %word%
  %echo% the remaining text is: %rest%
  set word %rest.car%
  set rest %rest.cdr%
done
~
#54
Room Global Zone Reset Example~
2 f 100
~
%door% 23667 east purge 0
%echo% As if by magic all the tapestries rise to their previous positions.
~
#55
Room Enter Example~
2 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
if %actor.is_pc%
  if %actor.sex% == male
    return 0
    %send% %actor% An invisible barrier blocks you. A voice rings out "No men allowed."
    %echoaround% %actor% %actor.name% walks into an invisible barrier and a voice booms "No men allowed."
  elseif %actor.sex% == female
    %echo% Ladies are always welcome!
  else * must be neutral.
    return 0
    %send% %actor% An invisible barrier blocks you. A voice rings out "No... things allowed."
    %echoaround% %actor% %actor.name% walks into an invisible barrier and a voice booms "No... things allowed."
  end
end
~
#56
Room Drop Example~
2 h 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Prevent players from littering.
if %object.type% == TRASH
  %send% %actor% Magical forces prevent you from dropping %object.shortdesc%.
  %send% %actor% No Littering! Drop your trash somewhere else.
  return 0
end
~
#57
Room Cast Example~
2 p 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Prevent spell casting in this room.
* %echo% %actor.name% tried to cast spellnumber: %spell%: %spellname% on %vict.name% %obj.name%.
%send% %actor% Your magic fizzles out and dies.
%echoaround% %actor% %actor.name%'s magic fizzles out and dies.
return 0
~
#58
Room Leave Example~
2 q 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
if %direction% == north
  %send% %actor% You try to go %direction% but Hannibal steps in front of you blocking the way.
  return 0
elseif %direction% == south && %actor.is_pc%
  %echo% Hannibal says, 'Thanks for stopping by.'
end
~
#59
Room Door Example~
2 r 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* The first time this door is opened dump a bucket of water on the actor.
if %cmd% == open
  %echoaround% %actor% As %actor.name% tries to %cmd% the door to the %direction% a bucket of water dumps on %actor.hisher% head.
  %send% %actor% Splash!!
  %send% %actor% A bucket of water drops on top of your head as you open the door.
  %damage% %actor% 1
  %echo% The door slams shut again.
  * Detach this trigger so it only happens once per reboot/copyover.
  detach 59 %self.id%
  * Don't allow the door to be opened.
  return 0
end
~
#60
Mob Global Random Example~
0 ab 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Global Random trigs fire whether a player is in the room or not.
switch %random.6%
  case 1
    emote whistles an annoying tune.
  break
  case 2
    emote stares at you with interest.
  break
  case 3
    emote ponders your existence.
  break
  case 4
    emote considers your potential.
  break
  case 5
    emote hums an unrecognizable tune.
  break
  default
    emote starts to sing a piercing melody about a lost love.
  break
done
~
#61
Mob Random Example~
0 b 2
~
* By Rumble of The Builder Academy    tbamud.com 9091
* With random triggers ACTOR is NOT defined. So set it.
set actor %random.char%
wait 1 sec
say Hey!  You don't belong here!
emote mumbles, 'Now what was that spell...'
wait 1 sec
* Senile old guard casts random spells on intruders.
* Don't cast if incapacitated 
if %self.hitp% > 0
  switch %random.17%
    case 1
      dg_cast 'cure light' %actor%
    break
    case 2
      dg_cast 'magic missile' %actor%
    break
    case 3
      dg_cast 'detect invisibility'
    break
    case 4
      dg_cast 'detect magic'
    break
    case 5
      dg_cast 'bless' %actor%
    break
    case 6
      dg_cast 'heal' %actor%
    break
    case 7
      dg_cast 'infravision'
    break
    case 8
      dg_cast 'invisibility' %actor%
    break
    case 9
      dg_cast 'armor' %actor%
    break
    case 10
      dg_cast 'strength' %actor%
    break
    case 11
      dg_cast 'sleep' %actor%
    break
    case 12
      dg_cast 'blindness' %actor%
    break
    case 13
      dg_cast 'detect poison' %actor%
    break
    case 14
      dg_cast 'curse' %actor%
    break
    case 15
      dg_cast 'poison' %actor%
    break
    case 16
      if %actor.align% > 0
        dg_cast 'dispel good' %actor%
      else
        dg_cast 'dispel evil' %actor%
      end
    break
    default
      * Senile magi "almost" kills himself.
      say That wasn't right...
      %echo% A failed spell backfires on the mage!
      %damage% %self% %self.hitp%
    break
  done
end
~
#62
Mob Command Example~
0 c 100
l~
* By Rumble of The Builder Academy    tbamud.com 9091
* does not work for level 32 and above.
* Make sure the command is look, check for any abbrev of orb
if %cmd.mudcommand% == look && orb /= %arg%
  %send% %actor% As you look at the orb a feeling of peace and serenity comes over you.
  %echoround% %actor% %actor.name% stares at the orb.
else
  * If it doesn't match let the command continue.
  return 0
end
~
#63
Mob Speech and Expressions Example~
0 d 1
*~
* By Rumble of The Builder Academy    tbamud.com 9091
* Arg list * means it will fire whenever someone talks.
* Check if it is a player character (not a mob).
if %actor.is_pc%
  wait 1 sec
  * Check the actors sex.
  if %actor.sex% == male
    say Good day sir, what would you like? 
  elseif %actor.sex% == female
    wait 1 sec
    say Good day maam, what can I get you?
  else
    say What do you want?
  end
  * Check if the player level is less than 10 (9 and lower).
  if %actor.level% < 10
    say you are a player below level 10.
  else
    say you are not below level 10.
  end
  * Check class not equal to warrior.
  if %actor.class% != warrior
    say you are not a warrior.
  else
    say you are a warrior.
  end
  * Check alignment between 350 and -350 (neutral).
  if %actor.align% <= 350 && %actor.align% >= -350
    say you are neutral.
  else
    say you are not neutral.
  end
  * Check strength greater than or equal to 16 and less than or equal to 18. (16-18)
  * If this was done without the equalities (=) it would check str 17 only.
  if %actor.str% >= 16 && %actor.str% <= 18
    say your strength is 16-18.
  else
    say your strength is not 16-18.
  end
  * Check the speech to see if it is a substring of the word concatenated.
  * concaten caten cat and any abbreviations.
  if concatenated /= %speech%
    say your speech was a substring of concatenated.
  else
    say your speech was not a substring of concatenated.
  end
  * Create a random number 1-10 and assign it to rnumber.
  set rnumber %random.10%
  say your random number is: %rnumber%
  * increment it by 1.
  eval rnumber %rnumber% + 1
  say your incremented random number is: %rnumber%
else
  say you are not a player.
end
~
#64
Mob Action Example~
0 e 0
kisses you.~
* By Rumble of The Builder Academy    tbamud.com 9091
wait 1 sec
slap %actor.name%
wait 1 sec
say I'm not that kind of girl.
pout
set inroom %self.room%
%zoneecho% %inroom.vnum% %self.name% shouts, '%actor.name% kisses like a fish.'
~
#65
Mob Death Example~
0 f 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
%send% %actor% %self.name% curses at you before drawing %self.hisher% final breath.
%echoround% %actor% %self.name% curses %actor.name% before drawing %self.hisher% final breath.
* If you don't want a corpse just send it to the void.
%echo% %self.name%'s body fades out of existence.
%teleport% %self% 0
~
#66
Mob Greet Example~
0 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* To make a trigger fire only on players use:
if %actor.is_pc%
  say Hello, and welcome, %actor.name%
end
* Check what direction they came from.
if %direction%
  say Hello, %actor.name%, how are things to the %direction%?
else
  * If the character popped in (word of recall, etc) this will be hit
  say Where did YOU come from, %actor.name%?
end
if %direction% == down
  say Ah, hello %actor.name% I have been waiting for you. Go learn to build.
  %teleport% %actor% 1300
  %force% %actor% look
end
if %actor.name% == Rumble
  say Make yourself comfortable %actor.name%.
else
  say get lost %actor.name%.
end
~
#67
Mob Greet-All Example~
0 h 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
if %actor.is_pc%
  wait 1 sec
  say Hello, and welcome, %actor.name%
  if %direction% == north
    say how are things to the north?
  else
    say how are things to the %direction%?
  end
  wait 1 sec
  %send% %actor% %self.name% bows deeply.
  %echoaround% %actor% %self.name% takes off %self.hisher% hat and bows deeply.
end
~
#68
Mob Entry Example~
0 i 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* First find the room the mob is in and put the value in %inroom%
set inroom %self.room%
* then check on the rooms vnum
if %inroom.vnum% == 33
  say I, %self.name%, declare this room Rumble's.
end
set person %inroom.people%
wait 1 sec
* While there are still people in the room.
while %person%
  %echo% I am targetting %person.name%.
  * Target the next person in the room.
  set person %person.next_in_room%
done
~
#69
Mob Receive Example~
0 j 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Recruit really wants some beer.
if %object.vnum% == 101 || %object.vnum% == 147
  say thanks, I really needed this.
  drink beer
  %purge% %object%
  * Give some basic directions to newbies.
  if %actor.level% < 5
    say I owe you one, take this in exchange.
    %load% obj 159
    give directions %actor.name%
  end
else
  say I don't want that!
  return 0
end
~
#70
Mob fight example - dg_cast missile~
0 k 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Only cast the spell every 30 seconds.
if %already_cast%
  wait 30 s
  unset already_cast
else
  dg_cast 'magic missile' %actor.name%
  set already_cast 1
  * By globalling the variable it can be accessed by other triggers or when
  * this trigger fires a second time.
  global already_cast
end
~
#71
Mob Hitprcnt Example~
0 l 50
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Fires at 50 percent hitpoints.
%zoneecho% %self.room.vnum% %self.name% shouts 'HELP! I'm under ATTACK! HELP!'
* Remove the trigger so it won't fire again if the mob heals.
detach 71 %self.id%
~
#72
Mob Bribe Example~
0 m 1
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Charge 100 gold to get out.
if %amount% >= 100
  if %amount% > 100
    eval change %amount% - 100
    give %change% coin %actor.name%
  end
  emote opens a concealed door.
  wait 1 sec
  say thank you, step inside.
  wait 2 sec
  %echoaround% %actor% %self.name% pushes %actor.name% through a concealed door.
  %send% %actor% %self.name% helps you through a concealed door.
  %teleport% %actor% 130
else
  say only %amount% coins, I don't think so.
  give %amount% coin %actor.name%
end
~
#73
Mob Load Example~
0 n 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* When the mob is created give it a random weapon.
switch %random.5%
  case 1
    %load% obj 3010
    wield dagger
  break
  case 2
    %load% obj 3011
    wield sword
  break
  case 3
    %load% obj 3012
    wield club
  break
  case 4
    %load% obj 3013
    wield mace
  break
  case 5
    %load% obj 3014
    wield sword
  break
  default
    * this should be here, even if it's never reached
  break
done
~
#74
Mob Memory Example Part 1~
0 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* mremember must be used before you can use the trigger type memory.
mremember %actor.name%
say I'll remember you now, %actor.name%
~
#75
Mob Memory Example Part 2~
0 o 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Fires if player is in mobs memory via mremember and the mob sees the actor.
wait 4 s
poke %actor.name%
say i've seen you before, %actor.name%.
mforget %actor.name%
~
#76
Mob Cast Example~
0 p 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
if %spellname% == magic missile
  %echo% %self.name% is protected by a shield spell negating %actor.name%s %spellname%.
  * Return 0 prevents the spell from working.
  return 0
else
  %echo% %self.name%s shield spell doesn't protect %self.himher% from %actor.name%'s %spellname%.
  * Return 1 allows the trigger to continue and the spell to work. It is not needed 
  * since this is the normal return state of a trigger.
  return 1
end
~
#77
Mob Leave Example~
0 q 100
~
if %actor.level% > 10
  say You may not leave here, %actor.name%.
  %send% %actor% %self.name% prevents you from leaving the room.
  %echoaround% %actor% As %actor.name% tries to leave the room, %self.name% stops %actor.himher%.
  return 0
end
~
#78
Mob Door Example~
0 r 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
say %actor.name% do not try to %cmd% the door to the %direction% again. Or else!
return 0
~
#79
Obj Global Random Example~
1 ab 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
wait until 06:00
* Shop is open, fill the container.
%echo% A small trickle of red liquid begins to flow from the shop to the North.
oset 0 4
oset 1 4
wait until 22:00
* Shop is closed, empty it.
%echo% The shop to the north starts to close up for the night.
oset 0 0
oset 1 0
~
#80
Obj Random Example~
1 b 1
~
* By Rumble of The Builder Academy    tbamud.com 9091
if %self.worn_by%
  set actor %self.worn_by%
  %send% %actor% War's Blood thirsts for battle.
end
~
#81
Obj Command Example~
1 c 7
o~
* By Rumble of The Builder Academy    tbamud.com 9091
* Numeric Arg: 7 means obj can be worn, carried, or in room.
* Make sure the command is open, check for any abbrev of closet
if %cmd.mudcommand% == open && closet /= %arg%
  %send% %actor% As you open the closet something runs out.
  %echoaround% %actor% %actor.name% opens a closet and something comes out.
  %load% mob 207
  detach 81 %self.id%
else
  * If it doesn't match let the command continue.
  return 0
end
~
#82
Obj Timer Example~
1 f 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* This object will disappear once its timer value reaches 0.
%echo% The ice cream melts away.
%purge% %self%
~
#83
Obj Get Example~
1 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
if %actor.align% > 350
  %send% %actor% As you reach for %self.shortdesc% it fades out of existence.
  %echoaround% %actor% As %actor.name% reaches for %self.shortdesc% it fades out of existence.
  return 0
else
  %send% %actor% As you pick up %self.shortdesc% it seems to vibrate with a life of its own.
end
~
#84
Obj Drop Example~
1 h 100
~
if %actor.level% < 31
  %send% %actor% You fail to drop %self.shortdesc%.
  return 0
else
  %send% %actor% %self.shortdesc% glows a bright yellow, then explodes.
  %purge% %self%
end
~
#85
Obj Give Example~
1 i 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
if %actor.level% < 20
  %send% %actor% You can't give %victim.himher% that.
  %send% %victim% %actor.name% tries to give you %self.shortdesc%, but fails.
  return 0
else
  %send% %actor% You feel diminished.
end
~
#86
Obj Wear Example~
1 j 100
~
if %actor.is_pc%
  * By Rumble of The Builder Academy    tbamud.com 9091
  if %actor.str% < 17
    %send% %actor% %self.shortdesc% is too heavy for you to use.
    %echoaround% %actor% %actor.name% tries to use %self.shortdesc% but can't seem to hold it up.
    return 0
  end
end
~
#87
Obj Remove Example~
1 l 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
if %actor.int% < 12
  %send% %actor% You can't figure out how to remove %self.shortdesc%.
  %echoaround% %actor% %actor.name% tries to remove %self.shortdesc% but can't.
  return 0
end
~
#88
Obj Load Example~
1 n 50
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Squeak when loading.
%echo% %self.shortdesc% lets out a faint squeak as if gasping for breath.
~
#89
Shackles O89~
1 q 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
%send% %actor% You try walk to the %direction% but simply reach the end of your chain and fall flat on your face.
%echoaround% %actor% %actor.name% walks to the end of %actor.hisher% chain and falls over gracefully.
nop %actor.pos(sitting)%
return 0
~
#90
Obj Cast Example~
1 p 100
~
%echo% %actor.name% cast spell number: %spell%: %spellname% on %self.shortdesc%
~
#91
Special Characters Example~
1 b 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* Special Characters Example - how to automatically substitute possessive pronouns.
%echo% VNUM:                    %self.vnum%
set thing %self.name.car%
%echo% FIRST KEYWORD:           %thing%
%echo% NAME'S, SOMEONE'S, YOUR: |%thing%
%echo% NAME, SOMEONE, YOU:      %thing%
%echo% IT, YOU, HE/SHE:         &%thing%
%echo% IT, YOU, HIM/HER:        *%thing%
%echo% ITS, YOUR' HIS/HER:      ^%thing%
~
#92
Room Command Combination Lock~
2 c 100
push~
* By Rumble of The Builder Academy    tbamud.com 9091
*
* To allow multiple scripts based on this script we set a context:
  context %self.id%
* clear old var, if set.
  unset reset_buttons
* check argument
  if %arg% == red
    %send% %actor% You push the red button.
    set pushed_red 1
    global pushed_red
  elseif %arg% == yellow
    %send% %actor% You push the yellow button.
    if %pushed_red%
      set pushed_yellow 1
      global pushed_yellow
    else 
      set reset_buttons 1
    end
  elseif %arg% == green
    %send% %actor% You push the green button.
    if %pushed_red% && %pushed_yellow%
      set pushed_green 1
      global pushed_green
    else
      set reset_buttons 1
    end
  elseif %arg% == blue
    %send% %actor% You push the blue button.
    if %pushed_red% && %pushed_yellow% && %pushed_green%
      set pushed_blue 1
      global pushed_blue
    else
      set reset_buttons 1
    end
  elseif %arg% == purple
    %send% %actor% You push the purple button.
    if %pushed_red% && %pushed_yellow% && %pushed_green% && %pushed_blue%
      %send% %actor% You hear a loud click as you push the final button.
      set reset_buttons 1
    else
      set reset_buttons 1
      end
  elseif %arg% == white
    %send% %actor% You push the white reset button.
    set reset_buttons 1
  else
    %send% %actor% Push what ?!
    halt
  end
* reset the buttons if necessary
  if %reset_buttons%
    unset reset_buttons
    unset pushed_red
    unset pushed_yellow
    unset pushed_green
    unset pushed_blue
    %send% %actor% The buttons all suddenly pop back out.
  end
* send the state of the buttons
  %send% %actor% red:%pushed_red% yellow:%pushed_yellow% green:%pushed_green% blue:%pushed_blue% purple:%pushed_purple%
~
#93
if/elseif/else Example~
2 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
if %actor.is_pc%
  wait 1 sec
  if %actor.sex% == male
    %echo% male
  elseif %actor.sex% == female
    %echo% elseif female
  else
    %echo% else neutral
  end
else
  %echo% mob
end
~
#94
Kind Soul 13 - Give Newbie Equipment~
0 g 100
~
* By Rumble of The Builder Academy    tbamud.com 9091
* If a player is < level 3 and naked it fully equips them. If < 3 and missing
* some equipment it will equip one spot.
if %actor.is_pc% && %actor.level% < 3
  wait 2 sec
  if !%actor.eq(*)%
    say get some clothes on! Here, I will help.
    %load% obj 50 %actor% light
    %load% obj 51 %actor% rfinger
    %load% obj 52 %actor% lfinger
    %load% obj 53 %actor% neck1
    %load% obj 54 %actor% neck2
    %load% obj 55 %actor% body
    %load% obj 56 %actor% head
    %load% obj 57 %actor% legs
    %load% obj 58 %actor% feet
    %load% obj 59 %actor% hands
    %load% obj 60 %actor% arms
    %load% obj 61 %actor% shield
    %load% obj 62 %actor% about
    %load% obj 63 %actor% waist
    %load% obj 64 %actor% rwrist
    %load% obj 65 %actor% lwrist
    %load% obj 66 %actor% wield
    %load% obj 67 %actor% hold
    halt
  end
  if !%actor.eq(light)%
    Say you really shouldn't be wandering these parts without a light source %actor.name%.
    shake
    %load% obj 50
    give generic %actor.name%
    halt
  end
  if !%actor.eq(rfinger)% || !%actor.eq(lfinger)%
    Say did you lose one of your rings?
    sigh
    %load% obj 51
    give generic %actor.name%
    halt
  end
  if !%actor.eq(neck1)% || !%actor.eq(neck2)%
    Say you lose everything don't you?
    roll
    %load% obj 53
    give generic %actor.name%
    halt
  end
  if !%actor.eq(body)%
    say you won't get far without some body armor %actor.name%.
    %load% obj 55
    give generic %actor.name%
    halt
  end
  if !%actor.eq(head)%
    Say protect that noggin of yours, %actor.name%.
    %load% obj 56
    give generic %actor.name%
    halt
  end
  if !%actor.eq(legs)%
    Say why do you always lose your pants %actor.name%?
    %load% obj 57
    give generic %actor.name%
    halt
  end
  if !%actor.eq(feet)%
    Say you can't go around barefoot %actor.name%.
    %load% obj 58
    give generic %actor.name%
    halt
  end
  if !%actor.eq(hands)%
    Say need some gloves %actor.name%?
    %load% obj 59
    give generic %actor.name%
    halt
  end
  if !%actor.eq(arms)%
    Say you must be freezing %actor.name%.
    %load% obj 60
    give generic %actor.name%
    halt
  end
  if !%actor.eq(shield)%
    Say you need one of these to protect yourself %actor.name%.
    %load% obj 61
    give generic %actor.name%
    halt
  end
  if !%actor.eq(about)%
    Say you are going to catch a cold %actor.name%.
    %load% obj 62
    give generic %actor.name%
    halt
  end
  if !%actor.eq(waist)%
    Say better use this to hold your pants up %actor.name%.
    %load% obj 63
    give generic %actor.name%
    halt
  end
  if !%actor.eq(rwrist)% || !%actor.eq(lwrist)%
    Say misplace something?
    smile
    %load% obj 65
    give generic %actor.name%
    halt
  end
  if !%actor.eq(wield)%
    Say without a weapon you will be Fido food %actor.name%.
    %load% obj 66
    give generic %actor.name%
    halt
  end
end
~
#95
Puff - Random Advice~
0 ab 12
~
* By Rumble of The Builder Academy    tbamud.com 9091
set max %random.197%
set  text[1]   My god!  It's full of stars!
set  text[2]   How'd all those fish get up here?
set  text[3]   Some people are like Slinkies. Not really good for anything, but still bring a smile to your face when you push them down a flight of stairs.
set  text[4]   I've got a peaceful, easy feeling.
set  text[5]   Ahhh, spring is in the air.
set  text[6]   I'm one of those bad things that happen to good people.
set  text[7]   Bring out your dead, bring out your dead!
set  text[8]   If there is no God, who pops up the next kleenex in the box?
set  text[9]   Have you ever imagined a world with no hypothetical situations?
set  text[10]  Pardon me, but do you have any Grey Poupon?
set  text[11]  If nothing sticks to Teflon, how do they stick Teflon to the pan?
set  text[12]  Better be nice or I will use fireball on you!
set  text[13]  Do you think I'm going bald?
set  text[14]  This is your brain, this is MUD, this is your brain on MUD, Any questions?
set  text[15]  I'm Puff the Magic Dragon, who the hell are you?
set  text[16]  Quick!  Reverse the polarity of the neutron flow!
set  text[17]  Shh...  I'm beta testing.  I need complete silence!
set  text[18]  I'm the real implementor, you know.
set  text[19]  If love is blind, why is lingerie so popular?
set  text[20]  Despite the cost of living, have you noticed how popular it remains?
set  text[21]  Are you crazy, is that your problem?
set  text[22]  A bus station is where a bus stops. A train station is where a train stops. On my desk I have a work station. GO FIGURE!
set  text[23]  If you can't beat them, arrange to have them beaten.
set  text[24]  It takes a big man to cry, but it takes a bigger man to laugh at him.
set  text[25]  Friends come and go, but enemies accumulate.
set  text[26]  A lie has speed but truth has endurance.
set  text[27]  Do not blame the sword for the hand that wields it.
set  text[28]  The intention is not to see through each other but to see each other through.
set  text[29]  You can build a throne of bayonets, but you cannot sit on it for long.
set  text[30]  True friendship comes when silence between two people is comforting.
set  text[31]  I can picture in my mind a world without hate or anger and I can picture us attacking that world because they would never expect it.
set  text[32]  Life is like a dog sled team. If you are not the lead dog, the scenery never changes.
set  text[33]  The only man completely at peace is a man without a navel.
set  text[34]  Losers talk about how hard they tried while the winner goes home with the prom queen.
set  text[35]  Give a man a fish and he will eat for a day. Teach him how to fish, and he will sit in a boat and drink beer all day.
set  text[36]  Keep your friends close but keep your enemies closer.
set  text[37]  No, my powers can only be used for good.
set  text[38]  Who was the first person to look at a cow and say, "I think I'll squeeze these dangly things here, and drink whatever comes out"?
set  text[39]  Why do toasters always have a setting that burns the toast to a horrible crisp such that no decent human being would eat?
set  text[40]  Why is there a light in the fridge and not in the freezer?
set  text[41]  Why is it that some people appear bright until you hear them speak?
set  text[42]  Can a hearse carrying a corpse drive in the carpool lane?
set  text[43]  Why do people point to their wrist when asking for the time, but don't point to their crotch when they ask where the bathroom is?
set  text[44]  Why ARE Trix only for kids?
set  text[45]  Why is a person that handles your money called a 'Broker'?
set  text[46]  Whose cruel idea was it for the word "lisp" to have an "s" in it?
set  text[47]  If corn oil is made from corn, and vegetable oil is made from vegetables, then what is baby oil made from?
set  text[48]  If electricity comes from electrons, does morality come from morons?
set  text[49]  Is Disney World the only people trap operated by a mouse?
set  text[50]  "I am" is reportedly the shortest sentence in the English language. Could it be that "I do" is the longest sentence?
set  text[51]  Do illiterate people get the full effect of Alphabet Soup?
set  text[52]  Did you ever notice that when you blow in a dog's face, he gets mad at you, but when you take him on a car ride, he sticks his head out the window?
set  text[53]  My mind works like lightning one brilliant flash and it is gone.
set  text[54]  100,000 sperm and you were the fastest?
set  text[55]  A closed mouth gathers no foot. 
set  text[56]  Someday, we'll all look back on this, laugh nervously and change the subject.
set  text[57]  A diplomat is someone who can tell you to go to hell in such a way that you will look forward to the trip.
set  text[58]  All generalizations are false, including this one.
set  text[59]  We are born naked, wet and hungry. Then things get worse.
set  text[60]  What was the best thing BEFORE sliced bread?
set  text[61]  All stressed out and no one to choke.
set  text[62]  Before you criticize someone, you should walk a mile in their shoes. That way, when you criticize them, you're a mile away and you have their shoes.
set  text[63]  Better to understand a little than to misunderstand a lot.
set  text[64]  Bills travel through the mail at twice the speed of checks. 
set  text[65]  Do NOT start with me. You will NOT win.
set  text[66]  Don't be irreplaceable; if you can't be replaced, you can't be promoted.
set  text[67]  Don't piss me off! I'm running out of places to hide the bodies.
set  text[68]  Don't take life too seriously, you won't get out alive.
set  text[69]  Duct tape is like the force, it has a light side and a dark side and it holds the universe together.
set  text[70]  Eagles may soar, but weasels don't get sucked into jet engines.
set  text[71]  Ever stop to think, and forget to start again? 
set  text[72]  Forget world peace. Visualize using your turn signal.
set  text[73]  Give me ambiguity or give me something else.
set  text[74]  Why do people with closed minds always open their mouths?
set  text[75]  He who laughs last thinks slowest.
set  text[76]  I didn't say it was your fault, Relsqui. I said I was going to blame you.
set  text[77]  I don't suffer from insanity. I enjoy every minute of it. 
set  text[78]  I feel like I'm diagonally parked in a parallel universe.
set  text[79]  I just got lost in thought. It was unfamiliar territory. 
set  text[80]  I need someone really bad. Are you really bad?
set  text[81]  I poured Spot remover on my dog. Now he's gone.
set  text[82]  I used to be indecisive. Now I'm not sure.
set  text[83]  I used to have a handle on life, and then it broke. 
set  text[84]  If ignorance is bliss, you must be orgasmic. 
set  text[85]  Some people are alive only because it's illegal to kill them.
set  text[86]  It is far more impressive when others discover your good qualities without your help.
set  text[87]  It may be that your sole purpose in life is simply to serve as a warning to others.
set  text[88]  Never mess up an apology with an excuse.
set  text[89]  Okay, who put a stop payment on my reality check?
set  text[90]  Of course I don't look busy... I did it right the first time.
set  text[91]  Quantum mechanics: The dreams stuff is made of. 
set  text[92]  Save your breath. You'll need it to blow up your date! 
set  text[93]  Smith & Wesson: The original point and click interface.
set  text[94]  Some days you are the bug, some days you are the windshield.
set  text[95]  Some drink at the fountain of knowledge. Others just gargle.
set  text[96]  The early bird may get the worm, but the second mouse gets the cheese. 
set  text[97]  The only substitute for good manners is fast reflexes. 
set  text[98]  The problem with the gene pool is that there is no lifeguard.
set  text[99]  Remember my name - you'll be screaming it later.
set  text[100] The severity of the itch is inversely proportional to the ability to reach it.
set  text[101] Very funny Scotty, now beam down my clothes.
set  text[102] Why is abbreviation such a long word? 
set  text[103] Why isn't phonetic spelled the way it sounds?
set  text[104] You're just jealous because the voices are talking to me and not you! 
set  text[105] The proctologist called, they found your head.
set  text[106] Everyone has a photographic memory; some just don't have film.
set  text[107] Try not to let your mind wander. It is too small to be out by itself.
set  text[108] You need only two tools. WD-40 and duct tape. If it doesn't move and it should, use WD-40. If it moves and shouldn't, use the tape.
set  text[109] If you woke up breathing, congratulations! You have another chance!
set  text[110] I don't believe in miracles. I rely on them.
set  text[111] When I'm feeling down, I like to whistle. It makes the neighbor's dog that barks all the time run to the end of his chain and gag himself.
set  text[112] Why did kamikaze pilots wear helmets?
set  text[113] I'm not tense, just terribly, terribly alert.
set  text[114] How do I set a laser printer to stun?
set  text[115] Everything I need to know about life I learned by killing smart people and eating their brains.
set  text[116] I thought I wanted a career, turns out I just wanted paychecks.
set  text[117] Is it time for your medication or mine?
set  text[118] Too many freaks, not enough circuses.
set  text[119] How many times do I have to flush before you go away?
set  text[120] No word in the English language rhymes with month, orange, silver, and purple.
set  text[121] If lawyers are disbarred and clergymen defrocked, doesn't it follow that electricians can be delighted, musicians denoted, cowboys deranged, models deposed, tree surgeons debarked and dry cleaners depressed?
set  text[122] Sarcasm: just one more service we offer here.
set  text[123] This is a mean and cruel world. I want my nappy and medication right now!
set  text[124] Back off! You're standing in my aura.
set  text[125] More people are killed annually by donkeys than die in air crashes.
set  text[126] A 'jiffy' is an actual unit of time for 1/100th of a second.
set  text[127] Does your train of thought have a caboose?
set  text[128] Money isn't made out of paper, it's made out of cotton.
set  text[129] I got out of bed for this? 
set  text[130] You, you and you: panic.  The rest of you, come with me.
set  text[131] Stress is when you wake up screaming and you realize you haven't fallen asleep yet.
set  text[132] I'm not your type. I'm not inflatable.
set  text[133] If it's stupid but works, it isn't stupid.
set  text[134] If only you'd use your powers for good instead of evil...
set  text[135] The more you sweat in peace, the less you bleed in war.
set  text[136] Tracers work both ways.
set  text[137] Who cares if a laser guided 500 lb bomb is accurate to within 3 feet?
set  text[138] Ever wonder about those people who spend 2.00 dollars a piece on those little bottles of Evian water? Try spelling Evian backwards.
set  text[139] Isn't making a smoking section in a restaurant like making a peeing section in a swimming pool?
set  text[140] Why do croutons come in airtight packages? Aren't they just stale bread to begin with?
set  text[141] Why is it that rain drops but snow falls?
set  text[142] If it's true that we are here to help others, then what exactly are the others here for?
set  text[143] The light at the end of the tunnel has been turned off due to budget cuts.
set  text[144] %random.4% days without a human rights violation!
set  text[145] At least you're not being rectally probed by aliens.
set  text[146] The most powerful force in the universe is gossip.
set  text[147] You should not confuse your career with your life.
set  text[148] No matter what happens, somebody will find a way to take it too seriously.
set  text[149] When trouble arises and things look bad, there is always one individual who perceives a solution and is willing to take command. Very often, that individual is crazy.
set  text[150] There is a very fine line between "hobby" and "mental illness."
set  text[151] Accept that some days you're the pigeon, and some days you're the statue.
set  text[152] Never under any circumstances take a sleeping pill and a laxative on the same night.
set  text[153] You should never say anything to a woman that even remotely suggests you think she's pregnant unless you can see an actual baby emerging from her at that moment.
set  text[154] A person who is nice to you, but rude to the waiter, is not a nice person.
set  text[155] When everything's coming your way, you're in the wrong lane.
set  text[156] I live in my own little world, but it's ok they know me here.
set  text[157] Show me a man with both feet firmly on the ground, and I'll show you a man who can't get his pants off.
set  text[158] I don't approve of political jokes...I've seen too many of them get elected.
set  text[159] I love being married. It's so great to find that one special person you want to annoy for the rest of your life.
set  text[160] I am a nobody, nobody is perfect, therefore I am perfect.
set  text[161] Everyday I beat my own previous record for number of consecutive days I've stayed alive.
set  text[162] If carrots are so good for the eyes, how come I see so many dead rabbits on the highway? 
set  text[163] Welcome To Shit Creek - Sorry, We're Out of Paddles!
set  text[164] How come we choose from just two people to run for president and 50 for Miss America?
set  text[165] Ever notice that people who spend money on beer, cigarettes, and lottery tickets are always complaining about being broke and not feeling well?
set  text[166] The next time you feel like complaining remember: Your garbage disposal probably eats better than thirty percent of the people in this world.
set  text[167] Snowmen fall from Heaven unassembled.
set  text[168] Every time I walk into a singles bar I can hear Mom's wise words: "Don't pick that up, you don't know where it's been."
set  text[169] Out of my mind...Back in five minutes.
set  text[170] I want to die peacefully in my sleep like my grandfather...Not screaming and yelling, like the passengers in his car.
set  text[171] Man who run in front of car get tired.
set  text[172] Man who run behind car get exhausted.
set  text[173] Man who scratches backside should not bite fingernails.
set  text[174] Man who passes wind in church sits in own pew.
set  text[175] Some days, I just don't feel like slaying dragons.
set  text[176] Thank you for not being perky.
set  text[177] Don't annoy the crazy person.
set  text[178] Which trailer park did you grow up in?
set  text[179] When the only tool you own is a hammer, every problem begins to look like a nail.
set  text[180] And your crybaby whiny ass opinion would be?
set  text[181] The longest one-syllable word in the English language is "screeched."
set  text[182] On a Canadian two dollar bill, the flag flying over the Parliament building is an American flag.
set  text[183] I didn't fight my way to the top of the food chain to be a vegetarian.
set  text[184] What am I? Flypaper for freaks?
set  text[185] Would you like fries with that?
set  text[186] Why do they lock gas station bathrooms? Are they worried someone will clean them?
set  text[187] I may not be the best looking gal here, but I'm the only one talking to you.
set  text[188] Where do forest rangers go to get away from it all?
set  text[189] Who are these kids and why are they calling me Mom?
set  text[190] Not the brightest crayon in the box now, are we?
set  text[191] Don't bother me. I'm living happily ever after.
set  text[192] I started out with nothing and still have most of it left.
set  text[193] You! Off my planet!
set  text[194] Therapy is expensive, poppin' bubble wrap is cheap! You choose.
set  text[195] Did the aliens forget to remove your anal probe?
set  text[196] It is as bad as you think and they are out to get you.
set  text[197] Isn't it scary that doctors call what they do "practice"?
eval speech %%text[%max%]%%
say %speech%
~
#96
Obj Command 81 - Paintball Shoot Blue~
1 c 2
shoot~
* By Rumble of The Builder Academy    tbamud.com 9091
if %arg.room% != %actor.room% || %arg.id% == %actor.id%
  %send% %actor% Shoot: Invalid Target!
  halt
end
set inroom %actor.room%
if %arg.inventory(80)%
  %echoaround% %actor% %actor.name% blasts %arg.name% with %actor.hisher% paintball gun.
  %send% %actor% You blast %arg.name%.
  %send% %arg% You lose!
  %purge% %arg.inventory(80)%
  %zoneecho% %inroom.vnum% %actor.name% shoots %arg.name%. A score for the Blue Team.
elseif %arg.inventory(81)%
  %send% %actor% They are on your team!
elseif
  %send% %actor% %arg.name% is not playing.
end
~
#97
Obj Command 80 - Paintball Shoot Red~
1 c 2
shoot~
* By Rumble of The Builder Academy    tbamud.com 9091
if %arg.room% != %actor.room% || %arg.id% == %actor.id%
  %send% %actor% Shoot: Invalid Target!
  halt
end
set inroom %actor.room%
if %arg.inventory(81)%
  %echoaround% %actor% %actor.name% blasts %arg.name% with %actor.hisher% paintball gun.
  %send% %actor% You blast %arg.name%.
  %send% %arg% You lose!
  %purge% %arg.inventory(81)%
  %zoneecho% %inroom.vnum% %actor.name% shoots %arg.name%. A score for the Red Team.
elseif %arg.inventory(80)%
  %send% %actor% They are on your team!
elseif
  %send% %actor% %arg.name% is not playing.
end
~
#98
Mob Act - 98 Teleporter Give~
0 e 0
steps out of space and time.~
* By Rumble of The Builder Academy    tbamud.com 9091
if %actor.is_pc%  
  if !%actor.eq(*)%
    %load% obj 50 %actor% light
    %load% obj 51 %actor% rfinger
    %load% obj 52 %actor% lfinger
    %load% obj 53 %actor% neck1
    %load% obj 54 %actor% neck2
    %load% obj 55 %actor% body
    %load% obj 56 %actor% head
    %load% obj 57 %actor% legs
    %load% obj 58 %actor% feet
    %load% obj 59 %actor% hands
    %load% obj 60 %actor% arms
    %load% obj 61 %actor% shield
    %load% obj 62 %actor% about
    %load% obj 63 %actor% waist
    %load% obj 64 %actor% rwrist
    %load% obj 65 %actor% lwrist
    %load% obj 66 %actor% wield
    %load% obj 67 %actor% hold
  end
  wait 2 sec
  if !%actor.inventory(82)%
    wait 1 s
    say You are not prepared to travel these realms to their fullest.
    wait 1 s
    say Maybe I can help you.
    %load% obj 82
    give teleporter %actor.name%
    * If the players inventory is full drop it for them.
    if !%actor.inventory(82)%
      drop teleporter
    end
    wait 2 s
    say With this you may teleport to areas that may not be accessible in any other way.
    wait 2 s
    say HELP AREAS
  end
end
~
#99
Obj Command 82 - Teleporter~
1 c 3
teleport~
* By Rumble and Jamie Nelson of The Builder Academy    tbamud.com 9091
%send% %actor% You attempt to manipulate space and time.
%echoaround% %actor% %actor.name% attempts to manipulate space and time.
wait 1 sec
set sanctus 100
set jade 400
set newbie 500
set sea 600
set camelot 775
set nuclear 1800
set spider 1999
set arena 2000
set tower 2200
set memlin 2798
set mudschool 2800
set midgaard 3001
set capital 3702
set haven 3998
set chasm 4200
set arctic 4396
set Orc 4401
set monastery 4512
set ant 4600
set zodiac 5701
set grave 7401
set zamba 7500
set gidean 7801
set glumgold 8301
set duke 8660
set oasis 9000
set domiae 9603
set northern 10004
set south 10101
set dbz 10301
set orchan 10401
set elcardo 10604
set iuel 10701
set omega 11501
set torres 11701
set dollhouse 11899
set hannah 12500
set maze 13001
set wyvern 14000
set caves 16999
set cardinal 17501
set circus 18700
set western 20001
set sapphire 20101
set kitchen 22001
set terringham 23200
set dragon 23300
set school 23400
set mines 23500
set aldin 23601
set crystal 23875
set pass 23901
set maura 24000
set enterprise 24100
set new 24200
set valley 24300
set prison 24457
set nether 24500
set yard 24700
set elven 24801
set jedi 24901
set dragonspyre 25000
set ape 25100
set vampyre 25200
set windmill 25300
set village 25400
set shipwreck 25516
set keep 25645
set jareth 25705
set light 25800
set mansion 25907
set grasslands 26000
set igor's 26100
set forest 26201
set farmlands 26300
set banshide 26400
set beach 26500
set ankou 26600
set vice 26728
set desert 26900
set wasteland 27001
set sundhaven 27119
set station 27300
set smurfville 27400
set sparta 27501
set shire 27700
set oceania 27800
set notre 27900
set motherboard 28000
set khanjar 28100
set kerjim 28200
set haunted 28300
set ghenna 28400
set hell 28601
set goblin 28700
set galaxy 28801
set werith's 28900
set lizard 29000
set black 29100
set kerofk 29202
set trade 29400
set jungle 29500
set froboz 29600
set desire 29801
set cathedral 29900
set ancalador 30000
set campus 30100
set bull 30401
set chessboard 30537
set tree 30600
set castle 30700
set baron 30800
set westlawn 30900
set graye 31003
set teeth 31100
set leper 31200
set altar 31400
set mcgintey 31500
set wharf 31700
set dock 31801
set yllnthad 31900
set bay 32200
set pale 32300
set army 32400
set revelry 32500
set perimeter 32600
set asylum 34501
set ultima 55685
set tarot 21101
if !%arg%
  *they didnt type a location
  set fail 1
else
  *take the first word they type after the teleport command
  *compare it to a variable above
  eval loc %%%arg.car%%%
  if !%loc%
    *they typed an invalid location
    set fail 1
  end
end
if %fail%
  %send% %actor% You fail.
  %echoaround% %actor% %actor.name% fails.
  halt
end
%echoaround% %actor% %actor.name% seems successful as %actor.heshe% steps into another realm.
%teleport% %actor% %loc%
%force% %actor% look
%echoaround% %actor% %actor.name% steps out of space and time.
~
$~