mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 04:37:00 +00:00
[9309] Implement DB storage for new quest_template field 'RewXPId'.
Values 0-8, used to display XP reward in client log. Please note that calculation of quest XP has changed, and formula must be corrected accordingly. Signed-off-by: NoFantasy <nofantasy@nf.no>
This commit is contained in:
parent
cb33736a5a
commit
f73b778cde
9 changed files with 76 additions and 64 deletions
|
|
@ -24,7 +24,7 @@ CREATE TABLE `db_version` (
|
|||
`version` varchar(120) default NULL,
|
||||
`creature_ai_version` varchar(120) default NULL,
|
||||
`cache_id` int(10) default '0',
|
||||
`required_9297_01_mangos_item_template` bit(1) default NULL
|
||||
`required_9309_01_mangos_quest_template` bit(1) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
||||
|
||||
--
|
||||
|
|
@ -13804,6 +13804,7 @@ CREATE TABLE `quest_template` (
|
|||
`NextQuestId` mediumint(9) NOT NULL default '0',
|
||||
`ExclusiveGroup` mediumint(9) NOT NULL default '0',
|
||||
`NextQuestInChain` mediumint(8) unsigned NOT NULL default '0',
|
||||
`RewXPId` tinyint(3) unsigned NOT NULL default '0',
|
||||
`SrcItemId` mediumint(8) unsigned NOT NULL default '0',
|
||||
`SrcItemCount` tinyint(3) unsigned NOT NULL default '0',
|
||||
`SrcSpell` mediumint(8) unsigned NOT NULL default '0',
|
||||
|
|
|
|||
3
sql/updates/9309_01_mangos_quest_template.sql
Normal file
3
sql/updates/9309_01_mangos_quest_template.sql
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
ALTER TABLE db_version CHANGE COLUMN required_9297_01_mangos_item_template required_9309_01_mangos_quest_template bit;
|
||||
|
||||
ALTER TABLE quest_template ADD COLUMN RewXPId tinyint(3) unsigned NOT NULL default '0' AFTER NextQuestInChain;
|
||||
|
|
@ -260,6 +260,7 @@ pkgdata_DATA = \
|
|||
9291_02_mangos_locales_quest.sql \
|
||||
9296_01_mangos_spell_chain.sql \
|
||||
9297_01_mangos_item_template.sql \
|
||||
9309_01_mangos_quest_template.sql \
|
||||
README
|
||||
|
||||
## Additional files to include when running 'make dist'
|
||||
|
|
@ -500,4 +501,5 @@ EXTRA_DIST = \
|
|||
9291_02_mangos_locales_quest.sql \
|
||||
9296_01_mangos_spell_chain.sql \
|
||||
9297_01_mangos_item_template.sql \
|
||||
9309_01_mangos_quest_template.sql \
|
||||
README
|
||||
|
|
|
|||
|
|
@ -470,6 +470,7 @@ void PlayerMenu::SendQuestGiverQuestDetails( Quest const *pQuest, uint64 npcGUID
|
|||
data << uint32(0); // Rewarded chosen items hidden
|
||||
data << uint32(0); // Rewarded items hidden
|
||||
data << uint32(0); // Rewarded money hidden
|
||||
data << uint32(0); // Rewarded XP hidden
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -512,9 +513,9 @@ void PlayerMenu::SendQuestGiverQuestDetails( Quest const *pQuest, uint64 npcGUID
|
|||
}
|
||||
|
||||
data << uint32(pQuest->GetRewOrReqMoney());
|
||||
data << uint32(pQuest->XPValue(pSession->GetPlayer()));
|
||||
}
|
||||
|
||||
data << uint32(0);
|
||||
// rewarded honor points. Multiply with 10 to satisfy client
|
||||
data << uint32(10*MaNGOS::Honor::hk_honor_at_level(pSession->GetPlayer()->getLevel(), pQuest->GetRewHonorableKills()));
|
||||
data << float(0); // new 3.3.0
|
||||
|
|
@ -601,7 +602,7 @@ void PlayerMenu::SendQuestQueryResponse( Quest const *pQuest )
|
|||
data << uint32(0); // RequiredOpositeRepValue, required faction value with another (oposite) faction (objective)
|
||||
|
||||
data << uint32(pQuest->GetNextQuestInChain()); // client will request this quest from NPC, if not 0
|
||||
data << uint32(0); // column index in QuestXP.dbc (row based on quest level)
|
||||
data << uint32(pQuest->GetRewXPId()); // column index in QuestXP.dbc (row based on quest level)
|
||||
|
||||
if (pQuest->HasFlag(QUEST_FLAGS_HIDDEN_REWARDS))
|
||||
data << uint32(0); // Hide money rewarded
|
||||
|
|
|
|||
|
|
@ -3284,35 +3284,37 @@ void ObjectMgr::LoadQuests()
|
|||
QueryResult *result = WorldDatabase.Query("SELECT entry, Method, ZoneOrSort, SkillOrClass, MinLevel, QuestLevel, Type, RequiredRaces, RequiredSkillValue,"
|
||||
// 9 10 11 12 13 14 15 16
|
||||
"RepObjectiveFaction, RepObjectiveValue, RequiredMinRepFaction, RequiredMinRepValue, RequiredMaxRepFaction, RequiredMaxRepValue, SuggestedPlayers, LimitTime,"
|
||||
// 17 18 19 20 21 22 23 24 25 26 27 28
|
||||
"QuestFlags, SpecialFlags, CharTitleId, PlayersSlain, BonusTalents, PrevQuestId, NextQuestId, ExclusiveGroup, NextQuestInChain, SrcItemId, SrcItemCount, SrcSpell,"
|
||||
// 29 30 31 32 33 34 35 36 37 38 39
|
||||
// 17 18 19 20 21 22 23 24 25
|
||||
"QuestFlags, SpecialFlags, CharTitleId, PlayersSlain, BonusTalents, PrevQuestId, NextQuestId, ExclusiveGroup, NextQuestInChain,"
|
||||
// 26 27 28 29
|
||||
"RewXPId, SrcItemId, SrcItemCount, SrcSpell,"
|
||||
// 30 31 32 33 34 35 36 37 38 39 40
|
||||
"Title, Details, Objectives, OfferRewardText, RequestItemsText, EndText, CompletedText, ObjectiveText1, ObjectiveText2, ObjectiveText3, ObjectiveText4,"
|
||||
// 40 41 42 43 44 45 46 47 48 49 50 51
|
||||
// 41 42 43 44 45 46 47 48 49 50 51 52
|
||||
"ReqItemId1, ReqItemId2, ReqItemId3, ReqItemId4, ReqItemId5, ReqItemId6, ReqItemCount1, ReqItemCount2, ReqItemCount3, ReqItemCount4, ReqItemCount5, ReqItemCount6,"
|
||||
// 52 53 54 55 56 57 58 59
|
||||
// 53 54 55 56 57 58 59 60
|
||||
"ReqSourceId1, ReqSourceId2, ReqSourceId3, ReqSourceId4, ReqSourceCount1, ReqSourceCount2, ReqSourceCount3, ReqSourceCount4,"
|
||||
// 60 61 62 63 64 65 66 67
|
||||
// 61 62 63 64 65 66 67 68
|
||||
"ReqCreatureOrGOId1, ReqCreatureOrGOId2, ReqCreatureOrGOId3, ReqCreatureOrGOId4, ReqCreatureOrGOCount1, ReqCreatureOrGOCount2, ReqCreatureOrGOCount3, ReqCreatureOrGOCount4,"
|
||||
// 68 69 70 71
|
||||
// 69 70 71 72
|
||||
"ReqSpellCast1, ReqSpellCast2, ReqSpellCast3, ReqSpellCast4,"
|
||||
// 72 73 74 75 76 77
|
||||
// 73 74 75 76 77 78
|
||||
"RewChoiceItemId1, RewChoiceItemId2, RewChoiceItemId3, RewChoiceItemId4, RewChoiceItemId5, RewChoiceItemId6,"
|
||||
// 78 79 80 81 82 83
|
||||
// 79 80 81 82 83 84
|
||||
"RewChoiceItemCount1, RewChoiceItemCount2, RewChoiceItemCount3, RewChoiceItemCount4, RewChoiceItemCount5, RewChoiceItemCount6,"
|
||||
// 84 85 86 87 88 89 90 91
|
||||
// 85 86 87 88 89 90 91 92
|
||||
"RewItemId1, RewItemId2, RewItemId3, RewItemId4, RewItemCount1, RewItemCount2, RewItemCount3, RewItemCount4,"
|
||||
// 92 93 94 95 96 97 98 99 100 101
|
||||
// 93 94 95 96 97 98 99 100 101 102
|
||||
"RewRepFaction1, RewRepFaction2, RewRepFaction3, RewRepFaction4, RewRepFaction5, RewRepValue1, RewRepValue2, RewRepValue3, RewRepValue4, RewRepValue5,"
|
||||
// 102 103 104 105 106 107 108 109 110 111 112
|
||||
// 103 104 105 106 107 108 109 110 111 112 113
|
||||
"RewHonorableKills, RewOrReqMoney, RewMoneyMaxLevel, RewSpell, RewSpellCast, RewMailTemplateId, RewMailDelaySecs, PointMapId, PointX, PointY, PointOpt,"
|
||||
// 113 114 115 116 117 118 119 120
|
||||
// 114 115 116 117 118 119 120 121
|
||||
"DetailsEmote1, DetailsEmote2, DetailsEmote3, DetailsEmote4, DetailsEmoteDelay1, DetailsEmoteDelay2, DetailsEmoteDelay3, DetailsEmoteDelay4,"
|
||||
// 121 122 123 124 125 126
|
||||
// 122 123 124 125 126 127
|
||||
"IncompleteEmote, CompleteEmote, OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4,"
|
||||
// 127 128 129 130
|
||||
// 128 129 130 131
|
||||
"OfferRewardEmoteDelay1, OfferRewardEmoteDelay2, OfferRewardEmoteDelay3, OfferRewardEmoteDelay4,"
|
||||
// 131 132
|
||||
// 132 133
|
||||
"StartScript, CompleteScript"
|
||||
" FROM quest_template");
|
||||
if(result == NULL)
|
||||
|
|
|
|||
|
|
@ -48,88 +48,89 @@ Quest::Quest(Field * questRecord)
|
|||
NextQuestId = questRecord[23].GetInt32();
|
||||
ExclusiveGroup = questRecord[24].GetInt32();
|
||||
NextQuestInChain = questRecord[25].GetUInt32();
|
||||
SrcItemId = questRecord[26].GetUInt32();
|
||||
SrcItemCount = questRecord[27].GetUInt32();
|
||||
SrcSpell = questRecord[28].GetUInt32();
|
||||
Title = questRecord[29].GetCppString();
|
||||
Details = questRecord[30].GetCppString();
|
||||
Objectives = questRecord[31].GetCppString();
|
||||
OfferRewardText = questRecord[32].GetCppString();
|
||||
RequestItemsText = questRecord[33].GetCppString();
|
||||
EndText = questRecord[34].GetCppString();
|
||||
CompletedText = questRecord[35].GetCppString();
|
||||
RewXPId = questRecord[26].GetUInt32();
|
||||
SrcItemId = questRecord[27].GetUInt32();
|
||||
SrcItemCount = questRecord[28].GetUInt32();
|
||||
SrcSpell = questRecord[29].GetUInt32();
|
||||
Title = questRecord[30].GetCppString();
|
||||
Details = questRecord[31].GetCppString();
|
||||
Objectives = questRecord[32].GetCppString();
|
||||
OfferRewardText = questRecord[33].GetCppString();
|
||||
RequestItemsText = questRecord[34].GetCppString();
|
||||
EndText = questRecord[35].GetCppString();
|
||||
CompletedText = questRecord[36].GetCppString();
|
||||
|
||||
for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
|
||||
ObjectiveText[i] = questRecord[36+i].GetCppString();
|
||||
ObjectiveText[i] = questRecord[37+i].GetCppString();
|
||||
|
||||
for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
|
||||
ReqItemId[i] = questRecord[40+i].GetUInt32();
|
||||
ReqItemId[i] = questRecord[41+i].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
|
||||
ReqItemCount[i] = questRecord[46+i].GetUInt32();
|
||||
ReqItemCount[i] = questRecord[47+i].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i)
|
||||
ReqSourceId[i] = questRecord[52+i].GetUInt32();
|
||||
ReqSourceId[i] = questRecord[53+i].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i)
|
||||
ReqSourceCount[i] = questRecord[56+i].GetUInt32();
|
||||
ReqSourceCount[i] = questRecord[57+i].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
|
||||
ReqCreatureOrGOId[i] = questRecord[60+i].GetInt32();
|
||||
ReqCreatureOrGOId[i] = questRecord[61+i].GetInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
|
||||
ReqCreatureOrGOCount[i] = questRecord[64+i].GetUInt32();
|
||||
ReqCreatureOrGOCount[i] = questRecord[65+i].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
|
||||
ReqSpell[i] = questRecord[68+i].GetUInt32();
|
||||
ReqSpell[i] = questRecord[69+i].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i)
|
||||
RewChoiceItemId[i] = questRecord[72+i].GetUInt32();
|
||||
RewChoiceItemId[i] = questRecord[73+i].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i)
|
||||
RewChoiceItemCount[i] = questRecord[78+i].GetUInt32();
|
||||
RewChoiceItemCount[i] = questRecord[79+i].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_REWARDS_COUNT; ++i)
|
||||
RewItemId[i] = questRecord[84+i].GetUInt32();
|
||||
RewItemId[i] = questRecord[85+i].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_REWARDS_COUNT; ++i)
|
||||
RewItemCount[i] = questRecord[88+i].GetUInt32();
|
||||
RewItemCount[i] = questRecord[89+i].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i)
|
||||
RewRepFaction[i] = questRecord[92+i].GetUInt32();
|
||||
RewRepFaction[i] = questRecord[93+i].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i)
|
||||
RewRepValue[i] = questRecord[97+i].GetInt32();
|
||||
RewRepValue[i] = questRecord[98+i].GetInt32();
|
||||
|
||||
RewHonorableKills = questRecord[102].GetUInt32();
|
||||
RewOrReqMoney = questRecord[103].GetInt32();
|
||||
RewMoneyMaxLevel = questRecord[104].GetUInt32();
|
||||
RewSpell = questRecord[105].GetUInt32();
|
||||
RewSpellCast = questRecord[106].GetUInt32();
|
||||
RewMailTemplateId = questRecord[107].GetUInt32();
|
||||
RewMailDelaySecs = questRecord[108].GetUInt32();
|
||||
PointMapId = questRecord[109].GetUInt32();
|
||||
PointX = questRecord[110].GetFloat();
|
||||
PointY = questRecord[111].GetFloat();
|
||||
PointOpt = questRecord[112].GetUInt32();
|
||||
RewHonorableKills = questRecord[103].GetUInt32();
|
||||
RewOrReqMoney = questRecord[104].GetInt32();
|
||||
RewMoneyMaxLevel = questRecord[105].GetUInt32();
|
||||
RewSpell = questRecord[106].GetUInt32();
|
||||
RewSpellCast = questRecord[107].GetUInt32();
|
||||
RewMailTemplateId = questRecord[108].GetUInt32();
|
||||
RewMailDelaySecs = questRecord[109].GetUInt32();
|
||||
PointMapId = questRecord[110].GetUInt32();
|
||||
PointX = questRecord[111].GetFloat();
|
||||
PointY = questRecord[112].GetFloat();
|
||||
PointOpt = questRecord[113].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
|
||||
DetailsEmote[i] = questRecord[113+i].GetUInt32();
|
||||
DetailsEmote[i] = questRecord[114+i].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
|
||||
DetailsEmoteDelay[i] = questRecord[117+i].GetUInt32();
|
||||
DetailsEmoteDelay[i] = questRecord[118+i].GetUInt32();
|
||||
|
||||
IncompleteEmote = questRecord[121].GetUInt32();
|
||||
CompleteEmote = questRecord[122].GetUInt32();
|
||||
IncompleteEmote = questRecord[122].GetUInt32();
|
||||
CompleteEmote = questRecord[123].GetUInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
|
||||
OfferRewardEmote[i] = questRecord[123+i].GetInt32();
|
||||
OfferRewardEmote[i] = questRecord[124+i].GetInt32();
|
||||
|
||||
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
|
||||
OfferRewardEmoteDelay[i] = questRecord[127+i].GetInt32();
|
||||
OfferRewardEmoteDelay[i] = questRecord[128+i].GetInt32();
|
||||
|
||||
QuestStartScript = questRecord[131].GetUInt32();
|
||||
QuestCompleteScript = questRecord[132].GetUInt32();
|
||||
QuestStartScript = questRecord[132].GetUInt32();
|
||||
QuestCompleteScript = questRecord[133].GetUInt32();
|
||||
|
||||
QuestFlags |= SpecialFlags << 24;
|
||||
|
||||
|
|
|
|||
|
|
@ -201,6 +201,7 @@ class Quest
|
|||
int32 GetNextQuestId() const { return NextQuestId; }
|
||||
int32 GetExclusiveGroup() const { return ExclusiveGroup; }
|
||||
uint32 GetNextQuestInChain() const { return NextQuestInChain; }
|
||||
uint32 GetRewXPId() const { return RewXPId; }
|
||||
uint32 GetCharTitleId() const { return CharTitleId; }
|
||||
uint32 GetPlayersSlain() const { return PlayersSlain; }
|
||||
uint32 GetBonusTalents() const { return BonusTalents; }
|
||||
|
|
@ -299,6 +300,7 @@ class Quest
|
|||
int32 NextQuestId;
|
||||
int32 ExclusiveGroup;
|
||||
uint32 NextQuestInChain;
|
||||
uint32 RewXPId;
|
||||
uint32 SrcItemId;
|
||||
uint32 SrcItemCount;
|
||||
uint32 SrcSpell;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "9308"
|
||||
#define REVISION_NR "9309"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#ifndef __REVISION_SQL_H__
|
||||
#define __REVISION_SQL_H__
|
||||
#define REVISION_DB_CHARACTERS "required_9250_01_characters_character"
|
||||
#define REVISION_DB_MANGOS "required_9297_01_mangos_item_template"
|
||||
#define REVISION_DB_MANGOS "required_9309_01_mangos_quest_template"
|
||||
#define REVISION_DB_REALMD "required_9010_01_realmd_realmlist"
|
||||
#endif // __REVISION_SQL_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue