mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
8
sql/updates/world/master/2017_03_21_01_world.sql
Normal file
8
sql/updates/world/master/2017_03_21_01_world.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
DROP TABLE IF EXISTS `quest_request_items_locale`;
|
||||
CREATE TABLE `quest_request_items_locale` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`locale` varchar(4) NOT NULL,
|
||||
`CompletionText` text,
|
||||
`VerifiedBuild` smallint(6) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`ID`,`locale`)
|
||||
);
|
||||
@@ -613,7 +613,7 @@ void PlayerMenu::SendQuestQueryResponse(Quest const* quest) const
|
||||
void PlayerMenu::SendQuestGiverOfferReward(Quest const* quest, ObjectGuid npcGUID, bool enableNext) const
|
||||
{
|
||||
std::string questTitle = quest->GetLogTitle();
|
||||
std::string rewardText = quest->GetOfferRewardText();
|
||||
std::string rewardText = quest->GetOfferRewardText();
|
||||
std::string portraitGiverText = quest->GetPortraitGiverText();
|
||||
std::string portraitGiverName = quest->GetPortraitGiverName();
|
||||
std::string portraitTurnInText = quest->GetPortraitTurnInText();
|
||||
@@ -678,16 +678,16 @@ void PlayerMenu::SendQuestGiverRequestItems(Quest const* quest, ObjectGuid npcGU
|
||||
// items. Otherwise, we'll skip straight to the OfferReward
|
||||
|
||||
std::string questTitle = quest->GetLogTitle();
|
||||
std::string requestItemsText = quest->GetRequestItemsText();
|
||||
std::string completionText = quest->GetRequestItemsText();
|
||||
|
||||
LocaleConstant locale = _session->GetSessionDbLocaleIndex();
|
||||
if (locale >= LOCALE_enUS)
|
||||
{
|
||||
if (QuestTemplateLocale const* questTemplateLocale = sObjectMgr->GetQuestLocale(quest->GetQuestId()))
|
||||
{
|
||||
ObjectMgr::GetLocaleString(questTemplateLocale->LogTitle, locale, questTitle);
|
||||
ObjectMgr::GetLocaleString(questTemplateLocale->RequestItemsText, locale, requestItemsText);
|
||||
}
|
||||
|
||||
if (QuestRequestItemsLocale const* questRequestItemsLocale = sObjectMgr->GetQuestRequestItemsLocale(quest->GetQuestId()))
|
||||
ObjectMgr::GetLocaleString(questRequestItemsLocale->CompletionText, locale, completionText);
|
||||
}
|
||||
|
||||
if (!quest->HasSpecialFlag(QUEST_SPECIAL_FLAGS_DELIVER) && canComplete)
|
||||
@@ -730,10 +730,10 @@ void PlayerMenu::SendQuestGiverRequestItems(Quest const* quest, ObjectGuid npcGU
|
||||
switch (obj.Type)
|
||||
{
|
||||
case QUEST_OBJECTIVE_ITEM:
|
||||
packet.Collect.push_back(WorldPackets::Quest::QuestObjectiveCollect(obj.ObjectID, obj.Amount, obj.Flags));
|
||||
packet.Collect.emplace_back(obj.ObjectID, obj.Amount, obj.Flags);
|
||||
break;
|
||||
case QUEST_OBJECTIVE_CURRENCY:
|
||||
packet.Currency.push_back(WorldPackets::Quest::QuestCurrency(obj.ObjectID, obj.Amount));
|
||||
packet.Currency.emplace_back(obj.ObjectID, obj.Amount);
|
||||
break;
|
||||
case QUEST_OBJECTIVE_MONEY:
|
||||
packet.MoneyToGet += obj.Amount;
|
||||
@@ -745,7 +745,7 @@ void PlayerMenu::SendQuestGiverRequestItems(Quest const* quest, ObjectGuid npcGU
|
||||
|
||||
packet.AutoLaunched = closeOnCancel;
|
||||
packet.QuestTitle = questTitle;
|
||||
packet.CompletionText = requestItemsText;
|
||||
packet.CompletionText = completionText;
|
||||
|
||||
_session->SendPacket(packet.Write());
|
||||
TC_LOG_DEBUG("network", "WORLD: Sent SMSG_QUESTGIVER_REQUEST_ITEMS NPC=%s, questid=%u", npcGUID.ToString().c_str(), quest->GetQuestId());
|
||||
|
||||
@@ -4826,6 +4826,36 @@ void ObjectMgr::LoadQuestOfferRewardLocale()
|
||||
TC_LOG_INFO("server.loading", ">> Loaded " SZFMTD " Quest Offer Reward locale strings in %u ms", _questOfferRewardLocaleStore.size(), GetMSTimeDiffToNow(oldMSTime));
|
||||
}
|
||||
|
||||
void ObjectMgr::LoadQuestRequestItemsLocale()
|
||||
{
|
||||
uint32 oldMSTime = getMSTime();
|
||||
|
||||
_questRequestItemsLocaleStore.clear(); // need for reload case
|
||||
// 0 1 2
|
||||
QueryResult result = WorldDatabase.Query("SELECT Id, locale, CompletionText FROM quest_request_items_locale");
|
||||
if (!result)
|
||||
return;
|
||||
|
||||
do
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
|
||||
uint32 id = fields[0].GetUInt32();
|
||||
std::string localeName = fields[1].GetString();
|
||||
|
||||
std::string completionText = fields[2].GetString();
|
||||
|
||||
QuestRequestItemsLocale& data = _questRequestItemsLocaleStore[id];
|
||||
LocaleConstant locale = GetLocaleByName(localeName);
|
||||
if (locale == LOCALE_enUS)
|
||||
continue;
|
||||
|
||||
AddLocaleString(completionText, locale, data.CompletionText);
|
||||
} while (result->NextRow());
|
||||
|
||||
TC_LOG_INFO("server.loading", ">> Loaded " SZFMTD " Quest Request Items locale strings in %u ms", _questRequestItemsLocaleStore.size(), GetMSTimeDiffToNow(oldMSTime));
|
||||
}
|
||||
|
||||
void ObjectMgr::LoadScripts(ScriptsType type)
|
||||
{
|
||||
uint32 oldMSTime = getMSTime();
|
||||
|
||||
@@ -442,6 +442,7 @@ typedef std::unordered_map<uint32, GameObjectLocale> GameObjectLocaleContainer;
|
||||
typedef std::unordered_map<uint32, QuestTemplateLocale> QuestTemplateLocaleContainer;
|
||||
typedef std::unordered_map<uint32, QuestObjectivesLocale> QuestObjectivesLocaleContainer;
|
||||
typedef std::unordered_map<uint32, QuestOfferRewardLocale> QuestOfferRewardLocaleContainer;
|
||||
typedef std::unordered_map<uint32, QuestRequestItemsLocale> QuestRequestItemsLocaleContainer;
|
||||
typedef std::unordered_map<uint32, PageTextLocale> PageTextLocaleContainer;
|
||||
typedef std::unordered_map<uint32, GossipMenuItemsLocale> GossipMenuItemsLocaleContainer;
|
||||
typedef std::unordered_map<uint32, PointOfInterestLocale> PointOfInterestLocaleContainer;
|
||||
@@ -1023,6 +1024,7 @@ class TC_GAME_API ObjectMgr
|
||||
void LoadQuestTemplateLocale();
|
||||
void LoadQuestObjectivesLocale();
|
||||
void LoadQuestOfferRewardLocale();
|
||||
void LoadQuestRequestItemsLocale();
|
||||
void LoadPageTextLocales();
|
||||
void LoadGossipMenuItemsLocales();
|
||||
void LoadPointOfInterestLocales();
|
||||
@@ -1199,6 +1201,12 @@ class TC_GAME_API ObjectMgr
|
||||
if (itr == _questOfferRewardLocaleStore.end()) return nullptr;
|
||||
return &itr->second;
|
||||
}
|
||||
QuestRequestItemsLocale const* GetQuestRequestItemsLocale(uint32 entry) const
|
||||
{
|
||||
auto itr = _questRequestItemsLocaleStore.find(entry);
|
||||
if (itr == _questRequestItemsLocaleStore.end()) return nullptr;
|
||||
return &itr->second;
|
||||
}
|
||||
QuestObjectivesLocale const* GetQuestObjectivesLocale(uint32 entry) const
|
||||
{
|
||||
QuestObjectivesLocaleContainer::const_iterator itr = _questObjectivesLocaleStore.find(entry);
|
||||
@@ -1554,6 +1562,7 @@ class TC_GAME_API ObjectMgr
|
||||
QuestTemplateLocaleContainer _questTemplateLocaleStore;
|
||||
QuestObjectivesLocaleContainer _questObjectivesLocaleStore;
|
||||
QuestOfferRewardLocaleContainer _questOfferRewardLocaleStore;
|
||||
QuestRequestItemsLocaleContainer _questRequestItemsLocaleStore;
|
||||
PageTextLocaleContainer _pageTextLocaleStore;
|
||||
GossipMenuItemsLocaleContainer _gossipMenuItemsLocaleStore;
|
||||
PointOfInterestLocaleContainer _pointOfInterestLocaleStore;
|
||||
|
||||
@@ -253,9 +253,11 @@ struct QuestTemplateLocale
|
||||
StringVector PortraitTurnInText;
|
||||
StringVector PortraitTurnInName;
|
||||
StringVector QuestCompletionLog;
|
||||
};
|
||||
|
||||
/// @todo: implemente this in new tables
|
||||
StringVector RequestItemsText;
|
||||
struct QuestRequestItemsLocale
|
||||
{
|
||||
StringVector CompletionText;
|
||||
};
|
||||
|
||||
struct QuestObjectivesLocale
|
||||
|
||||
@@ -1607,6 +1607,7 @@ void World::SetInitialWorldSettings()
|
||||
sObjectMgr->LoadGameObjectLocales();
|
||||
sObjectMgr->LoadQuestTemplateLocale();
|
||||
sObjectMgr->LoadQuestOfferRewardLocale();
|
||||
sObjectMgr->LoadQuestRequestItemsLocale();
|
||||
sObjectMgr->LoadQuestObjectivesLocale();
|
||||
sObjectMgr->LoadPageTextLocales();
|
||||
sObjectMgr->LoadGossipMenuItemsLocales();
|
||||
|
||||
@@ -1060,9 +1060,11 @@ public:
|
||||
sObjectMgr->LoadQuestTemplateLocale();
|
||||
sObjectMgr->LoadQuestObjectivesLocale();
|
||||
sObjectMgr->LoadQuestOfferRewardLocale();
|
||||
sObjectMgr->LoadQuestRequestItemsLocale();
|
||||
handler->SendGlobalGMSysMessage("DB table `quest_template_locale` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `quest_objectives_locale` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `quest_offer_reward_locale` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `quest_request_items_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user