objectdef oQuest inherits oBase
variable string ConfigDir = "${Script.CurrentDirectory}/Quest/"
variable string ConfigFile = "Quest.xml"
{
set States
{
Idle
FindQuest
InQuest
CompletedQuest
TurninQuest
}
Idle
{
/* find something to do */
}
FindQuest
{
/* find a Quest */
}
InQuest
{
/* go do the selected Quest */
}
CompletedQuest
{
/* did we finish the Quest? if so move on to turning it in! */
}
TurninQuest
{
/* where should we go to turn it in? */
}
set NPCStates
{
NPCHasQuest
NPCHascompletedQuest
}
NPCHasQuest
{
GetQuest
}
NPCHasCompletedQuest
{
if NPCHasRewards
{
select reward by class?
{
equip reward - mark old to be sold/de'd
}
}
then
{
TurnInQuest
}
else
{
TurnInQuest
}
}
other NPC stuff
{
NPCHasDialog
NPCHasRewards
}
NPCHasDialog
{
WoWScript SelectGossipOption(1-w/e) /* just for my sake of remembering */
}
NPCHasRewards
{
/* check if the NPC has some goodies for us */
}
PickQuestToDo
{
/* check my config file to find what Quests we have or can pick up (based on level, also include Quest #'s to fix any confusion with Quest names) */
{
/* if i have a Quest then lets pick one at random and do it! */
{
/* go to where i need to go to do these Quests (call DoQuest) */
{
/* check Quest State */
}
}
}
else
{
This:Output["Noob! You have no Quests to do! Go find some!"]
}
DoQuest
{
/* pick the right QuestSet (same as locationset?) and move there */
{
if killmobs or findobjects = true
}
then
{
member QuestSet
{
/* pick the right QuestSet from the config file! */
}
member ClickGo
{
/* lets get moving already damnit! */
}
}
else
{
GoToNPC
}
}
}
/* extra stuff */
/* check the objective of the Quest (do we kill mobs? or find objects? or just go to another NPC?) */
member KillMobs
{
if QuesTobjective = kill x of typeofmobs = true
then set killmobs true
else set false
}
member FindObjects
{
if QuesTobjective = find x of typeofobject = true
then set finDobjects true
else set false
}
member GoToNPC
{
if QuestObjective = go to specified NPC
then set GoToNPC true and call completedQuest
else set false
}
/* check if the NPC Has Rewards or dialog and let it be used globally */
NPCHasdialog
{
WoWScript SelectGossipOption(1-w/e) /* just for my sake of remembering */
}
NPCHasRewards
{
select reward by class?
{
equip reward - mark old to be sold/de'd
}
}
method Social
{
Unit[-nearest 1, -quest]:Use
}
/* general GUI shit and ways of making it collect data for the Quest */
fill this in later
basically breaks down to;
pickupQuest and log info (Quest#)
was the Quest from an item?
Questlocation
NPClocation
mappedareaforQuest
Questfinish
save to a config file in /Quest/Quest.xml
if Questing is turned off, then lets quit this fucker and go back to grinding mindlessly like a silly boob!