aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/DataStores/DBCStores.cpp2
-rw-r--r--src/server/game/DataStores/DBCStores.h1
-rw-r--r--src/server/game/DataStores/DBCStructure.h6
-rw-r--r--src/server/game/DataStores/DBCfmt.h1
-rw-r--r--src/server/game/Entities/Creature/GossipDef.cpp6
-rw-r--r--src/server/game/Entities/Player/Player.cpp11
-rw-r--r--src/server/game/Entities/Player/Player.h1
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp4
-rw-r--r--src/server/game/Handlers/LFGHandler.cpp2
-rw-r--r--src/server/game/Quests/QuestDef.cpp14
-rw-r--r--src/server/game/Quests/QuestDef.h5
-rw-r--r--src/server/game/Server/Packets/QuestPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/QuestPackets.h7
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp28
-rw-r--r--src/tools/map_extractor/loadlib/DBFilesClientList.h13
15 files changed, 63 insertions, 40 deletions
diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp
index fcc6a23ddf3..c65cc1679ed 100644
--- a/src/server/game/DataStores/DBCStores.cpp
+++ b/src/server/game/DataStores/DBCStores.cpp
@@ -189,6 +189,7 @@ NameGenContainer sGenerateNamesMap;
DBCStorage <PowerDisplayEntry> sPowerDisplayStore(PowerDisplayfmt);
DBCStorage <PvPDifficultyEntry> sPvPDifficultyStore(PvPDifficultyfmt);
+DBCStorage <QuestMoneyRewardEntry> sQuestMoneyRewardStore(QuestMoneyRewardfmt);
DBCStorage <QuestSortEntry> sQuestSortStore(QuestSortEntryfmt);
DBCStorage <QuestV2Entry> sQuestV2Store(QuestV2fmt);
DBCStorage <QuestXPEntry> sQuestXPStore(QuestXPfmt);
@@ -542,6 +543,7 @@ void LoadDBCStores(const std::string& dataPath)
if (entry->BracketID > MAX_BATTLEGROUND_BRACKETS)
ASSERT(false && "Need update MAX_BATTLEGROUND_BRACKETS by DBC data");
+ LoadDBC(availableDbcLocales, bad_dbc_files, sQuestMoneyRewardStore, dbcPath, "QuestMoneyReward.dbc"); // 19865
LoadDBC(availableDbcLocales, bad_dbc_files, sQuestV2Store, dbcPath, "QuestV2.dbc");//19342
LoadDBC(availableDbcLocales, bad_dbc_files, sQuestXPStore, dbcPath, "QuestXP.dbc");//19116
LoadDBC(availableDbcLocales, bad_dbc_files, sQuestFactionRewardStore, dbcPath, "QuestFactionReward.dbc");//19116
diff --git a/src/server/game/DataStores/DBCStores.h b/src/server/game/DataStores/DBCStores.h
index 03eda581f28..6e46f1cff14 100644
--- a/src/server/game/DataStores/DBCStores.h
+++ b/src/server/game/DataStores/DBCStores.h
@@ -232,6 +232,7 @@ extern MapDifficultyMap sMapDifficultyMap;
extern DBCStorage <MovieEntry> sMovieStore;
extern DBCStorage <PowerDisplayEntry> sPowerDisplayStore;
extern DBCStorage <QuestSortEntry> sQuestSortStore;
+extern DBCStorage <QuestMoneyRewardEntry> sQuestMoneyRewardStore;
extern DBCStorage <QuestXPEntry> sQuestXPStore;
extern DBCStorage <QuestFactionRewEntry> sQuestFactionRewardStore;
extern DBCStorage <RandomPropertiesPointsEntry> sRandomPropertiesPointsStore;
diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h
index aac3cbd2193..cad43e9c554 100644
--- a/src/server/game/DataStores/DBCStructure.h
+++ b/src/server/game/DataStores/DBCStructure.h
@@ -1405,6 +1405,12 @@ struct PvPDifficultyEntry
BattlegroundBracketId GetBracketId() const { return BattlegroundBracketId(BracketID); }
};
+struct QuestMoneyRewardEntry
+{
+ uint32 Level; // 0
+ uint32 Money[10]; // 1
+};
+
struct QuestSortEntry
{
uint32 ID; // 0
diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h
index c7aa00286e1..f739810aaf9 100644
--- a/src/server/game/DataStores/DBCfmt.h
+++ b/src/server/game/DataStores/DBCfmt.h
@@ -127,6 +127,7 @@ char const MountTypefmt[] = "niiiiiiiiiiiiiiiiiiiiiiii";
char const NameGenfmt[] = "dsii";
char const NumTalentsAtLevelfmt[] = "df";
char const QuestFactionRewardfmt[] = "niiiiiiiiii";
+char const QuestMoneyRewardfmt[] = "niiiiiiiiii";
char const QuestSortEntryfmt[] = "nx";
char const QuestV2fmt[] = "ni";
char const QuestXPfmt[] = "niiiiiiiiii";
diff --git a/src/server/game/Entities/Creature/GossipDef.cpp b/src/server/game/Entities/Creature/GossipDef.cpp
index faa458d45dc..0fd001de69f 100644
--- a/src/server/game/Entities/Creature/GossipDef.cpp
+++ b/src/server/game/Entities/Creature/GossipDef.cpp
@@ -506,12 +506,12 @@ void PlayerMenu::SendQuestQueryResponse(Quest const* quest) const
packet.Info.RewardNextQuest = quest->GetNextQuestInChain();
packet.Info.RewardXPDifficulty = quest->GetXPDifficulty();
packet.Info.RewardXPMultiplier = quest->GetXPMultiplier();
- packet.Info.Float13 = quest->Float13; // Unk
- if (quest->HasFlag(QUEST_FLAGS_HIDDEN_REWARDS))
- packet.Info.RewardMoney = quest->RewardMoney;
+ if (!quest->HasFlag(QUEST_FLAGS_HIDDEN_REWARDS))
+ packet.Info.RewardMoney = quest->RewardMoney < 0 ? quest->RewardMoney : _session->GetPlayer()->GetQuestMoneyReward(quest);
packet.Info.RewardMoneyDifficulty = quest->GetRewMoneyDifficulty();
+ packet.Info.RewardMoneyMultiplier = quest->GetMoneyMultiplier();
packet.Info.RewardBonusMoney = quest->GetRewMoneyMaxLevel();
packet.Info.RewardDisplaySpell = quest->GetRewDisplaySpell();
packet.Info.RewardSpell = quest->GetRewSpell();
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 7e21d9784fd..c167e416090 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -14656,6 +14656,11 @@ void Player::IncompleteQuest(uint32 quest_id)
}
}
+uint32 Player::GetQuestMoneyReward(Quest const* quest)
+{
+ return quest->MoneyValue(getLevel()) * sWorld->getRate(RATE_MONEY_QUEST);
+}
+
uint32 Player::GetQuestXPReward(Quest const* quest)
{
bool rewarded = (m_RewardedQuests.find(quest->GetQuestId()) != m_RewardedQuests.end());
@@ -14791,7 +14796,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
else
moneyRew = int32(quest->GetRewMoneyMaxLevel() * sWorld->getRate(RATE_DROP_MONEY));
- moneyRew += quest->GetRewMoney();
+ moneyRew += GetQuestMoneyReward(quest);
if (moneyRew)
{
@@ -16340,12 +16345,12 @@ void Player::SendQuestReward(Quest const* quest, uint32 XP)
if (getLevel() < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
{
xp = XP;
- moneyReward = quest->GetRewMoney();
+ moneyReward = GetQuestMoneyReward(quest);
}
else // At max level, increase gold reward
{
xp = 0;
- moneyReward = uint32(quest->GetRewMoney() + int32(quest->GetRewMoneyMaxLevel() * sWorld->getRate(RATE_DROP_MONEY)));
+ moneyReward = uint32(GetQuestMoneyReward(quest) + int32(quest->GetRewMoneyMaxLevel() * sWorld->getRate(RATE_DROP_MONEY)));
}
WorldPackets::Quest::QuestGiverQuestComplete packet;
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 203682fc84b..2e4a50251a7 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1647,6 +1647,7 @@ class Player : public Unit, public GridObject<Player>
void AddQuest(Quest const* quest, Object* questGiver);
void CompleteQuest(uint32 quest_id);
void IncompleteQuest(uint32 quest_id);
+ uint32 GetQuestMoneyReward(Quest const* quest);
uint32 GetQuestXPReward(Quest const* quest);
void RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, bool announce = true);
void FailQuest(uint32 quest_id);
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index fd160532616..033fa6e3c02 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -3641,8 +3641,8 @@ void ObjectMgr::LoadQuests()
QueryResult result = WorldDatabase.Query("SELECT "
//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, "
+ //11 12 13 14 15 16 17 18 19 20 21
+ "RewardMoney, RewardMoneyDifficulty, RewardMoneyMultiplier, 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
diff --git a/src/server/game/Handlers/LFGHandler.cpp b/src/server/game/Handlers/LFGHandler.cpp
index 4a3866cbb1b..3a2b0cf01ed 100644
--- a/src/server/game/Handlers/LFGHandler.cpp
+++ b/src/server/game/Handlers/LFGHandler.cpp
@@ -52,7 +52,7 @@ void BuildQuestReward(WorldPacket& data, Quest const* quest, Player* player)
{
uint8 rewCount = quest->GetRewItemsCount() + quest->GetRewCurrencyCount();
- data << uint32(quest->GetRewMoney());
+ data << uint32(player->GetQuestMoneyReward(quest));
data << uint32(player->GetQuestXPReward(quest));
data << uint8(rewCount);
if (rewCount)
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp
index 148cdeab68e..93930cdba54 100644
--- a/src/server/game/Quests/QuestDef.cpp
+++ b/src/server/game/Quests/QuestDef.cpp
@@ -37,7 +37,7 @@ Quest::Quest(Field* questRecord)
RewardXPMultiplier = questRecord[10].GetFloat();
RewardMoney = questRecord[11].GetUInt32();
RewardMoneyDifficulty = questRecord[12].GetUInt32();
- Float13 = questRecord[13].GetFloat();
+ RewardMoneyMultiplier = questRecord[13].GetFloat();
RewardBonusMoney = questRecord[14].GetUInt32();
RewardDisplaySpell = questRecord[15].GetUInt32();
RewardSpell = questRecord[16].GetUInt32();
@@ -241,10 +241,14 @@ uint32 Quest::XPValue(uint32 playerLevel) const
return 0;
}
-uint32 Quest::GetRewMoney() const
+uint32 Quest::MoneyValue(uint8 playerLevel) const
{
- if (RewardMoney > 0)
- return RewardMoney * sWorld->getRate(RATE_MONEY_QUEST);
+ uint8 level;
+ if (playerLevel)
+ level = Level == -1 ? playerLevel : Level;
+
+ if (QuestMoneyRewardEntry const* money = sQuestMoneyRewardStore.LookupEntry(level))
+ return money->Money[GetRewMoneyDifficulty()] * GetMoneyMultiplier();
else
return 0;
}
@@ -253,7 +257,7 @@ void Quest::BuildQuestRewards(WorldPackets::Quest::QuestRewards& rewards, Player
{
rewards.ChoiceItemCount = GetRewChoiceItemsCount();
rewards.ItemCount = GetRewItemsCount();
- rewards.Money = GetRewMoney();
+ rewards.Money = player->GetQuestMoneyReward(this);
rewards.XP = player->GetQuestXPReward(this);
rewards.Title = GetRewTitle();
rewards.Talents = GetBonusTalents();
diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h
index e11794dc64c..a2a61cc5da0 100644
--- a/src/server/game/Quests/QuestDef.h
+++ b/src/server/game/Quests/QuestDef.h
@@ -286,6 +286,7 @@ class Quest
void LoadQuestObjectiveVisualEffect(Field* fields);
uint32 XPValue(uint32 playerLevel) const;
+ uint32 MoneyValue(uint8 playerLevel) const;
bool HasFlag(uint32 flag) const { return (Flags & flag) != 0; }
void SetFlag(uint32 flag) { Flags |= flag; }
@@ -320,6 +321,7 @@ class Quest
int32 GetRewArenaPoints() const {return RewardArenaPoints; }
uint32 GetXPDifficulty() const { return RewardXPDifficulty; }
float GetXPMultiplier() const { return RewardXPMultiplier; }
+ float GetMoneyMultiplier() const { return RewardMoneyMultiplier; }
uint32 GetSrcItemId() const { return SourceItemId; }
uint32 GetSrcItemCount() const { return SourceItemIdCount; }
uint32 GetSrcSpell() const { return SourceSpellID; }
@@ -335,7 +337,6 @@ class Quest
std::string const& GetPortraitTurnInText() const { return PortraitTurnInText; }
std::string const& GetPortraitTurnInName() const { return PortraitTurnInName; }
QuestObjectives const& GetObjectives() const { return Objectives; }
- uint32 GetRewMoney() const;
uint32 GetRewMoneyDifficulty() const { return RewardMoneyDifficulty; }
uint32 GetRewHonor() const { return RewardHonor; }
uint32 GetRewKillHonor() const { return RewardKillHonor; }
@@ -406,7 +407,7 @@ class Quest
float RewardXPMultiplier;
int32 RewardMoney;
uint32 RewardMoneyDifficulty;
- float Float13;
+ float RewardMoneyMultiplier;
uint32 RewardBonusMoney;
uint32 RewardDisplaySpell;
uint32 RewardSpell;
diff --git a/src/server/game/Server/Packets/QuestPackets.cpp b/src/server/game/Server/Packets/QuestPackets.cpp
index d792783cf9a..7135a79a74e 100644
--- a/src/server/game/Server/Packets/QuestPackets.cpp
+++ b/src/server/game/Server/Packets/QuestPackets.cpp
@@ -75,7 +75,7 @@ WorldPacket const* WorldPackets::Quest::QueryQuestInfoResponse::Write()
_worldPacket << Info.RewardXPMultiplier;
_worldPacket << Info.RewardMoney;
_worldPacket << Info.RewardMoneyDifficulty;
- _worldPacket << Info.Float13; // Unk
+ _worldPacket << Info.RewardMoneyMultiplier;
_worldPacket << Info.RewardBonusMoney;
_worldPacket << Info.RewardDisplaySpell;
_worldPacket << Info.RewardSpell;
diff --git a/src/server/game/Server/Packets/QuestPackets.h b/src/server/game/Server/Packets/QuestPackets.h
index b2d7269ebb0..90568ed36ea 100644
--- a/src/server/game/Server/Packets/QuestPackets.h
+++ b/src/server/game/Server/Packets/QuestPackets.h
@@ -118,7 +118,8 @@ namespace WorldPackets
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 RewardMoneyDifficulty = 0;
+ float RewardMoneyMultiplier = 1.0f;
int32 RewardBonusMoney = 0;
int32 RewardDisplaySpell = 0; // reward spell, this spell will be displayed (icon)
int32 RewardSpell = 0;
@@ -131,6 +132,7 @@ namespace WorldPackets
float POIx = 0.0f;
float POIy = 0.0f;
int32 POIPriority = 0;
+ int32 AllowableRaces = -1;
std::string LogTitle;
std::string LogDescription;
std::string QuestDescription;
@@ -163,9 +165,6 @@ namespace WorldPackets
int32 RewardFactionOverride[QUEST_REWARD_REPUTATIONS_COUNT] = {};
int32 RewardCurrencyID[QUEST_REWARD_CURRENCY_COUNT] = {};
int32 RewardCurrencyQty[QUEST_REWARD_CURRENCY_COUNT] = {};
-
- float Float13 = 1.0f;
- int32 AllowableRaces = -1;
};
class QueryQuestInfoResponse final : public ServerPacket
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index d1c18f2fc7d..bdf52776f31 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -335,7 +335,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_CONVERT_RAID, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Party::ConvertRaid, &WorldSession::HandleConvertRaidOpcode);
DEFINE_HANDLER(CMSG_CREATE_CHARACTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Character::CreateCharacter, &WorldSession::HandleCharCreateOpcode);
DEFINE_HANDLER(CMSG_CREATE_SHIPMENT, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
- DEFINE_HANDLER(CMSG_DB_QUERY_BULK, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Query::DBQueryBulk, &WorldSession::HandleDBQueryBulk);
+ DEFINE_HANDLER(CMSG_DB_QUERY_BULK, STATUS_AUTHED, PROCESS_INPLACE, WorldPackets::Query::DBQueryBulk, &WorldSession::HandleDBQueryBulk);
DEFINE_HANDLER(CMSG_DECLINE_GUILD_INVITES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Guild::DeclineGuildInvites, &WorldSession::HandleDeclineGuildInvites);
DEFINE_HANDLER(CMSG_DECLINE_PETITION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Petition::DeclinePetition, &WorldSession::HandleDeclinePetition);
DEFINE_HANDLER(CMSG_DELETE_EQUIPMENT_SET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::EquipmentSet::DeleteEquipmentSet, &WorldSession::HandleDeleteEquipmentSet);
@@ -365,8 +365,8 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_ENABLE_NAGLE, STATUS_NEVER, PROCESS_INPLACE, WorldPacket, &WorldSession::Handle_EarlyProccess);
DEFINE_OPCODE_HANDLER_OLD(CMSG_ENABLE_TAXI_NODE, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleTaxiQueryAvailableNodes );
DEFINE_HANDLER(CMSG_ENGINE_SURVEY, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
- DEFINE_HANDLER(CMSG_ENUM_CHARACTERS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Character::EnumCharacters, &WorldSession::HandleCharEnumOpcode);
- DEFINE_HANDLER(CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Character::EnumCharacters, &WorldSession::HandleCharUndeleteEnumOpcode);
+ DEFINE_HANDLER(CMSG_ENUM_CHARACTERS, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::EnumCharacters, &WorldSession::HandleCharEnumOpcode);
+ DEFINE_HANDLER(CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::EnumCharacters, &WorldSession::HandleCharUndeleteEnumOpcode);
DEFINE_HANDLER(CMSG_FAR_SIGHT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Misc::FarSight, &WorldSession::HandleFarSightOpcode);
DEFINE_HANDLER(CMSG_GAME_OBJ_REPORT_USE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::GameObject::GameObjReportUse, &WorldSession::HandleGameobjectReportUse);
DEFINE_HANDLER(CMSG_GAME_OBJ_USE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::GameObject::GameObjUse, &WorldSession::HandleGameObjectUseOpcode);
@@ -398,7 +398,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_GET_PVP_OPTIONS_ENABLED, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Battleground::GetPVPOptionsEnabled, &WorldSession::HandleGetPVPOptionsEnabled);
DEFINE_HANDLER(CMSG_GET_REMAINING_GAME_TIME, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_GET_TROPHY_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
- DEFINE_HANDLER(CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Character::GetUndeleteCharacterCooldownStatus, &WorldSession::HandleGetUndeleteCooldownStatus);
+ DEFINE_HANDLER(CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::GetUndeleteCharacterCooldownStatus, &WorldSession::HandleGetUndeleteCooldownStatus);
//DEFINE_HANDLER(CMSG_GM_SURVEY_SUBMIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Ticket::GMSurveySubmit, &WorldSession::HandleGMSurveySubmit);
DEFINE_HANDLER(CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
//DEFINE_HANDLER(CMSG_GM_TICKET_CREATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Ticket::GMTicketCreate, &WorldSession::HandleGMTicketCreateOpcode);
@@ -492,7 +492,7 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_LF_GUILD_REMOVE_RECRUIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderRemoveRecruit );
DEFINE_OPCODE_HANDLER_OLD(CMSG_LF_GUILD_SET_GUILD_POST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderSetGuildPost );
DEFINE_HANDLER(CMSG_LIST_INVENTORY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::NPC::Hello, &WorldSession::HandleListInventoryOpcode);
- DEFINE_HANDLER(CMSG_LOADING_SCREEN_NOTIFY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Character::LoadingScreenNotify, &WorldSession::HandleLoadScreenOpcode);
+ DEFINE_HANDLER(CMSG_LOADING_SCREEN_NOTIFY, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::LoadingScreenNotify, &WorldSession::HandleLoadScreenOpcode);
DEFINE_HANDLER(CMSG_LOAD_SELECTED_TROPHY, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_LOGOUT_CANCEL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Character::LogoutCancel, &WorldSession::HandleLogoutCancelOpcode);
DEFINE_HANDLER(CMSG_LOGOUT_INSTANT, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
@@ -847,7 +847,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACHIEVEMENT_DELETED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACHIEVEMENT_EARNED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVATE_TAXI_REPLY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADDON_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADDON_INFO, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_BATTLENET_FRIEND_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_ITEM_PASSIVE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_LOSS_OF_CONTROL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -885,8 +885,8 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_WON_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AURA_POINTS_DEPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AURA_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUTH_CHALLENGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUTH_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUTH_CHALLENGE, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUTH_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AVAILABLE_VOICE_CHANNEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BARBER_SHOP_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -950,7 +950,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BREAK_TARGET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BUY_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BUY_SUCCEEDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_CACHE_VERSION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_CACHE_VERSION, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_CLEAR_PENDING_ACTION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_COMMAND_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_INITIAL_INVITES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -1083,7 +1083,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENCHANTMENT_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENCOUNTER_END, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENCOUNTER_START, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENUM_CHARACTERS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENUM_CHARACTERS_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENVIRONMENTAL_DAMAGE_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_EQUIPMENT_SET_ID, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXPECTED_SPAM_RECORDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -1566,7 +1566,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESPEC_WIPE_CONFIRM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESPOND_INSPECT_ACHIEVEMENTS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_CAST_BAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_COMMS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_COMMS, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_TOKEN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESURRECT_REQUEST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESYNC_RUNES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -1625,7 +1625,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_PROFICIENCY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_SPELL_CHARGES, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_TASK_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_TIME_ZONE_INFORMATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_TIME_ZONE_INFORMATION, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_VEHICLE_REC_ID, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_BANK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_MAILBOX, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -1696,11 +1696,11 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRIGGER_CINEMATIC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRIGGER_MOVIE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TURN_IN_PETITION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_TUTORIAL_FLAGS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_TUTORIAL_FLAGS, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TWITTER_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UI_TIME, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNDELETE_CHARACTER_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UNLEARNED_SPELLS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_ACCOUNT_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_ACTION_BUTTONS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
diff --git a/src/tools/map_extractor/loadlib/DBFilesClientList.h b/src/tools/map_extractor/loadlib/DBFilesClientList.h
index eeb4789cac0..8effbd03e4a 100644
--- a/src/tools/map_extractor/loadlib/DBFilesClientList.h
+++ b/src/tools/map_extractor/loadlib/DBFilesClientList.h
@@ -22,6 +22,7 @@ char const* DBFilesClientList[] =
{
"DBFilesClient\\Achievement",
"DBFilesClient\\Achievement_Category",
+ "DBFilesClient\\AdventureJournal",
"DBFilesClient\\AnimKit",
"DBFilesClient\\AnimKitBoneSet",
"DBFilesClient\\AnimKitBoneSetAlias",
@@ -32,7 +33,6 @@ char const* DBFilesClientList[] =
"DBFilesClient\\AnimReplacement",
"DBFilesClient\\AnimReplacementSet",
"DBFilesClient\\AnimationData",
- "DBFilesClient\\AreaAssignment",
"DBFilesClient\\AreaGroup",
"DBFilesClient\\AreaGroupMember",
"DBFilesClient\\AreaPOI",
@@ -99,12 +99,12 @@ char const* DBFilesClientList[] =
"DBFilesClient\\CreatureDifficulty",
"DBFilesClient\\CreatureDisplayInfo",
"DBFilesClient\\CreatureDisplayInfoExtra",
+ "DBFilesClient\\CreatureDisplayInfoTrn",
"DBFilesClient\\CreatureFamily",
"DBFilesClient\\CreatureImmunities",
"DBFilesClient\\CreatureModelData",
"DBFilesClient\\CreatureMovementInfo",
"DBFilesClient\\CreatureSoundData",
- "DBFilesClient\\CreatureSpellData",
"DBFilesClient\\CreatureType",
"DBFilesClient\\Criteria",
"DBFilesClient\\CriteriaTree",
@@ -166,13 +166,16 @@ char const* DBFilesClientList[] =
"DBFilesClient\\GarrFollower",
"DBFilesClient\\GarrFollowerLevelXP",
"DBFilesClient\\GarrFollowerQuality",
+ "DBFilesClient\\GarrFollowerType",
"DBFilesClient\\GarrFollowerXAbility",
"DBFilesClient\\GarrMechanic",
"DBFilesClient\\GarrMechanicType",
"DBFilesClient\\GarrMission",
"DBFilesClient\\GarrMissionReward",
+ "DBFilesClient\\GarrMissionTexture",
"DBFilesClient\\GarrMissionType",
"DBFilesClient\\GarrMissionXEncounter",
+ "DBFilesClient\\GarrMssnBonusAbility",
"DBFilesClient\\GarrPlot",
"DBFilesClient\\GarrPlotBuilding",
"DBFilesClient\\GarrPlotInstance",
@@ -208,8 +211,8 @@ char const* DBFilesClientList[] =
"DBFilesClient\\ImportPriceQuality",
"DBFilesClient\\ImportPriceShield",
"DBFilesClient\\ImportPriceWeapon",
- "DBFilesClient\\Item",
"DBFilesClient\\Item-sparse",
+ "DBFilesClient\\Item",
"DBFilesClient\\ItemAppearance",
"DBFilesClient\\ItemArmorQuality",
"DBFilesClient\\ItemArmorShield",
@@ -304,6 +307,7 @@ char const* DBFilesClientList[] =
"DBFilesClient\\Mount",
"DBFilesClient\\MountCapability",
"DBFilesClient\\MountType",
+ "DBFilesClient\\MountTypeXCapability",
"DBFilesClient\\Movie",
"DBFilesClient\\MovieFileData",
"DBFilesClient\\MovieOverlays",
@@ -319,7 +323,6 @@ char const* DBFilesClientList[] =
"DBFilesClient\\ObjectEffectPackage",
"DBFilesClient\\ObjectEffectPackageElem",
"DBFilesClient\\OverrideSpellData",
- "DBFilesClient\\Package",
"DBFilesClient\\PageTextMaterial",
"DBFilesClient\\PaperDollItemFrame",
"DBFilesClient\\ParticleColor",
@@ -373,7 +376,6 @@ char const* DBFilesClientList[] =
"DBFilesClient\\SkillLineAbility",
"DBFilesClient\\SkillLineAbilitySortedSpell",
"DBFilesClient\\SkillRaceClassInfo",
- "DBFilesClient\\SkillTiers",
"DBFilesClient\\SoundAmbience",
"DBFilesClient\\SoundAmbienceFlavor",
"DBFilesClient\\SoundBus",
@@ -434,6 +436,7 @@ char const* DBFilesClientList[] =
"DBFilesClient\\SpellRadius",
"DBFilesClient\\SpellRange",
"DBFilesClient\\SpellReagents",
+ "DBFilesClient\\SpellReagentsCurrency",
"DBFilesClient\\SpellRuneCost",
"DBFilesClient\\SpellScaling",
"DBFilesClient\\SpellShapeshift",