diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-08-02 13:25:41 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-08-02 13:25:41 +0200 |
| commit | e59eef5432c7b70679d33f4911c88d0f7d75fd39 (patch) | |
| tree | fe9bce9c82496589facec3719b3f2943d8295e76 /src/server/game/Entities/Creature | |
| parent | 7fb9168d57f378075b0f6692ea7ad822c1d8e43d (diff) | |
Core/PacketIO: Updated to 11.0.0
Diffstat (limited to 'src/server/game/Entities/Creature')
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Creature/GossipDef.cpp | 14 | ||||
| -rw-r--r-- | src/server/game/Entities/Creature/GossipDef.h | 8 |
3 files changed, 20 insertions, 4 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 9b3a159e2f7..205b4440041 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1450,7 +1450,7 @@ void Creature::SaveToDB(uint32 mapid, std::vector<Difficulty> const& spawnDiffic CreatureData& data = sObjectMgr->NewOrExistCreatureData(m_spawnId); uint32 displayId = GetNativeDisplayId(); - uint64 spawnNpcFlags = (uint64(m_unitData->NpcFlags[1]) << 32) | m_unitData->NpcFlags[0]; + uint64 spawnNpcFlags = (uint64(GetNpcFlags2()) << 32) | GetNpcFlags(); Optional<uint64> npcflag; Optional<uint32> unitFlags; Optional<uint32> unitFlags2; diff --git a/src/server/game/Entities/Creature/GossipDef.cpp b/src/server/game/Entities/Creature/GossipDef.cpp index 142b379770c..818bff310e0 100644 --- a/src/server/game/Entities/Creature/GossipDef.cpp +++ b/src/server/game/Entities/Creature/GossipDef.cpp @@ -246,7 +246,10 @@ void PlayerMenu::SendGossipMenu(uint32 titleTextId, ObjectGuid objectGUID) packet.GossipGUID = objectGUID; packet.GossipID = _gossipMenu.GetMenuId(); if (GossipMenuAddon const* addon = sObjectMgr->GetGossipMenuAddon(packet.GossipID)) + { packet.FriendshipFactionID = addon->FriendshipFactionID; + packet.LfgDungeonsID = addon->LfgDungeonsID; + } if (NpcText const* text = sObjectMgr->GetNpcText(titleTextId)) packet.BroadcastTextID = Trinity::Containers::SelectRandomWeightedContainerElement(text->Data, [](NpcTextData const& data) { return data.Probability; })->BroadcastTextID; @@ -283,8 +286,11 @@ void PlayerMenu::SendGossipMenu(uint32 titleTextId, ObjectGuid objectGUID) text.QuestType = item.QuestIcon; text.QuestFlags[0] = quest->GetFlags(); text.QuestFlags[1] = quest->GetFlagsEx(); + text.QuestFlags[2] = quest->GetFlagsEx2(); text.Repeatable = quest->IsTurnIn() && quest->IsRepeatable() && !quest->IsDailyOrWeekly() && !quest->IsMonthly(); + text.ResetByScheduler = quest->IsResetByScheduler(); text.Important = quest->IsImportant(); + text.Meta = quest->IsMeta(); text.QuestTitle = quest->GetLogTitle(); LocaleConstant localeConstant = _session->GetSessionDbLocaleIndex(); @@ -411,8 +417,11 @@ void PlayerMenu::SendQuestGiverQuestListMessage(Object* questgiver) text.QuestType = questMenuItem.QuestIcon; text.QuestFlags[0] = quest->GetFlags(); text.QuestFlags[1] = quest->GetFlagsEx(); + text.QuestFlags[2] = quest->GetFlagsEx2(); text.Repeatable = quest->IsTurnIn() && quest->IsRepeatable() && !quest->IsDailyOrWeekly() && !quest->IsMonthly(); + text.ResetByScheduler = quest->IsResetByScheduler(); text.Important = quest->IsImportant(); + text.Meta = quest->IsMeta(); text.QuestTitle = quest->GetLogTitle(); LocaleConstant localeConstant = _session->GetSessionDbLocaleIndex(); @@ -478,6 +487,7 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, ObjectGuid npcGU packet.PortraitGiverMount = quest->GetQuestGiverPortraitMount(); packet.PortraitGiverModelSceneID = quest->GetQuestGiverPortraitModelSceneId(); packet.PortraitTurnIn = quest->GetQuestTurnInPortrait(); + packet.QuestInfoID = quest->GetQuestInfoID(); packet.QuestSessionBonus = 0; //quest->GetQuestSessionBonus(); // this is only sent while quest session is active packet.AutoLaunched = autoLaunched; packet.DisplayPopup = displayPopup; @@ -510,9 +520,9 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, ObjectGuid npcGU for (uint32 i = 0; i < objs.size(); ++i) { packet.Objectives[i].ID = objs[i].ID; + packet.Objectives[i].Type = objs[i].Type; packet.Objectives[i].ObjectID = objs[i].ObjectID; packet.Objectives[i].Amount = objs[i].Amount; - packet.Objectives[i].Type = objs[i].Type; } _session->SendPacket(packet.Write()); @@ -582,6 +592,7 @@ void PlayerMenu::SendQuestGiverOfferReward(Quest const* quest, ObjectGuid npcGUI offer.QuestID = quest->GetQuestId(); offer.AutoLaunched = autoLaunched; offer.SuggestedPartyMembers = quest->GetSuggestedPlayers(); + offer.QuestInfoID = quest->GetQuestInfoID(); for (uint32 i = 0; i < QUEST_EMOTE_COUNT && quest->OfferRewardEmote[i]; ++i) offer.Emotes.emplace_back(quest->OfferRewardEmote[i], quest->OfferRewardEmoteDelay[i]); @@ -656,6 +667,7 @@ void PlayerMenu::SendQuestGiverRequestItems(Quest const* quest, ObjectGuid npcGU packet.QuestFlags[1] = quest->GetFlagsEx(); packet.QuestFlags[2] = quest->GetFlagsEx2(); packet.SuggestPartyMembers = quest->GetSuggestedPlayers(); + packet.QuestInfoID = quest->GetQuestInfoID(); // incomplete: FD // incomplete quest with item objective but item objective is complete DD diff --git a/src/server/game/Entities/Creature/GossipDef.h b/src/server/game/Entities/Creature/GossipDef.h index 72aa91aae39..e97c1cca3d9 100644 --- a/src/server/game/Entities/Creature/GossipDef.h +++ b/src/server/game/Entities/Creature/GossipDef.h @@ -88,6 +88,9 @@ enum class GossipOptionNpc : uint8 BarbersChoice = 52, MajorFactionRenown = 53, PersonalTabardVendor = 54, + ForgeMaster = 55, + CharacterBanker = 56, + AccountBanker = 57, Count }; @@ -108,8 +111,9 @@ enum class GossipOptionRewardType : uint8 enum class GossipOptionFlags : int32 { - None = 0x0, - QuestLabelPrepend = 0x1 + None = 0x0, + QuestLabelPrepend = 0x1, + HideOptionIDFromClient = 0x2 }; struct GossipMenuItem |
