mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Quests: Implemented RewardXPMultiplier quest template field
This commit is contained in:
1
sql/updates/world/2015_05_29_00_world.sql
Normal file
1
sql/updates/world/2015_05_29_00_world.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE `quest_template` CHANGE `Float10` `RewardXPMultiplier` float NOT NULL DEFAULT '1';
|
||||
@@ -505,7 +505,7 @@ void PlayerMenu::SendQuestQueryResponse(Quest const* quest) const
|
||||
packet.Info.SuggestedGroupNum = quest->GetSuggestedPlayers();
|
||||
packet.Info.RewardNextQuest = quest->GetNextQuestInChain();
|
||||
packet.Info.RewardXPDifficulty = quest->GetXPDifficulty();
|
||||
packet.Info.Float10 = quest->Float10; // Unk
|
||||
packet.Info.RewardXPMultiplier = quest->GetXPMultiplier();
|
||||
packet.Info.Float13 = quest->Float13; // Unk
|
||||
|
||||
if (quest->HasFlag(QUEST_FLAGS_HIDDEN_REWARDS))
|
||||
|
||||
@@ -3639,10 +3639,10 @@ void ObjectMgr::LoadQuests()
|
||||
mExclusiveQuestGroups.clear();
|
||||
|
||||
QueryResult result = WorldDatabase.Query("SELECT "
|
||||
//0 1 2 3 4 5 6 7 8 9 10 11 12
|
||||
"ID, QuestType, QuestLevel, QuestPackageID, MinLevel, QuestSortID, QuestInfoID, SuggestedGroupNum, RewardNextQuest, RewardXPDifficulty, Float10, RewardMoney, RewardMoneyDifficulty, "
|
||||
//13 14 15 16 17 18 19 20 21
|
||||
"Float13, RewardBonusMoney, RewardDisplaySpell, RewardSpell, RewardHonor, RewardKillHonor, StartItem, Flags, FlagsEx, "
|
||||
//0 1 2 3 4 5 6 7 8 9 10
|
||||
"ID, QuestType, QuestLevel, QuestPackageID, MinLevel, QuestSortID, QuestInfoID, SuggestedGroupNum, RewardNextQuest, RewardXPDifficulty, RewardXPMultiplier, "
|
||||
//11 12 13 14 15 16 17 18 19 20 21
|
||||
"RewardMoney, RewardMoneyDifficulty, Float13, RewardBonusMoney, RewardDisplaySpell, RewardSpell, RewardHonor, RewardKillHonor, StartItem, Flags, FlagsEx, "
|
||||
//22 23 24 25 26 27 28 29
|
||||
"RewardItem1, RewardAmount1, ItemDrop1, ItemDropQuantity1, RewardItem2, RewardAmount2, ItemDrop2, ItemDropQuantity2, "
|
||||
//30 31 32 33 34 35 36 37
|
||||
|
||||
@@ -34,7 +34,7 @@ Quest::Quest(Field* questRecord)
|
||||
SuggestedPlayers = questRecord[7].GetUInt8();
|
||||
NextQuestInChain = questRecord[8].GetUInt32();
|
||||
RewardXPDifficulty = questRecord[9].GetUInt32();
|
||||
Float10 = questRecord[10].GetFloat();
|
||||
RewardXPMultiplier = questRecord[10].GetFloat();
|
||||
RewardMoney = questRecord[11].GetUInt32();
|
||||
RewardMoneyDifficulty = questRecord[12].GetUInt32();
|
||||
Float13 = questRecord[13].GetFloat();
|
||||
@@ -225,7 +225,7 @@ uint32 Quest::XPValue(uint32 playerLevel) const
|
||||
else if (diffFactor > 10)
|
||||
diffFactor = 10;
|
||||
|
||||
uint32 xp = diffFactor * xpentry->Exp[RewardXPDifficulty] / 10;
|
||||
uint32 xp = diffFactor * xpentry->Exp[RewardXPDifficulty] * RewardXPMultiplier / 10;
|
||||
if (xp <= 100)
|
||||
xp = 5 * ((xp + 2) / 5);
|
||||
else if (xp <= 500)
|
||||
|
||||
@@ -319,6 +319,7 @@ class Quest
|
||||
uint32 GetBonusTalents() const { return RewardTalents; }
|
||||
int32 GetRewArenaPoints() const {return RewardArenaPoints; }
|
||||
uint32 GetXPDifficulty() const { return RewardXPDifficulty; }
|
||||
float GetXPMultiplier() const { return RewardXPMultiplier; }
|
||||
uint32 GetSrcItemId() const { return SourceItemId; }
|
||||
uint32 GetSrcItemCount() const { return SourceItemIdCount; }
|
||||
uint32 GetSrcSpell() const { return SourceSpellID; }
|
||||
@@ -402,7 +403,7 @@ class Quest
|
||||
uint32 SuggestedPlayers;
|
||||
uint32 NextQuestInChain;
|
||||
uint32 RewardXPDifficulty;
|
||||
float Float10;
|
||||
float RewardXPMultiplier;
|
||||
int32 RewardMoney;
|
||||
uint32 RewardMoneyDifficulty;
|
||||
float Float13;
|
||||
|
||||
@@ -72,7 +72,7 @@ WorldPacket const* WorldPackets::Quest::QueryQuestInfoResponse::Write()
|
||||
_worldPacket << Info.SuggestedGroupNum;
|
||||
_worldPacket << Info.RewardNextQuest;
|
||||
_worldPacket << Info.RewardXPDifficulty;
|
||||
_worldPacket << Info.Float10; // Unk
|
||||
_worldPacket << Info.RewardXPMultiplier;
|
||||
_worldPacket << Info.RewardMoney;
|
||||
_worldPacket << Info.RewardMoneyDifficulty;
|
||||
_worldPacket << Info.Float13; // Unk
|
||||
|
||||
@@ -116,6 +116,7 @@ namespace WorldPackets
|
||||
int32 SuggestedGroupNum = 0;
|
||||
int32 RewardNextQuest = 0; // client will request this quest from NPC, if not 0
|
||||
int32 RewardXPDifficulty = 0; // used for calculating rewarded experience
|
||||
float RewardXPMultiplier = 1.0f;
|
||||
int32 RewardMoney = 0; // reward money (below max lvl)
|
||||
int32 RewardMoneyDifficulty = 0; // used in XP calculation at client
|
||||
int32 RewardBonusMoney = 0;
|
||||
@@ -163,8 +164,6 @@ namespace WorldPackets
|
||||
int32 RewardCurrencyID[QUEST_REWARD_CURRENCY_COUNT] = {};
|
||||
int32 RewardCurrencyQty[QUEST_REWARD_CURRENCY_COUNT] = {};
|
||||
|
||||
// Non JAM data
|
||||
float Float10 = 1.0f;
|
||||
float Float13 = 1.0f;
|
||||
int32 AllowableRaces = -1;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user