/
com/planet_ink/coffee_mud/Abilities/Common/
com/planet_ink/coffee_mud/Abilities/Diseases/
com/planet_ink/coffee_mud/Abilities/Druid/
com/planet_ink/coffee_mud/Abilities/Fighter/
com/planet_ink/coffee_mud/Abilities/Languages/
com/planet_ink/coffee_mud/Abilities/Misc/
com/planet_ink/coffee_mud/Abilities/Prayers/
com/planet_ink/coffee_mud/Abilities/Properties/
com/planet_ink/coffee_mud/Abilities/Skills/
com/planet_ink/coffee_mud/Abilities/Songs/
com/planet_ink/coffee_mud/Abilities/Spells/
com/planet_ink/coffee_mud/Abilities/Thief/
com/planet_ink/coffee_mud/Abilities/Traps/
com/planet_ink/coffee_mud/Behaviors/
com/planet_ink/coffee_mud/CharClasses/interfaces/
com/planet_ink/coffee_mud/Commands/
com/planet_ink/coffee_mud/Commands/interfaces/
com/planet_ink/coffee_mud/Common/
com/planet_ink/coffee_mud/Common/interfaces/
com/planet_ink/coffee_mud/Exits/interfaces/
com/planet_ink/coffee_mud/Items/Armor/
com/planet_ink/coffee_mud/Items/Basic/
com/planet_ink/coffee_mud/Items/CompTech/
com/planet_ink/coffee_mud/Items/MiscMagic/
com/planet_ink/coffee_mud/Items/Weapons/
com/planet_ink/coffee_mud/Items/interfaces/
com/planet_ink/coffee_mud/Libraries/
com/planet_ink/coffee_mud/Libraries/interfaces/
com/planet_ink/coffee_mud/Locales/
com/planet_ink/coffee_mud/MOBS/
com/planet_ink/coffee_mud/Races/
com/planet_ink/coffee_mud/Races/interfaces/
com/planet_ink/coffee_mud/WebMacros/
com/planet_ink/coffee_mud/WebMacros/interfaces/
com/planet_ink/coffee_mud/core/
com/planet_ink/coffee_mud/core/collections/
com/planet_ink/coffee_mud/core/interfaces/
com/planet_ink/coffee_mud/core/intermud/
com/planet_ink/coffee_mud/core/intermud/i3/
com/planet_ink/coffee_web/server/
com/planet_ink/siplet/applet/
lib/
resources/factions/
resources/fakedb/
resources/progs/autoplayer/
resources/quests/holidays/
web/
web/admin.templates/
web/admin/grinder/
web/admin/images/
web/clan.templates/
web/pub.templates/
web/pub/images/mxp/
web/pub/sounds/
web/pub/textedit/
#!QUESTMAKER_START_SCRIPT Competitive Dispel #1
#The player must dispel or otherwise remove a spell, disease, poison, or
#other affect from 1 or more affected mobs on your map.
#
#!QUESTMAKER_PAGE Quest Name/Duration
#Enter the unique name and starting time/duration for your new quest.
#Times are entered as a simple number or math expression to denote a
#time in default ticks (4 second period), or you may follow the expression 
#with the word seconds, minutes, hours, days, mudhours, muddays, mudweeks,
#mudmonths, or mudyears.  Time expressions may include numbers, math 
#symbols, or the ? operator to generate random numbers.  Example:
#"5 + 3?10 minutes" would generate a frequency of 8-15 minutes.#
#
#Quest ID:
#Enter a unique name/id for your quest:
#$QUEST_ID=$UNIQUE_QUEST_NAME=competitive_dispel_1
#
#Quest Name:
#Enter a friendly displayable name for your quest:
#$QUEST_NAME=$STRING=Competitive Dispel #1
#
#Quest Frequency:
#This is the time between quest starts.
#$FREQUENCY=$TIMEEXPRESSION=90 minutes
#
#Quest Duration:
#This is how long your quest remains running, and how long a player 
#accepting the quest has to complete the quest and report back in.
#$DURATION=$TIMEEXPRESSION=90 minutes
#
#Quest-Player Criterium:
#You may leave this entry blank, or enter a Zapper Mask to describe what
#kinds of players may participate in this quest.  You can use this to set
#race, level, or other requirements.
#$QUEST_CRITERIA=$ZAPPERMASK
#
#!QUESTMAKER_PAGE Dispel Quest Basics
#Here's where you specify the basic shape and form of your quest.
#
#The Thing To Dispel: 
#Specify the Ability ID of the spell/disease/poison/affect/whatever that
#the player needs to dispel in order to complete the quest.  You may
#also optionally include some parameters in case the ability you choose
#needs them.  Most don't, but you'd need to consult the help files to
#be sure.
#$DISPEL_SPELL=$ABILITY=Disease_Plague
#Optinal parameters:
#$DISPEL_SPELL_PARMS=($STRING)
#
#Affect one MOB or a GROUP of mobs.
#Specify here whether a single MOB will be affected by a disease, or
#whether you would potentially like a whole MOBGROUP to be affected.
#$DISPELEE_TYPE=$CHOOSE=MOB,MOBGROUP
#
#The Number To Dispel: 
#Specify the number of affected mobs the player will need to dispel in
#order to complete the quest.  You may enter a numeric expression, but
#make sure it evaluates to something >= 1!  Also, if you specified that
#numerous mobs will be affected above by selecting MOBGROUP, you might
#also consider making this number even larger than 1. :)
#$NUMBER_TO_DISPEL=$EXPRESSION=1
#
#!QUESTMAKER_PAGE Specify the Announcer
#The Announcer is the mob who will be announcing the quest initially. This must
#be an existing mob in your world.  They will announce the quest to players
#once, and then mark whether the player says they accept the quest
#
#Announcer Area/Room: 
#Specify below the name of the area that your Announcer mob will be located
#in and/or the room in which the mob can be found.  You may leave both blank
#to force the quest manager to find the mob somewhere in the world, but this
#will hurt the performance of your mud, so use with care.
#Use double-quotes around multi-word areas and room ids/names.
#  
#Announcer Area:
#$ANNOUNCER_AREA=($AREA)
#Announcer Room ID:
#$ANNOUNCER_ROOM=($ROOMID)
#
#Announcer mob name: 
#Specify the name of the mob who will act as the Announcer mob.  
#Use double-quotes around multi-word names.
#If you specified an area or room above, then the mob must be located there.
#You may optionally have the quest manager select a 'random' mob by entering
#a mob name of ANY MASK= followed by a Zapper Mask (see help on 
#ZAPPERMASKS for information on zapper mask syntax).
#Remember, if the quest manager can not find your mob, the quest will not
#be started.
#$ANNOUNCER_NAME=$NAME
#
#!QUESTMAKER_PAGE Announcer greetings/instructions
#Here's where you specify any special text said by the announcer regarding
#your quest
#
#Announcer greeting: 
#Specify what the announcer says to people when they enter the room about their
#quest.
#$QUEST_NOTIFYSTRING=$LONG_STRING=I have some work I need done.
#
#Announcer instructions: 
#Specify what the announcer says to people who have accepted the quest.  This 
#should give some details about what is to be done.  You can leave this blank
#if you like.
#$QUEST_INSTRUCTIONSSTRING=($LONG_STRING)=There are lots of people in some area affected by some affect that need it to go away.  Please go make it go away for them. (Your announcement should be more specific)
#
#Announcer announcement:
#Select what type of annoucement the Announcer will make when the quest starts.
#$QUEST_ANNOUNCEMENT_TYPE=$CHOOSE=YELL,QUESTCHAT,MPECHO,SAY
#This is what the announcement says.  Leave it blank if you only want him to talk to people who enter the room with him.
#$QUEST_ANNOUNCEMENT=($STRING)
#
#!QUESTMAKER_PAGE Specify the Dispelee(s)
#The Dispelee(s) is the mob or group of mobs who will be affected by the
#spell/disease/poison/whatever.  These are the ones whom the player needs
#to "cure" in order to complete the quest.
#
#Dispelee Area/Room: 
#Specify below the name of the area that your Dispelee mob(s) will be located
#in and/or the room in which the mob(s) can be found.  You may leave both blank
#to force the quest manager to find the mob(s) all over the world, but this
#will hurt the performance of your mud, so use with care.
#Use double-quotes around multi-word areas and room ids/names.
#  
#Dispelee(s) Area:
#$DISPELEE_AREA=($AREA)
#Dispelee(s) Room ID:
#$DISPELEE_ROOM=($ROOMID)
#
#Dispelee(s) mob name(s): 
#Specify the name(s) of the mob(s) who will act as the Dispelees.  
#Use double-quotes around multi-word names.
#If you specified an area or room above, then the mob(s) must be located there.
#You may optionally have the quest manager select multiple mob(s) by entering
#a mob name of ANY MASK= followed by a Zapper Mask (see help on 
#ZAPPERMASKS for information on zapper mask syntax).
#Remember, if the quest manager can not find your mobs, the quest will not
#be started.  And if they can't find enough to specify the number of dispellees
#your mentioned above, the players won't be able to finish the quest!
#$DISPELEE_NAME=$NAME
#
#!QUESTMAKER_PAGE Dispelee greetings/responses
#Here's where you specify any special text said by the dispelee(s) before,
#after, or during the quest.
#
#Dispelee greeting: 
#Specify what the Dispelee says to people when they enter the room.  You
#may leave this blank to keep it a secret.
#$DISPELEE_GREETING=$LONG_STRING=I've got a disease or poison or something.
#
#Dispelee response #1: 
#Specify what the dispelee says to players who successfully remove the 
#disease/poison/spell/whatever from them, EVEN if they are not yet done
#with the quest because they have more to do.  You may leave this blank
#if you like.
#$DISPELEE_RESPONSE_1=($LONG_STRING)=Wow.  It's gone from me.
#
#Dispelee response #2: 
#Specify what the dispelee says to players who successfully complete the
#whole quest. You may leave this blank
#if you like.
#$DISPELEE_RESPONSE_2=($LONG_STRING)=Wow. You've completed the quest.
#
#!QUESTMAKER_PAGE Quest Completion
#Select some rewards for completing the quest:
#
#Quest Point?
#$QUEST_POINT=$CHOOSE=YES,NO
#Amount of money (an amount, or leave blank):
#$GOLD=($EXPRESSION)
#Amount of experience points, blank for none, or a number% for percent of exp to next level:
#$EXP=($STRING)=10%
#
#Player Faction to give to or take from:
#$FACTION=($FACTION)
#If you selected a faction above, enter a new numeric amount, 
#or enter +value to add, or --value to subtract:
#$NUMFACTION=($STRING)
#
#Select whether a player may complete this quest multiple times:
#$MULTIPLE=$CHOOSE=YES,NO
#
#If you choose, you may have completion of this quest automatically start another.
#If this is what you want, enter the next quests name here:
#$NEXT_QUEST=($EXISTING_QUEST_NAME)
#
#!QUESTMAKER_END_SCRIPT Competitive Dispel #1

