51 SF_LOG_DEBUG(
"network",
"WORLD: sending SMSG_GROUP_INVITE");
98 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_GROUP_INVITE");
110 recvData.
ReadGuidMask(crossRealmGuid, 2, 5, 4, 0, 1, 6);
113 std::string realmName = recvData.
ReadString(realmLen);
115 std::string memberName = recvData.
ReadString(nameLen);
118 if (realmName.empty())
124 realmName = iter->second;
136 memberName = memberName.substr(0, memberName.find(
"-"));
251 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_GROUP_INVITE_RESPONSE");
254 bool unknown = recvData.
ReadBit();
255 bool accept = recvData.
ReadBit();
272 SF_LOG_ERROR(
"network",
"HandleGroupAcceptOpcode: player %s(%d) tried to accept an invite to his own group",
GetPlayer()->GetName().c_str(),
GetPlayer()->GetGUIDLow());
328 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_GROUP_UNINVITE_GUID");
344 std::string reason = recvData.
ReadString(reasonLen);
357 SF_LOG_ERROR(
"network",
"WorldSession::HandleGroupUninviteGuidOpcode: leader %s(%d) tried to uninvite himself from the group.",
387 player->UninviteFromGroup();
396 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_GROUP_SET_LEADER");
408 if (!group || !player)
421 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_GROUP_SET_ROLES");
429 recvData.
ReadGuidMask(targetGuid, 2, 0, 7, 4, 1, 3, 6, 5);
435 if (!tPlayer || !group)
475 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_GROUP_DISBAND");
508 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_LOOT_METHOD");
515 recvData >> lootMethod;
516 recvData >> lootThreshold;
517 recvData.
ReadGuidMask(lootMaster, 7, 1, 2, 0, 4, 5, 6, 3);
539 uint8 rollType, itemSlot;
541 recvData >> itemSlot;
542 recvData >> rollType;
569 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_MINIMAP_PING");
599 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_RANDOM_ROLL");
601 uint32 minimum, maximum, roll;
607 if (minimum > maximum || maximum > 10000)
612 roll = std::rand() % maximum + minimum;
634 SF_LOG_DEBUG(
"network",
"WORLD: Received MSG_RAID_TARGET_UPDATE");
641 recvData >> Symbol >> Index;
656 recvData.
ReadGuidMask(targetGuid, 3, 2, 1, 5, 0, 6, 7, 4);
665 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_GROUP_RAID_CONVERT");
694 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_GROUP_CHANGE_SUB_GROUP");
706 recvData >> PartyIndex;
709 recvData.
ReadGuidMask(TargetGUID, 1, 4, 6, 3, 7, 2, 0, 5);
728 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_GROUP_SWAP_SUB_GROUP");
738 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_GROUP_ASSISTANT_LEADER");
753 bool apply = recvData.
ReadBit();
765 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_SET_EVERYONE_IS_ASSISTANT");
775 bool apply = recvData.
ReadBit();
783 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_SET_PARTY_ASSIGNMENT");
793 uint8 Assignment, partyindex;
795 recvData >> Assignment;
796 recvData >> partyindex;
798 bool apply = recvData.
ReadBit();
821 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_RAID_READY_CHECK");
838 uint32 readyCheckDuration = 35000;
860 data <<
uint32(readyCheckDuration);
891 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_RAID_READY_CHECK_CONFIRM");
905 bool status = recvData.
ReadBit();
986 std::set<uint32>
const& phases = player->
GetPhases();
1019 if (player->
IsPvP())
1033 if (player->
isAFK())
1036 if (player->
isDND())
1039 databuff <<
uint16(playerStatus);
1132 databuff <<
uint8(0);
1164 databuff <<
uint8(0);
1241 databuff <<
uint32(phases.empty() ? 8 : 0);
1242 databuff <<
uint32(phases.size());
1243 for (std::set<uint32>::const_iterator itr = phases.begin(); itr != phases.end(); ++itr)
1254 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_REQUEST_PARTY_MEMBER_STATS");
1278 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_OPT_OUT_OF_LOOT");
1280 bool passOnLoot = recvData.
ReadBit();
1286 SF_LOG_ERROR(
"network",
"CMSG_OPT_OUT_OF_LOOT value<>0 for not-loaded character!");
1295 SF_LOG_DEBUG(
"network",
"WORLD: Received CMSG_GROUP_INITIATE_ROLE_POLL");
1306 data <<
uint8(Index);
@ ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED
@ ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED
@ GROUP_ASSIGN_MAINASSIST
@ GROUP_UPDATE_FLAG_PHASE
@ GROUP_UPDATE_FLAG_CUR_HP
@ GROUP_UPDATE_FLAG_PET_CUR_HP
@ GROUP_UPDATE_FLAG_POWER_TYPE
@ GROUP_UPDATE_FLAG_PET_CUR_POWER
@ GROUP_UPDATE_FLAG_PET_MAX_POWER
@ GROUP_UPDATE_FLAG_MAX_HP
@ GROUP_UPDATE_FLAG_VEHICLE_SEAT
@ GROUP_UPDATE_FLAG_STATUS
@ GROUP_UPDATE_FLAG_PET_POWER_TYPE
@ GROUP_UPDATE_FLAG_MAX_POWER
@ GROUP_UPDATE_FLAG_POSITION
@ GROUP_UPDATE_FLAG_PET_MODEL_ID
@ GROUP_UPDATE_FLAG_PET_NAME
@ GROUP_UPDATE_FLAG_LEVEL
@ GROUP_UPDATE_FLAG_PET_GUID
@ GROUP_UPDATE_FLAG_PET_MAX_HP
@ GROUP_UPDATE_FLAG_CUR_POWER
#define MAX_RAID_SUBGROUPS
#define SF_LOG_DEBUG(filterType__,...)
#define SF_LOG_ERROR(filterType__,...)
uint32 GUID_LOPART(uint64 x)
bool normalizePlayerName(std::string &name)
@ GROUP_REMOVEMETHOD_KICK
@ GROUP_REMOVEMETHOD_LEAVE
@ ERR_TARGET_NOT_IN_GROUP_S
@ ERR_TARGET_NOT_IN_INSTANCE_S
@ ERR_PLAYER_WRONG_FACTION
@ UNIT_BYTE2_FLAG_FFA_PVP
@ UNIT_FIELD_SHAPESHIFT_FORM
@ PLAYER_FIELD_PLAYER_FLAGS
void WriteGuidBytes(const ObjectGuid &guid, Offsets... offsets)
bool WriteBit(uint32 bit)
void WriteGuidMask(const ObjectGuid &guid, Offsets... offsets)
void WriteString(std::string const &str)
uint32 ReadBits(size_t bits)
void ReadGuidBytes(ObjectGuid &guid, Offsets... offsets)
void ReadByteSeq(uint8 &b)
std::string ReadString(size_t length)
void ReadGuidMask(ObjectGuid &guid, Offsets... offsets)
void WriteBits(T value, size_t bits)
void WriteByteSeq(uint8 b)
void BroadcastGroupUpdate(void)
void ReadyCheckMemberHasResponded(uint64 guid)
bool AddLeaderInvite(Player *player)
void SendTargetIconList(WorldSession *session)
void SetTargetIcon(uint8 id, ObjectGuid whoGuid, ObjectGuid targetGuid, uint8 Index)
void SetLootMethod(LootMethod method)
void ChangeFlagEveryoneAssistant(bool apply)
void SetLootThreshold(ItemQualities threshold)
void Disband(bool hideDestroy=false)
bool AddMember(Player *player)
void SetGroupMemberFlag(uint64 guid, bool apply, GroupMemberFlags flag)
void BroadcastPacket(WorldPacket *packet, bool ignorePlayersInBGRaid, int group=-1, uint64 ignore=0)
void RemoveInvite(Player *player)
bool ReadyCheckInProgress() const
uint32 GetMembersCount() const
void SetLooterGuid(uint64 guid)
bool ReadyCheckAllResponded() const
bool IsMember(uint64 guid) const
Player * GetInvited(uint64 guid) const
bool HasFreeSlotSubGroup(uint8 subgroup) const
void SetMemberRole(uint64 guid, uint32 role)
bool AddInvite(Player *player)
void CountRollVote(uint64 playerGUID, uint64 Guid, RollType Choise)
uint32 GetMemberRole(uint64 guid) const
bool Create(Player *leader)
void ReadyCheckResetResponded()
void ReadyCheck(bool state)
bool IsAssistant(uint64 guid) const
uint64 GetLeaderGUID() const
bool IsLeader(uint64 guid) const
void SendReadyCheckCompleted()
void RemoveUniqueGroupMemberFlag(GroupMemberFlags flag)
void ChangeMembersGroup(uint64 guid, uint8 group)
void ChangeLeader(uint64 guid)
static T * Find(uint64 guid)
static Player * FindPlayer(uint64)
bool HasFlag(uint16 index, uint32 flag) const
bool HasByteFlag(uint16 index, uint8 offset, uint8 flag) const
WorldSession * GetSession() const
void SetPassOnGroupLoot(bool bPassOnGroupLoot)
bool IsGameMaster() const
void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1=0, uint64 miscValue2=0, uint64 miscValue3=0, Unit *unit=NULL)
PartyResult CanUninviteFromGroup() const
static void RemoveFromGroup(Group *group, uint64 guid, RemoveMethod method=GROUP_REMOVEMETHOD_DEFAULT, uint64 kicker=0, const char *reason=NULL)
PlayerSocial * GetSocial()
uint32 GetGroupUpdateFlag() const
void SetReadyCheckTimer(uint32 timer)
DifficultyID GetDungeonDifficulty() const
Group * GetOriginalGroup()
bool HasIgnore(uint32 ignore_guid)
Vehicle * GetVehicle() const
uint32 GetMaxHealth() const
int32 GetMaxPower(Powers power) const
uint32 GetDisplayId() const
int32 GetPower(Powers power) const
Powers getPowerType() const
std::set< uint32 > const & GetPhases() const
uint32 GetInstanceId() const
std::string const & GetName() const
MovementInfo m_movementInfo
void Initialize(Opcodes opcode, size_t newres=200)
void HandleGroupUninviteGuidOpcode(WorldPacket &recvPacket)
void HandleMinimapPingOpcode(WorldPacket &recvData)
void HandleGroupAssistantLeaderOpcode(WorldPacket &recvData)
void HandleRandomRollOpcode(WorldPacket &recvData)
void HandleGroupEveryoneIsAssistantOpcode(WorldPacket &recvData)
void HandleSetPartyAssignmentOpcode(WorldPacket &recvData)
void HandleGroupSetRolesOpcode(WorldPacket &recvData)
void HandleGroupRaidConvertOpcode(WorldPacket &recvData)
void HandleRaidTargetUpdateOpcode(WorldPacket &recvData)
void HandleRaidReadyCheckConfirmOpcode(WorldPacket &recvData)
void HandleLootMethodOpcode(WorldPacket &recvPacket)
Player * GetPlayer() const
void HandleGroupInviteOpcode(WorldPacket &recvPacket)
void HandleLootRoll(WorldPacket &recvData)
void HandleGroupDisbandOpcode(WorldPacket &recvPacket)
void HandleOptOutOfLootOpcode(WorldPacket &recvData)
void HandleGroupChangeSubGroupOpcode(WorldPacket &recvData)
void HandleGroupInitiatePollRole(WorldPacket &recvData)
void BuildPartyMemberStatsChangedPacket(Player *player, WorldPacket *data)
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
void HandleGroupSwapSubGroupOpcode(WorldPacket &recvData)
void HandleGroupSetLeaderOpcode(WorldPacket &recvPacket)
void HandleRequestPartyMemberStatsOpcode(WorldPacket &recvData)
void SendGroupInviteNotification(const std::string &inviterName, const std::string &realmName, bool inGroup)
void HandleGroupInviteResponseOpcode(WorldPacket &recvPacket)
void SendPartyResult(PartyOperation operation, std::string const &member, PartyResult res, uint32 val=0)
void HandleRaidReadyCheckOpcode(WorldPacket &recvData)
void SendRolePollInform(ObjectGuid guid, uint8 Index)
void HandleRaidReadyCheckFinishedOpcode(WorldPacket &recvData)
void HandleRequestRaidInfoOpcode(WorldPacket &recvData)
@ SMSG_PARTY_COMMAND_RESULT
@ SMSG_RAID_READY_CHECK_CONFIRM
@ SMSG_GROUP_ROLE_POLL_INFORM
@ SMSG_PARTY_MEMBER_STATE
RealmNameMap realmNameStore
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP
@ LFG_STATE_FINISHED_DUNGEON
struct MovementInfo::TransportInfo transport
float GetPositionZ() const
float GetPositionX() const
float GetPositionY() const