mirror of
https://github.com/tbamud/tbamud.git
synced 2026-01-06 17:38:49 +01:00
682 lines
21 KiB
Text
682 lines
21 KiB
Text
#21100
|
|
Test~
|
|
0 g 100
|
|
~
|
|
%echo% This trigger commandlist is not complete!
|
|
~
|
|
#21101
|
|
Load Cards~
|
|
0 d 100
|
|
*~
|
|
set zone 211
|
|
set start %self.room.vnum%
|
|
eval room %self.room.vnum% + 1
|
|
switch %speech.car%
|
|
case shuffle
|
|
if %self.varexists(Cards_Dealt)%
|
|
%echo% n The voice is in your mind again.
|
|
%echo% c 'I'm sorry, the cards seem to be already laid out.' n
|
|
halt
|
|
else
|
|
set deck 78
|
|
set layout 10
|
|
global deck
|
|
global layout
|
|
set var %zone%01
|
|
emote shuffles the cards.
|
|
%echo% n %self.name% seems to speak directly to your mind.
|
|
%echo% c 'Keep shuffling until you feel the deck understands your question. n
|
|
%echo% c When you're ready, say DEAL.' n
|
|
set Deck_Shuffled 1
|
|
global Deck_Shuffled
|
|
while %var% < %zone%79
|
|
set %var% 1
|
|
remote %var% %self.id%
|
|
eval var %var% + 1
|
|
done
|
|
halt
|
|
end
|
|
end
|
|
case deal
|
|
if !%self.varexists(Deck_Shuffled)%
|
|
%echo% n The voice is in your mind again.
|
|
%echo% c 'The cards don't seem to understand your question yet. Have you n
|
|
%echo% c SHUFFLEd?' n
|
|
halt
|
|
elseif %self.varexists(Cards_Dealt)%
|
|
%echo% n The voice is in your mind again. n
|
|
%echo% c 'I'm sorry, the cards seem to be already laid out.' n
|
|
halt
|
|
else
|
|
emote starts to lay out the cards.
|
|
%echo% n The voice seems to surround you now.
|
|
%echo% c 'When you're ready, please go up to start your reading. Once you n
|
|
%echo% c start, you won't be able to come back. Of course, you can always n
|
|
%echo% c come back for another reading. n
|
|
wait 2 sec
|
|
%echo% c At each room, LOOK CARD to see the meaning. Reverse means n
|
|
%echo% c that the card laid out upsidedown which changes the meaning. n
|
|
%echo% c Don't worry about it. The card will show the reversed meaning. n
|
|
%echo% c The room name will explain what the placement of the card means.' n
|
|
wait 1 sec
|
|
%door% %self.room.vnum% up flags a
|
|
emote opens the door to the stairway.
|
|
while %layout%
|
|
set zonebase %zone%00
|
|
eval card %random.78% + %zonebase%
|
|
eval temp %%self.varexists(%card%)%%
|
|
eval hascard %temp%
|
|
if %hascard%
|
|
mgoto %room%
|
|
set rand %random.2%
|
|
if %rand% == 1
|
|
%load% obj %zone%99
|
|
end
|
|
%load% obj %card%
|
|
mgoto %start%
|
|
rdelete %card% %self.id%
|
|
eval deck %deck% - 1
|
|
eval layout %layout% - 1
|
|
eval room %room% + 1
|
|
global deck
|
|
global layout
|
|
set Cards_Dealt 1
|
|
global Cards_Dealt
|
|
else
|
|
end
|
|
done
|
|
halt
|
|
break
|
|
default
|
|
break
|
|
end
|
|
~
|
|
#21102
|
|
Look Card~
|
|
2 c 100
|
|
*~
|
|
* Parnassus' Special Anti-Freeze Formula
|
|
if %cmd.mudcommand% == nohassle
|
|
return 0
|
|
halt
|
|
end
|
|
*
|
|
set zone 211
|
|
if %self.vnum% > %zone%10 && %self.vnum% < %zone%24
|
|
* if %self.vnum% > %zone%00 && %self.vnum% < %zone%24
|
|
set cmdroom %zone%20
|
|
elseif %self.vnum% > %zone%30 && %self.vnum% < %zone%44
|
|
set cmdroom %zone%40
|
|
elseif %self.vnum% > %zone%45 && %self.vnum% < %zone%64
|
|
set cmdroom %zone%60
|
|
else
|
|
return 0
|
|
halt
|
|
end
|
|
if %cmd.mudcommand% == look || %cmd.mudcommand% == examine
|
|
* Look Trigger Written by Fizban - June 06 2013
|
|
* This trigger changes the meaning of the card for reverse.
|
|
* If there is no argument, just look.
|
|
if !%arg%
|
|
return 0
|
|
halt
|
|
else
|
|
* The ~ anchors the comparison to the front of the word.
|
|
* rd /= card but ~rd is not a part of ~card while ~c is.
|
|
set arg ~%arg%
|
|
if ~card /= %arg%
|
|
* Check for the reverser. If it is in the room, give
|
|
* one meaning. If it is not, give the other.
|
|
eval rev %%findobj.%self.vnum%(%zone%99)%%
|
|
if %rev% < 1
|
|
%echo% Reverser is not here.
|
|
%force% %actor% look card
|
|
else
|
|
%force% %actor% look reverse
|
|
%echo% Reverser is here.
|
|
end
|
|
else
|
|
return 0
|
|
end
|
|
end
|
|
elseif %cmd.mudcommand% == quit || %cmd.mudcommand% == afk
|
|
%send% %actor% Because you have decided to %cmd.mudcommand%, you cannot finish the reading.
|
|
%echoaround% %actor% %actor.name% has to leave the reading now.
|
|
wait 1 sec
|
|
%send% %actor% You are magically sent to the end of the reading.
|
|
%echoaround% %actor% %actor.name% is whisked away in a puff of smoke.
|
|
wait 1 sec
|
|
%teleport% %actor% %cmdroom%
|
|
wait 1 sec
|
|
%at% %cmdroom% %force% %actor% down
|
|
wait 1 sec
|
|
%at% %actor% %force% %actor% %cmd%
|
|
wait 1 sec
|
|
halt
|
|
elseif %cmd% == return || %cmd% == recall
|
|
%send% %actor% Because you have decided to %cmd%, you cannot finish the reading.
|
|
%echoaround% %actor% %actor.name% has to leave the reading now.
|
|
wait 1 sec
|
|
%send% %actor% You are magically sent to the end of the reading.
|
|
%echoaround% %actor% %actor.name% is whisked away in a puff of smoke.
|
|
wait 1 sec
|
|
%teleport% %actor% %cmdroom%
|
|
wait 1 sec
|
|
%at% %cmdroom% %force% %actor% down
|
|
wait 1 sec
|
|
%at% %actor% %force% %actor% %cmd%
|
|
wait 1 sec
|
|
halt
|
|
else
|
|
return 0
|
|
end
|
|
~
|
|
#21103
|
|
Clear the Cards - r21120, r21140, r21160~
|
|
2 q 100
|
|
~
|
|
* Clears cards from the reading and reader marker
|
|
* when player finishes the reading.
|
|
if %direction% == down
|
|
wait 2 sec
|
|
%purge%
|
|
set room %self.vnum%
|
|
eval purgeroom %room% - 9
|
|
while %purgeroom% < %self.vnum%
|
|
%at% %purgeroom% %purge%
|
|
eval purgeroom %purgeroom% + 1
|
|
done
|
|
eval purgeroom %purgeroom% + 5
|
|
%at% %purgeroom% %purge%
|
|
end
|
|
~
|
|
#21104
|
|
Reset the Fortuneteller~
|
|
0 q 100
|
|
~
|
|
* Clears the fortune-teller for the next player.
|
|
* Closes the doors coming back to make it easier to see the path while
|
|
* keeping the possibility of checking past cards.
|
|
if %direction% == up
|
|
* set deck 78
|
|
set layout 10
|
|
* global deck
|
|
global layout
|
|
rdelete Deck_Shuffled %self.id%
|
|
rdelete Cards_Dealt %self.id%
|
|
rdelete tarot_reading_started %self.id%
|
|
if %self.room.vnum% == 21110 || %self.room.vnum% == 21130 || %self.room.vnum% == 21150
|
|
%door% %self.room.vnum% up flags abc
|
|
eval cardroom %self.room.vnum% + 2
|
|
%door% %cardroom% down flags ab
|
|
eval cardroom %cardroom% + 1
|
|
%door% %cardroom% north flags ab
|
|
eval cardroom %cardroom% + 1
|
|
%door% %cardroom% south flags ab
|
|
eval cardroom %cardroom% + 1
|
|
%door% %cardroom% west flags ab
|
|
eval cardroom %cardroom% + 1
|
|
%door% %cardroom% north flags ab
|
|
eval cardroom %cardroom% + 1
|
|
%door% %cardroom% west flags ab
|
|
eval cardroom %cardroom% + 1
|
|
%door% %cardroom% south flags ab
|
|
eval cardroom %cardroom% + 1
|
|
%door% %cardroom% south flags ab
|
|
eval cardroom %cardroom% + 1
|
|
%door% %cardroom% south flags ab
|
|
eval cardroom %cardroom% + 1
|
|
%door% %cardroom% east flags ab
|
|
eval cardroom %cardroom% + 1
|
|
%door% %cardroom% south flags ab
|
|
eval cardroom %cardroom% + 1
|
|
%door% %cardroom% west flags ab
|
|
eval cardroom %cardroom% + 1
|
|
%door% %cardroom% north flags ab
|
|
end
|
|
end
|
|
~
|
|
#21105
|
|
Dealer Greets~
|
|
0 h 100
|
|
~
|
|
wait 2 sec
|
|
%echo% n The voice of %self.name% seems to fill your head.
|
|
%echo% c 'Ahh, you have something on your mind? Let us see what the n
|
|
%echo% c cards have to say. Unfortunately, you cannot hold or shuffle n
|
|
%echo% c my cards, but concentrate on your question and say shuffle. n
|
|
%echo% c When you feel that the cards know your question, say deal and n
|
|
%echo% c I shall lay out the cards for you to examine. n
|
|
wait 3 sec
|
|
%echo% c Usually I would interpret the cards for you, but that is n
|
|
%echo% c forbidden me in this space and time. All I am allowed is to n
|
|
%echo% c show you the cards and you must decide their meanings in your n
|
|
%echo% c own mind. Move from card to card. Each space and each card n
|
|
%echo% c will explain itself to you. 'LOOK CARD' in each room to see n
|
|
%echo% c the explanation. These are very simplified meanings so they n
|
|
%echo% c are very general. n
|
|
wait 3 sec
|
|
%echo% c Remember, this is just a game and should not be taken n
|
|
%echo% c seriously any more than you would run your life by newspaper n
|
|
%echo% c horoscopes or slips of paper from fortune-cookies. n
|
|
wait 2 sec
|
|
%echo% c When you're ready, start by saying SHUFFLE.' n
|
|
~
|
|
#21106
|
|
Receptionist juggles appointments - M21104~
|
|
0 d 100
|
|
*~
|
|
set zone 211
|
|
* set findobj 0
|
|
* Checks for available readers
|
|
* Kicks out people that are afk, etc
|
|
if %self.room.vnum% != %zone%02
|
|
emote looks around in confusion.
|
|
say I'm sorry. I have to get to my office.
|
|
emote leaves.
|
|
eval findmob %%findmob.%zone%02(%self.vnum%)%%
|
|
if %findmob% > 0
|
|
%purge% %self%
|
|
else
|
|
mgoto %zone%02
|
|
halt
|
|
end
|
|
end
|
|
if %actor% == %self%
|
|
halt
|
|
end
|
|
* Check to see if someone is already trying to get an appointment.
|
|
if %self.has_item(%zone%98)% && !%actor.varexists(Making_Tarot_Appointment_%zone%)%
|
|
say I'm sorry, %actor.name%. I'm speaking with someone else right now.
|
|
halt
|
|
end
|
|
* This loop goes through the entire string of words the actor says. .car is the
|
|
* word and .cdr is the remaining string.
|
|
eval word %speech.car%
|
|
eval rest %speech.cdr%
|
|
while %word%
|
|
* %echo% Word: %word%
|
|
* %echo% rest: %rest%
|
|
switch %word%
|
|
* Appointment starts the conversation.
|
|
* Objxxx98 keeps trigger from reacting to other conversations.
|
|
* if %actor.is_pc% &&
|
|
case appointment
|
|
if !%self.has_item(%zone%98)%
|
|
%load% o %zone%98
|
|
set Making_Tarot_Appointment_%zone% 1
|
|
remote Making_Tarot_Appointment_%zone% %actor.id%
|
|
say Let me just see if any of our consultants have an opening.
|
|
say Say restart at any time to leave or start over.
|
|
%echo% She consults an appointment book.
|
|
wait 2 seconds
|
|
set available 0
|
|
set readerno 0
|
|
set unreaderno 0
|
|
eval temp %%findobj.%zone%25(card)%%
|
|
eval findobjsibyl %temp%
|
|
if %findobjsibyl% < 1
|
|
eval available %available% + 1
|
|
eval readerno %readerno% + 1
|
|
set reader%readerno% Sibyl
|
|
else
|
|
eval unreaderno %unreaderno% + 1
|
|
set unreader%unreaderno% Sibyl
|
|
end
|
|
eval temp %%findobj.%zone%45(card)%%
|
|
eval findobjesmerelda %temp%
|
|
if %findobjesmerelda% < 1
|
|
eval available %available% + 1
|
|
eval readerno %readerno% + 1
|
|
set reader%readerno% Esmerelda
|
|
else
|
|
eval unreaderno %unreaderno% + 1
|
|
set unreader%unreaderno% Esmerelda
|
|
end
|
|
eval temp %%findobj.%zone%65(card)%%
|
|
eval findobjjaelle %temp%
|
|
if %findobjjaelle% < 1
|
|
eval available %available% + 1
|
|
eval readerno %readerno% + 1
|
|
set reader%readerno% Jaelle
|
|
else
|
|
eval unreaderno %unreaderno% + 1
|
|
set unreader%unreaderno% Jaelle
|
|
end
|
|
if %available% == 0
|
|
say Sorry, Sibyl, Esmerelda and Jaelle all seem to be with clients right now.
|
|
say Please try again later.
|
|
rdelete Making_Tarot_Appointment_%zone% %actor.id%
|
|
halt
|
|
end
|
|
if %available% == 1
|
|
say %unreader1% and %unreader2% are with clients but %reader1% is available.
|
|
say Say %reader1% if you want to see her.
|
|
set Choosing_Tarot_Reader_%zone% 1
|
|
remote Choosing_Tarot_Reader_%zone% %actor.id%
|
|
halt
|
|
end
|
|
if %available% == 2
|
|
say %unreader1% is with a client but %reader1% and %reader2% are available.
|
|
say Say %reader1% or %reader2% to see her.
|
|
set Choosing_Tarot_Reader_%zone% 1
|
|
remote Choosing_Tarot_Reader_%zone% %actor.id%
|
|
halt
|
|
end
|
|
if %available% == 3
|
|
say %reader1%, %reader2% and %reader3% are all available right now.
|
|
say Say %reader1%, %reader2% or %reader3% to see her.
|
|
set Choosing_Tarot_Reader_%zone% 1
|
|
remote Choosing_Tarot_Reader_%zone% %actor.id%
|
|
halt
|
|
end
|
|
end
|
|
break
|
|
case Sibyl
|
|
if %actor.varexists(Choosing_Tarot_Reader_%zone%)%
|
|
eval findobj %%findobj.%zone%25(card)%%
|
|
if %findobj% < 1
|
|
say Sibyl is ready to see you now.
|
|
%door% %zone%02 north flags a
|
|
wait 1 sec
|
|
%force% %actor% north
|
|
%door% %zone%02 north flags abc
|
|
rdelete Making_Tarot_Appointment_%zone% %actor.id%
|
|
rdelete Choosing_Tarot_Reader_%zone% %actor.id%
|
|
mgoto %zone%99
|
|
%purge% quill
|
|
mgoto %zone%25
|
|
%load% obj %zone%49
|
|
mgoto %zone%02
|
|
else
|
|
Say I'm sorry. Sibyl is with another client right now.
|
|
say Please choose one of the available readers.
|
|
end
|
|
end
|
|
break
|
|
case Esmerelda
|
|
if %actor.varexists(Choosing_Tarot_Reader_%zone%)%
|
|
eval findobj %%findobj.%zone%45(card)%%
|
|
if %findobj% < 1
|
|
say Esmerelda is ready to see you now.
|
|
%door% %zone%02 west flags a
|
|
wait 1 sec
|
|
%force% %actor% w
|
|
%door% %zone%02 west flags abc
|
|
rdelete Making_Tarot_Appointment_%zone% %actor.id%
|
|
rdelete Choosing_Tarot_Reader_%zone% %actor.id%
|
|
mgoto %zone%99
|
|
%purge% quill
|
|
mgoto %zone%45
|
|
%load% obj %zone%52
|
|
mgoto %zone%02
|
|
else
|
|
Say I'm sorry. Esmerelda is with another client right now.
|
|
say Please choose one of the available readers.
|
|
end
|
|
end
|
|
break
|
|
case Jaelle
|
|
if %actor.varexists(Choosing_Tarot_Reader_%zone%)%
|
|
eval findobj %%findobj.%zone%65(card)%%
|
|
if %findobj% < 1
|
|
say Jaelle is ready to see you now.
|
|
%door% %zone%02 east flags a
|
|
wait 1 sec
|
|
%force% %actor% e
|
|
%door% %zone%02 east flags abc
|
|
rdelete Making_Tarot_Appointment_%zone% %actor.id%
|
|
rdelete Choosing_Tarot_Reader_%zone% %actor.id%
|
|
mgoto %zone%99
|
|
%purge% quill
|
|
mgoto %zone%65
|
|
%load% obj %zone%50
|
|
mgoto %zone%02
|
|
else
|
|
Say I'm sorry. Jaelle is with another client right now.
|
|
say Please choose one of the available readers.
|
|
end
|
|
end
|
|
break
|
|
case Restart
|
|
if %actor.varexists(Making_Tarot_Appointment_%zone%)%
|
|
rdelete Making_Tarot_Appointment_%zone% %actor.id%
|
|
rdelete Choosing_Tarot_Reader_%zone% %actor.id%
|
|
mgoto %zone%99
|
|
%purge% quill
|
|
mgoto %zone%02
|
|
emote puts down the appointment book.
|
|
end
|
|
break
|
|
default
|
|
break
|
|
done
|
|
* End of the loop we need to take the next word in the string and save the
|
|
* remainder for the next pass.
|
|
eval word %rest.car%
|
|
eval rest %rest.cdr%
|
|
done
|
|
~
|
|
#21107
|
|
Tarot Receptionist greets - M21104~
|
|
0 h 100
|
|
*~
|
|
if %direction% == south
|
|
emote looks up from her appointment book.
|
|
say Would you like to make an appointment with one of our readers?
|
|
say Before we start, make sure you have enough time to finish your reading.
|
|
say Please do not go afk or leave the game before you finish the reading.
|
|
say If you are sure, just say appointment.
|
|
else if %direction% == up
|
|
smile %actor%
|
|
say I hope you enjoyed your reading. Please, come again soon.
|
|
say Of course, if you want another appointment now, say appointment.
|
|
end
|
|
~
|
|
#21108
|
|
Leaving Tarot~
|
|
0 c 100
|
|
*~
|
|
* For mobs to clear reading from players blocking by starting and leaving.
|
|
* Should be adjusted to your muds commands.
|
|
* Parnassus' Special Anti-Freeze Formula
|
|
if %cmd.mudcommand% == nohassle
|
|
return 0
|
|
halt
|
|
end
|
|
*
|
|
set zone 211
|
|
if %cmd.mudcommand% == quit || %cmd.mudcommand% == afk
|
|
if %self.vnum% == %zone%04 && %actor.varexists(Making_Tarot_Appointment_%zone%)%
|
|
say I'm sorry but I won't be able to give you an appointment right now.
|
|
say Please come back when you have more time available.
|
|
rdelete Making_Tarot_Appointment_%zone% %actor.id%
|
|
rdelete Choosing_Tarot_Reader_%zone% %actor.id%
|
|
mgoto %zone%99
|
|
%purge% quill
|
|
mgoto %zone%02
|
|
wait 1 sec
|
|
emote puts down the appointment book.
|
|
wait 1 sec
|
|
%force% %actor% %cmd.mudcommand%
|
|
wait 1 sec
|
|
halt
|
|
elseif %self.vnum% == %zone%01 || %self.vnum% == %zone%02 || %self.vnum% == %zone%03
|
|
set office %self.room.vnum%
|
|
eval endroom %office% + 10
|
|
%echo% n %self.name%'s voice sounds reproachfully in your head.
|
|
%echo% c 'You don't seem to have time for this right now. n
|
|
%echo% c Please come back when you have more time.' n
|
|
wait 1 sec
|
|
%echo% %self.name% waves her hand and you find yourself outside.
|
|
wait 1 sec
|
|
%teleport% %actor% %zone%01
|
|
mgoto %endroom%
|
|
down
|
|
mgoto %office%
|
|
wait 1 sec
|
|
%force% %actor% look
|
|
%force% %actor% %cmd.mudcommand%
|
|
rdelete Deck_Shuffled %self.id%
|
|
rdelete Cards_Dealt %self.id%
|
|
rdelete tarot_reading_started %self.id%
|
|
halt
|
|
else
|
|
return 0
|
|
halt
|
|
end
|
|
elseif %cmd% == return || %cmd% == recall || %cmd% == teleport || %cmd.mudcommand% == goto
|
|
if %self.vnum% == %zone%04 && %actor.varexists(Making_Tarot_Appointment_%zone%)%
|
|
say I'm sorry but I won't be able to give you an appointment right now.
|
|
say Please come back when you have more time available.
|
|
rdelete Making_Tarot_Appointment_%zone% %actor.id%
|
|
rdelete Choosing_Tarot_Reader_%zone% %actor.id%
|
|
mgoto %zone%99
|
|
%purge% quill
|
|
mgoto %zone%02
|
|
%send% %actor% n
|
|
emote puts down the appointment book.
|
|
%send% %actor% n
|
|
return 0
|
|
halt
|
|
elseif %self.vnum% == %zone%01 || %self.vnum% == %zone%02 || %self.vnum% == %zone%03
|
|
set office %self.room.vnum%
|
|
eval endroom %office% + 10
|
|
%echo% n %self.name%'s voice sounds reproachfully in your head.
|
|
%echo% c 'You don't seem to have time for this right now. n
|
|
%echo% c Please come back when you have more time.' n
|
|
%send% %actor% n
|
|
%teleport% %actor% %zone%01
|
|
return 0
|
|
%send% %actor% n
|
|
mgoto %endroom%
|
|
down
|
|
mgoto %office%
|
|
rdelete Deck_Shuffled %self.id%
|
|
rdelete Cards_Dealt %self.id%
|
|
rdelete tarot_reading_started %self.id%
|
|
halt
|
|
else
|
|
return 0
|
|
halt
|
|
end
|
|
elseif %cmd.mudcommand% == south
|
|
if %self.vnum% == %zone%04 && %actor.varexists(Making_Tarot_Appointment_%zone%)%
|
|
say I'm sorry but I won't be able to give you an appointment right now.
|
|
say Please come back when you have more time available.
|
|
rdelete Making_Tarot_Appointment_%zone% %actor.id%
|
|
rdelete Choosing_Tarot_Reader_%zone% %actor.id%
|
|
mgoto %zone%99
|
|
%purge% quill
|
|
mgoto %zone%02
|
|
wait 1 sec
|
|
emote puts down the appointment book.
|
|
wait 1 sec
|
|
%force% %actor% %cmd%
|
|
halt
|
|
else
|
|
return 0
|
|
halt
|
|
end
|
|
else
|
|
return 0
|
|
end
|
|
~
|
|
#21109
|
|
Timer for obj 21198~
|
|
1 f 100
|
|
~
|
|
* Timer on obj 21198 is set to 10 minutes. This is adjustable.
|
|
* Since 21198 stops any appointments while talking to one person
|
|
* this keeps any person from blocking the zone until reboot.
|
|
set zone 211
|
|
set actor %self.carried_by%
|
|
if %actor.vnum% == %zone%04
|
|
%echo% %actor.name% says, 'I've been waiting too long for this appointment.'
|
|
%echo% %actor.name% puts down the appointment book.
|
|
%purge% %self%
|
|
else
|
|
set actor %self.carried_by.name%
|
|
%force% %actor% say I seem to have stolen someone's pen.
|
|
%echoaround% %actor% The nib of the pen pokes %actor%.
|
|
%send% %actor% The nib of the pen pokes you.
|
|
%damage% %actor% 5
|
|
%echoaround% %actor% %actor.name% shakes %actor.hisher% hand in pain and drops a pen which rolls away.
|
|
%send% %actor% You drop a pen which rolls away somewhere.
|
|
%purge% %self%
|
|
end
|
|
~
|
|
#21110
|
|
Reload glass and bread - obj 21180 and 21182~
|
|
1 c 100
|
|
*~
|
|
* This trigger is to keep the waiting room supplied with food and drink.
|
|
* Because of the auto-regenerative qualities, it also cancels out any
|
|
* sac benefits to prevent spam-saccing for gold or exp.
|
|
* Parnassus' Special Anti-Freeze Formula
|
|
if %cmd.mudcommand% == nohassle
|
|
return 0
|
|
halt
|
|
end
|
|
*
|
|
set zone 211
|
|
if get == %cmd.mudcommand% || sacrifice == %cmd.mudcommand%
|
|
if %self.room.vnum% == %zone%02
|
|
set testernumber 2
|
|
else
|
|
set testernumber 1
|
|
end
|
|
set arg _%arg%
|
|
eval inroom %self.room%
|
|
eval obj %inroom.contents%
|
|
* find the first object in the room
|
|
while %obj%
|
|
set next_obj %obj.next_in_list%
|
|
set objlist %obj.name%
|
|
set keywordlist _%obj.name.car%
|
|
set keywordrest _%obj.name.cdr%
|
|
while %keywordlist%
|
|
* while an object is in the room
|
|
if %keywordlist.contains(%arg%)%
|
|
if %obj.id% == %self.id%
|
|
if get == %cmd.mudcommand%
|
|
%force% %actor% %cmd.mudcommand% %obj.name.car%
|
|
elseif sacrifice == %cmd.mudcommand%
|
|
%send% %actor% You carefully dispose of %obj.shortdesc%.
|
|
%echoaround% %actor% %actor.name% carefully disposes of %obj.shortdesc%.
|
|
set me %self.vnum%
|
|
eval temp %%findobj.%zone%02(%me%)%%
|
|
eval tester %temp%
|
|
if %self.room.vnum% == %zone%02
|
|
set testernumber 2
|
|
else
|
|
set testernumber 1
|
|
end
|
|
if %tester% < %testernumber%
|
|
%at% %zone%02 %load% obj %self.vnum%
|
|
end
|
|
%purge% %self%
|
|
end
|
|
set me %self.vnum%
|
|
eval temp %%findobj.%zone%02(%me%)%%
|
|
eval tester %temp%
|
|
if %tester% < %testernumber%
|
|
%at% %zone%02 %load% obj %self.vnum%
|
|
end
|
|
halt
|
|
end
|
|
end
|
|
set keywordlist %keywordrest.car%
|
|
set keywordrest %keywordrest.cdr%
|
|
done
|
|
* find the next object for the while to loop
|
|
set obj %next_obj%
|
|
done
|
|
return 0
|
|
halt
|
|
else
|
|
return 0
|
|
halt
|
|
end
|
|
~
|
|
$~
|