Core/Quests: Use honor multiplier as base for calculating honor rewards, not the amount of kills (fix by Nay)
--HG-- branch : trunk
This commit is contained in:
@@ -501,7 +501,7 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const *pQuest, uint64 npcGUID,
|
||||
}
|
||||
|
||||
// rewarded honor points. Multiply with 10 to satisfy client
|
||||
data << 10 * Trinity::Honor::hk_honor_at_level(pSession->GetPlayer()->getLevel(), pQuest->GetRewHonorableKills());
|
||||
data << 10 * Trinity::Honor::hk_honor_at_level(pSession->GetPlayer()->getLevel(), pQuest->GetRewHonorMultiplier());
|
||||
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
|
||||
@@ -588,7 +588,7 @@ void PlayerMenu::SendQuestQueryResponse(Quest const *pQuest)
|
||||
data << int32(pQuest->GetRewSpellCast()); // casted spell
|
||||
|
||||
// rewarded honor points
|
||||
data << Trinity::Honor::hk_honor_at_level(pSession->GetPlayer()->getLevel(), pQuest->GetRewHonorableKills());
|
||||
data << Trinity::Honor::hk_honor_at_level(pSession->GetPlayer()->getLevel(), pQuest->GetRewHonorMultiplier());
|
||||
data << float(0); // new reward honor (multipled by ~62 at client side)
|
||||
data << uint32(pQuest->GetSrcItemId()); // source item id
|
||||
data << uint32(pQuest->GetFlags() & 0xFFFF); // quest flags
|
||||
@@ -744,7 +744,7 @@ void PlayerMenu::SendQuestGiverOfferReward(Quest const* pQuest, uint64 npcGUID,
|
||||
data << uint32(pQuest->XPValue(pSession->GetPlayer())*sWorld.getRate(RATE_XP_QUEST));
|
||||
|
||||
// rewarded honor points. Multiply with 10 to satisfy client
|
||||
data << 10 * Trinity::Honor::hk_honor_at_level(pSession->GetPlayer()->getLevel(), pQuest->GetRewHonorableKills());
|
||||
data << 10 * Trinity::Honor::hk_honor_at_level(pSession->GetPlayer()->getLevel(), pQuest->GetRewHonorMultiplier());
|
||||
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)
|
||||
|
||||
@@ -14538,8 +14538,10 @@ void Player::RewardQuest(Quest const *pQuest, uint32 reward, Object* questGiver,
|
||||
}
|
||||
|
||||
// honor reward
|
||||
if (pQuest->GetRewHonorableKills())
|
||||
RewardHonor(NULL, 0, Trinity::Honor::hk_honor_at_level(getLevel(), pQuest->GetRewHonorableKills()));
|
||||
if (pQuest->GetRewHonorAddition())
|
||||
RewardHonor(NULL, 0, pQuest->GetRewHonorAddition());
|
||||
if (pQuest->GetRewHonorMultiplier())
|
||||
RewardHonor(NULL, 0, Trinity::Honor::hk_honor_at_level(getLevel(), pQuest->GetRewHonorMultiplier()));
|
||||
|
||||
// title reward
|
||||
if (pQuest->GetCharTitleId())
|
||||
@@ -15715,7 +15717,7 @@ void Player::SendQuestReward(Quest const *pQuest, uint32 XP, Object * questGiver
|
||||
data << uint32(pQuest->GetRewOrReqMoney() + int32(pQuest->GetRewMoneyMaxLevel() * sWorld.getRate(RATE_DROP_MONEY)));
|
||||
}
|
||||
|
||||
data << 10 * Trinity::Honor::hk_honor_at_level(getLevel(), pQuest->GetRewHonorableKills());
|
||||
data << 10 * Trinity::Honor::hk_honor_at_level(getLevel(), pQuest->GetRewHonorMultiplier());
|
||||
data << uint32(pQuest->GetBonusTalents()); // bonus talents
|
||||
data << uint32(pQuest->GetRewArenaPoints());
|
||||
GetSession()->SendPacket(&data);
|
||||
|
||||
@@ -109,7 +109,7 @@ Quest::Quest(Field * questRecord)
|
||||
for (int i = 0; i < QUEST_REPUTATIONS_COUNT; ++i)
|
||||
RewRepValue[i] = questRecord[107+i].GetInt32();
|
||||
|
||||
RewHonorableKills = questRecord[112].GetUInt32();
|
||||
RewHonorAddition = questRecord[112].GetUInt32();
|
||||
RewHonorMultiplier = questRecord[113].GetFloat();
|
||||
RewOrReqMoney = questRecord[114].GetInt32();
|
||||
RewMoneyMaxLevel = questRecord[115].GetUInt32();
|
||||
|
||||
@@ -226,7 +226,8 @@ class Quest
|
||||
std::string GetEndText() const { return EndText; }
|
||||
std::string GetCompletedText() const { return CompletedText; }
|
||||
int32 GetRewOrReqMoney() const;
|
||||
uint32 GetRewHonorableKills() const { return RewHonorableKills; }
|
||||
uint32 GetRewHonorAddition() const { return RewHonorAddition; }
|
||||
uint32 GetRewHonorMultiplier() const { return RewHonorMultiplier; }
|
||||
uint32 GetRewMoneyMaxLevel() const { return RewMoneyMaxLevel; }
|
||||
// use in XP calculation at client
|
||||
uint32 GetRewSpell() const { return RewSpell; }
|
||||
@@ -332,7 +333,7 @@ class Quest
|
||||
std::string RequestItemsText;
|
||||
std::string EndText;
|
||||
std::string CompletedText;
|
||||
uint32 RewHonorableKills;
|
||||
uint32 RewHonorAddition;
|
||||
float RewHonorMultiplier;
|
||||
int32 RewOrReqMoney;
|
||||
uint32 RewMoneyMaxLevel;
|
||||
|
||||
Reference in New Issue
Block a user