56 SF_LOG_DEBUG(
"bg.battleground",
"Group::~Group: battleground group being deleted.");
59 else SF_LOG_ERROR(
"misc",
"Group::~Group: battleground group is not linked to the correct battleground.");
73 for (
uint8 i = 0; i < 15; ++i)
75 itr2->second.save->RemoveGroup(
this);
191 member.
group = subgroup;
192 member.
flags = memberFlags;
193 member.
roles = roles;
250 player->UpdateForQuestWorldObjects();
281 player->UpdateForQuestWorldObjects();
328 (*itr)->SetGroupInvite(NULL);
337 if ((*itr) && (*itr)->GetGUID() == guid)
347 if ((*itr) && (*itr)->GetName() == name)
359 bool groupFound =
false;
376 member.
group = subGroup;
460 if (itr->GetSource() == player)
463 if (
Player* member = itr->GetSource())
468 member->BuildValuesUpdateBlockForPlayer(&groupData, player);
472 if (member->HaveAtClient(player))
480 member->SendDirectMessage(&newDataPacket);
505 sScriptMgr->OnGroupRemoveMember(
this, guid, method, kicker, reason);
559 for (Rolls::iterator it =
RollId.begin(); it !=
RollId.end(); ++it)
562 Roll::PlayerVote::iterator itr2 = roll->
playerVote.find(guid);
608 if (!mapId || !leader || (leader->
IsAlive() && leader->
GetMapId() != mapId))
648 for (
uint8 i = 0; i < 15; ++i)
654 if (itr->second.perm && !
sMapMgr->FindMap(itr->first, itr->second.save->GetInstanceId()))
658 stmt->
setUInt32(1, itr->second.save->GetInstanceId());
661 itr->second.save->RemoveGroup(
this);
704 uint8 const lfgQueueId = wasLFGGroup ?
sLFGMgr->GetQueueId(lfgGroupGuid) : 0;
800 data <<
uint32(countDown);
804 for (Roll::PlayerVote::const_iterator itr = r.
playerVote.begin(); itr != r.
playerVote.end(); ++itr)
828 data <<
uint32(countDown);
832 data <<
uint8(voteMask);
841 data <<
uint64(sourceGuid);
843 data <<
uint64(targetGuid);
847 data <<
uint32(rollNumber);
848 data <<
uint8(rollType);
851 for (Roll::PlayerVote::const_iterator itr = roll.
playerVote.begin(); itr != roll.
playerVote.end(); ++itr)
865 data <<
uint64(sourceGuid);
870 data <<
uint64(targetGuid);
871 data <<
uint32(rollNumber);
872 data <<
uint8(rollType);
874 for (Roll::PlayerVote::const_iterator itr = roll.
playerVote.begin(); itr != roll.
playerVote.end(); ++itr)
894 for (Roll::PlayerVote::const_iterator itr = roll.
playerVote.begin(); itr != roll.
playerVote.end(); ++itr)
917 if (masterLooterGuid)
961 if (masterLooterGuid)
987 std::vector<LootItem>::iterator i;
991 for (i = loot->
items.begin(); i != loot->
items.end(); ++i, ++itemSlot)
996 item =
sObjectMgr->GetItemTemplate(i->itemid);
1007 Roll* r =
new Roll(newitemGUID, *i);
1012 Player* member = itr->GetSource();
1015 if (i->AllowedForPlayer(member))
1040 loot->
items[itemSlot].is_blocked =
true;
1045 for (Roll::PlayerVote::const_iterator itr = r->
playerVote.begin(); itr != r->
playerVote.end(); ++itr)
1062 creature->m_groupLootTimer = 60000;
1063 creature->lootingGroupLowGUID =
GetLowGUID();
1067 go->m_groupLootTimer = 60000;
1075 i->is_underthreshold =
true;
1080 if (!i->follow_loot_rules)
1083 item =
sObjectMgr->GetItemTemplate(i->itemid);
1091 Roll* r =
new Roll(newitemGUID, *i);
1096 Player* member = itr->GetSource();
1100 if (i->AllowedForPlayer(member))
1123 creature->m_groupLootTimer = 60000;
1124 creature->lootingGroupLowGUID =
GetLowGUID();
1128 go->m_groupLootTimer = 60000;
1141 for (std::vector<LootItem>::iterator i = loot->
items.begin(); i != loot->
items.end(); ++i, ++itemSlot)
1146 item =
sObjectMgr->GetItemTemplate(i->itemid);
1152 Roll* r =
new Roll(newitemGUID, *i);
1156 Player* playerToRoll = itr->GetSource();
1157 if (!playerToRoll || !playerToRoll->
GetSession())
1160 bool allowedForPlayer = i->AllowedForPlayer(playerToRoll);
1185 loot->
items[itemSlot].is_blocked =
true;
1188 for (Roll::PlayerVote::const_iterator itr = r->
playerVote.begin(); itr != r->
playerVote.end(); ++itr)
1204 creature->m_groupLootTimer = 60000;
1205 creature->lootingGroupLowGUID =
GetLowGUID();
1209 go->m_groupLootTimer = 60000;
1217 i->is_underthreshold =
true;
1220 for (std::vector<LootItem>::iterator i = loot->
quest_items.begin(); i != loot->
quest_items.end(); ++i, ++itemSlot)
1222 if (!i->follow_loot_rules)
1225 item =
sObjectMgr->GetItemTemplate(i->itemid);
1227 Roll* r =
new Roll(newitemGUID, *i);
1231 Player* playerToRoll = itr->GetSource();
1232 if (!playerToRoll || !playerToRoll->
GetSession())
1235 bool allowedForPlayer = i->AllowedForPlayer(playerToRoll);
1251 for (Roll::PlayerVote::const_iterator itr = r->
playerVote.begin(); itr != r->
playerVote.end(); ++itr)
1267 creature->m_groupLootTimer = 60000;
1268 creature->lootingGroupLowGUID =
GetLowGUID();
1272 go->m_groupLootTimer = 60000;
1283 SF_LOG_DEBUG(
"network",
"Group::MasterLoot (SMSG_LOOT_MASTER_LIST)");
1294 Player* looter = itr->GetSource();
1312 Player* looter = itr->GetSource();
1327 Player* looter = itr->GetSource();
1335 Rolls::iterator rollI =
GetRoll(Guid);
1336 if (rollI ==
RollId.end())
1338 Roll* roll = *rollI;
1340 Roll::PlayerVote::iterator itr = roll->
playerVote.find(playerGUID);
1380 for (Rolls::iterator itr =
RollId.begin(); itr !=
RollId.end();)
1382 if ((*itr)->getLoot() == pLoot)
1394 Roll* roll = *rollI;
1411 for (Roll::PlayerVote::const_iterator itr = roll->
playerVote.begin(); itr != roll->
playerVote.end(); ++itr)
1416 uint8 randomN = std::rand() % 100 + 1;
1418 if (maxresul < randomN)
1420 maxguid = itr->first;
1458 Roll::PlayerVote::iterator itr;
1464 uint8 randomN = std::rand() % 100 + 1;
1466 if (maxresul < randomN)
1468 maxguid = itr->first;
1531 if (targetGuid != 0)
1559 data <<
uint8(Index);
1589 data <<
uint8(Index);
1643 data <<
uint8(0x10);
1666 uint8 groupPosition = 0;
1671 if (citr->group != slot->
group)
1674 if (citr->guid == slot->
guid)
1701 std::string memberName = citr->name;
1720 memberData <<
uint8(citr->roles);
1721 memberData <<
uint8(onlineState);
1728 memberData <<
uint8(citr->group);
1730 memberData <<
uint8(citr->flags);
1801 data <<
uint32(groupPosition);
1886 member = itr->GetSource();
1896 Player* player = itr->GetSource();
1897 if (!player || (ignore != 0 && player->
GetGUID() == ignore) || (ignorePlayersInBGRaid && player->
GetGroup() !=
this))
1901 if (session && (group == -1 || itr->getSubGroup() == group))
1902 if (session->IsAddonRegistered(prefix))
1903 session->SendPacket(packet);
1911 Player* player = itr->GetSource();
1912 if (!player || (ignore != 0 && player->
GetGUID() == ignore) || (ignorePlayersInBGRaid && player->
GetGroup() !=
this))
1915 if (player->
GetSession() && (group == -1 || itr->getSubGroup() == group))
1924 Player* player = itr->GetSource();
1992 slot->group = group;
2011 if (!member1 || !member2)
2034 if (prevSubGroup == group)
2038 slot->group = group;
2060 if (player->GetGroup() ==
this)
2061 player->GetGroupRef().setSubGroup(group);
2065 prevSubGroup = player->GetOriginalSubGroup();
2066 player->GetOriginalGroupRef().setSubGroup(group);
2118 Player* pNewLooter = NULL;
2124 pNewLooter = player;
2137 pNewLooter = player;
2145 if (oldLooterGUID != pNewLooter->
GetGUID())
2192 Player* member = itr->GetSource();
2197 if (member->
GetTeam() != team)
2201 if (memberBracketEntry != bracketEntry)
2224 if (bgOrTemplate->
isArena() && memberscount != MinPlayerCount)
2255 Player* player = itr->GetSource();
2279 Player* player = itr->GetSource();
2292 Player* player = itr->GetSource();
2335 bool isEmpty =
true;
2355 if (
Player* player = itr->GetSource())
2356 player->SendResetInstanceSuccess(instanceSave->
GetMapId());
2419 BoundInstancesMap::iterator itr =
m_boundInstances[difficulty].find(mapId);
2421 return &itr->second;
2432 if (!load && (!bind.
save || permanent != bind.
perm || save != bind.
save))
2443 if (bind.
save != save)
2451 bind.
perm = permanent;
2453 SF_LOG_DEBUG(
"maps",
"Group::BindToInstance: Group (guid: %u, storage id: %u) is now bound to map %d, instance %d, difficulty %d",
2461 BoundInstancesMap::iterator itr =
m_boundInstances[difficulty].find(mapid);
2469 stmt->
setUInt32(1, itr->second.save->GetInstanceId());
2474 itr->second.save->RemoveGroup(
this);
2534 slot->roles = roles;
2616 if (itr->name == name)
2642 return (mslot1->group == slot2->
group);
2656 return mslot->group;
2735 Rolls::iterator iter;
2736 for (iter =
RollId.begin(); iter !=
RollId.end(); ++iter)
2737 if ((*iter)->itemGUID == Guid && (*iter)->isValid())
2782 if (itr->guid == Guid)
2790 if (itr->guid == Guid)
2810 if (itr->flags &
uint8(flag))
2811 itr->flags &=
~uint8(flag);
2817 slot->flags |=
uint8(flag);
2819 slot->flags &=
~uint8(flag);
2861 itr->readyCheckHasResponded =
true;
2867 itr->readyCheckHasResponded =
false;
2873 if (!itr->readyCheckHasResponded)
@ CHAR_DEL_GROUP_INSTANCE_PERM_BINDING
@ CHAR_DEL_GROUP_MEMBER_ALL
@ CHAR_DEL_GROUP_INSTANCE_BY_INSTANCE
@ CHAR_DEL_GROUP_INSTANCE_BY_GUID
@ CHAR_UPD_GROUP_DIFFICULTY
@ CHAR_UPD_GROUP_RAID_DIFFICULTY
@ CHAR_UPD_GROUP_MEMBER_FLAG
@ CHAR_REP_GROUP_INSTANCE
@ CHAR_UPD_GROUP_MEMBER_SUBGROUP
@ CREATURE_FLAG_EXTRA_INSTANCE_BIND
@ ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL
@ ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT
@ ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT
@ DIFFICULTY_10MAN_NORMAL
DBCStorage< BattlemasterListEntry > sBattlemasterListStore(BattlemasterListEntryfmt)
PvPDifficultyEntry const * GetBattlegroundBracketByLevel(uint32 mapid, uint32 level)
MapDifficulty const * GetDownscaledMapDifficultyData(uint32 mapId, DifficultyID &difficulty)
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
@ GROUPTYPE_EVERYONE_IS_ASSISTANT
#define MAX_RAID_SUBGROUPS
@ ITEM_FLAGS_EXTRA_NEED_ROLL_DISABLED
#define SF_LOG_DEBUG(filterType__,...)
#define SF_LOG_ERROR(filterType__,...)
LootStore LootTemplates_Disenchant("disenchant_loot_template", "item disenchant id", true)
@ ROLL_ALL_TYPE_NO_DISENCHANT
@ ROLL_FLAG_TYPE_DISENCHANT
@ INSTANCE_RESET_GROUP_DISBAND
@ INSTANCE_RESET_CHANGE_DIFFICULTY
@ INSTANCE_RESET_GROUP_JOIN
@ LEVELREQUIREMENT_HEROIC
uint32 GUID_LOPART(uint64 x)
uint64 MAKE_NEW_GUID(uint32 l, uint32 e, uint32 h)
std::vector< ItemPosCount > ItemPosCountVec
GroupJoinBattlegroundResult
@ ERR_BATTLEGROUND_JOIN_RANGE_INDEX
@ ERR_BATTLEGROUND_JOIN_TIMED_OUT
@ ERR_GROUP_JOIN_BATTLEGROUND_DESERTERS
@ ERR_LFG_CANT_USE_BATTLEGROUND
@ ERR_BATTLEGROUND_JOIN_FAILED
@ ERR_BATTLEGROUND_TOO_MANY_QUEUES
@ ERR_ARENA_TEAM_PARTY_SIZE
@ GROUP_REMOVEMETHOD_KICK_LFG
@ GROUP_REMOVEMETHOD_KICK
Skyfire::AutoPtr< Transaction, Skyfire::Mutex > SQLTransaction
@ UNIT_FIELD_SHAPESHIFT_FORM
@ UNIT_FIELD_FACTION_TEMPLATE
BattlegroundTypeId GetTypeID(bool GetRandom=false) const
static BattlegroundQueueTypeId BGQueueTypeId(BattlegroundTypeId bgTypeId, uint8 arenaType)
void WriteGuidBytes(const ObjectGuid &guid, Offsets... offsets)
bool WriteBit(uint32 bit)
void WriteGuidMask(const ObjectGuid &guid, Offsets... offsets)
void WriteString(std::string const &str)
void WriteBits(T value, size_t bits)
void WriteByteSeq(uint8 b)
void BroadcastGroupUpdate(void)
void NeedBeforeGreed(Loot *loot, WorldObject *pLootedObject)
void ReadyCheckMemberHasResponded(uint64 guid)
bool AddLeaderInvite(Player *player)
void SetBattlefieldGroup(Battlefield *bf)
void SendLootAllPassed(Roll const &roll)
uint64 m_targetIcons[TARGETICONCOUNT]
void SendTargetIconList(WorldSession *session)
void SetTargetIcon(uint8 id, ObjectGuid whoGuid, ObjectGuid targetGuid, uint8 Index)
uint32 m_maxEnchantingLevel
void DelinkMember(uint64 guid)
void SubGroupCounterDecrease(uint8 subgroup)
void SetLootMethod(LootMethod method)
DifficultyID m_dungeonDifficulty
void ChangeFlagEveryoneAssistant(bool apply)
void _initRaidSubGroupsCounter()
void LoadMemberFromDB(uint32 guidLow, uint8 memberFlags, uint8 subgroup, uint8 roles)
bool isRollLootActive() const
member_citerator _getMemberCSlot(uint64 Guid) const
void SetLootThreshold(ItemQualities threshold)
void GroupLoot(Loot *loot, WorldObject *pLootedObject)
void Disband(bool hideDestroy=false)
InstanceGroupBind * BindToInstance(InstanceSave *save, bool permanent, bool load=false)
void LoadGroupFromDB(Field *field)
bool AddMember(Player *player)
void SetGroupMemberFlag(uint64 guid, bool apply, GroupMemberFlags flag)
Rolls::iterator GetRoll(uint64 Guid)
GroupJoinBattlegroundResult CanJoinBattlegroundQueue(Battleground const *bgOrTemplate, BattlegroundQueueTypeId bgQueueTypeId, uint32 MinPlayerCount, uint32 MaxPlayerCount, bool isRated, uint32 arenaSlot)
GroupRefManager m_memberMgr
void BroadcastPacket(WorldPacket *packet, bool ignorePlayersInBGRaid, int group=-1, uint64 ignore=0)
member_witerator _getMemberWSlot(uint64 Guid)
void SendLootStartRoll(uint32 CountDown, uint32 mapid, const Roll &r)
void RemoveInvite(Player *player)
void SetDungeonDifficulty(DifficultyID difficulty)
ItemQualities GetLootThreshold() const
MemberSlotList m_memberSlots
uint32 GetMembersCount() const
void SendLootRoll(uint64 SourceGuid, uint64 TargetGuid, uint8 RollNumber, RollType RollType, const Roll &r)
void ResetMaxEnchantingLevel()
void _homebindIfInstance(Player *player)
DifficultyID m_raidDifficulty
void BroadcastAddonMessagePacket(WorldPacket *packet, const std::string &prefix, bool ignorePlayersInBGRaid, int group=-1, uint64 ignore=0)
BoundInstancesMap m_boundInstances[15]
uint8 GetMemberGroup(uint64 guid) const
void ToggleGroupMemberFlag(member_witerator slot, GroupMemberFlags flag, bool apply)
void SendLootStartRollToPlayer(uint32 countDown, uint32 mapId, Player *p, bool canNeed, Roll const &r)
void SetLooterGuid(uint64 guid)
bool ReadyCheckAllResponded() const
const char * GetLeaderName() const
void SetLfgRoles(uint64 guid, const uint8 roles)
void BroadcastReadyCheck(WorldPacket *packet)
void SetRaidDifficulty(DifficultyID difficulty)
MemberSlotList::iterator member_witerator
bool _readyCheckInProgress
void SetBattlegroundGroup(Battleground *bg)
void UpdatePlayerOutOfRange(Player *player)
LootMethod GetLootMethod() const
void UpdateLooterGuid(WorldObject *pLootedObject, bool ifneed=false)
bool IsMember(uint64 guid) const
Player * GetInvited(uint64 guid) const
bool HasFreeSlotSubGroup(uint8 subgroup) const
void CountTheRoll(Rolls::iterator roll)
UNORDERED_MAP< uint32, InstanceGroupBind > BoundInstancesMap
bool RemoveMember(uint64 guid, const RemoveMethod &method=GROUP_REMOVEMETHOD_DEFAULT, uint64 kicker=0, const char *reason=NULL)
GroupReference * GetFirstMember()
uint32 GetLowGUID() const
void SetMemberRole(uint64 guid, uint32 role)
uint64 GetMemberGUID(const std::string &name)
DifficultyID GetRaidDifficulty() const
bool AddInvite(Player *player)
uint8 * m_subGroupsCounts
void SendLootRollWon(uint64 SourceGuid, uint64 TargetGuid, uint8 RollNumber, RollType RollType, const Roll &r)
void CountRollVote(uint64 playerGUID, uint64 Guid, RollType Choise)
uint32 GetMemberRole(uint64 guid) const
BoundInstancesMap & GetBoundInstances(DifficultyID difficulty)
MemberSlotList::const_iterator member_citerator
bool RoleCheckAllResponded() const
bool _setMembersGroup(uint64 guid, uint8 group)
DifficultyID GetDifficulty(MapEntry const *mapEntry) const
void SubGroupCounterIncrease(uint8 subgroup)
bool Create(Player *leader)
void ReadyCheckResetResponded()
bool SameSubGroup(uint64 guid1, uint64 guid2) const
void UnbindInstance(uint32 mapid, uint8 difficulty, bool unload=false)
InstanceGroupBind * GetBoundInstance(Player *player)
bool IsAssistant(uint64 guid) const
uint64 GetLeaderGUID() const
bool IsLeader(uint64 guid) const
void SendReadyCheckCompleted()
uint64 GetLooterGuid() const
void LinkMember(GroupReference *pRef)
ItemQualities m_lootThreshold
DifficultyID GetDungeonDifficulty() const
void ResetInstances(InstanceResetMethod method, bool isRaid, Player *SendMsgTo)
void RemoveUniqueGroupMemberFlag(GroupMemberFlags flag)
bool InCombatToInstance(uint32 instanceId)
void MasterLoot(Loot *loot, WorldObject *pLootedObject)
void SendUpdateToPlayer(uint64 playerGUID, MemberSlot *slot=NULL)
void ChangeMembersGroup(uint64 guid, uint8 group)
void ChangeLeader(uint64 guid)
void SendLooter(Creature *creature, Player *pLooter)
DifficultyID GetDifficulty() const
bool RemoveGroup(Group *group)
uint32 GetInstanceId() const
void AddGroup(Group *group)
MapEntry const * GetEntry() const
bool IsRaidOrHeroicDungeon() const
static Player * FindPlayerInOrOutOfWorld(uint64)
static Player * FindPlayer(uint64)
uint32 GetGUIDLow() const
void RemoveFieldNotifyFlag(uint16 flag)
GameObject * ToGameObject()
void BuildValuesUpdateBlockForPlayer(UpdateData *data, Player *target) const
void SetFieldNotifyFlag(uint16 flag)
void ForceValuesUpdateAtIndex(uint32)
void SendEquipError(InventoryResult msg, Item *pItem, Item *pItem2=NULL, uint32 itemid=0)
static DifficultyID CheckLoadedRaidDifficultyID(DifficultyID difficulty)
void AutoStoreLoot(uint8 bag, uint8 slot, uint32 loot_id, LootStore const &store, bool broadcast=false)
bool InBattlegroundQueueForBattlegroundQueueType(BattlegroundQueueTypeId bgQueueTypeId) const
void SendRaidDifficulty(int32 forcedDifficulty=-1)
void SetOriginalGroup(Group *group, int8 subgroup=-1)
void SetGroupUpdateFlag(uint32 flag)
InventoryResult CanRollForItemInLFG(ItemTemplate const *item, WorldObject const *lootedObject) const
uint16 GetSkillValue(uint32 skill) const
void SetDungeonDifficulty(DifficultyID dungeon_difficulty)
void SendDirectMessage(WorldPacket *data)
void SendDungeonDifficulty()
void SetGroup(Group *group, int8 subgroup=-1)
bool HaveAtClient(WorldObject const *u) const
void SetGroupInvite(Group *group)
bool HasFreeBattlegroundQueueId()
void RemoveFromBattlegroundOrBattlefieldRaid()
void UpdateForQuestWorldObjects()
WorldSession * GetSession() const
DifficultyID GetRaidDifficulty() const
bool InBattlegroundQueue() const
bool IsGameMaster() const
void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1=0, uint64 miscValue2=0, uint64 miscValue3=0, Unit *unit=NULL)
InventoryResult CanStoreNewItem(uint8 bag, uint8 slot, ItemPosCountVec &dest, uint32 item, uint32 count, uint32 *no_space_count=NULL) const
static void ConvertInstancesToGroup(Player *player, Group *group, bool switchLeader)
convert the player's binds to the group
bool CanJoinToBattleground(Battleground const *bg) const
void SendResetInstanceSuccess(uint32 MapId)
void ResetInstances(InstanceResetMethod method, bool isRaid)
Reset all solo instances and optionally send a message on success for each.
void SetRaidDifficulty(DifficultyID raid_difficulty)
bool GetPassOnGroupLoot() const
Item * StoreNewItem(ItemPosCountVec const &pos, uint32 item, bool update, int32 randomPropertyId=0, AllowedLooterSet const &allowedLooters=AllowedLooterSet())
uint8 GetSubGroup() const
void SendResetInstanceFailed(uint32 reason, uint32 MapId)
DifficultyID GetDungeonDifficulty() const
static DifficultyID CheckLoadedDungeonDifficultyID(DifficultyID difficulty)
Group * GetOriginalGroup()
void SetBattlegroundOrBattlefieldRaid(Group *group, int8 subgroup=-1)
void setBool(const uint8 index, const bool value)
void setUInt32(const uint8 index, const uint32 value)
void setUInt8(const uint8 index, const uint8 value)
void link(Loot *toObj, LootValidatorRef *fromObj)
void targetObjectBuildLink()
void setLoot(Loot *pLoot)
uint8 totalPlayersRolling
Roll(uint64 _guid, LootItem const &li)
AttackerSet const & getAttackers() const
bool BuildPacket(WorldPacket *packet)
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true) const
uint32 GetInstanceId() const
std::string const & GetName() const
float GetSightRange(WorldObject const *target=NULL) const
bool IsWithinDist(WorldObject const *obj, float dist2compare, bool is3D=true) const
void Initialize(Opcodes opcode, size_t newres=200)
Player session in the World.
void SendLfgClearStatus(uint64 lfgGroupGuid=0, uint8 queueIdOverride=0, bool groupLeave=false)
void BuildPartyMemberStatsChangedPacket(Player *player, WorldPacket *data)
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
CharacterDatabaseWorkerPool CharacterDatabase
Accessor to the character database.
@ SMSG_RAID_READY_CHECK_COMPLETED
@ SMSG_RAID_READY_CHECK_CONFIRM
@ SMSG_RAID_TARGET_UPDATE_SINGLE
@ SMSG_RAID_TARGET_UPDATE_ALL
@ CONFIG_INSTANCES_RESET_ANNOUNCE
@ CONFIG_GROUP_XP_DISTANCE
uint32 RequiredDisenchantSkill
void NotifyItemRemoved(uint8 lootIndex, ObjectGuid lootGuid=0)
std::vector< LootItem > items
void addLootValidatorRef(LootValidatorRef *pLootValidatorRef)
std::vector< LootItem > quest_items
const AllowedLooterSet & GetAllowedLooters() const