#1400 free~ 0 g 100 ~ * we don't want him to tell this to mobs. if %actor.is_pc% * only greet players coming from the south. if %direction% == 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 apprehensive 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 apprehension he has stolen. wait 2 sec emote looks to the east. end end ~ #1401 free~ 0 f 100 ~ say you got the best of me %actor.name%. * load some apprehension %load% obj 1300 * reload the mob for the next questor %load% mob 1311 ~ #1402 free~ 0 j 100 ~ * check if this was indeed the right object if %object.vnum% == 1300 wait 1 sec say Thank you, %actor.name% %send% %actor% %self.name% gives you a gold piece. %echoaround% %actor% %actor.name% is rewarded for his valor. nop %actor.gold(1)% wait 5 sec %purge% %object% else * this wasn't the right object - don't accept it say I don't want that - bring me back my apprehension. return 0 end ~ #1403 free~ 0 n 100 ~ wait 3 sec say I'm back. Did you really think you could kill me so easily? ~ #1404 free~ 0 g 100 ~ if %direction% == south wait 1 sec emote snaps to attention as you approach. wait 1 sec say Admittance to the city is 10 coins. end ~ #1405 free~ 0 m 1 ~ * This is a comment. Always use amplifying comment to explain your Triggers! * If actor gives 10 coins or more if %amount% >= 10 * if actor gives more than 10 then 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 gate wait 1 sec open gate wait 10 sec close gate wait 1 sec lock gate * else they gave too few! be nice and refund them else say only %amount% coins, I require 10. give %amount% coin %actor.name% end ~ #1406 free~ 0 m 1 ~ * No Script ~ #1407 free~ 0 e 0 The gate is opened from~ wait 5 sec close gate wait 1 sec lock gate ~ #1408 free~ 0 e 0 leaves north.~ wait 1 sec close gate wait 1 sec lock gate ~ #1409 free~ 0 g 100 ~ if %direction% == south if %actor.varexists(solved_example_quest_zone_0)% wait 1 sec say you have already completed this quest. halt else wait 1 sec say Hello, %actor.name%. Could you find me the magic eight ball? say Please say yes, %actor.name%. end end ~ #1410 free~ 0 d 1 yes~ if %actor.varexists(solved_example_quest_zone_0)% halt else 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 ~ #1411 free~ 0 j 100 ~ if %actor.varexists(solved_example_quest_zone_0)% say you already solved this quest, keep it. return 0 end * wait 1 sec if (%object.vnum% == 47) dance wait 1 sec say Thank you, %actor.name%. Here is a few experience points and some gold. 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. set solved_example_quest_zone_0 1 remote solved_example_quest_zone_0 %actor.id% %purge% %object% else say I don't want that! junk %object.name% end ~ #1412 free~ 2 g 100 ~ wait 2 sec %echoaround% %actor.name% 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 47 %damage% %actor% %random.5% ~ #1413 Obj Command Restorative Comfy Bed Sleep - 1401~ 1 c 4 sl~ * does not work for level 32 and above. if %cmd.mudcommand% == sleep && bed /= %arg% %force% %actor% sleep set laying_in_comfy_bed_14 1 remote laying_in_comfy_bed_14 %actor.id% %send% %actor% The bed is extremely comfortable. else return 0 end ~ #1414 Obj Random Restorative Comfy Bed - 1401~ 1 b 100 ~ if %random.char% set actor %random.char% if %actor.varexists(laying_in_comfy_bed_14)% %damage% %actor% -10 %echoaround% %actor% %actor.name% seems refreshed from sleeping in the comfy bed. %send% %actor% You dream peacefully and seem magically refreshed. end end ~ #1415 Obj Command Restorative Comfy Bed Wake - 1401~ 1 c 4 wa~ * does not work for level 32 and above. if %cmd.mudcommand% == wake && %actor.varexists(laying_in_comfy_bed_14)% %force% %actor% wake rdelete laying_in_comfy_bed_14 %actor.id% %send% %actor% You sit on the edge of the bed feeling much better. %echoaround% %actor% %actor.name% sits up on the edge of the bed looking refreshed. else return 0 end ~ #1416 free~ 0 q 100 ~ * Check to see if the person is not carrying the magic eight ball if !%actor.has_item(47)% * They are not carrying it. So stop them and give them one. * Return 0 ignores their command to go west. They stay in the room. return 0 wait 1 sec say You forgot your magic eight ball. Take this one. * Loads the object to the actors inventory. %load% obj 47 %actor% %send% %actor% %self.name% gives you the magic eight ball. end ~ #1417 Attach Example~ 2 b 100 ~ %echo% This trigger commandlist is not complete! %at% 1233 %echo% %self.vnum% %self.id% %echo% %self.vnum% %self.id% ~ #1418 Command Draw~ 1 c 100 draw~ * this trigger is meant for a card table or something similiar set CARDOBJ 700 eval inroom %self.room% * find what room the object is in. eval obj %inroom.contents% * find the first object in the room while %obj% * while an object is in the room if %obj.vnum% == %CARDOBJ% set CARDISHERE 1 * if the object is here, remember! end if %CARDISHERE% %send% %actor% There is already a face up Adventure card here! halt * if its here stop the trig and let the player know else %send% %actor% You reach into the Adventure deck and select the top card... %echoaround% %actor% %actor.name% reaches into the Adventure deck and selects the top card... %load% obj %CARDOBJ% * if it isn't here load one end set next_obj %obj.next_in_list% * find the next object for the while to loop set obj %next_obj% done ~ #1450 Room Global Random Example~ 2 ab 100 ~ * Fires whether a player is in the room or not. %echo% The trigger fires now! ~ #1451 Room Random Example~ 2 b 100 ~ * Fires only when a player is in the room. %echo% The trigger fires now! * Example by Snowlock * %echo% The pungent fumes burn your lungs! * set target_char %self.people% * while %target_char% * set tmp_target %target_char.next_in_room% * %damage% %target_char% 3 * set target_char %tmp_target% * done ~ #1452 Room Command Example~ 2 c 100 l~ * does not work for level 32 and above. if %cmd.mudcommand% == look && test /= %arg% %echo% The trigger works! %force% %actor% applaud else %send% %actor% Look at what? end * Portal example with arguments: enter * if portal /= %arg% * %send %actor% You enter the portal. * %echoaround %actor.name% %actor.name% bravely steps into the portal. * %teleport% %actor% 3001 * %force% %actor% look * %echoaround% %actor% %actor.name% steps through a portal. * else * %send% %actor% Enter what?! * end ~ #1453 Room Speech Example~ 2 d 100 test~ %echo% The trigger fires now! ~ #1454 Room Zone Reset Example~ 2 f 100 ~ %echo% The trigger fires now! ~ #1455 Room Enter Example~ 2 g 100 ~ %echo% The trigger fires now! ~ #1456 Room Drop Example~ 2 h 100 ~ %echo% %actor.name% tries to drop object type: %object.type% if %object.type% == TRA %echo% No Littering! return 0 end ~ #1457 Room Cast Example~ 2 p 100 ~ %echo% %actor.name% tried to cast spellnumber: %spell%: %spellname% on %vict.name% %obj.name%. return 0 ~ #1458 Room Leave Example~ 2 q 100 ~ %echo% %actor.name% tries to leave to the %direction%. return 0 ~ #1459 Room Door Example~ 2 r 100 ~ if %cmd% == open %echoaround% %actor% As %actor.name% tries to %cmd% the door to the %direction% a bucket of water dumps on his head. %send% %actor% Splash!! %send% %actor% A bucket of water drops on top of your head as you open the door. %damage% %actor% 10 %echo% The door slams shut again. detach 1459 %self.id% return 0 end ~ #1460 Mob Global Random Example~ 0 ab 100 ~ say The trigger fires now! ~ #1461 Mob Random Example~ 0 b 100 ~ * No Script * This I just threw in because it is a random trig and does not normally have an actor. set actor %random.char% * wait 1 sec say Hey! You don't belong here! emote mumbles, 'Now what was that spell...' wait 1 sec switch %random.3% case 1 dg_cast 'harm' %actor% break case 2 dg_cast 'magic missle' %actor% break default say That wasn't right... mecho A failed spell backfires on the mage! mdamage %self% 10 break done ~ #1462 Mob Command Example~ 0 c 100 test~ * does not work for level 32 and above. say The trigger fires now! say triggered by %actor.name% ~ #1463 Mob Speech Example~ 0 d 0 test~ say speech: %speech% say car: %speech.car% say cdr: %speech.cdr% eval text %speech.car% say %text% ~ #1464 Mob Action Example~ 0 e 0 has entered the game.~ eval inroom %self.room% %zoneecho% %inroom.vnum% %self.name% shouts, 'HELP!! Someone please rescue me!!' ~ #1465 Mob Death Example~ 0 f 100 ~ %echo% %self.name% curses %actor.name% before drawing %self.hisher% final breath. ~ #1466 Mob Greet Example~ 0 g 100 ~ * 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 ~ #1467 Mob Greet-All Example~ 0 h 100 ~ say Hello, and welcome, %actor.name% ~ #1468 Mob Entry Example~ 0 i 100 ~ * first find the room the mob is in and put the value in %inroom% eval inroom %self.room% * then check on the rooms vnum if (%inroom.vnum% == 1233) say I, %self.name%, declare this room Rumble's. end ~ #1469 Mob Receive Example~ 0 j 100 ~ if (%object.vnum% == 1300) %purge% %object% say thanks! nop %actor.gold(1)% else say I don't want that! return 0 end ~ #1470 Mob Fight Example~ 0 k 100 ~ context %self.id% if (%already_fighting%) wait 10 unset already_fighting else dg_cast 'magic missile' %actor.name% set already_fighting 1 global already_fighting end ~ #1471 Mob Hitprcnt Example~ 0 l 50 ~ context %self.id% if (%have_shouted%) return 0 halt else %echo% %self.name% shouts 'HELP! I'm under ATTACK! HELP!' set have_shouted 1 global have_shouted end ~ #1472 Mob Bribe Example~ 0 m 1 ~ 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% 1300 ~ #1473 Mob Load Example~ 0 n 100 ~ 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 ~ #1474 Mob Memory Example Part 1~ 0 g 100 ~ * This must be set by another trigger first before the mem trigger can be used. mremember %actor.name% say I'll remember you now, %actor.name% ~ #1475 Mob Memory Example Part 2~ 0 o 100 ~ wait 4 s poke %actor.name% say i've seen you before, %actor.name%. mforget %actor.name% ~ #1476 Mob Cast Example~ 0 p 100 ~ if (%spellname%==magic missile) %echo% %self.name% is protected by a shield spell negating %actor.name%s Magic Missile. return 0 else %echo% %self.name%s shield spell doesn't protect %self.himher% from %actor.name%s magic. return 1 end ~ #1477 Mob Leave Example~ 0 q 100 ~ if (%actor.level% > 10) say You may not leave here, %actor.name%. %send% %actor.name% %self.name% prevents you from leaving the room. %echoaround% %actor.name% As %actor.name% tries to leave the room, %self.name% stops %actor.himher%. return 0 end ~ #1478 Mob Door Example~ 0 r 100 ~ say %actor.name% do not try to %cmd% the door to the %direction% again. Or else! return 0 ~ #1479 Obj Global Random Example~ 1 ab 100 ~ %echo% The trigger fires now! ~ #1480 Obj Random Example~ 1 b 100 ~ %echo% The trigger fires now! eval actor %self.worn_by% if !%actor% halt endif %send% %actor% Ichiban's blade thirsts for blood. ~ #1481 Obj Command Example~ 1 c 7 open~ * Numeric Arg: 7 means obj can be worn, carried, or in room. * does not work for level 32 and above. if ("%arg%" == "closet") %load% mob 1307 else %send% %actor% Open What? end ~ #1482 Obj Timer Example~ 1 f 100 ~ * %echo% The trigger fires now! * otimer 3 %echo% The ice cream melts away. %purge% %self% ~ #1483 Obj Get Example~ 1 g 100 ~ if (%actor.level% < 31) %transform% 1398 return 0 else %echo% You hear, 'Please put me down, %actor.name%' end ~ #1484 Obj Drop Example~ 1 h 100 ~ if (%actor.level% < 31) return 0 end ~ #1485 Obj Give Example~ 1 0 100 ~ if (%actor.level% < 31) return 0 end ~ #1486 Obj Wear Example~ 1 j 100 ~ if (%actor.str% < 17) return 0 end %send% %actor% send to actor. %echoaround% %actor% %actor.name% echoaround actor %damage% %actor% 100 ~ #1487 Obj Remove Example~ 1 l 90 ~ return 0 ~ #1488 Obj Load Example~ 1 n 100 ~ %echo% %self.name% appears out of nowhere. ~ #1489 Obj Leave Example~ 1 q 100 ~ %echo% My trigger commandlist is not complete! ~ #1490 Nested If Example~ 0 q 100 ~ * In this nested if example anyone leaving north will be checked for passage. if %direction% == NORTH * If it is a male over 18 let them pass. if %actor.sex% == MALE if %actor.age% > 18 say Welcome. else say let me see your ID. return 0 end * If a female over 18 or less than 18 but charisma above 16 let them pass. elseif %actor.sex% == FEMALE if %actor.age% > 18 say welcome. else if %actor.cha% > 16 say don't tell anyone I let you in. else say let me see your ID. return 0 end end * Don't let nuetrals pass elseif %actor.sex% == NUETRAL say what the heck are you? return 0 end end ~ #1491 Room Global Example~ 2 d 100 *~ set global_example_actor %actor.name% global global_example_actor set global_example_speech %speech% global global_example_speech %echo% saving globals ~ #1492 Room Global Example II~ 2 b 100 ~ %echo% %global_example_actor% said: %global_example_speech% ~ #1493 mob load test~ 0 c 100 load~ %load% mob 1300 ~ #1498 Object Command Parser~ 1 c 3 *~ *Ideally we need an object speech trig. This is the workaround. if %cmd% == say || %cmd% == gossip * evaluate the first word eval word %arg.car% * evaluate the rest of the string eval rest %arg.cdr% * while there is a first word keep going while %word% %echo% the first word is: %word% %echo% the remaining text is: %rest% eval word %rest.car% eval rest %rest.cdr% done else return 0 end ~ #1499 new trigger~ 0 g 100 ~ if %arg% == delete say Deleted all quest flags! rdelete found_treasure %actor.id% rdelete worthy_oceana %actor.id% rdelete receive_oceana %actor.id% rdelete aloha_welcome %actor.id% elseif %arg% == add say Added quest flags! set receive_oceana 1 remote receive_oceana %actor.id% set found_treasure 1 remote found_treasure %actor.id% set worthy_oceana 1 remote worthy_oceana %actor.id% else say Invalid command! Please Add or delete? end ~ $~