mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-24 10:56:38 +01:00
Core/Packets: converted SMSG_QUEST_UPDATE_COMPLETE, SMSG_QUEST_UPDATE_FAILED_TIMER, SMSG_QUEST_GIVER_INVALID_QUEST, SMSG_QUEST_GIVER_QUEST_FAILED, MSG_QUEST_PUSH_RESULT, SMSG_QUEST_GIVER_STATUS_MULTIPLE and SMSG_QUEST_LOG_FULL to packet class
This commit is contained in:
@@ -15430,8 +15430,8 @@ bool Player::SatisfyQuestLog(bool msg) const
|
||||
|
||||
if (msg)
|
||||
{
|
||||
WorldPacket data(SMSG_QUESTLOG_FULL, 0);
|
||||
SendDirectMessage(&data);
|
||||
WorldPackets::Quest::QuestLogFull packet;
|
||||
SendDirectMessage(packet.Write());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -16778,10 +16778,9 @@ void Player::SendQuestComplete(Quest const* quest) const
|
||||
{
|
||||
if (quest)
|
||||
{
|
||||
WorldPacket data(SMSG_QUESTUPDATE_COMPLETE, 4);
|
||||
data << uint32(quest->GetQuestId());
|
||||
SendDirectMessage(&data);
|
||||
TC_LOG_DEBUG("network", "WORLD: Sent SMSG_QUESTUPDATE_COMPLETE quest = %u", quest->GetQuestId());
|
||||
WorldPackets::Quest::QuestUpdateComplete packet;
|
||||
packet.QuestID = quest->GetQuestId();
|
||||
SendDirectMessage(packet.Write());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16817,30 +16816,28 @@ void Player::SendQuestFailed(uint32 questId, InventoryResult reason) const
|
||||
{
|
||||
if (questId)
|
||||
{
|
||||
WorldPacket data(SMSG_QUESTGIVER_QUEST_FAILED, 4 + 4);
|
||||
data << uint32(questId);
|
||||
data << uint32(reason); // failed reason (valid reasons: 4, 16, 50, 17, 74, other values show default message)
|
||||
SendDirectMessage(&data);
|
||||
WorldPackets::Quest::QuestGiverQuestFailed packet;
|
||||
packet.QuestID = questId;
|
||||
packet.Reason = reason;
|
||||
SendDirectMessage(packet.Write());
|
||||
}
|
||||
}
|
||||
|
||||
void Player::SendQuestTimerFailed(uint32 quest_id) const
|
||||
void Player::SendQuestTimerFailed(uint32 questId) const
|
||||
{
|
||||
if (quest_id)
|
||||
if (questId)
|
||||
{
|
||||
WorldPacket data(SMSG_QUESTUPDATE_FAILEDTIMER, 4);
|
||||
data << uint32(quest_id);
|
||||
SendDirectMessage(&data);
|
||||
TC_LOG_DEBUG("network", "WORLD: Sent SMSG_QUESTUPDATE_FAILEDTIMER");
|
||||
WorldPackets::Quest::QuestUpdateFailedTimer packet;
|
||||
packet.QuestID = questId;
|
||||
SendDirectMessage(packet.Write());
|
||||
}
|
||||
}
|
||||
|
||||
void Player::SendCanTakeQuestResponse(QuestFailedReason msg) const
|
||||
void Player::SendCanTakeQuestResponse(QuestFailedReason reason) const
|
||||
{
|
||||
WorldPacket data(SMSG_QUESTGIVER_QUEST_INVALID, 4);
|
||||
data << uint32(msg);
|
||||
SendDirectMessage(&data);
|
||||
TC_LOG_DEBUG("network", "WORLD: Sent SMSG_QUESTGIVER_QUEST_INVALID");
|
||||
WorldPackets::Quest::QuestGiverInvalidQuest packet;
|
||||
packet.Reason = reason;
|
||||
SendDirectMessage(packet.Write());
|
||||
}
|
||||
|
||||
void Player::SendQuestConfirmAccept(Quest const* quest, Player* receiver) const
|
||||
@@ -16868,11 +16865,10 @@ void Player::SendPushToPartyResponse(Player* player, uint8 msg) const
|
||||
{
|
||||
if (player)
|
||||
{
|
||||
WorldPacket data(MSG_QUEST_PUSH_RESULT, 8 + 1);
|
||||
data << uint64(player->GetGUID());
|
||||
data << uint8(msg); // valid values: 0-8
|
||||
SendDirectMessage(&data);
|
||||
TC_LOG_DEBUG("network", "WORLD: Sent MSG_QUEST_PUSH_RESULT");
|
||||
WorldPackets::Quest::QuestPushResultResponse packet;
|
||||
packet.SenderGUID = player->GetGUID();
|
||||
packet.Result = msg;
|
||||
SendDirectMessage(packet.Write());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16903,10 +16899,7 @@ void Player::SendQuestUpdateAddPlayer(Quest const* quest, uint16 newCount)
|
||||
|
||||
void Player::SendQuestGiverStatusMultiple()
|
||||
{
|
||||
uint32 count = 0;
|
||||
|
||||
WorldPacket data(SMSG_QUESTGIVER_STATUS_MULTIPLE, 4);
|
||||
data << uint32(count); // placeholder
|
||||
WorldPackets::Quest::QuestGiverStatusMultiple response;
|
||||
|
||||
for (auto itr = m_clientGUIDs.begin(); itr != m_clientGUIDs.end(); ++itr)
|
||||
{
|
||||
@@ -16921,11 +16914,7 @@ void Player::SendQuestGiverStatusMultiple()
|
||||
if (!questgiver->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER))
|
||||
continue;
|
||||
|
||||
questStatus = GetQuestDialogStatus(questgiver);
|
||||
|
||||
data << uint64(questgiver->GetGUID());
|
||||
data << int32(questStatus);
|
||||
++count;
|
||||
response.QuestGiver.emplace_back(questgiver->GetGUID(), GetQuestDialogStatus(questgiver));
|
||||
}
|
||||
else if (itr->IsGameObject())
|
||||
{
|
||||
@@ -16933,16 +16922,11 @@ void Player::SendQuestGiverStatusMultiple()
|
||||
if (!questgiver || questgiver->GetGoType() != GAMEOBJECT_TYPE_QUESTGIVER)
|
||||
continue;
|
||||
|
||||
questStatus = GetQuestDialogStatus(questgiver);
|
||||
|
||||
data << uint64(questgiver->GetGUID());
|
||||
data << int32(questStatus);
|
||||
++count;
|
||||
response.QuestGiver.emplace_back(questgiver->GetGUID(), GetQuestDialogStatus(questgiver));
|
||||
}
|
||||
}
|
||||
|
||||
data.put<uint32>(0, count); // write real count
|
||||
SendDirectMessage(&data);
|
||||
SendDirectMessage(response.Write());
|
||||
}
|
||||
|
||||
bool Player::HasPvPForcingQuest() const
|
||||
|
||||
@@ -1440,8 +1440,8 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
|
||||
void SendQuestReward(Quest const* quest, Creature const* questGiver, uint32 xp);
|
||||
void SendQuestFailed(uint32 questId, InventoryResult reason = EQUIP_ERR_OK) const;
|
||||
void SendQuestTimerFailed(uint32 questId) const;
|
||||
void SendCanTakeQuestResponse(QuestFailedReason msg) const;
|
||||
void SendQuestConfirmAccept(Quest const* quest, Player* pReceiver) const;
|
||||
void SendCanTakeQuestResponse(QuestFailedReason reason) const;
|
||||
void SendQuestConfirmAccept(Quest const* quest, Player* receiver) const;
|
||||
void SendPushToPartyResponse(Player* player, uint8 msg) const;
|
||||
void SendQuestUpdateAddCredit(Quest const* quest, ObjectGuid guid, uint32 creatureOrGOIdx, uint16 count);
|
||||
void SendQuestUpdateAddPlayer(Quest const* quest, uint16 newCount);
|
||||
|
||||
@@ -194,6 +194,7 @@ WorldPacket const* WorldPackets::Quest::QuestConfirmAcceptResponse::Write()
|
||||
_worldPacket << uint32(QuestID);
|
||||
_worldPacket << QuestTitle;
|
||||
_worldPacket << InitiatedBy;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
@@ -204,6 +205,7 @@ WorldPacket const* WorldPackets::Quest::QuestUpdateAddCredit::Write()
|
||||
_worldPacket << uint32(Count);
|
||||
_worldPacket << uint32(Required);
|
||||
_worldPacket << VictimGUID;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
@@ -212,6 +214,56 @@ WorldPacket const* WorldPackets::Quest::QuestUpdateAddPvPCredit::Write()
|
||||
_worldPacket << uint32(QuestID);
|
||||
_worldPacket << uint32(Count);
|
||||
_worldPacket << uint32(Required);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Quest::QuestUpdateComplete::Write()
|
||||
{
|
||||
_worldPacket << uint32(QuestID);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Quest::QuestUpdateFailedTimer::Write()
|
||||
{
|
||||
_worldPacket << uint32(QuestID);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Quest::QuestGiverInvalidQuest::Write()
|
||||
{
|
||||
_worldPacket << uint32(Reason);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Quest::QuestGiverQuestFailed::Write()
|
||||
{
|
||||
_worldPacket << uint32(QuestID);
|
||||
_worldPacket << uint32(Reason);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Quest::QuestPushResultResponse::Write()
|
||||
{
|
||||
_worldPacket << SenderGUID;
|
||||
_worldPacket << uint8(Result);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Quest::QuestGiverStatusMultiple::Write()
|
||||
{
|
||||
_worldPacket << int32(QuestGiver.size());
|
||||
for (QuestGiverInfo const& questGiver : QuestGiver)
|
||||
{
|
||||
_worldPacket << questGiver.Guid;
|
||||
_worldPacket << uint32(questGiver.Status);
|
||||
}
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
|
||||
@@ -351,6 +351,76 @@ namespace WorldPackets
|
||||
uint32 Count = 0;
|
||||
uint32 Required = 0;
|
||||
};
|
||||
|
||||
class QuestUpdateComplete final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
QuestUpdateComplete() : ServerPacket(SMSG_QUEST_UPDATE_COMPLETE, 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
int32 QuestID = 0;
|
||||
};
|
||||
|
||||
class QuestUpdateFailedTimer final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
QuestUpdateFailedTimer() : ServerPacket(SMSG_QUEST_UPDATE_FAILED_TIMER, 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
uint32 QuestID = 0;
|
||||
};
|
||||
|
||||
class QuestGiverInvalidQuest final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
QuestGiverInvalidQuest() : ServerPacket(SMSG_QUEST_GIVER_INVALID_QUEST, 6) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
uint32 Reason = 0;
|
||||
};
|
||||
|
||||
class QuestGiverQuestFailed final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
QuestGiverQuestFailed() : ServerPacket(SMSG_QUEST_GIVER_QUEST_FAILED, 8) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
uint32 QuestID = 0;
|
||||
uint32 Reason = 0;
|
||||
};
|
||||
|
||||
class QuestPushResultResponse final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
QuestPushResultResponse() : ServerPacket(OpcodeServer(MSG_QUEST_PUSH_RESULT), 8 + 1) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid SenderGUID;
|
||||
uint8 Result = 0;
|
||||
};
|
||||
|
||||
class QuestGiverStatusMultiple final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
QuestGiverStatusMultiple() : ServerPacket(SMSG_QUEST_GIVER_STATUS_MULTIPLE, 24) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::vector<QuestGiverInfo> QuestGiver;
|
||||
};
|
||||
|
||||
class QuestLogFull final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
QuestLogFull() : ServerPacket(SMSG_QUEST_LOG_FULL, 0) { }
|
||||
|
||||
WorldPacket const* Write() override { return &_worldPacket; }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1139,18 +1139,18 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUESTGIVER_OFFER_REWARD, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_DETAILS, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUESTGIVER_QUEST_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUESTGIVER_QUEST_INVALID, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_INVALID_QUEST, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_QUEST_LIST_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_REQUEST_ITEMS, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_STATUS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUESTGIVER_STATUS_MULTIPLE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUESTLOG_FULL, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_GIVER_STATUS_MULTIPLE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_LOG_FULL, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_ADD_CREDIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_ADD_PVP_CREDIT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUESTUPDATE_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUESTUPDATE_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUESTUPDATE_FAILEDTIMER, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_UPDATE_FAILED_TIMER, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_CONFIRM_ACCEPT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_FORCE_REMOVE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_NPC_QUERY_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
|
||||
@@ -1096,19 +1096,19 @@ enum OpcodeServer
|
||||
SMSG_QUESTGIVER_OFFER_REWARD = 0x2427,
|
||||
SMSG_QUEST_GIVER_QUEST_COMPLETE = 0x55A4,
|
||||
SMSG_QUEST_GIVER_QUEST_DETAILS = 0x2425,
|
||||
SMSG_QUESTGIVER_QUEST_FAILED = 0x4236,
|
||||
SMSG_QUESTGIVER_QUEST_INVALID = 0x4016,
|
||||
SMSG_QUEST_GIVER_QUEST_FAILED = 0x4236,
|
||||
SMSG_QUEST_GIVER_INVALID_QUEST = 0x4016,
|
||||
SMSG_QUEST_GIVER_QUEST_LIST_MESSAGE = 0x0134,
|
||||
SMSG_QUEST_GIVER_REQUEST_ITEMS = 0x6236,
|
||||
SMSG_QUEST_GIVER_STATUS = 0x2115,
|
||||
SMSG_QUESTGIVER_STATUS_MULTIPLE = 0x4F25,
|
||||
SMSG_QUESTLOG_FULL = 0x0E36,
|
||||
SMSG_QUEST_GIVER_STATUS_MULTIPLE = 0x4F25,
|
||||
SMSG_QUEST_LOG_FULL = 0x0E36,
|
||||
SMSG_QUESTUPDATE_ADD_ITEM = 0x0000,
|
||||
SMSG_QUEST_UPDATE_ADD_CREDIT = 0x0D27,
|
||||
SMSG_QUEST_UPDATE_ADD_PVP_CREDIT = 0x4416,
|
||||
SMSG_QUESTUPDATE_COMPLETE = 0x2937,
|
||||
SMSG_QUESTUPDATE_FAILED = 0x6324,
|
||||
SMSG_QUESTUPDATE_FAILEDTIMER = 0x6427,
|
||||
SMSG_QUEST_UPDATE_COMPLETE = 0x2937,
|
||||
SMSG_QUEST_UPDATE_FAILED = 0x6324,
|
||||
SMSG_QUEST_UPDATE_FAILED_TIMER = 0x6427,
|
||||
SMSG_QUEST_NPC_QUERY_RESPONSE = 0x75A1,
|
||||
SMSG_QUEST_CONFIRM_ACCEPT = 0x6F07,
|
||||
SMSG_QUEST_FORCE_REMOVE = 0x6605,
|
||||
|
||||
Reference in New Issue
Block a user