All pastes #589880 Raw Edit

Mine

public text v1 · immutable
#589880 ·published 2007-06-26 07:48 UTC
rendered paste body
technobabble about what should be included (oToon, routine, etc)
{
	initialize the script
}

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
		{
			select reward by class?
			{
				equip reward - mark old to be sold/de'd
			}
		}
		
		
		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
			}
		}
		
		
		

/* 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!