set name $QUEST_ID
set display $QUEST_NAME
set author $#AUTHOR

set wait $FREQUENCY
set interval 1
#quiet

set minplayers 1
set playermask $QUEST_CRITERIA


set area $ANNOUNCER_AREA
set room $ANNOUNCER_ROOM
set mobgroup
set mob $ANNOUNCER_NAME
give stat keyplayer true
give script LOAD=$QUEST_ID_dispelannouncer.script

set area $DISPELEE_AREA
set room $DISPELEE_ROOM
set $DISPELEE_TYPE $DISPELEE_NAME
give stat keyplayer true
give affect $DISPEL_SPELL $DISPEL_SPELL_PARMS
give script LOAD=$QUEST_ID_dispel.script

set duration $DURATION

<?xml version="1.0"?>
<FILE><NAME>$QUEST_ID_dispelannouncer.script</NAME>
<DATA>
ONCE_PROG 100
	MPSETVAR * $QUEST_ID_ALREADY_TOLD ''
	MPSETVAR * $QUEST_ID_COUNT ''
	MPSETVAR * $QUEST_ID_CURED ''
	MPSETVAR * $QUEST_ID_ACCEPTED ''
	MPSETVAR * $QUEST_ID_NUMACCEPTED ''
	$QUEST_ANNOUNCEMENT_TYPE $QUEST_ANNOUNCEMENT
