mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-15 20:52:22 -04:00
Core/PacketIO: updated SMSG_CONVERT_RUNE and SMSG_RESYNC_RUNES
This commit is contained in:
@@ -24520,22 +24520,24 @@ void Player::ConvertRune(uint8 index, RuneType newType)
|
||||
{
|
||||
SetCurrentRune(index, newType);
|
||||
|
||||
WorldPacket data(SMSG_CONVERT_RUNE, 2);
|
||||
data << uint8(index);
|
||||
data << uint8(newType);
|
||||
GetSession()->SendPacket(&data);
|
||||
WorldPackets::Spells::ConvertRune data;
|
||||
data.Index = index;
|
||||
data.Rune = newType;
|
||||
GetSession()->SendPacket(data.Write());
|
||||
}
|
||||
|
||||
void Player::ResyncRunes(uint8 count)
|
||||
{
|
||||
WorldPacket data(SMSG_RESYNC_RUNES, 4 + count * 2);
|
||||
data << uint32(count);
|
||||
WorldPackets::Spells::ResyncRunes data(count);
|
||||
|
||||
for (uint32 i = 0; i < count; ++i)
|
||||
{
|
||||
data << uint8(GetCurrentRune(i)); // rune type
|
||||
data << uint8(255 - (GetRuneCooldown(i) * 51)); // passed cooldown time (0-255)
|
||||
WorldPackets::Spells::ResyncRunes::ResyncRune rune;
|
||||
rune.RuneType = GetCurrentRune(i); // rune type
|
||||
rune.Cooldown = uint8(255 - (GetRuneCooldown(i) * 51)); // passed cooldown time (0-255)
|
||||
data.Runes.push_back(rune);
|
||||
}
|
||||
GetSession()->SendPacket(&data);
|
||||
GetSession()->SendPacket(data.Write());
|
||||
}
|
||||
|
||||
void Player::AddRunePower(uint8 index)
|
||||
|
||||
@@ -745,3 +745,23 @@ void WorldPackets::Spells::SpellClick::Read()
|
||||
_worldPacket >> SpellClickUnitGuid;
|
||||
TryAutoDismount = _worldPacket.ReadBit();
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Spells::ConvertRune::Write()
|
||||
{
|
||||
_worldPacket << uint8(Index);
|
||||
_worldPacket << uint8(Rune);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Spells::ResyncRunes::Write()
|
||||
{
|
||||
_worldPacket << uint32(Runes.size());
|
||||
for (auto const& rune : Runes)
|
||||
{
|
||||
_worldPacket << uint8(rune.RuneType);
|
||||
_worldPacket << uint8(rune.Cooldown);
|
||||
}
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
@@ -749,6 +749,33 @@ namespace WorldPackets
|
||||
ObjectGuid SpellClickUnitGuid;
|
||||
bool TryAutoDismount = false;
|
||||
};
|
||||
|
||||
class ConvertRune final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
ConvertRune() : ServerPacket(SMSG_CONVERT_RUNE, 1 + 1) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
uint8 Index = 0;
|
||||
uint8 Rune = 0;
|
||||
};
|
||||
|
||||
class ResyncRunes final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
struct ResyncRune
|
||||
{
|
||||
uint8 RuneType = 0;
|
||||
uint8 Cooldown = 0;
|
||||
};
|
||||
|
||||
ResyncRunes(size_t size) : ServerPacket(SMSG_RESYNC_RUNES, 4 + 2 * size) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::vector<ResyncRune> Runes;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1033,7 +1033,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSOLE_WRITE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONTACT_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONTROL_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONVERT_RUNE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONVERT_RUNE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_COOLDOWN_CHEAT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_COOLDOWN_EVENT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_LOCATION, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
@@ -1566,7 +1566,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_COMMS, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_TOKEN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESURRECT_REQUEST, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESYNC_RUNES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESYNC_RUNES, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_CHANGED_INFORM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_CHOSEN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_POLL_INFORM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
|
||||
Reference in New Issue
Block a user