diff options
-rw-r--r-- | src/game/GossipDef.cpp | 12 | ||||
-rw-r--r-- | src/game/ObjectMgr.cpp | 34 | ||||
-rw-r--r-- | src/game/Player.cpp | 5 | ||||
-rw-r--r-- | src/game/QuestDef.cpp | 103 | ||||
-rw-r--r-- | src/game/QuestDef.h | 2 |
5 files changed, 81 insertions, 75 deletions
diff --git a/src/game/GossipDef.cpp b/src/game/GossipDef.cpp index 67a5e8388cb..377e7ae60e9 100644 --- a/src/game/GossipDef.cpp +++ b/src/game/GossipDef.cpp @@ -511,13 +511,13 @@ void PlayerMenu::SendQuestGiverQuestDetails( Quest const *pQuest, uint64 npcGUID data << uint32(0); // rewarded honor points. Multiply with 10 to satisfy client data << uint32(10*Trinity::Honor::hk_honor_at_level(pSession->GetPlayer()->getLevel(), pQuest->GetRewHonorableKills())); - data << float(0); // new 3.3.0 + data << float(0); // new 3.3.0, honor multiplier? data << uint32(pQuest->GetRewSpell()); // reward spell, this spell will display (icon) (casted if RewSpellCast==0) data << int32(pQuest->GetRewSpellCast()); // casted spell data << uint32(pQuest->GetCharTitleId()); // CharTitleId, new 2.4.0, player gets this title (id from CharTitles) data << uint32(pQuest->GetBonusTalents()); // bonus talents - data << uint32(0); - data << uint32(0); + data << uint32(pQuest->GetRewArenaPoints()); // reward arena points + data << uint32(0); // unk for(int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) data << uint32(pQuest->RewRepFaction[i]); @@ -611,7 +611,7 @@ void PlayerMenu::SendQuestQueryResponse( Quest const *pQuest ) data << uint32(pQuest->GetCharTitleId()); // CharTitleId, new 2.4.0, player gets this title (id from CharTitles) data << uint32(pQuest->GetPlayersSlain()); // players slain data << uint32(pQuest->GetBonusTalents()); // bonus talents - data << uint32(0); // bonus arena points + data << uint32(pQuest->GetRewArenaPoints()); // bonus arena points data << uint32(0); // unknown int iI; @@ -763,13 +763,13 @@ void PlayerMenu::SendQuestGiverOfferReward( Quest const* pQuest, uint64 npcGUID, // rewarded honor points. Multiply with 10 to satisfy client data << uint32(10*Trinity::Honor::hk_honor_at_level(pSession->GetPlayer()->getLevel(), pQuest->GetRewHonorableKills())); - data << float(0); + data << float(0); // unk, honor multiplier? data << uint32(0x08); // unused by client? data << uint32(pQuest->GetRewSpell()); // reward spell, this spell will display (icon) (casted if RewSpellCast==0) data << int32(pQuest->GetRewSpellCast()); // casted spell data << uint32(0); // unknown data << uint32(pQuest->GetBonusTalents()); // bonus talents - data << uint32(0); + data << uint32(pQuest->GetRewArenaPoints()); // arena points data << uint32(0); for(int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) // reward factions ids diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index ba06d8b9c84..84a8254bbe8 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -3582,37 +3582,37 @@ void ObjectMgr::LoadQuests() QueryResult_AutoPtr result = WorldDatabase.Query("SELECT entry, Method, ZoneOrSort, SkillOrClass, MinLevel, MaxLevel, QuestLevel, Type, RequiredRaces, RequiredSkillValue," // 10 11 12 13 14 15 16 17 18 19 "RepObjectiveFaction, RepObjectiveValue, RepObjectiveFaction2, RepObjectiveValue2, RequiredMinRepFaction, RequiredMinRepValue, RequiredMaxRepFaction, RequiredMaxRepValue, SuggestedPlayers, LimitTime," - // 20 21 22 23 24 25 26 27 28 29 30 31 32 - "QuestFlags, SpecialFlags, CharTitleId, PlayersSlain, BonusTalents, PrevQuestId, NextQuestId, ExclusiveGroup, NextQuestInChain, RewXPId, SrcItemId, SrcItemCount, SrcSpell," - // 33 34 35 36 37 38 39 40 41 42 43 + // 20 21 22 23 24 25 26 27 28 29 30 31 32 33 + "QuestFlags, SpecialFlags, CharTitleId, PlayersSlain, BonusTalents, RewardArenaPoints, PrevQuestId, NextQuestId, ExclusiveGroup, NextQuestInChain, RewXPId, SrcItemId, SrcItemCount, SrcSpell," + // 34 35 36 37 38 39 40 41 42 43 44 "Title, Details, Objectives, OfferRewardText, RequestItemsText, EndText, CompletedText, ObjectiveText1, ObjectiveText2, ObjectiveText3, ObjectiveText4," - // 44 45 46 47 48 49 50 51 52 53 54 55 + // 45 46 47 48 49 50 51 52 53 54 55 56 "ReqItemId1, ReqItemId2, ReqItemId3, ReqItemId4, ReqItemId5, ReqItemId6, ReqItemCount1, ReqItemCount2, ReqItemCount3, ReqItemCount4, ReqItemCount5, ReqItemCount6," - // 56 57 58 59 60 61 62 63 + // 57 58 59 60 61 62 63 64 "ReqSourceId1, ReqSourceId2, ReqSourceId3, ReqSourceId4, ReqSourceCount1, ReqSourceCount2, ReqSourceCount3, ReqSourceCount4," - // 64 65 66 67 68 69 70 71 + // 65 66 67 68 69 70 71 72 "ReqCreatureOrGOId1, ReqCreatureOrGOId2, ReqCreatureOrGOId3, ReqCreatureOrGOId4, ReqCreatureOrGOCount1, ReqCreatureOrGOCount2, ReqCreatureOrGOCount3, ReqCreatureOrGOCount4," - // 72 73 74 75 + // 73 74 75 76 "ReqSpellCast1, ReqSpellCast2, ReqSpellCast3, ReqSpellCast4," - // 76 77 78 79 80 81 + // 77 78 79 80 81 82 "RewChoiceItemId1, RewChoiceItemId2, RewChoiceItemId3, RewChoiceItemId4, RewChoiceItemId5, RewChoiceItemId6," - // 82 83 84 85 86 87 + // 83 84 85 86 87 88 "RewChoiceItemCount1, RewChoiceItemCount2, RewChoiceItemCount3, RewChoiceItemCount4, RewChoiceItemCount5, RewChoiceItemCount6," - // 88 89 90 91 92 93 94 95 + // 89 90 91 92 93 94 95 96 "RewItemId1, RewItemId2, RewItemId3, RewItemId4, RewItemCount1, RewItemCount2, RewItemCount3, RewItemCount4," - // 96 97 98 99 100 101 102 103 104 105 + // 97 98 99 100 101 102 103 104 105 106 "RewRepFaction1, RewRepFaction2, RewRepFaction3, RewRepFaction4, RewRepFaction5, RewRepValueId1, RewRepValueId2, RewRepValueId3, RewRepValueId4, RewRepValueId5," - // 106 107 108 109 110 + // 107 108 109 110 111 "RewRepValue1, RewRepValue2, RewRepValue3, RewRepValue4, RewRepValue5," - // 111 112 113 114 115 116 117 118 119 120 121 122 + // 112 113 114 115 116 117 118 119 120 121 122 123 "RewHonorAddition, RewHonorMultiplier, RewOrReqMoney, RewMoneyMaxLevel, RewSpell, RewSpellCast, RewMailTemplateId, RewMailDelaySecs, PointMapId, PointX, PointY, PointOpt," - // 123 124 125 126 127 128 129 130 + // 124 125 126 127 128 129 130 131 "DetailsEmote1, DetailsEmote2, DetailsEmote3, DetailsEmote4, DetailsEmoteDelay1, DetailsEmoteDelay2, DetailsEmoteDelay3, DetailsEmoteDelay4," - // 131 132 135 134 135 136 + // 132 133 134 135 136 137 "IncompleteEmote, CompleteEmote, OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4," - // 137 138 139 140 + // 138 139 140 141 "OfferRewardEmoteDelay1, OfferRewardEmoteDelay2, OfferRewardEmoteDelay3, OfferRewardEmoteDelay4," - // 141 142 + // 142 143 "StartScript, CompleteScript" " FROM quest_template"); if(result == NULL) diff --git a/src/game/Player.cpp b/src/game/Player.cpp index e7179ecf444..a5c377edcf3 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -14073,6 +14073,9 @@ void Player::RewardQuest( Quest const *pQuest, uint32 reward, Object* questGiver InitTalentForLevel(); } + if (pQuest->GetRewArenaPoints()) + ModifyArenaPoints(pQuest->GetRewArenaPoints()); + // Send reward mail if (uint32 mail_template_id = pQuest->GetRewMailTemplateId()) MailDraft(mail_template_id).SendMailTo(this, questGiver, MAIL_CHECK_MASK_NONE, pQuest->GetRewMailDelaySecs()); @@ -15190,7 +15193,7 @@ void Player::SendQuestReward( Quest const *pQuest, uint32 XP, Object * questGive data << uint32(10*Trinity::Honor::hk_honor_at_level(getLevel(), pQuest->GetRewHonorableKills())); data << uint32(pQuest->GetBonusTalents()); // bonus talents - data << uint32(0); + data << uint32(pQuest->GetRewArenaPoints()); GetSession()->SendPacket( &data ); if (pQuest->GetQuestCompleteScript() != 0) diff --git a/src/game/QuestDef.cpp b/src/game/QuestDef.cpp index 363874f7783..3c95ef27a31 100644 --- a/src/game/QuestDef.cpp +++ b/src/game/QuestDef.cpp @@ -49,97 +49,98 @@ Quest::Quest(Field * questRecord) CharTitleId = questRecord[22].GetUInt32(); PlayersSlain = questRecord[23].GetUInt32(); BonusTalents = questRecord[24].GetUInt32(); - PrevQuestId = questRecord[25].GetInt32(); - NextQuestId = questRecord[26].GetInt32(); - ExclusiveGroup = questRecord[27].GetInt32(); - NextQuestInChain = questRecord[28].GetUInt32(); - XPId = questRecord[29].GetUInt32(); - SrcItemId = questRecord[30].GetUInt32(); - SrcItemCount = questRecord[31].GetUInt32(); - SrcSpell = questRecord[32].GetUInt32(); - Title = questRecord[33].GetCppString(); - Details = questRecord[34].GetCppString(); - Objectives = questRecord[35].GetCppString(); - OfferRewardText = questRecord[36].GetCppString(); - RequestItemsText = questRecord[37].GetCppString(); - EndText = questRecord[38].GetCppString(); - CompletedText = questRecord[39].GetCppString(); + RewArenaPoints = questRecord[25].GetInt32(); + PrevQuestId = questRecord[26].GetInt32(); + NextQuestId = questRecord[27].GetInt32(); + ExclusiveGroup = questRecord[28].GetInt32(); + NextQuestInChain = questRecord[29].GetUInt32(); + XPId = questRecord[30].GetUInt32(); + SrcItemId = questRecord[31].GetUInt32(); + SrcItemCount = questRecord[32].GetUInt32(); + SrcSpell = questRecord[33].GetUInt32(); + Title = questRecord[34].GetCppString(); + Details = questRecord[35].GetCppString(); + Objectives = questRecord[36].GetCppString(); + OfferRewardText = questRecord[37].GetCppString(); + RequestItemsText = questRecord[38].GetCppString(); + EndText = questRecord[39].GetCppString(); + CompletedText = questRecord[40].GetCppString(); for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) - ObjectiveText[i] = questRecord[40+i].GetCppString(); + ObjectiveText[i] = questRecord[41+i].GetCppString(); for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) - ReqItemId[i] = questRecord[44+i].GetUInt32(); + ReqItemId[i] = questRecord[45+i].GetUInt32(); for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i) - ReqItemCount[i] = questRecord[50+i].GetUInt32(); + ReqItemCount[i] = questRecord[51+i].GetUInt32(); for (int i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i) - ReqSourceId[i] = questRecord[56+i].GetUInt32(); + ReqSourceId[i] = questRecord[57+i].GetUInt32(); for (int i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i) - ReqSourceCount[i] = questRecord[60+i].GetUInt32(); + ReqSourceCount[i] = questRecord[61+i].GetUInt32(); for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) - ReqCreatureOrGOId[i] = questRecord[64+i].GetInt32(); + ReqCreatureOrGOId[i] = questRecord[65+i].GetInt32(); for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) - ReqCreatureOrGOCount[i] = questRecord[68+i].GetUInt32(); + ReqCreatureOrGOCount[i] = questRecord[69+i].GetUInt32(); for (int i = 0; i < QUEST_OBJECTIVES_COUNT; ++i) - ReqSpell[i] = questRecord[72+i].GetUInt32(); + ReqSpell[i] = questRecord[73+i].GetUInt32(); for (int i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i) - RewChoiceItemId[i] = questRecord[76+i].GetUInt32(); + RewChoiceItemId[i] = questRecord[77+i].GetUInt32(); for (int i = 0; i < QUEST_REWARD_CHOICES_COUNT; ++i) - RewChoiceItemCount[i] = questRecord[82+i].GetUInt32(); + RewChoiceItemCount[i] = questRecord[83+i].GetUInt32(); for (int i = 0; i < QUEST_REWARDS_COUNT; ++i) - RewItemId[i] = questRecord[88+i].GetUInt32(); + RewItemId[i] = questRecord[89+i].GetUInt32(); for (int i = 0; i < QUEST_REWARDS_COUNT; ++i) - RewItemCount[i] = questRecord[92+i].GetUInt32(); + RewItemCount[i] = questRecord[93+i].GetUInt32(); for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) - RewRepFaction[i] = questRecord[96+i].GetUInt32(); + RewRepFaction[i] = questRecord[97+i].GetUInt32(); for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) - RewRepValueId[i] = questRecord[101+i].GetInt32(); + RewRepValueId[i] = questRecord[102+i].GetInt32(); for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) - RewRepValue[i] = questRecord[106+i].GetInt32(); - - RewHonorableKills = questRecord[111].GetUInt32(); - RewHonorMultiplier = questRecord[112].GetFloat(); - RewOrReqMoney = questRecord[113].GetInt32(); - RewMoneyMaxLevel = questRecord[114].GetUInt32(); - RewSpell = questRecord[115].GetUInt32(); - RewSpellCast = questRecord[116].GetInt32(); - RewMailTemplateId = questRecord[117].GetUInt32(); - RewMailDelaySecs = questRecord[118].GetUInt32(); - PointMapId = questRecord[119].GetUInt32(); - PointX = questRecord[120].GetFloat(); - PointY = questRecord[121].GetFloat(); - PointOpt = questRecord[122].GetUInt32(); + RewRepValue[i] = questRecord[107+i].GetInt32(); + + RewHonorableKills = questRecord[112].GetUInt32(); + RewHonorMultiplier = questRecord[113].GetFloat(); + RewOrReqMoney = questRecord[114].GetInt32(); + RewMoneyMaxLevel = questRecord[115].GetUInt32(); + RewSpell = questRecord[116].GetUInt32(); + RewSpellCast = questRecord[117].GetInt32(); + RewMailTemplateId = questRecord[118].GetUInt32(); + RewMailDelaySecs = questRecord[119].GetUInt32(); + PointMapId = questRecord[120].GetUInt32(); + PointX = questRecord[121].GetFloat(); + PointY = questRecord[122].GetFloat(); + PointOpt = questRecord[123].GetUInt32(); for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) - DetailsEmote[i] = questRecord[123+i].GetUInt32(); + DetailsEmote[i] = questRecord[124+i].GetUInt32(); for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) - DetailsEmoteDelay[i] = questRecord[127+i].GetUInt32(); + DetailsEmoteDelay[i] = questRecord[128+i].GetUInt32(); - IncompleteEmote = questRecord[131].GetUInt32(); - CompleteEmote = questRecord[132].GetUInt32(); + IncompleteEmote = questRecord[132].GetUInt32(); + CompleteEmote = questRecord[133].GetUInt32(); for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) - OfferRewardEmote[i] = questRecord[133+i].GetInt32(); + OfferRewardEmote[i] = questRecord[134+i].GetInt32(); for (int i = 0; i < QUEST_EMOTE_COUNT; ++i) - OfferRewardEmoteDelay[i] = questRecord[137+i].GetInt32(); + OfferRewardEmoteDelay[i] = questRecord[138+i].GetInt32(); - QuestStartScript = questRecord[141].GetUInt32(); - QuestCompleteScript = questRecord[142].GetUInt32(); + QuestStartScript = questRecord[142].GetUInt32(); + QuestCompleteScript = questRecord[143].GetUInt32(); QuestFlags |= SpecialFlags << 16; diff --git a/src/game/QuestDef.h b/src/game/QuestDef.h index 13a7ffae670..39fbc071db6 100644 --- a/src/game/QuestDef.h +++ b/src/game/QuestDef.h @@ -209,6 +209,7 @@ class Quest uint32 GetCharTitleId() const { return CharTitleId; } uint32 GetPlayersSlain() const { return PlayersSlain; } uint32 GetBonusTalents() const { return BonusTalents; } + int32 GetRewArenaPoints() const {return RewArenaPoints; } uint32 GetSrcItemId() const { return SrcItemId; } uint32 GetSrcItemCount() const { return SrcItemCount; } uint32 GetSrcSpell() const { return SrcSpell; } @@ -304,6 +305,7 @@ class Quest uint32 CharTitleId; uint32 PlayersSlain; uint32 BonusTalents; + int32 RewArenaPoints; int32 PrevQuestId; int32 NextQuestId; int32 ExclusiveGroup; |