Mangos world quest template
Zpět na seznam tabulek world databáze.
Tabulka `quest_template`
Obsahuje všechny základní definice dostupných questů (výprav).
Struktura
Pole | Typ | Null | Key | Výchozí hodnota | Extra |
---|---|---|---|---|---|
entry | int(10) unsigned | NE | PRI | 0 | |
Method | tinyint(3) | NE | 2 | ||
ZoneOrSort | smallint(6) | NE | 0 | ||
SkillOrClass | smallint(6) | NE | 0 | ||
MinLevel | tinyint(3) unsigned | NE | 0 | ||
QuestLevel | tinyint(3) unsigned | NE | 0 | ||
Type | smallint(5) unsigned | NE | 0 | ||
RequiredRaces | smallint(5) | NE | 0 | ||
RequiredSkillValue | smallint(5) unsigned | NE | 0 | ||
RepObjectiveFaction | smallint(5) unsigned | NE | 0 | ||
RepObjectiveValue | mediumint(9) | NE | 0 | ||
RequiredMinRepFaction | mediumint(5) unsigned | NE | 0 | ||
RequiredMinRepValue | mediumint(9) | NE | 0 | ||
RequiredMaxRepFaction | mediumint(5) unsigned | NE | 0 | ||
RequiredMaxRepValue | mediumint(9) | NE | 0 | ||
SuggestedPlayers | mediumint(3) unsigned | NE | 0 | ||
LimitTime | int(10) | NE | 0 | ||
QuestFlags | smallint(5) unsigned | NE | 0 | ||
SpecialFlags | tinyint(3) unsigned | NE | 0 | ||
CharTitleId | tinyint(3) unsigned | NE | 0 | ||
PlayersSlain | tinyint(3) unsigned | NE | 0 | ||
BonusTalents | tinyint(3) unsigned | NE | 0 | ||
PrevQuestId | mediumint(9) | NE | 0 | ||
NextQuestId | mediumint(9) | NE | 0 | ||
ExclusiveGroup | mediumint(9) | NE | 0 | ||
NextQuestInChain | mediumint(8) | NE | 0 | ||
RewXPId | tinyint(3) | NE | 0 | ||
SrcItemId | mediumint(8) unsigned | NE | 0 | ||
SrcItemCount | tinyint(3) | NE | 0 | ||
SrcSpell | mediumint(8) | NE | 0 | ||
Title | text | ANO | |||
Details | text | ANO | |||
Objectives | text | ANO | |||
OfferRewardText | text | ANO | |||
RequestItemsText | text | ANO | |||
EndText | text | ANO | |||
ObjectiveText1 | text | ANO | |||
ObjectiveText2 | text | ANO | |||
ObjectiveText3 | text | ANO | |||
ObjectiveText4 | text | ANO | |||
ReqItemId1 | mediumint(8) unsigned | NE | 0 | ||
ReqItemId2 | mediumint(8) unsigned | NE | 0 | ||
ReqItemId3 | mediumint(8) unsigned | NE | 0 | ||
ReqItemId4 | mediumint(8) unsigned | NE | 0 | ||
ReqItemCount1 | smallint(5) unsigned | NE | 0 | ||
ReqItemCount2 | smallint(5) unsigned | NE | 0 | ||
ReqItemCount3 | smallint(5) unsigned | NE | 0 | ||
ReqItemCount4 | smallint(5) unsigned | NE | 0 | ||
ReqSourceId1 | mediumint(8) | NE | 0 | ||
ReqSourceId2 | mediumint(8) | NE | 0 | ||
ReqSourceId3 | mediumint(8) | NE | 0 | ||
ReqSourceId4 | mediumint(8) | NE | 0 | ||
ReqSourceCount1 | smallint(5) | NE | 0 | ||
ReqSourceCount2 | smallint(5) | NE | 0 | ||
ReqSourceCount3 | smallint(5) | NE | 0 | ||
ReqSourceCount4 | smallint(5) | NE | 0 | ||
ReqCreatureOrGOId1 | mediumint(9) | NE | 0 | ||
ReqCreatureOrGOId2 | mediumint(9) | NE | 0 | ||
ReqCreatureOrGOId3 | mediumint(9) | NE | 0 | ||
ReqCreatureOrGOId4 | mediumint(9) | NE | 0 | ||
ReqCreatureOrGOCount1 | int(10) unsigned | NE | 0 | ||
ReqCreatureOrGOCount2 | smallint(5) unsigned | NE | 0 | ||
ReqCreatureOrGOCount3 | smallint(5) unsigned | NE | 0 | ||
ReqCreatureOrGOCount4 | smallint(5) unsigned | NE | 0 | ||
ReqSpellCast1 | mediumint(8) unsigned | NE | 0 | ||
ReqSpellCast2 | mediumint(8) | NE | 0 | ||
ReqSpellCast3 | mediumint(8) | NE | 0 | ||
ReqSpellCast4 | mediumint(8) | NE | 0 | ||
RewChoiceItemId1 | mediumint(8) unsigned | NE | 0 | ||
RewChoiceItemId2 | mediumint(8) unsigned | NE | 0 | ||
RewChoiceItemId3 | mediumint(8) unsigned | NE | 0 | ||
RewChoiceItemId4 | mediumint(8) unsigned | NE | 0 | ||
RewChoiceItemId5 | mediumint(8) unsigned | NE | 0 | ||
RewChoiceItemId6 | mediumint(8) unsigned | NE | 0 | ||
RewChoiceItemCount1 | smallint(5) unsigned | NE | 0 | ||
RewChoiceItemCount2 | smallint(5) unsigned | NE | 0 | ||
RewChoiceItemCount3 | smallint(5) unsigned | NE | 0 | ||
RewChoiceItemCount4 | smallint(5) unsigned | NE | 0 | ||
RewChoiceItemCount5 | smallint(5) unsigned | NE | 0 | ||
RewChoiceItemCount6 | smallint(5) unsigned | NE | 0 | ||
RewItemId1 | mediumint(8) unsigned | NE | 0 | ||
RewItemId2 | mediumint(8) unsigned | NE | 0 | ||
RewItemId3 | mediumint(8) unsigned | NE | 0 | ||
RewItemId4 | mediumint(8) unsigned | NE | 0 | ||
RewItemCount1 | smallint(5) unsigned | NE | 0 | ||
RewItemCount2 | smallint(5) unsigned | NE | 0 | ||
RewItemCount3 | smallint(5) unsigned | NE | 0 | ||
RewItemCount4 | smallint(5) unsigned | NE | 0 | ||
RewRepFaction1 | smallint(5) | NE | 0 | ||
RewRepFaction2 | smallint(5) | NE | 0 | ||
RewRepFaction3 | smallint(5) | NE | 0 | ||
RewRepFaction4 | smallint(5) | NE | 0 | ||
RewRepFaction5 | smallint(5) | NE | 0 | ||
RewRepValue1 | mediumint(9) | NE | 0 | ||
RewRepValue2 | mediumint(9) | NE | 0 | ||
RewRepValue3 | mediumint(9) | NE | 0 | ||
RewRepValue4 | mediumint(9) | NE | 0 | ||
RewRepValue5 | mediumint(9) | NE | 0 | ||
RewHonorableKills | int(11) | NE | 0 | ||
RewOrReqMoney | int(11) | NE | 0 | ||
RewMoneyMaxLevel | int(10) unsigned | NE | 0 | ||
RewSpell | mediumint(8) unsigned | NE | 0 | ||
RewSpellCast | mediumint(8) unsigned | NE | 0 | ||
RewMailTemplateId | mediumint(8) unsigned | NE | 0 | ||
RewMailDelaySecs | int(11) unsigned | NE | 0 | ||
PointMapId | smallint(5) unsigned | NE | 0 | ||
PointX | float | NE | 0 | ||
PointY | float | NE | 0 | ||
PointOpt | mediumint(8) | NE | |||
DetailsEmote1 | smallint(5) unsigned | NE | 0 | ||
DetailsEmote2 | smallint(5) unsigned | NE | 0 | ||
DetailsEmote3 | smallint(5) unsigned | NE | 0 | ||
DetailsEmote4 | smallint(5) unsigned | NE | 0 | ||
IncompleteEmote | smallint(5) unsigned | NE | 0 | ||
CompleteEmote | smallint(5) unsigned | NE | 0 | ||
OfferRewardEmote1 | smallint(5) unsigned | NE | 0 | ||
OfferRewardEmote2 | smallint(5) unsigned | NE | 0 | ||
OfferRewardEmote3 | smallint(5) unsigned | NE | 0 | ||
OfferRewardEmote4 | smallint(5) unsigned | NE | 0 | ||
StartScript | mediumint(8) unsigned | NE | 0 | ||
CompleteScript | mediumint(8) unsigned | NE | 0 |
Popis polí tabulky
entry
Quest ID. Toto pole slouží jako primární klíč tabulky. Každé Quest ID musí být unikátní!
Method
Možné hodnoty: 0, 1 nebo 2.
Pokud je hodnota 0, quest je automaticky dokončen (přeskočí úkoly/detaily).
1 = daily (jednou za den) ???
2 = weekly (jednou za týden) ???
ZoneOrSort
Toto pole definuje, do jaké kategorie spadá quest v quest logu.
Jestli je hodnota > 0, pak tato hodnota je ID Zony podle souboru AreaTable.dbc.
Jestli je hodnota < 0, pak (-hodnota) je quest sort id: (in general profession or class quests. Also see RequiredSkillValue ) Value is ID from QuestSort.dbc.
QuestSort.dbc
SkillOrClass
This field defines any specific skill or class requirements for the quest to be available for a character.
If value > 0 then value is a skill ID (see SkillLine.dbc)
If value < 0 then (-value) is class ID (see ChrClasses.dbc)
MinLevel
Minimální level(úroveň) postavy, potřebný k získání questu.
QuestLevel
Level(úroveň) questu. Hráč získá plný počet 'experience' pouze za předpokladu, že level jeho postavy je nižší nebo stejný jako QuestLevel+5.
Type
Tyto hodnoty jsou ID, získaná z DBC souboru QuestInfo.dbc. Šablona:QuestInfo.dbc
RequiredRaces
Races required to get the quest. 0 means available for all races. Field's value is a decimal value that must be transform to a 8 bits binary in order to be understandable. In binary form, each different bit represent a different race. They're assigned as follow :
Races: These values are 2^ID taken from ChrRaces.dbc
Bit | ID | Jméno |
1 | 1 | Human |
2 | 2 | Orc |
4 | 3 | Dwarf |
8 | 4 | Night Elf |
16 | 5 | Undead |
32 | 6 | Tauren |
64 | 7 | Gnome |
128 | 8 | Troll |
512 | 10 | Blood Elf |
1024 | 11 | Draenei |
Příklady:
0,1791 = All Races
690 (2 + 16 + 32 + 128 + 512) = Horde Quest
1101 (1 + 4 + 8 + 64 + 1024) = Alliance Quest
RequiredSkillValue
Player skill value requirement for skill if in ZoneOrSort field < 0 and have some from skill related values.
RepObjectiveFaction
Faction ID for an objective to achieve a certain reputation value with. See Faction.dbc
RepObjectiveValue
Reputation value that the player must achieve with the faction in RepObjectiveFaction as part of the quest objectives.
RequiredMinRepFaction
Faction ID for reputation requirement. See Faction.dbc
RequiredMinRepValue
Players must have this reputation or higher in order to receive the quest. Reputation
RequiredMaxRepFaction
The Faction ID for the faction that controls the maximum reputation value that the player can have and still get the quest. See Faction.dbc
RequiredMaxRepValue
The maximum reputation value that the player can have with a faction and still get the quest. If the player has more reputation than the value in this field, the quest will not be able to be taken anymore. Reputation
SuggestedPlayers
Info about how many players should do unite for the quest.
LimitTime
Time in seconds that the player has to complete this quest.
QuestFlags
This flag field defines more specifically the type of quest it is. Aside from the daily flag and sharable flag, this field is used just for grouping purposes and NOT for any other quest requirements. The quest requirements are calculated from non-zero values in other quest template fields. Also, while some of these flags are known, others have yet an unknown purpose and the comments below is simply guesswork on them.
At the moment (rev 6055), the core does not actually handle these flags any differently (again, except for the daily flag and the sharable flag).
Bit | Name | Comments |
---|---|---|
0 | QUEST_FLAGS_NONE | No flags, so no groups assigned to this quest. |
1 | QUEST_FLAGS_STAY_ALIVE | If the player dies, the quest is failed. (?) |
2 | QUEST_FLAGS_EVENT | Escort quests or any other event-driven quests. If player in party, all players that can accept this quest will receive confirmation box to accept quest. |
4 | QUEST_FLAGS_EXPLORATION | Involves the activation of an areatrigger. |
8 | QUEST_FLAGS_SHARABLE | Allows the quest to be shared with other players. |
16 | QUEST_FLAGS_NONE2 | Unknown at this time and not used. |
32 | QUEST_FLAGS_EPIC | Epic class quests (hunter) (??) |
64 | QUEST_FLAGS_RAID | Raid or similiar player group needed for quest. |
128 | QUEST_FLAGS_TBC | Added with or after TBC. |
256 | QUEST_FLAGS_UNK2 | Quest needs extra non-objective items dropped (eg. ReqSourceID fields) (?) |
512 | QUEST_FLAGS_HIDDEN_REWARDS | Item and monetary rewards are hidden in the initial quest details page and in the quest log but will appear once ready to be rewarded. |
1024 | QUEST_FLAGS_UNK4 | Unknown at this time. |
2048 | QUEST_FLAGS_TBC_RACES | Blood elf/draenei starting zone quests. |
4096 | QUEST_FLAGS_DAILY | Daily repeatable quests (only flag that the core applies specific behavior for) |
8192 | QUEST_FLAGS_UNK5 | Grizzly Hills PvP daily? Puts PvP-tag on? No idea.) |
Like all flag based fields, QuestFlags can be added for the different types of quest.
SpecialFlags
This field is a bitmask and controls only two extra requirements and has only 4 possible values.
- 0: No extra requirements
- 1: Makes the quest repeatable.
- 2: Makes the quest only completable by some external event (an entry in `areatrigger_involvedrelation`, spell effect quest complete or an entry in `spell_scripts` with command 7 as some examples)
- 3: Both repeatable and completable only through an external event
CharTitleId
The title the character will receive upon completion of the quest. See CharTitles.dbc
PlayersSlain
BonusTalents
PrevQuestId
if value > 0: Contains the previous quest id, that must be completed before this quest can be started.
If value < 0: Contains the parent quest id, that must be active before this quest can be started.
See the examples section for examples.
NextQuestId
If value > 0: Contains the next quest id, if PrevQuestId of that quest is not sufficient.
If value < 0: Contains the sub quest id, if PrevQuestId of that quest is not sufficient.
If quest have many alternative next quests (class specific quests lead from single not class specific quest) field PrevQuestId in next quests can used for setting this dependence.
See the examples section for examples.
ExclusiveGroup
if ExclusiveGroup > 0
Allows to define a group of quests of which only one may be chosen and completed.
E.g. if from quests 1200, 1201 and 1202 only one should be allowed to be chosen, insert 1200 into ExclusiveGroup of all 3 quests.
if ExclusiveGroup < 0
Allows to define a group of quests of which all must be completed and rewarded to start next quest.
E.g. if quest 1000 dependent from one of quests 1200, 1201 and 1202 and all this quests have same negative exclusive group then all this quest must be completed and rewarded before quest 1000 can be started.
See the examples section for examples.
NextQuestInChain
The quest entry from a creature or gameobject that ends a quest and starts a new one. The result is, that if you end the quest, the new quest instantly appears from the quest giver.
See the examples section for examples.
RewXPId
This field controls the experience given at the end of a quest. Its values are taken from QuestXP.dbc; The ID ranges from 1 to 11 and the amount of xp given depends on the quest's level.
SrcItemId
Item's ID given by the quest giver at beginning of the quest.
Items will be deleted when quest is abandoned.
SrcItemCount
Amount of items given.
SrcSpell
Spell casted on player when quest is started. Can be a buff or a learning spell.
Title
Title of the quest.
Details
The quest text. You can use certain placeholders that will be filled in in-game: $B - line break, $N - name, $R - race, $C - class, $Gmale:female; (male and female can be replace with any synonymn you want, but the order must stay the same. IE: boy:girl / man:woman / sir:madam / dude:chick)
Objectives
Objectives of the quest.
If empty, quest is an auto-complete quest that can be immediately finished without accepting it first.
OfferRewardText
First text send to the player by the NPC when completing the quest. You can use certain placeholders that will be filled in in-game: $B - line break, $N - name, $R - race, $C - class, $Gmale:female; (male and female can be replace with any synonymn you want, but the order must stay the same. IE: boy:girl / man:woman / sir:madam / dude:chick)
RequestItemsText
Text sent to player when the player tries to talk to the NPC with the quest active but incomplete. (The text under the "Progress" title in Wowhead.) You can use certain placeholders that will be filled in in-game: $B - line break, $N - name, $R - race, $C - class, $Gmale:female; (male and female can be replace with any synonymn you want, but the order must stay the same. IE: boy:girl / man:woman / sir:madam / dude:chick)
EndText
Used only when SpecialFlags 2 is active. This is the objective text sent to the player describing the external event that is required to complete the quest.
ObjectiveText
Used to define non-standard objective texts, that show up in the questlog.
Example, "Heal fallen warrior" and the number gets added by Count values.
ReqItemId
Item_template Id of required item to complete the quest.
ReqItemCount
Amount of required items
ReqSourceID
Item ID that is needed indirectly by the quest. For example, the quests asks for item X but the only way to get item X is by activating item Y; however, item Y is also a quest item. Therefore you set item Y's ID in this field. This requirement will not appear in the quest text, it is just for the core to know when to drop a quest item that isn't in the ReqItemID field but is still needed by the quest.
ReqSourceCount
The maximum number of copies of the item in ReqSourceID that can be picked up (and dropped by the core).
ReqCreatureOrGOId
Value > 0: required creature_template ID the player needs to kill/cast on in order to complete the quest.
Value < 0: required gameobject_template ID the player needs to cast on in order to complete the quest.
If ReqSpellCast is != 0, the objective is to cast on target, else kill.
NOTE: If ReqSpellCast is != 0 and the spell has effects Send Event or Quest Complete, this field may be left empty.
ReqCreatureOrGOCount
The number of times the creature or gameobject must be killed or casted upon.
ReqSpellCast
Spell ID of Spell that needs to be cast in order to fulfill a quest objective.
A spell normally needs a target which is ReqCreatureOrGOId
And for spells with "SpellEffect with ImpliciteTargetA-B == 38" check table Spell_script_target
NOTE: If the spell has spell effects Send Event or Quest Complete, it can be entered here WITHOUT the need for a target and count.
RewChoiceItemId, RewChoiceItemCount
Id of item available for reward choice.
Number of Charges in rewarded item available.
RewItemId, RewItemCount
Number of RewItem
item Id given for reward (no choice).
RewRepFaction, RewRepValue
Faction Id (from Faction.dbc) for which the quest give reputation points.
Number of gain or lost reputation points for Faction at quest completion.
This is special reputation rewarding. Normal reputation reward to quest rewarding creature faction calculated and added automatically.
RewHonorableKills
Number of honorable kill honor rewarded for completing this quest.
Example:
An example value is 15 for quest 8388: At level 70 an honorable kill is 20.9 honor worth. Multiply this with 15 and you receive 313.5, after the multiplication the value is rounded up. So the honor rewarded at level 70 is 314 for this quest.
RewOrReqMoney
Money earned by completing the quest (if value > 0). Money quest requirement (if value < 0).
RewMoneyMaxLevel
The money a character at level 70 would get when they complete this quest. This field also controls the XP given as the XP is calculated from the value in this field by the following formula. If the quest is repeatable, XP will be given only once. The total XP that a character will receive is also affected by the level difference between the character's level and the quest's level.
The formula for calculating XP from the value in this field:
QuestLevel >= 65: XP = RewMoneyMaxLevel / 6.0
QuestLevel == 64: XP = RewMoneyMaxLevel / 4.8
QuestLevel == 63: XP = RewMoneyMaxLevel / 3.6
QuestLevel == 62: XP = RewMoneyMaxLevel / 2.4
QuestLevel == 61: XP = RewMoneyMaxLevel / 1.2
QuestLevel <= 60: XP = RewMoneyMaxLevel / 0.6
RewSpell
Spell that is shown to be casted on quest completion in the quest log. Note that this spell will NOT be casted if RewSpellCast is non-zero. The spell in the other field will be casted instead, in which case the spell here only serves as the visual in the quest log.
NOTE: This field comes straight from the WDB and should not be changed.
RewSpellCast
Spell that will always be casted at player when completing the quest. This can be learn spell and player learned some spell in result, or buff spell, for example. If this field is non-zero then this spell will ALWAYS be casted and the spell in RewSpell will not.
NOTE: This field comes straight from the WDB and should not be changed.
RewMailTemplateId
If the quest gives as a reward an item from a possible list of items, the ID here corresponds to the proper loot template in quest_mail_loot_template. According to the rules in that loot template, items "looted" will be sent by mail at the completion of the quest.
RewMailDelaySecs
How many seconds to wait until the mail is sent to the character that turned in a quest rewarding items from a loot template defined in RewMailTemplateId
PointMapId
MapId of a quest point of interest (POI - Point Of Interest). POI will be shown on the map when quest is active.
PointX
X coordinate of quest POI.
PointY
Y coordinate of quest POI.
PointOpt
DetailsEmote
CompleteEmote
Emote played by the related NPC at the time all quest objects are completed.
OfferRewardEmote
Emote played by the NPC at the time the character is rewarded for the quest.
StartScript
ID of the start script. See quest_start_scripts.id
CompleteScript
ID of the end script. See quest_end_scripts.id