~

QUEST_TIME_PROG * -1
	mpsetvar $i $QUEST_ID_NUMACCEPTED '$<$i $QUEST_ID_ACCEPTED>.LENGTH#'
	for $0 = 0 to< '$<$i $QUEST_ID_NUMACCEPTED>'
		if !QUESTWINNER('$<$i $QUEST_ID_ACCEPTED>.$0' *)
			tell "$<$i $QUEST_ID_ACCEPTED>.$0" You failed to complete my quest in time.
	    endif
		mpqset * STATISTICS FAILED
	next
	MPSETVAR * $QUEST_ID_NUMACCEPTED ''
	MPSETVAR * $QUEST_ID_ALREADY_TOLD ''
	MPSETVAR * $QUEST_ID_CURED ''
	MPSETVAR * $QUEST_ID_COUNT ''
	MPSETVAR * $QUEST_ID_ACCEPTED ''
~

QUEST_TIME_PROG * 1
	mpsetvar $i $QUEST_ID_NUMACCEPTED '$<$i $QUEST_ID_ACCEPTED>.LENGTH#'
	for $0 = 0 to< '$<$i $QUEST_ID_NUMACCEPTED>'
   		tell "$<$i $QUEST_ID_ACCEPTED>.$0" You have less than a minute left.
	next
