Merge pull request #14593 from DJScias/factionopcodes
Core/PacketIO: Updated and enabled CMSG_SET_FACTION_AT_WAR, CMSG_SET_FAC...
This commit is contained in:
@@ -1156,15 +1156,14 @@ void WorldSession::SendFeatureSystemStatus()
|
||||
SendPacket(features.Write());
|
||||
}
|
||||
|
||||
void WorldSession::HandleSetFactionAtWar(WorldPacket& recvData)
|
||||
void WorldSession::HandleSetFactionAtWar(WorldPackets::Character::SetFactionAtWar& packet)
|
||||
{
|
||||
uint32 repListID;
|
||||
uint8 flag;
|
||||
GetPlayer()->GetReputationMgr().SetAtWar(packet.FactionIndex, true);
|
||||
}
|
||||
|
||||
recvData >> repListID;
|
||||
recvData >> flag;
|
||||
|
||||
GetPlayer()->GetReputationMgr().SetAtWar(repListID, flag != 0);
|
||||
void WorldSession::HandleSetFactionNotAtWar(WorldPackets::Character::SetFactionNotAtWar& packet)
|
||||
{
|
||||
GetPlayer()->GetReputationMgr().SetAtWar(packet.FactionIndex, false);
|
||||
}
|
||||
|
||||
//I think this function is never used :/ I dunno, but i guess this opcode not exists
|
||||
@@ -1205,20 +1204,14 @@ void WorldSession::HandleTutorialFlag(WorldPackets::Misc::TutorialSetFlag& packe
|
||||
}
|
||||
}
|
||||
|
||||
void WorldSession::HandleSetWatchedFactionOpcode(WorldPacket& recvData)
|
||||
void WorldSession::HandleSetWatchedFactionOpcode(WorldPackets::Character::SetWatchedFaction& packet)
|
||||
{
|
||||
uint32 fact;
|
||||
recvData >> fact;
|
||||
GetPlayer()->SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, fact);
|
||||
GetPlayer()->SetUInt32Value(PLAYER_FIELD_WATCHED_FACTION_INDEX, packet.FactionIndex);
|
||||
}
|
||||
|
||||
void WorldSession::HandleSetFactionInactiveOpcode(WorldPacket& recvData)
|
||||
void WorldSession::HandleSetFactionInactiveOpcode(WorldPackets::Character::SetFactionInactive& packet)
|
||||
{
|
||||
uint32 replistid;
|
||||
uint8 inactive;
|
||||
recvData >> replistid >> inactive;
|
||||
|
||||
_player->GetReputationMgr().SetInactive(replistid, inactive != 0);
|
||||
_player->GetReputationMgr().SetInactive(packet.Index, packet.State);
|
||||
}
|
||||
|
||||
void WorldSession::HandleRequestForcedReactionsOpcode(WorldPackets::Reputation::RequestForcedReactions& /*requestForcedReactions*/)
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "ScriptMgr.h"
|
||||
#include "Opcodes.h"
|
||||
#include "WorldSession.h"
|
||||
#include "CharacterPackets.h"
|
||||
|
||||
const int32 ReputationMgr::PointsInRank[MAX_REPUTATION_RANK] = {36000, 3000, 3000, 3000, 6000, 12000, 21000, 1000};
|
||||
|
||||
@@ -225,15 +226,15 @@ void ReputationMgr::SendStates()
|
||||
SendState(&(itr->second));
|
||||
}
|
||||
|
||||
void ReputationMgr::SendVisible(FactionState const* faction, bool visible /* = true*/) const
|
||||
void ReputationMgr::SendVisible(FactionState const* faction, bool visible) const
|
||||
{
|
||||
if (_player->GetSession()->PlayerLoading())
|
||||
return;
|
||||
|
||||
// make faction visible/not visible in reputation list at client
|
||||
WorldPacket data(visible ? SMSG_SET_FACTION_VISIBLE : SMSG_SET_FACTION_NOT_VISIBLE, 4);
|
||||
data << faction->ReputationListID;
|
||||
_player->SendDirectMessage(&data);
|
||||
WorldPackets::Character::SetFactionVisible packet(visible);
|
||||
packet.FactionIndex = faction->ReputationListID;
|
||||
_player->SendDirectMessage(packet.Write());
|
||||
}
|
||||
|
||||
void ReputationMgr::Initialize()
|
||||
|
||||
@@ -464,3 +464,30 @@ WorldPacket const* WorldPackets::Character::TitleEarned::Write()
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::Character::SetFactionAtWar::Read()
|
||||
{
|
||||
_worldPacket >> FactionIndex;
|
||||
}
|
||||
|
||||
void WorldPackets::Character::SetFactionNotAtWar::Read()
|
||||
{
|
||||
_worldPacket >> FactionIndex;
|
||||
}
|
||||
|
||||
void WorldPackets::Character::SetFactionInactive::Read()
|
||||
{
|
||||
_worldPacket >> Index;
|
||||
State = _worldPacket.ReadBit();
|
||||
}
|
||||
|
||||
void WorldPackets::Character::SetWatchedFaction::Read()
|
||||
{
|
||||
_worldPacket >> FactionIndex;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Character::SetFactionVisible::Write()
|
||||
{
|
||||
_worldPacket << FactionIndex;
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
@@ -635,6 +635,57 @@ namespace WorldPackets
|
||||
|
||||
uint32 Index = 0;
|
||||
};
|
||||
|
||||
class SetFactionAtWar final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
SetFactionAtWar(WorldPacket&& packet) : ClientPacket(CMSG_SET_FACTION_AT_WAR, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
uint8 FactionIndex = 0;
|
||||
};
|
||||
|
||||
class SetFactionNotAtWar final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
SetFactionNotAtWar(WorldPacket&& packet) : ClientPacket(CMSG_SET_FACTION_NOT_AT_WAR, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
uint8 FactionIndex = 0;
|
||||
};
|
||||
|
||||
class SetFactionInactive final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
SetFactionInactive(WorldPacket&& packet) : ClientPacket(CMSG_SET_FACTION_INACTIVE, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
uint32 Index = 0;
|
||||
bool State = false;
|
||||
};
|
||||
|
||||
class SetWatchedFaction final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
SetWatchedFaction(WorldPacket&& packet) : ClientPacket(CMSG_SET_WATCHED_FACTION, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
uint32 FactionIndex = 0;
|
||||
};
|
||||
|
||||
class SetFactionVisible : public ServerPacket
|
||||
{
|
||||
public:
|
||||
SetFactionVisible(bool visible) : ServerPacket(visible ? SMSG_SET_FACTION_VISIBLE : SMSG_SET_FACTION_NOT_VISIBLE, 4) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
uint32 FactionIndex = 0;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -723,9 +723,9 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_SET_DIFFICULTY_ID, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_SET_DUNGEON_DIFFICULTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::SetDungeonDifficulty, &WorldSession::HandleSetDungeonDifficultyOpcode);
|
||||
DEFINE_HANDLER(CMSG_SET_EVERYONE_IS_ASSISTANT, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_FACTION_AT_WAR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionAtWar );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_FACTION_INACTIVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionInactiveOpcode );
|
||||
DEFINE_HANDLER(CMSG_SET_FACTION_NOT_AT_WAR, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_SET_FACTION_AT_WAR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::SetFactionAtWar, &WorldSession::HandleSetFactionAtWar);
|
||||
DEFINE_HANDLER(CMSG_SET_FACTION_INACTIVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::SetFactionInactive, &WorldSession::HandleSetFactionInactiveOpcode);
|
||||
DEFINE_HANDLER(CMSG_SET_FACTION_NOT_AT_WAR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::SetFactionNotAtWar, &WorldSession::HandleSetFactionNotAtWar);
|
||||
DEFINE_HANDLER(CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_SET_LFG_BONUS_FACTION_ID, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_LOOT_METHOD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLootMethodOpcode );
|
||||
@@ -749,7 +749,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_SET_TRADE_GOLD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Trade::SetTradeGold, &WorldSession::HandleSetTradeGoldOpcode);
|
||||
DEFINE_HANDLER(CMSG_SET_TRADE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Trade::SetTradeItem, &WorldSession::HandleSetTradeItemOpcode);
|
||||
DEFINE_HANDLER(CMSG_SET_USING_PARTY_GARRISON, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_WATCHED_FACTION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetWatchedFactionOpcode );
|
||||
DEFINE_HANDLER(CMSG_SET_WATCHED_FACTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::SetWatchedFaction, &WorldSession::HandleSetWatchedFactionOpcode);
|
||||
DEFINE_HANDLER(CMSG_SHOWING_CLOAK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::ShowingCloak, &WorldSession::HandleShowingCloakOpcode);
|
||||
DEFINE_HANDLER(CMSG_SHOWING_HELM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Character::ShowingHelm, &WorldSession::HandleShowingHelmOpcode);
|
||||
DEFINE_HANDLER(CMSG_SHOW_TRADE_SKILL, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
@@ -1609,9 +1609,9 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_DF_FAST_LAUNCH_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_DUNGEON_DIFFICULTY, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_AT_WAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_NOT_VISIBLE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_NOT_VISIBLE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_STANDING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_VISIBLE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FACTION_VISIBLE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FLAT_SPELL_MODIFIER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_FORCED_REACTIONS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_ITEM_PURCHASE_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
|
||||
@@ -152,6 +152,10 @@ namespace WorldPackets
|
||||
class ShowingCloak;
|
||||
class ShowingHelm;
|
||||
class SetTitle;
|
||||
class SetFactionAtWar;
|
||||
class SetFactionNotAtWar;
|
||||
class SetFactionInactive;
|
||||
class SetWatchedFaction;
|
||||
|
||||
enum class LoginFailureReason : uint8;
|
||||
}
|
||||
@@ -991,10 +995,11 @@ class WorldSession
|
||||
|
||||
void HandleAreaTriggerOpcode(WorldPackets::Misc::AreaTrigger& packet);
|
||||
|
||||
void HandleSetFactionAtWar(WorldPacket& recvData);
|
||||
void HandleSetFactionAtWar(WorldPackets::Character::SetFactionAtWar& packet);
|
||||
void HandleSetFactionNotAtWar(WorldPackets::Character::SetFactionNotAtWar& packet);
|
||||
void HandleSetFactionCheat(WorldPacket& recvData);
|
||||
void HandleSetWatchedFactionOpcode(WorldPacket& recvData);
|
||||
void HandleSetFactionInactiveOpcode(WorldPacket& recvData);
|
||||
void HandleSetWatchedFactionOpcode(WorldPackets::Character::SetWatchedFaction& packet);
|
||||
void HandleSetFactionInactiveOpcode(WorldPackets::Character::SetFactionInactive& packet);
|
||||
void HandleRequestForcedReactionsOpcode(WorldPackets::Reputation::RequestForcedReactions& requestForcedReactions);
|
||||
|
||||
void HandleUpdateAccountData(WorldPackets::ClientConfig::UserClientUpdateAccountData& packet);
|
||||
|
||||
Reference in New Issue
Block a user