#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 ~ wait 1 sec if (%object.vnum% == 47) && !%actor.varexists(solved_example_quest_zone_0)% 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% elseif %object.vnum% == 47 say you already solved this quest, keep it. return 0 else say I don't want that! junk %object.name% end ~ #1412 free~ 2 g 100 ~ wait 2 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 47 %damage% %actor% %random.5% ~ #1413 Obj Command Restorative Comfy Bed Sleep - 1401~ 1 c 4 sl~ 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~ 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 ~ #1425 Random Content Generation~ 2 d 100 showmethereview~ eval start 1 while %start% < 12 set opening1 Upon opening the pack a strong vanilla note hits me, set opening2 A slight hint of vanilla hits me as I open the pack, set opening3 There was a slight hint of vanilla when I opened the pack, set opening4 Opening the pack I was treated to a lovely vanilla scented tobacco, set opening5 This particular pouch smells rather sweet, possibly vanilla, set opening6 First let me say that this pouch was really sweet smelling, set opening7 This sweet smelling pouch made me wonder about the quality of the tobacco, set opening8 I had a bit of trouble with the tin, set look1 but inside was an excellent well rubbed tobacco. set look2 and inside I was treated to a nice well rubbed tobacco. set look3 but I found a nice rubbed tobacco inside. set look4 but it produced a nice pinch of reddish tobacco. set look5 yet it was filled with beautiful flakes of tobacco. set look6 but the tobacco was too lightly packed. It was uneven and packed funny into the pipe. set look7 and I couldn't help noticing how great this would be for the room note. set look8 and yet I found an excellent nugget of tobacco waiting inside. set moisture1 It was a bit wet at first, set moisture2 It was pretty damp out of the pack, set moisture3 The pack had far too much dampness to it, set moisture4 It was deliciously moist, set moisture5 It was a little wet for my tastes, set moisture6 There was no way this would light in my pipe, set drying1 but I let it sit on a napkin for %random.3% hours. set drying2 but I air-dried it and it turned out fine. set drying3 so I put it in a napkin for a bit to make it smokeable. set drying4 so I wrapped it in a napkin and forgot about it for a few hours. set drying5 so being me, I tried lighting it as it was. Big mistake. My next batch I let sit out before lighting up. set drying6 but this was easily fixed by letting it dry out on my desk. set drying7 but I like my tobacco a bit on the wet side, so I only aired it for 20 minutes. set drying8 and it took a while to dry, but it lit beautifully afterwards. set mix1 A well honed mix of Virginia and Burley, this mix stood the test of time. set mix2 This mix suited my briar quite well as I'd smoked plenty of Virginia/Burley in the past in it. set mix3 It was worth it, this is an excellent mix of Virginia and Burley. set mix4 I quite enjoyed the Virginia notes inside of the Burley base of this tobacco. set mix5 Your standard Virginia and Burley mixed, this particular mix stands set mix6 A pleasant Virginia/Burley, although nothing out of the ordinary. set mix7 I could taste a strong note of Burley on this particular specimen, but not sure what else. set mix8 As always, this excellent blend worked well for my morning pipe. set burn1 The burn on this batch was rather mild flavored, but not any more than you'd normally suspect. set burn2 Rather mild, but quite aromatic. I quite liked this pouch. set burn3 Nice and mild, but with a slight kick to it. I was enjoying it so much I went a bit too fast. set burn4 Rather bland flavor to be honest, but I like my tobacco strong and my coffee black. set burn5 A bit on the softer side as far as burn goes, but a rich, smooth flavor. set burn6 Great mild taste, but pretty well beginner only. set burn7 The tobacco itself had a mild taste, but would make an excellent pipe for after dessert. set burn8 I didn't pack my pipe properly, so I didn't get to enjoy this as much as I'd have liked to. set price1 Definitely worth the price. set price2 Pretty cheap tobacco, but for good reason. set price3 I think given the flavor and quality of the tobacco the price matches up. set price4 The price is pretty reasonable for what you're getting. It's an excellent beginners pouch. set price5 A nice starter-oriented price. This tobacco won't break the bank and is mild enough to start with, but any true conniseur will move on soon. set price6 With today's gas prices, I don't know why I spend so much on tobacco. Must be the addiction. set price7 Excellently priced, as usual. set price8 This bowl really took me back to my college days when I first tried this mix. set openingamt 8 set lookamt 8 set moistureamt 6 set dryamt 8 set mixamt 8 set burnamt 8 set priceamt 8 set opening %opening^random.8^% set look %look^random.8^% set moisture %moisture^random.6^% set drying %drying^random.8^% set mix %mix^random.8^% set burn %burn^random.8^% set price %price^random.8^% eval which %random.6% if %which% == 1 %echo% %opening% %look% %moisture% %drying% %mix% %burn% %price% end if %which% == 2 %echo% %opening% %look% %mix% %burn% %price% end if %which% == 3 %echo% %opening% %look% %moisture% %drying% %burn% %price% end if %which% == 4 %echo% %opening% %look% %moisture% %drying% %mix% %burn% end if %which% == 5 %echo% %opening% %look% %mix% %burn% end if %which% == 6 %echo% %opening% %look% %mix% %burn% %price% end %echo% eval start %start%+1 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~ 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% == TRASH %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~ 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% %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 ~ #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. 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 ~ $~