mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 00:48:56 +01:00
Core/Quests: Fixed structures of QuestGiverOfferRewardMessage and QuestGiverQuestDetails
This commit is contained in:
@@ -421,7 +421,7 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, ObjectGuid npcGU
|
||||
packet.QuestID = quest->GetQuestId();
|
||||
packet.PortraitGiver = quest->GetQuestGiverPortrait();
|
||||
packet.PortraitTurnIn = quest->GetQuestTurnInPortrait();
|
||||
packet.DisplayPopup = activateAccept;
|
||||
packet.AutoLaunched = activateAccept;
|
||||
packet.QuestFlags[0] = quest->GetFlags();
|
||||
packet.QuestFlags[1] = quest->GetFlagsEx();
|
||||
packet.SuggestedPartyMembers = quest->GetSuggestedPlayers();
|
||||
|
||||
@@ -15310,8 +15310,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
|
||||
SQLTransaction trans = SQLTransaction(nullptr);
|
||||
_SaveQuestStatus(trans);
|
||||
|
||||
if (announce)
|
||||
SendQuestReward(quest, XP);
|
||||
SendQuestReward(quest, questGiver->ToCreature(), XP, !announce);
|
||||
|
||||
// cast spells after mark quest complete (some spells have quest completed state requirements in spell_area data)
|
||||
if (quest->GetRewSpell() > 0)
|
||||
@@ -16973,17 +16972,15 @@ void Player::SendQuestComplete(Quest const* quest) const
|
||||
}
|
||||
}
|
||||
|
||||
void Player::SendQuestReward(Quest const* quest, uint32 XP) const
|
||||
void Player::SendQuestReward(Quest const* quest, Creature const* questGiver, uint32 xp, bool hideChatMessage) const
|
||||
{
|
||||
uint32 questId = quest->GetQuestId();
|
||||
sGameEventMgr->HandleQuestComplete(questId);
|
||||
|
||||
uint32 xp;
|
||||
uint32 moneyReward;
|
||||
|
||||
if (getLevel() < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
|
||||
{
|
||||
xp = XP;
|
||||
moneyReward = GetQuestMoneyReward(quest);
|
||||
}
|
||||
else // At max level, increase gold reward
|
||||
@@ -17000,10 +16997,17 @@ void Player::SendQuestReward(Quest const* quest, uint32 XP) const
|
||||
packet.SkillLineIDReward = quest->GetRewardSkillId();
|
||||
packet.NumSkillUpsReward = quest->GetRewardSkillPoints();
|
||||
|
||||
// @todo fix these 3
|
||||
packet.UseQuestReward = true;
|
||||
packet.LaunchGossip = true;
|
||||
//packet.ItemReward
|
||||
if (questGiver)
|
||||
{
|
||||
if (questGiver->IsGossip())
|
||||
packet.LaunchGossip = true;
|
||||
else if (questGiver->IsQuestGiver())
|
||||
packet.LaunchQuest = true;
|
||||
else if (quest->GetNextQuestInChain() && !quest->HasFlag(QUEST_FLAGS_AUTOCOMPLETE))
|
||||
packet.UseQuestReward = true;
|
||||
}
|
||||
|
||||
packet.HideChatMessage = hideChatMessage;
|
||||
|
||||
GetSession()->SendPacket(packet.Write());
|
||||
}
|
||||
|
||||
@@ -1434,7 +1434,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
|
||||
void SetQuestObjectiveData(QuestObjective const& objective, int32 data);
|
||||
bool IsQuestObjectiveProgressComplete(Quest const* quest) const;
|
||||
void SendQuestComplete(Quest const* quest) const;
|
||||
void SendQuestReward(Quest const* quest, uint32 XP) const;
|
||||
void SendQuestReward(Quest const* quest, Creature const* questGiver, uint32 xp, bool hideChatMessage) const;
|
||||
void SendQuestFailed(uint32 questID, InventoryResult reason = EQUIP_ERR_OK) const;
|
||||
void SendQuestTimerFailed(uint32 questID) const;
|
||||
void SendCanTakeQuestResponse(QuestFailedReason reason, bool sendErrorMessage = true, std::string reasonText = "") const;
|
||||
|
||||
@@ -536,7 +536,7 @@ void WorldSession::HandleQuestgiverCompleteQuest(WorldPackets::Quest::QuestGiver
|
||||
if (!object)
|
||||
return;
|
||||
|
||||
if (autoCompleteMode == 0)
|
||||
if (!autoCompleteMode)
|
||||
{
|
||||
if (!object->hasInvolvedQuest(packet.QuestID))
|
||||
return;
|
||||
@@ -578,10 +578,6 @@ void WorldSession::HandleQuestgiverCompleteQuest(WorldPackets::Quest::QuestGiver
|
||||
}
|
||||
}
|
||||
|
||||
void WorldSession::HandleQuestgiverQuestAutoLaunch(WorldPacket& /*recvPacket*/)
|
||||
{
|
||||
}
|
||||
|
||||
void WorldSession::HandlePushQuestToParty(WorldPackets::Quest::PushQuestToParty& packet)
|
||||
{
|
||||
if (!_player->CanShareQuest(packet.QuestID))
|
||||
|
||||
@@ -300,8 +300,8 @@ WorldPacket const* WorldPackets::Quest::QuestGiverOfferRewardMessage::Write()
|
||||
{
|
||||
_worldPacket << QuestData; // WorldPackets::Quest::QuestGiverOfferReward
|
||||
_worldPacket << int32(QuestPackageID);
|
||||
_worldPacket << int32(PortraitTurnIn);
|
||||
_worldPacket << int32(PortraitGiver);
|
||||
_worldPacket << int32(PortraitTurnIn);
|
||||
|
||||
_worldPacket.WriteBits(QuestTitle.size(), 9);
|
||||
_worldPacket.WriteBits(RewardText.size(), 12);
|
||||
@@ -359,13 +359,13 @@ WorldPacket const* WorldPackets::Quest::QuestGiverQuestDetails::Write()
|
||||
_worldPacket << int32(QuestID);
|
||||
_worldPacket << int32(QuestPackageID);
|
||||
_worldPacket << int32(PortraitGiver);
|
||||
_worldPacket << int32(SuggestedPartyMembers);
|
||||
_worldPacket << int32(PortraitTurnIn);
|
||||
_worldPacket << uint32(QuestFlags[0]); // Flags
|
||||
_worldPacket << uint32(QuestFlags[1]); // FlagsEx
|
||||
_worldPacket << int32(PortraitTurnIn);
|
||||
_worldPacket << int32(SuggestedPartyMembers);
|
||||
_worldPacket << uint32(LearnSpells.size());
|
||||
_worldPacket << int32(DescEmotes.size());
|
||||
_worldPacket << int32(Objectives.size());
|
||||
_worldPacket << uint32(DescEmotes.size());
|
||||
_worldPacket << uint32(Objectives.size());
|
||||
_worldPacket << int32(QuestStartItemID);
|
||||
|
||||
for (int32 spell : LearnSpells)
|
||||
@@ -392,9 +392,9 @@ WorldPacket const* WorldPackets::Quest::QuestGiverQuestDetails::Write()
|
||||
_worldPacket.WriteBits(PortraitGiverName.size(), 8);
|
||||
_worldPacket.WriteBits(PortraitTurnInText.size(), 10);
|
||||
_worldPacket.WriteBits(PortraitTurnInName.size(), 8);
|
||||
_worldPacket.WriteBit(DisplayPopup);
|
||||
_worldPacket.WriteBit(StartCheat);
|
||||
_worldPacket.WriteBit(AutoLaunched);
|
||||
_worldPacket.WriteBit(StartCheat);
|
||||
_worldPacket.WriteBit(DisplayPopup);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket << Rewards; // WorldPackets::Quest::QuestRewards
|
||||
|
||||
@@ -1433,7 +1433,6 @@ class TC_GAME_API WorldSession
|
||||
void HandleQuestLogRemoveQuest(WorldPackets::Quest::QuestLogRemoveQuest& packet);
|
||||
void HandleQuestConfirmAccept(WorldPackets::Quest::QuestConfirmAccept& packet);
|
||||
void HandleQuestgiverCompleteQuest(WorldPackets::Quest::QuestGiverCompleteQuest& packet);
|
||||
void HandleQuestgiverQuestAutoLaunch(WorldPacket& recvPacket);
|
||||
void HandlePushQuestToParty(WorldPackets::Quest::PushQuestToParty& packet);
|
||||
void HandleQuestPushResult(WorldPackets::Quest::QuestPushResult& packet);
|
||||
void HandleRequestWorldQuestUpdate(WorldPackets::Quest::RequestWorldQuestUpdate& packet);
|
||||
|
||||
Reference in New Issue
Block a user