Add Tier 3 commands: guild management, PvP, ready check, and duel forfeit

- Guild commands: /ginfo, /groster, /gmotd, /gpromote, /gdemote, /gquit, /ginvite
- PvP toggle: /pvp to toggle PvP flag
- Ready check system: /readycheck, /ready, /notready for group coordination
- Duel forfeit: /yield, /forfeit, /surrender to cancel active duels
This commit is contained in:
kelsi davis 2026-02-07 13:09:12 -08:00
parent acef7ccbec
commit 85a7d66c4e
6 changed files with 492 additions and 0 deletions

View file

@ -235,6 +235,25 @@ public:
void followTarget();
void assistTarget();
// PvP
void togglePvp();
// Guild commands
void requestGuildInfo();
void requestGuildRoster();
void setGuildMotd(const std::string& motd);
void promoteGuildMember(const std::string& playerName);
void demoteGuildMember(const std::string& playerName);
void leaveGuild();
void inviteToGuild(const std::string& playerName);
// Ready check
void initiateReadyCheck();
void respondToReadyCheck(bool ready);
// Duel
void forfeitDuel();
// ---- Phase 1: Name queries ----
void queryPlayerName(uint64_t guid);
void queryCreatureInfo(uint32_t entry, uint64_t guid);

View file

@ -85,6 +85,31 @@ enum class Opcode : uint16_t {
CMSG_SHOWING_HELM = 0x2B9,
CMSG_SHOWING_CLOAK = 0x2BA,
// ---- PvP ----
CMSG_TOGGLE_PVP = 0x253,
// ---- Guild ----
CMSG_GUILD_INVITE = 0x082,
CMSG_GUILD_ACCEPT = 0x084,
CMSG_GUILD_DECLINE_INVITATION = 0x085,
CMSG_GUILD_INFO = 0x087,
CMSG_GUILD_GET_ROSTER = 0x089,
CMSG_GUILD_PROMOTE_MEMBER = 0x08B,
CMSG_GUILD_DEMOTE_MEMBER = 0x08C,
CMSG_GUILD_LEAVE = 0x08D,
CMSG_GUILD_MOTD = 0x091,
SMSG_GUILD_INFO = 0x088,
SMSG_GUILD_ROSTER = 0x08A,
// ---- Ready Check ----
MSG_RAID_READY_CHECK = 0x322,
MSG_RAID_READY_CHECK_CONFIRM = 0x3AE,
// ---- Duel ----
CMSG_DUEL_ACCEPTED = 0x16C,
CMSG_DUEL_CANCELLED = 0x16D,
SMSG_DUEL_REQUESTED = 0x167,
// ---- Random Roll ----
MSG_RANDOM_ROLL = 0x1FB,

View file

@ -802,6 +802,88 @@ public:
static network::Packet build(bool show);
};
// ============================================================
// PvP
// ============================================================
/** CMSG_TOGGLE_PVP packet builder */
class TogglePvpPacket {
public:
static network::Packet build();
};
// ============================================================
// Guild Commands
// ============================================================
/** CMSG_GUILD_INFO packet builder */
class GuildInfoPacket {
public:
static network::Packet build();
};
/** CMSG_GUILD_GET_ROSTER packet builder */
class GuildRosterPacket {
public:
static network::Packet build();
};
/** CMSG_GUILD_MOTD packet builder */
class GuildMotdPacket {
public:
static network::Packet build(const std::string& motd);
};
/** CMSG_GUILD_PROMOTE_MEMBER packet builder */
class GuildPromotePacket {
public:
static network::Packet build(const std::string& playerName);
};
/** CMSG_GUILD_DEMOTE_MEMBER packet builder */
class GuildDemotePacket {
public:
static network::Packet build(const std::string& playerName);
};
/** CMSG_GUILD_LEAVE packet builder */
class GuildLeavePacket {
public:
static network::Packet build();
};
/** CMSG_GUILD_INVITE packet builder */
class GuildInvitePacket {
public:
static network::Packet build(const std::string& playerName);
};
// ============================================================
// Ready Check
// ============================================================
/** MSG_RAID_READY_CHECK packet builder */
class ReadyCheckPacket {
public:
static network::Packet build();
};
/** MSG_RAID_READY_CHECK_CONFIRM packet builder */
class ReadyCheckConfirmPacket {
public:
static network::Packet build(bool ready);
};
// ============================================================
// Duel
// ============================================================
/** CMSG_DUEL_CANCELLED packet builder */
class DuelCancelPacket {
public:
static network::Packet build();
};
// ============================================================
// Random Roll
// ============================================================