Difference between revisions of "Quest Documentation"
(→Quest Table) |
(→Quest Table) |
||
Line 98: | Line 98: | ||
===Tasks=== | ===Tasks=== | ||
===Rewards=== | ===Rewards=== | ||
+ | ===Requirements=== |
Revision as of 13:33, 20 June 2018
back to Project Phoenix#Quests
Contents
Files
File Name | Description |
---|---|
scripts/quest_giver.lua | contains all the functioning for the quest giver and handling of player interaction |
scripts/quest_giver_initializer.lua | initialization of the xml template data for the quest giver |
scripts/quest_helpers | Core functions for the quest system |
scripts/quest_information | Quest table definitions |
scripts/quest_npc_dialog_window | Quest dynamic window and quest log dynamic window |
scripts/globals/include_custom_quests | Setup for quest table for global usage |
Functions
CustomQuests.Helpers.<FunctionName>(Args)
Function Name | Arguments | Description |
---|---|---|
AddSlayTask | template,amount,objvarneeded,killname | Adds a slay task to the quest table |
AddHarvestTask | template,amount,objvarneeded,collectname | Adds a harvest task to the quest table |
AddCraftTask | template,amount,resourceneeded,collectname | Adds a craft quest to the quest table |
AddTameTask | template,amount,objvarneeded,collectname | Adds a tame quest to the quest table |
CanGetQuest | player,questgiver,questname | Checks to see if the player can get the quest |
HasQuest | player,questname | Checks to see if the player has the quest |
GiveQuest | player,questname | Give the player a quest and toss it in the quest log |
RemoveQuest | player,questname | Remove a quest by name from the player |
IsQuestComplete | player,questname | Checks if the quest tasks are completed or not |
CheckQuestObjectives | player,object | Checks to see if the player completed a part of the objective |
CheckDelay | player,quest | Checks to see if the player an pick the quest up again (daily,hourly) or what other interval |
Quest Giver
The quest system has a few limitations as of now but can be fixed either by me later when I get around to it, or feel free to do it yourself in your own methods
- You can only display 3 quest choices on any NPC due to user interface size.
- All quests can be repeated, you are given a Delay value.
Template
Below is a list of object variables that are important and not just standard in a npc template.
Object Variables
Object Variable | Type | Description |
---|---|---|
Quests_WindowStyle | string | support for custom quest window look |
Dialogs_Intro | string | the string that appears in the initial window when you first talk to the npc. |
Initializer
file: scripts/quest_giver_initializer.lua
Initializer Variable | Description |
---|---|
QuestsToOffer | A string list of table names from the quest_information.lua file |
Equipment | General npc equipment initialization. |
Quest Table
file: scripts/quest_information.lua
CustomQuests.Quests.questtablename
Table Variable | Description |
---|---|
Title | Quest Title Name |
Description | Quest Description |
QuestCompletedMessage | Quest completed message |
Delay | delay in seconds until the player can get quest again |
Tasks | table of tasks the player must complete (4 max)(ui size) |
Rewards | table of rewards the player earns for completing the quest |
Requirements | a Check(player,quest_npc,quest) to see if the player can pick the quest up. |