XML Structure
Using an XML based definition file will allow developers to easily add new quests and tweak existing quests. This may be made unnecessary depending on the design of the Database Server and general Server Architecture.
<quests>
<quest id="1" name="Foo"/>
<description>This is a quest</description>
<task type="kill" target="1001" value="10"/>
</quest>
<quests>
Quest Tag
id: The 'id' tag defines a quest ID. All quests must have a unique ID.
name: The name of the quest. This is used by the Client only and can be omitted from the Game Server definition.
Description Tag
The description tag is used by the Client only and may be omitted from the Game Server definition. The description can use newlines to help organize quest description text into paragraphs.
Task Tag
type: 'Type' tells the quest engine what kind of quest goal needs to be completed. 'Type' can have the following values:
kill: Player must kill a certain number ('value') of 'target'. 'Target' must define a value matching a Monster ID from 'monsters.xml'.
collect: Player must collect a certain number ('value') of 'target'. 'Target' must define a value matching an Item ID from 'items.xml'.
speak: Player must speak to an NPC ('target') on map 'value'. 'Target' defines an NPC ID from 'npc.xml'. Victory condition is met only if the player speaks to the NPC on the map defined in 'value'. 'Value' must be a MapID from 'maps.xml'.
travel: Player must travel to MapID ('target'). 'Value' is not used and can be omitted.
explore: Player must explore Area ('target') on MapID 'value'. At this point, area's are not defined in maps so this is something to implemented at a later date.
catch: This was proposed as a possible addition later on. In this type of quest, the player is asked to catch (using traps, hands, whatever) 'value' of 'target'. 'Target' in this case would need to be Creatures rather than Mob's or Items. 'Value' is the number of creatures to catch.