~

GREET_PROG 100
	if ISLIKE($n '$QUEST_CRITERIA') and ISPC($n)
		if EVAL('$MULTIPLE' == 'YES') OR !QUESTWINNER($n *)
			if !STRIN('$<$i $QUEST_ID_ALREADY_TOLD>' '$n')
				sayto "$n" $QUEST_NOTIFYSTRING -- just say 'i accept' to take on this quest.
				MPSETVAR $i $QUEST_ID_ALREADY_TOLD '$<$i $QUEST_ID_ALREADY_TOLD> "$n"'
			endif
		endif
	endif
~
SPEECH_PROG p i accept
	if ISLIKE($n '$QUEST_CRITERIA') and ISPC($n)
		if  EVAL('$MULTIPLE' == 'YES') OR !QUESTWINNER($n *)
			if VAR($n $QUEST_ID_COUNT == '')
				sayto "$n" $QUEST_INSTRUCTIONSSTRING
                mpscript $n INDIVIDUAL LOAD=$QUEST_ID_playertrack.script
				mpsetvar $i $QUEST_ID_ACCEPTED '$<$i $QUEST_ID_ACCEPTED> $n'
				mpsetvar $n $QUEST_ID_COUNT 0
				mpqset * STATISTICS ACCEPTED
				mpqset * REMAINING $DURATION
			else
				sayto "$n" Yes, yes, I know .. thanks again.
			endif
		endif
	endif
~
</DATA></FILE>
<FILE><NAME>$QUEST_ID_dispel.script</NAME>
<DATA>
ALL_GREET_PROG 99
	if affected($i $DISPEL_SPELL) and ISPC($n) and VAR($@i $QUEST_ID_CURED == '')
		wake
		stand
		say "$n" $DISPELEE_GREETING
	endif
~

RAND_PROG 99
	if !affected($i $DISPEL_SPELL) and VAR($@i $QUEST_ID_CURED == '')
		mpsetvar $@i $QUEST_ID_CURED 'TRUE'
		mpargset $1 ''
		for $0 = 1 to '$%NUMMOBSROOM(*)%'
		   if VAR('$%ROOMMOB($0)%' $QUEST_ID_COUNT != '')
		   		mpargset $1 $%ROOMMOB($0)%
		   endif
		next
		if EVAL($1 != '')
			mpsetvar $1 $QUEST_ID_COUNT ++
			mpargset $2 '$<$1 $QUEST_ID_COUNT>'
			wake
			stand
			sayto "$1" $DISPELEE_RESPONSE_1
			if EVAL($2 >= $NUMBER_TO_DISPEL)
				sayto "$1" $DISPELEE_RESPONSE_2
				if EVAL('$EXP' != '')
					mpexp $1 $EXP
				endif
				if EVAL('$FACTION' != '')
					mpfaction $1 $FACTION $NUMFACTION
				endif
				if EVAL('$QUEST_POINT' == 'YES') AND !QUESTWINNER($1 *)
					mpoload QuestPoint
					give "a quest point" "$1"
				endif
				if EVAL('$GOLD' != '') AND EVAL('$GOLD' > 0)
					mpoload $GOLD
					give $GOLD "$1"
				endif
				mpquestwin '$1' *
				mpendquest *
				mpqset * STATISTICS SUCCESS
				IF EVAL('$NEXT_QUEST' != '')
					mpstartquest $NEXT_QUEST
				ENDIF
			else
				mpechoat '$1' Total done: $2/$NUMBER_TO_DISPEL
			endif
		endif
	endif
~
</DATA></FILE>
<FILE><NAME>$QUEST_ID_playertrack.script</NAME>
<DATA>
ONCE_PROG 100
    mpsetvar $i INSTRUCTIONS $QUEST_INSTRUCTIONSSTRING
~
RAND_PROG 99
    if QVAR(* REMAINING == '')
        MPENDQUEST $i
    else
        mpsetvar $i TIME_REMAINING $%QVAR(* REMAINING)%
    endif
~
</DATA></FILE>