#3000 Bodypart Decay~ 1 f 100 ~ * Decay of fido bodyparts * Carried by a char if (%self.carried_by%) osend %self.carried_by% The %self.name% decays in your hands. opurge %self% halt end * inside another object if (%self.in_obj%) opurge %self% halt end * Not being carried by anyone or in a container. oecho A %self.name% is consumed by a horde of maggots. opurge %self% ~ #3001 Cook Bodyparts~ 1 b 25 ~ * Butch Cooks the bodyparts eval ButchCheck %self.carried_by% if (%ButchCheck.vnum% == 3057) oecho Butch tosses the %self.name% into the vat. wait 2s oecho Butch stirs the vat. A foul odor fills the room. opurge %self% end ~ #3002 Test Script (Reuse)~ 2 i 15 ~ %echo% test ~ #3003 ButchInRoom (Set Global)~ 1 c 2 zquesttrig~ eval ButchInRoom 1 Global ButchInRoom return 1 halt ~ #3004 Doggie Done Died!~ 0 f 100 ~ * Doggie Done Died! eval Number %random.4% * Load the doggie part switch %number% case 1 mload obj 3016 break case 2 mload obj 3017 break case 3 mload obj 3018 break case 4 mload obj 3019 break done ~ #3005 Doggie Part Timer Reset~ 1 n 100 ~ otimer 6 ~ #3006 new trigger~ 1 g 100 ~ dg_cast 'burning hands' %actor.name% ~ #3007 Sorwaw Tavern - No Sleeping!~ 2 c 100 s~ if %cmd.mudcommand% == sleep %send% %actor% Sleeping in resteraunts is impolite! return 1 end ~ #3008 Gates: Mobiles In~ 0 q 19 ~ say Remind FX to finish script 3008 ~ #3009 Open Shop~ 0 q 6 ~ * This script allows mobiles to open their shops in the morning. * See also trigger 3010 * There are a few globals to set on the shopkeeper: * - ShopVNUM (the vnum of the shop keeper's shop) * - ShopOpenMsgA (first message displayed when the mobile arrives.) * - ShopOpenMsgB (second message displayed when the mobile arrives.) if %self.room% == %self.ShopVNUM% halt end mgoto %self.ShopVNUM% %echo% %self.ShopOpenMsgA% %echo% %self.ShopOpenMsgB% ~ #3010 Close Shop~ 0 q 0 ~ * This script allows mobiles to close their shops at night and retreat to * an appartment or whatnot. See also trigger number 3009. * There are a few globals to set on the shopkeeper: * - ShopCloseMsgA (first message displayed when the mobile leaves.) * - ShopCloseMsgB (second message displayed when the mobile leaves.) if %self.room% == 3032 halt end %echo% %self.ShopCloseMsgA% %echo% %self.ShopCloseMsgB% mgoto 3032 ~ #3011 Commoner Drops Trash~ 0 g 30 ~ if %actor.vnum% == 3061 wait 1s :looks at the cleaning peasant. %load% obj 3008 grin wait 2s drop trash wait 4s snicker end ~ #3012 Fido Bites Horse~ 0 g 25 ~ *If its not a knights horse or a knight halt if %actor.vnum% != 3028 && %actor.vnum% != 3059 halt end *If its a knight, make sure he's riding a horse. if %actor.vnum% == 3059 && !%actor.riding% halt end *Wait a second, and bite the horse. wait 1s emote bites a horse. *Have all the knights in the room beat the shit out of the fido. dg_script3012_bitehorse ~ #3013 Knight Kills Horse-Biting-Fido~ 0 c 100 dg_script3012_bitehorse~ if %actor.vnum% == 3062 wait 1s fume wait 1s kill fido wait 2s say No fucking dog gets away with biting a knight end ~ #3014 Shop Is Closed~ 2 g 100 ~ if %actor.vnum% != -1 && %actor.vnum% != 3102 return 0 end if %time.hour% < 6 wait 1s %send% %actor% |wThe shop seems to be closed.|n end ~ #3015 Junk Trash~ 0 q 0 ~ eval iterations 0 if %self.room% == 3052 || %self.room% == 3053 sigh wait 2s say Stupid gate. wait until 07:30 end if say Off to the dump I go! wait 3s while %self.room% != 3030 pathto movedir 3030 %movedir% wait %random.2%s eval iterations (%iterations%+1) global iterations done drop all wait 1s wait %random.3%s n wait %random.2%s switch %random.3% case 1 n break case 2 e break case 3 w break default n break done ~ #3016 Rat Release~ 2 i 22 ~ * Load a handful of rats at about 10 pm in the dump. * these rats should retreat to the dump and purge themselves * at about 5 am. %echo% Hordes of filthy rats pile out from the sewer. eval ratmake 1 while %ratmake% < 26 %load% mob 3012 eval ratmake %ratmake%+1 done ~ #3017 Rat Decease~ 0 q 4 ~ * Destroy the rats after 6 mud hours (plus a little random time) *(this should happen at around 4am) wait %random.60%s while %self.room% != 3030 pathto movedir 3030 %movedir% wait 1s done emote crawls back into the sewer. mpurge %self% ~ #3018 Wanda Gives Herpes~ 0 c 100 l~ if %cmd.mudcommand% != love || %target% != %self% || %actor.vnum% == -1 return 0 halt end %echoarroundc% %actor% %actor.name% makes love to %self.name%. %send% %actor% You make passionate love to %self.name%. %send% %actor% With a slut like %self.name%, you should have used protection, OOPS! attach 3019 %actor.eq(soul)% attach 3020 %actor.eq(soul)% ~ #3019 Herpes Spreader~ 1 c 100 l~ if %cmd.mudcommand% != love || %target% != %self.carried_by% || %actor.vnum% == -1 return 0 halt end %echoarroundc% %actor% %actor.name% makes love to %self.name%. %send% %actor% You make passionate love to %self.name%. %send% %actor% With a slut like %self.name%, you should have used protection, OOPS! attach 3019 %actor.eq(soul)% attach 3020 %actor.eq(soul)% ~ #3020 Mercenary Hire~ 0 m 0 ~ wait 1s if %amount% < 2500 %echoaroundc% %actor% %self.name% points and laughs at %actor.name%. %sendc% %actor% %self.name% points and laughs at you. say I work for 25 gold for 4 hours plus 1 gold for each additional hour, bitch. say Thanks for the coins though! halt end eval owner %actor.name% eval worktime 4+((%amount%-2500)/100) say I will work for you for around %worktime% hours. wait 2s emote deposits some coins into his bank acount. eval coinsub %self.coins%*-1 %self.coins(%coinsub%)% %self.coins(87)% wait 1s tell %owner% You can make me do your bidding using the order command. wait 1s say OK lets go %owner%. follow %owner% makeuid myself %self.id% dg_affect %myself% charm 1 %worktime% wait %worktime%t wait 1s eval peeps %room.people% while %peeps% if %peeps% == %actor% eval stillhere 1 eval peeps %peeps.next_in_room% done if stillhere say Time's up. wait 1s say It's been a pleasure working with you, %owner%. else say That bum, %owner%, just left me here. Im gone. end follow self emote touches a marking on his neck and disappears. %teleport% %self% 3026 ~ #3021 Lost Boy Quest: Mother Greeting~ 0 g 100 ~ * Lost Boy Quest if %actor.vnum% != -1 halt end if %actor.quest(4)% == 1 say Oh %actor% don't give up! Please! sniff halt end if %actor.quest(4)% == 127 glare %actor.name% halt end * If a PC walks in she should get all sad like. wait 1s sniff wait 2s l %actor% wait 1s emote lowers her head. cry wait 2s %sendc% %actor% %self.name% appears quite sad maybe you should ask her whats wrong? ~ #3022 Lost Boy Quest: Ask Mother~ 0 c 0 a~ * Lost Boy Quest if %actor.vnum% != -1 halt end *Make sure they're asking if (%cmd.mudcommand% != ask) halt end if !(%arg% /= what && %arg% /= wrong) halt end *Offer info wait 2s say Oh %actor.name%, don't worry yourself with a poor woman's troubles. wait 4s say Do you really want to hear about it %actor.name%? eval curChar %actor% global curChar ~ #3033 hump~ 0 g 10 ~ wait 1 if (%actor.vnum% == -1) msend %actor% |RThe foul canine humps your leg.|n mechoaround %actor% |RThe foul canine humps %actor.name%'s leg.|n end ~ #3035 Sorwaw Tavern Welcome~ 0 h 100 ~ if %actor.vnum% != -1 halt end eval greeting Hello eval daytime tonight if %time.hour% > 5 && %time.hour% < 12 eval greeting Good morning eval daytime this morning elseif %time.hour% > 11 && %time.hour% < 18 eval greeting Good afternoon eval daytime this afternoon elseif %time.hour% > 17 && %time.hour% < 22 eval greeting Good evening eval daytime this evening end wait 2s if %actor.room% == 3031 tell %actor.name% %greeting% %actor.name%, welcome to the Sorwaw. wait 1s end if %actor.room% == 3031 tell %actor.name% Type menu to see what we're serving %daytime%. tell %actor.name% You are welcome to seat yourself. end ~ #3036 Sorwaw Tavern Menu~ 2 c 100 menu~ %send% %actor% |yThe Sorwaw Tavern: Menu %send% %actor% |g %send% %actor% Entrees %send% %actor% |c1|w. beef on a stick |y 3s %send% %actor% |c2|w. filet-o-fido |y1g %send% %actor% |c3|w. odif burger |y 1e %send% %actor% |g %send% %actor% Drinks and Specials %send% %actor% |c4|w. beer (bottle) |y2s 3c %send% %actor% |c5|w. beer (barrel) |y3g 3s %send% %actor% |c6|w. whiskey shot |y2g 1e %send% %actor% |c7|w. whiskey glass |y10g %send% %actor% |w %send% %actor% To place an order type |Worder menu <item name / number>|n %echoaroundc% %actor% %actor.name% looks at the menu. ~ #3037 Sorwaw Tavern: Order~ 0 c 100 o~ if %cmd.mudcommand% != order return 0 halt end if !(menu /= %arg.car%) return 0 halt end %echoaroundc% %actor% %actor.name% places an order. if !(%actor.can_carry_weight(2)%) || %actor.arms_full% say %actor.name%, it looks like you have your hands full. halt end context 0 eval loop 1 while %loop% < 8 context 0 eval shortcut 0 context %loop% if %item% /= %arg.cdr% context 0 eval shortcut 1 end if %arg.cdr% == %loop% || %shortcut% context %loop% if %actor.coins% < %price% say You can't afford that, %actor.name%! halt end context 0 if %loop% < 4 context %loop% emote hollers to the kitchen, '%item%' wait 5s elseif %loop% < 6 context %loop% emote grabs a %item%. wait 1s elseif %loop% < 8 context %loop% emote pours a %item%. wait 1s end context %loop% %load% obj %itemnum% if %actor.room% == 3031 give %alias% %actor.name% eval charger nop %%actor.coins(-%price%)%% %charger% expand_copper payment %price% say Here is your %item%, %actor.name%, and I'll take%payment%. else mjunk %alias% end halt end context 0 eval loop %loop%+1 done say Sorry %actor.name%, thats not a valid selection: "%arg.cdr%". ~ #3038 Sorwaw Tavern: Galton VarSet~ 0 n 100 ~ context 1 eval item beef on a stick eval itemnum 3029 eval price 30 eval alias beef global item global itemnum global price global alias context 2 eval item filet o fido eval itemnum 3049 eval price 100 eval alias filet global item global itemnum global price global alias context 3 eval item odif burger eval itemnum 3059 eval price 50 eval alias burger global item global itemnum global price global alias context 4 eval item bottle of beer eval itemnum 3001 eval price 23 eval alias bottle global item global itemnum global price global alias context 5 eval item barrel of beer eval price 330 eval itemnum 3000 eval alias barrel global item global itemnum global price global alias context 6 eval item shot of whiskey eval itemnum 3321 eval price 250 eval alias shot global item global itemnum global price global alias context 7 eval item glass of whiskey eval itemnum 5467 eval price 1000 eval alias glass global item global itemnum global price global alias ~ #3039 Sorwaw Tavern: Orders Full~ 0 c 100 o~ if %cmd.mudcommand% != order return 0 halt end if !(menu /= %arg.car%) return 0 halt end say %actor.name%, please wait I'm kinda busy. ~ #3047 Torch Transformations~ 1 c 100 dg_script3047_torchtransform~ if %actor.vnum% != 3106 halt end if %arg% == off otransform 3048 halt end if otransform 3047 ~ #3048 Wall Torch Purge Self~ 1 n 100 ~ *since there are two objects that get used for the wall torch *in room 3000, I only load one in the zone file. This means I might *end up having two torches, one lit, and one extinguished. (They *change via otransform) if %time.hour% < 7 || %time.hour% > 18 opurge %self% end ~ #3053 Odin's Quest Suggestion~ 2 g 100 ~ *Odin's Quest Suggestion * if an npc enters the room exit if (%actor.vnum% != -1) halt end if (%actor.quest(1)% == 0) wait 1 wsend %actor% |R You feel the strong urge to pray... |n end ~ #3054 Odin's Quest Initiator~ 2 c 100 pray~ * Odin's Quest: 'pray' command if %cmd.mudcommand% != pray return 0 halt end * if an npc enters the room exit if %actor.vnum% != -1 return 0 halt end return 1 if %actor.quest(1)% == 127 * if the pc has rejected the quest %send% %actor% The statue of Odin comes to life and spits upon you. %echoaround% %actor% The statue of Odin comes to life and spits upon %actor.name% who lacks faith. end if %people.3055% != 0 * if there's someone in Odin's room allready, exit. %send% %actor% Odin doesn't have time for you right now. Try again later. halt end if %actor.quest(1)% == 0 * trigger beginning of quest wait 1 %echo% A clap of thunder echoes through the room! %echoaround% %actor% %actor.name% vanishes in a flash of white light as they approach the altar! %send% %actor% You are bathed in a white light, almost blinding yet warm and comforting. %teleport% %actor% 3055 %force% %actor% gasp elseif %actor.quest(1)% == -1 * quest complete eval OdinSpellsLeft %actor.OdinSpellsLeft% if %actor.align% < -350 %send% %actor% The statue of Odin comes to life and spits upon you. %echoaround% %actor% The statue of Odin comes to life and spits upon evil %actor.name%. eval OdinSpellsLeft %OdinSpellsLeft% - 2 remote OdinSpellsLeft %actor.id% halt end %send% %actor% A beam of light shines down upon you -- one of Odin's faithful. %echoaround% %actor% A beam of light shines upon %actor.name% in recognition of their faith. if %OdinSpellsLeft% < 1 halt end eval OdinSpellsLeft %OdinSpellsLeft% - 1 remote OdinSpellsLeft %actor.id% wait 1 s switch %random.8% case 1 dg_cast 'bless' %actor% break case 2 dg_cast 'armor' %actor% break case 3 dg_cast 'cure critic' %actor% break case 4 dg_cast 'stoneskin' %actor% break case 5 dg_cast 'detect alignment' %actor% break case 6 dg_cast 'detect invisibility' %actor% break case 7 dg_cast 'infravision' %actor% break case 8 dg_cast 'remove poison' %actor% break done end ~ #3055 Odin's Quest Speech Trigger~ 2 c 100 gasp~ * Odin's Room Quest Speech Script wait 1 %echo% You feel very disoriented. wait 3s %echo% |w*%actor.name%...*|n wait 3s %echo% |w*%actor.name%......*|n wait 3s %echo% |w*I have heard your faithful prayer.*|n wait 3s %echo% |w*Young mortal, I am Odin. I have a request to make of you. If you prove %echo% yourself you will recieve my blessing and be rewarded greatly.*|n wait 4s %echo% |w*The Minotaur has defiled my temple with his excrement.*|n wait 3s %echo% |w*Slay this foul beast that has so dishonored me and bring me his heart. Drop %echo% it at the foot of my statue and I shall be most pleased with you.*|n wait 4s %echo% |w*Will you do this for me, %actor.name%?*|n ~ #3056 Odin Quest Acceptance~ 2 d 0 yes~ * Odin's Quest Acceptance Script %echo% |w*I have faith in you, %actor.name%.*|n %echo% |w*Now go, and complete this task for me.*|n wait 2 s %echo% The bright light fades away. dg_cast 'bless' %actor% wquest %actor% 1 1 %teleport% %actor% 3054 ~ #3057 Odin Quest Decline~ 2 d 0 no~ * Odin's Quest Turndown Script %echo% |w*A pox on you and your offspring, %actor.name%.*|n %echo% |w*You have disappointed me greatly.*|n wait 2 s %echo% The bright light fades away. dg_cast 'curse' %actor% wquest %actor% 1 127 wteleport %actor% 3054 ~ #3058 Death of the Minotaur~ 0 f 100 ~ * Minotaur's Death Script if (%actor.vnum% != -1) halt end if (%actor.quest(1)% == 1) mload obj 18620 mquest %actor% 1 2 actor.qpoints(1) end ~ #3059 Minotaur Quest Greeting~ 0 g 100 ~ *Minotaur Taunts if Player is on Quest *is the player on the quest? if (%actor.vnum% != -1) halt end if (%actor.quest(1)% == 1) wait 2 say So you're on a mission from god? wait 2 mecho The minotaur lets out a rough laugh. wait 4 say You've come for my hide, but you'll be lucky to leave with yours. end ~ #3060 Odin Quest Complete~ 1 h 100 ~ *Odin's Quest Completion * if an npc enters the room exit if (%actor.vnum% != -1) halt end * if character isn't at odin's statue, exit if (%actor.room% != 3054) halt end * exit if the char hasn't killed the minotaur while on the quest if (%actor.quest(1)% != 2) halt end wait 1s %send% %actor% |w\*%actor.name%... You have pleased me much.\* |n dg_cast 'bless' %actor% wait 2s %send% %actor% |w\*I will give you the strength to continue fighting the minions who would make %send% %actor% this world a foul place.\* |n wait 1s nop %actor.maxhitp(10)% nop %actor.qpoints(1)% %echo% A clap of thunder echoes through the room. %send% %actor% You feel sturdier. eval OdinSpellsLeft 10 remote OdinSpellsLeft %actor.id% oquest %actor% 1 -1 wait 5 %echo% The still-beating heart is engulfed in flames. %purge% %self% ~ #3061 Trunks Random~ 0 b 5 ~ *random stuff switch %random.15% case 1: say My mom was a really pretty elephant, don't get me wrong. break case 2: emote does a handstand. break case 3: fart break case 4: say Ever have sex with a pig? wait 2s say I have. break case 5: say I like being chained to a large post. break case 6: say Do I have a snake in my pocket or am I just happy to see myself? break case 7: say La la La la La la break case 8: say I bet wanda has herpes, I made love to her once! break case 9: say Anybody seen Wally's wife? She's a real beast. break case 10: say I hear butch and barry like to stir up each other's "blood soup". break case 11: say I hear some god defiled a minotaur's temple somewhere around here. break done ~ #3063 Drunk drinks~ 0 b 10 ~ nop %self.coins(22)% buy bottle wait 5 s eval Times 0 while %Times% < 10 eval Times %Times% + 1 %echoc% %self.name% drinks from a bottle. wait 30 s done junk bottle ~ #3064 Drunk Speech~ 0 d 2 *~ wait 1 s if %random.3% != 3 halt end if %speech% /= anapest 'I useta live over there; moved east when they raised taxes. elseif %speech% /= new 'What's that? Did you say you were new here? elseif %speech% /= should * left over from original script 'I'll drink to that! else if %random.3% != 3 halt end 'Wha? end ~ #3065 beg~ 0 g 10 ~ wait 1 say Money for the poor? ~ #3066 thanks~ 0 m 1 ~ wait 1 if (%actor.sex% == MALE) say Thank you, kind sir. end if (%actor.sex% == FEMALE) say Thank you, ma'am. end ~ #3068 Set Blob MoveString~ 0 n 100 ~ set MovementIn oozed set MovementOut oozes Global MovementIn Global MovementOut ~ #3070 Fido Gives Birth~ 0 n 100 ~ *pick littersize *(for my amusement I can check the global on any fido to see its potency) eval littercount %random.8%+1 global littercount *give her some time (20 hrs - 21 days) wait 20t *wait inital 20 ticks wait %random.500%t *wait between 1 and 500 ticks *transform her to a pregnant fido mtransform 3070 emote falls to its side in pain. wait 3s emote appears to be giving birth. *enter labor (albeit short) wait 2s scream *lets squeeze some babies while %babynum% < %littercount% eval babynum %babynum%+1 *(75% chance fido, 25% chance odif) if %random.4% > 1 emote gives birth to a baby fido. %load% mob 3072 else emote gives birth to a baby odif. %load% mob 3073 wait 2s emote looks disgusted. end wait %random.5%s done emote climbs to its feet. mtransform 3071 eval didTransform 1 global didTransform ~ #3071 Fido Offspring: Baby Fido~ 0 n 100 ~ *this script is for all offspring of fidos. So they too will give birth. eval IsOffspring 1 global IsOffspring follow pregnant wait 5t assist baby kill mother wait 10s wait %random.10%s emote has matured into a full grown fido. mtransform 3062 *pick littersize *(for my amusement I can check the global on any fido to see its potency) eval littercount %random.8%+1 global littercount *give her some time (20 hrs - 21 days) wait 20t *wait inital 20 ticks wait %random.500%t *wait between 1 and 500 ticks *transform her to a pregnant fido mtransform 3070 emote falls to its side in pain. wait 3s emote appears to be giving birth. *enter labor (albeit short) wait 2s scream *lets squeeze some babies while %babynum% < %littercount% eval babynum %babynum%+1 *(75% chance fido, 25% chance odif) if %random.4% > 1 emote gives birth to a baby fido. %load% mob 3072 else emote gives birth to a baby odif. %load% mob 3073 wait 2s emote looks disgusted. end wait %random.5%s done emote climbs to its feet. mtransform 3071 ~ #3072 Fido Offspring: Baby Odif~ 0 n 100 ~ *this script is for the abandoned baby odifs, this way they will grow into full odifs eval IsOffspring 1 global IsOffspring wait 5t wait 10s wait %random.10%s emote has matured into a full grown odif yltsaeb. mtransform 3066 ~ #3093 Patrol Response - cityguard~ 0 g 100 ~ if %actor.vnum% != 3058 halt end wait 8 %echoc% %self.name% snaps to attention. ~ #3094 Elite Red on patrol~ 0 b 100 ~ eval Path walk_to 3040 walk_to 3007 walk_to 3041 walk_to 3046 walk_to 3104 walk_to 3130 walk_to 3127 while %Path.strlen% > 0 if !%self.fighting% eval Action %Path.car% eval Path %Path.cdr% switch %Action% case walk_to eval Dest %Path.car% eval Path %Path.cdr% if %self.room% != %Dest% pathto Step %Dest% %Step% eval Path walk_to %Dest% %Path% end break default %Action% break done end wait 5 s wait %random.5% done ~ #3095 Release Prisonsers~ 0 b 100 ~ mrelease ~ #3096 LockUp Trigger~ 0 g 100 ~ if (%actor.vnum% != -1) halt end if (%actor.has_outlaw% == 0) halt end * Ohh an outlaw just walked in. chuckle wait 2s say Well %actor.name%, we got a cell waiting for you. unlock cell open cell mechoaround %actor% %self.name% throws %actor.name% into the cell. msend %actor% %self.name% throws you into the cell. mconvict %actor% mteleport %actor% 3077 close cell lock cell nop %actor.is_arrested(off)% ~ #3097 Arrest on Entry~ 0 g 100 ~ if (%actor.vnum% != -1) halt end if (%actor.has_outlaw% == 0) halt end set ArrestRoom %self.room% say %actor.name% you are under arrest! mechoaround %actor% %self.name% utters the words, 'Ayuioul' msend %actor% %self.name% utters the words, 'Ayuioul' mecho The lawman and their catch vanish in a flash of light. mgoto 3075 wait 1s mteleport %actor% 3075 mforce %actor% look nop %actor.is_arrested(on)% wait 3s slap %actor% say Move it, criminal. nop %actor.is_arrested(off)% mforce %actor% north nop %actor.is_arrested(on)% n wait 1s say I have another prisoner to keep the rats company. mecho %self.name% snaps his fingers and vanishes! mgoto %ArrestRoom% mecho The lawman reappears. grin ~ #3098 Guard Outlaw Hunting~ 0 bh 100 ~ if (%self.fighting%) halt end moutlawscan if (%self.hunting%) mdohunt halt end ~ #3099 Witness Trigger~ 0 p 100 ~ if (%actor.has_outlaw%) halt end if (%self.fighting%) halt end if (%action% == 1) say %actor.name% is an OUTLAW! I saw him attack %vict.name%! end if (%action% == 2) say %actor.name% is an OUTLAW! I saw them steal from %vict.name%! end nop %actor.has_outlaw(on)% ~ $~