mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-02 15:53:51 +00:00
Add quest opcodes, fix gossip select packet, and NPC combat animations
Fix CMSG_GOSSIP_SELECT_OPTION missing menuId field (was causing ByteBufferException). Add 12 quest opcodes and clickable quest items in gossip dialog. NPC attack/death animation callbacks now work for both single-player and server-spawned creatures, and SMSG_ATTACKERSTATEUPDATE triggers NPC swing animations.
This commit is contained in:
parent
b5336d784a
commit
60be428250
7 changed files with 84 additions and 8 deletions
|
|
@ -321,6 +321,7 @@ public:
|
|||
// NPC Gossip
|
||||
void interactWithNpc(uint64_t guid);
|
||||
void selectGossipOption(uint32_t optionId);
|
||||
void selectGossipQuest(uint32_t questId);
|
||||
void closeGossip();
|
||||
bool isGossipWindowOpen() const { return gossipWindowOpen; }
|
||||
const GossipMessageData& getCurrentGossip() const { return currentGossip; }
|
||||
|
|
|
|||
|
|
@ -133,6 +133,20 @@ enum class Opcode : uint16_t {
|
|||
SMSG_GOSSIP_COMPLETE = 0x17E,
|
||||
SMSG_NPC_TEXT_UPDATE = 0x180,
|
||||
|
||||
// ---- Phase 5: Quests ----
|
||||
CMSG_QUESTGIVER_STATUS_QUERY = 0x182,
|
||||
SMSG_QUESTGIVER_STATUS = 0x183,
|
||||
CMSG_QUESTGIVER_HELLO = 0x184,
|
||||
CMSG_QUESTGIVER_QUERY_QUEST = 0x186,
|
||||
SMSG_QUESTGIVER_QUEST_DETAILS = 0x188,
|
||||
CMSG_QUESTGIVER_ACCEPT_QUEST = 0x189,
|
||||
CMSG_QUESTGIVER_COMPLETE_QUEST = 0x18A,
|
||||
SMSG_QUESTGIVER_REQUEST_ITEMS = 0x18B,
|
||||
CMSG_QUESTGIVER_REQUEST_REWARD = 0x18C,
|
||||
SMSG_QUESTGIVER_OFFER_REWARD = 0x18D,
|
||||
CMSG_QUESTGIVER_CHOOSE_REWARD = 0x18E,
|
||||
SMSG_QUESTGIVER_QUEST_COMPLETE = 0x191,
|
||||
|
||||
// ---- Phase 5: Vendor ----
|
||||
CMSG_LIST_INVENTORY = 0x19E,
|
||||
SMSG_LIST_INVENTORY = 0x19F,
|
||||
|
|
|
|||
|
|
@ -1161,7 +1161,7 @@ public:
|
|||
/** CMSG_GOSSIP_SELECT_OPTION packet builder */
|
||||
class GossipSelectOptionPacket {
|
||||
public:
|
||||
static network::Packet build(uint64_t npcGuid, uint32_t optionId, const std::string& code = "");
|
||||
static network::Packet build(uint64_t npcGuid, uint32_t menuId, uint32_t optionId, const std::string& code = "");
|
||||
};
|
||||
|
||||
/** SMSG_GOSSIP_MESSAGE parser */
|
||||
|
|
@ -1170,6 +1170,18 @@ public:
|
|||
static bool parse(network::Packet& packet, GossipMessageData& data);
|
||||
};
|
||||
|
||||
/** CMSG_QUESTGIVER_QUERY_QUEST packet builder */
|
||||
class QuestgiverQueryQuestPacket {
|
||||
public:
|
||||
static network::Packet build(uint64_t npcGuid, uint32_t questId);
|
||||
};
|
||||
|
||||
/** CMSG_QUESTGIVER_ACCEPT_QUEST packet builder */
|
||||
class QuestgiverAcceptQuestPacket {
|
||||
public:
|
||||
static network::Packet build(uint64_t npcGuid, uint32_t questId);
|
||||
};
|
||||
|
||||
// ============================================================
|
||||
// Phase 5: Vendor
|
||||
// ============================================================
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue