|
|
|
@@ -45,7 +45,7 @@ Roll::~Roll()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Roll::setLoot(Loot *pLoot)
|
|
|
|
|
void Roll::setLoot(Loot* pLoot)
|
|
|
|
|
{
|
|
|
|
|
link(pLoot, this);
|
|
|
|
|
}
|
|
|
|
@@ -93,7 +93,7 @@ Group::~Group()
|
|
|
|
|
delete[] m_subGroupsCounts;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool Group::Create(Player *leader)
|
|
|
|
|
bool Group::Create(Player* leader)
|
|
|
|
|
{
|
|
|
|
|
uint64 leaderGuid = leader->GetGUID();
|
|
|
|
|
uint32 lowguid = sGroupMgr->GenerateGroupId();
|
|
|
|
@@ -140,7 +140,7 @@ bool Group::Create(Player *leader)
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Group::LoadGroupFromDB(Field *fields)
|
|
|
|
|
void Group::LoadGroupFromDB(Field* fields)
|
|
|
|
|
{
|
|
|
|
|
m_dbStoreId = fields[15].GetUInt32();
|
|
|
|
|
m_guid = MAKE_NEW_GUID(sGroupMgr->GenerateGroupId(), 0, HIGHGUID_GROUP);
|
|
|
|
@@ -331,7 +331,7 @@ bool Group::AddMember(Player* player)
|
|
|
|
|
player->SetGroup(this, subGroup);
|
|
|
|
|
|
|
|
|
|
// if the same group invites the player back, cancel the homebind timer
|
|
|
|
|
InstanceGroupBind *bind = GetBoundInstance(player);
|
|
|
|
|
InstanceGroupBind* bind = GetBoundInstance(player);
|
|
|
|
|
if (bind && bind->save->GetInstanceId() == player->GetInstanceId())
|
|
|
|
|
player->m_InstanceValid = true;
|
|
|
|
|
}
|
|
|
|
@@ -643,7 +643,7 @@ void Group::SendLootStartRoll(uint32 CountDown, uint32 mapid, const Roll &r)
|
|
|
|
|
|
|
|
|
|
for (Roll::PlayerVote::const_iterator itr=r.playerVote.begin(); itr != r.playerVote.end(); ++itr)
|
|
|
|
|
{
|
|
|
|
|
Player *p = ObjectAccessor::FindPlayer(itr->first);
|
|
|
|
|
Player* p = ObjectAccessor::FindPlayer(itr->first);
|
|
|
|
|
if (!p || !p->GetSession())
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
@@ -667,7 +667,7 @@ void Group::SendLootRoll(uint64 SourceGuid, uint64 TargetGuid, uint8 RollNumber,
|
|
|
|
|
|
|
|
|
|
for (Roll::PlayerVote::const_iterator itr=r.playerVote.begin(); itr != r.playerVote.end(); ++itr)
|
|
|
|
|
{
|
|
|
|
|
Player *p = ObjectAccessor::FindPlayer(itr->first);
|
|
|
|
|
Player* p = ObjectAccessor::FindPlayer(itr->first);
|
|
|
|
|
if (!p || !p->GetSession())
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
@@ -690,7 +690,7 @@ void Group::SendLootRollWon(uint64 SourceGuid, uint64 TargetGuid, uint8 RollNumb
|
|
|
|
|
|
|
|
|
|
for (Roll::PlayerVote::const_iterator itr=r.playerVote.begin(); itr != r.playerVote.end(); ++itr)
|
|
|
|
|
{
|
|
|
|
|
Player *p = ObjectAccessor::FindPlayer(itr->first);
|
|
|
|
|
Player* p = ObjectAccessor::FindPlayer(itr->first);
|
|
|
|
|
if (!p || !p->GetSession())
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
@@ -710,7 +710,7 @@ void Group::SendLootAllPassed(uint32 NumberOfPlayers, const Roll &r)
|
|
|
|
|
|
|
|
|
|
for (Roll::PlayerVote::const_iterator itr=r.playerVote.begin(); itr != r.playerVote.end(); ++itr)
|
|
|
|
|
{
|
|
|
|
|
Player *p = ObjectAccessor::FindPlayer(itr->first);
|
|
|
|
|
Player* p = ObjectAccessor::FindPlayer(itr->first);
|
|
|
|
|
if (!p || !p->GetSession())
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
@@ -720,7 +720,7 @@ void Group::SendLootAllPassed(uint32 NumberOfPlayers, const Roll &r)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// notify group members which player is the allowed looter for the given creature
|
|
|
|
|
void Group::SendLooter(Creature *pCreature, Player *pLooter)
|
|
|
|
|
void Group::SendLooter(Creature* pCreature, Player* pLooter)
|
|
|
|
|
{
|
|
|
|
|
ASSERT(pCreature);
|
|
|
|
|
|
|
|
|
@@ -736,10 +736,10 @@ void Group::SendLooter(Creature *pCreature, Player *pLooter)
|
|
|
|
|
BroadcastPacket(&data, false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Group::GroupLoot(Loot *loot, WorldObject* pLootedObject)
|
|
|
|
|
void Group::GroupLoot(Loot* loot, WorldObject* pLootedObject)
|
|
|
|
|
{
|
|
|
|
|
std::vector<LootItem>::iterator i;
|
|
|
|
|
ItemTemplate const *item;
|
|
|
|
|
ItemTemplate const* item;
|
|
|
|
|
uint8 itemSlot = 0;
|
|
|
|
|
|
|
|
|
|
for (i = loot->items.begin(); i != loot->items.end(); ++i, ++itemSlot)
|
|
|
|
@@ -761,9 +761,9 @@ void Group::GroupLoot(Loot *loot, WorldObject* pLootedObject)
|
|
|
|
|
Roll* r = new Roll(newitemGUID, *i);
|
|
|
|
|
|
|
|
|
|
//a vector is filled with only near party members
|
|
|
|
|
for (GroupReference *itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
{
|
|
|
|
|
Player *member = itr->getSource();
|
|
|
|
|
Player* member = itr->getSource();
|
|
|
|
|
if (!member || !member->GetSession())
|
|
|
|
|
continue;
|
|
|
|
|
if (i->AllowedForPlayer(member))
|
|
|
|
@@ -799,7 +799,7 @@ void Group::GroupLoot(Loot *loot, WorldObject* pLootedObject)
|
|
|
|
|
{
|
|
|
|
|
for (Roll::PlayerVote::const_iterator itr=r->playerVote.begin(); itr != r->playerVote.end(); ++itr)
|
|
|
|
|
{
|
|
|
|
|
Player *p = ObjectAccessor::FindPlayer(itr->first);
|
|
|
|
|
Player* p = ObjectAccessor::FindPlayer(itr->first);
|
|
|
|
|
if (!p || !p->GetSession())
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
@@ -831,9 +831,9 @@ void Group::GroupLoot(Loot *loot, WorldObject* pLootedObject)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Group::NeedBeforeGreed(Loot *loot, WorldObject* pLootedObject)
|
|
|
|
|
void Group::NeedBeforeGreed(Loot* loot, WorldObject* pLootedObject)
|
|
|
|
|
{
|
|
|
|
|
ItemTemplate const *item;
|
|
|
|
|
ItemTemplate const* item;
|
|
|
|
|
uint8 itemSlot = 0;
|
|
|
|
|
for (std::vector<LootItem>::iterator i=loot->items.begin(); i != loot->items.end(); ++i, ++itemSlot)
|
|
|
|
|
{
|
|
|
|
@@ -848,7 +848,7 @@ void Group::NeedBeforeGreed(Loot *loot, WorldObject* pLootedObject)
|
|
|
|
|
uint64 newitemGUID = MAKE_NEW_GUID(sObjectMgr->GenerateLowGuid(HIGHGUID_ITEM), 0, HIGHGUID_ITEM);
|
|
|
|
|
Roll* r=new Roll(newitemGUID, *i);
|
|
|
|
|
|
|
|
|
|
for (GroupReference *itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
{
|
|
|
|
|
Player* playerToRoll = itr->getSource();
|
|
|
|
|
if (!playerToRoll || !playerToRoll->GetSession())
|
|
|
|
@@ -890,7 +890,7 @@ void Group::NeedBeforeGreed(Loot *loot, WorldObject* pLootedObject)
|
|
|
|
|
{
|
|
|
|
|
for (Roll::PlayerVote::const_iterator itr=r->playerVote.begin(); itr != r->playerVote.end(); ++itr)
|
|
|
|
|
{
|
|
|
|
|
Player *p = ObjectAccessor::FindPlayer(itr->first);
|
|
|
|
|
Player* p = ObjectAccessor::FindPlayer(itr->first);
|
|
|
|
|
if (!p || !p->GetSession())
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
@@ -926,9 +926,9 @@ void Group::MasterLoot(Loot* /*loot*/, WorldObject* pLootedObject)
|
|
|
|
|
WorldPacket data(SMSG_LOOT_MASTER_LIST, 330);
|
|
|
|
|
data << (uint8)GetMembersCount();
|
|
|
|
|
|
|
|
|
|
for (GroupReference *itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
{
|
|
|
|
|
Player *looter = itr->getSource();
|
|
|
|
|
Player* looter = itr->getSource();
|
|
|
|
|
if (!looter->IsInWorld())
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
@@ -941,9 +941,9 @@ void Group::MasterLoot(Loot* /*loot*/, WorldObject* pLootedObject)
|
|
|
|
|
|
|
|
|
|
data.put<uint8>(0, real_count);
|
|
|
|
|
|
|
|
|
|
for (GroupReference *itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
{
|
|
|
|
|
Player *looter = itr->getSource();
|
|
|
|
|
Player* looter = itr->getSource();
|
|
|
|
|
if (looter->IsWithinDistInMap(pLootedObject, sWorld->getFloatConfig(CONFIG_GROUP_XP_DISTANCE), false))
|
|
|
|
|
looter->GetSession()->SendPacket(&data);
|
|
|
|
|
}
|
|
|
|
@@ -994,7 +994,7 @@ void Group::CountRollVote(uint64 playerGUID, uint64 Guid, uint32 NumberOfPlayers
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//called when roll timer expires
|
|
|
|
|
void Group::EndRoll(Loot *pLoot)
|
|
|
|
|
void Group::EndRoll(Loot* pLoot)
|
|
|
|
|
{
|
|
|
|
|
for (Rolls::iterator itr = RollId.begin(); itr != RollId.end();)
|
|
|
|
|
{
|
|
|
|
@@ -1047,7 +1047,7 @@ void Group::CountTheRoll(Rolls::iterator rollI, uint32 NumberOfPlayers)
|
|
|
|
|
player->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT, roll->itemid, maxresul);
|
|
|
|
|
|
|
|
|
|
ItemPosCountVec dest;
|
|
|
|
|
LootItem *item = &(roll->getLoot()->items[roll->itemSlot]);
|
|
|
|
|
LootItem* item = &(roll->getLoot()->items[roll->itemSlot]);
|
|
|
|
|
InventoryResult msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, roll->itemid, item->count);
|
|
|
|
|
if (msg == EQUIP_ERR_OK)
|
|
|
|
|
{
|
|
|
|
@@ -1096,7 +1096,7 @@ void Group::CountTheRoll(Rolls::iterator rollI, uint32 NumberOfPlayers)
|
|
|
|
|
{
|
|
|
|
|
player->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT, roll->itemid, maxresul);
|
|
|
|
|
|
|
|
|
|
LootItem *item = &(roll->getLoot()->items[roll->itemSlot]);
|
|
|
|
|
LootItem* item = &(roll->getLoot()->items[roll->itemSlot]);
|
|
|
|
|
|
|
|
|
|
if (rollvote == GREED)
|
|
|
|
|
{
|
|
|
|
@@ -1121,7 +1121,7 @@ void Group::CountTheRoll(Rolls::iterator rollI, uint32 NumberOfPlayers)
|
|
|
|
|
item->is_looted = true;
|
|
|
|
|
roll->getLoot()->NotifyItemRemoved(roll->itemSlot);
|
|
|
|
|
roll->getLoot()->unlootedCount--;
|
|
|
|
|
ItemTemplate const *pProto = sObjectMgr->GetItemTemplate(roll->itemid);
|
|
|
|
|
ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(roll->itemid);
|
|
|
|
|
player->AutoStoreLoot(pProto->DisenchantID, LootTemplates_Disenchant, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@@ -1132,7 +1132,7 @@ void Group::CountTheRoll(Rolls::iterator rollI, uint32 NumberOfPlayers)
|
|
|
|
|
SendLootAllPassed(NumberOfPlayers, *roll);
|
|
|
|
|
|
|
|
|
|
// remove is_blocked so that the item is lootable by all players
|
|
|
|
|
LootItem *item = &(roll->getLoot()->items[roll->itemSlot]);
|
|
|
|
|
LootItem* item = &(roll->getLoot()->items[roll->itemSlot]);
|
|
|
|
|
if (item)
|
|
|
|
|
item->is_blocked = false;
|
|
|
|
|
}
|
|
|
|
@@ -1162,7 +1162,7 @@ void Group::SetTargetIcon(uint8 id, uint64 whoGuid, uint64 targetGuid)
|
|
|
|
|
BroadcastPacket(&data, true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Group::SendTargetIconList(WorldSession *session)
|
|
|
|
|
void Group::SendTargetIconList(WorldSession* session)
|
|
|
|
|
{
|
|
|
|
|
if (!session)
|
|
|
|
|
return;
|
|
|
|
@@ -1248,7 +1248,7 @@ void Group::UpdatePlayerOutOfRange(Player* pPlayer)
|
|
|
|
|
WorldPacket data;
|
|
|
|
|
pPlayer->GetSession()->BuildPartyMemberStatsChangedPacket(pPlayer, &data);
|
|
|
|
|
|
|
|
|
|
for (GroupReference *itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
{
|
|
|
|
|
player = itr->getSource();
|
|
|
|
|
if (player && !player->IsWithinDist(pPlayer, player->GetSightRange(), false))
|
|
|
|
@@ -1258,9 +1258,9 @@ void Group::UpdatePlayerOutOfRange(Player* pPlayer)
|
|
|
|
|
|
|
|
|
|
void Group::BroadcastPacket(WorldPacket* packet, bool ignorePlayersInBGRaid, int group, uint64 ignore)
|
|
|
|
|
{
|
|
|
|
|
for (GroupReference *itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
{
|
|
|
|
|
Player *pl = itr->getSource();
|
|
|
|
|
Player* pl = itr->getSource();
|
|
|
|
|
if (!pl || (ignore != 0 && pl->GetGUID() == ignore) || (ignorePlayersInBGRaid && pl->GetGroup() != this))
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
@@ -1271,9 +1271,9 @@ void Group::BroadcastPacket(WorldPacket* packet, bool ignorePlayersInBGRaid, int
|
|
|
|
|
|
|
|
|
|
void Group::BroadcastReadyCheck(WorldPacket* packet)
|
|
|
|
|
{
|
|
|
|
|
for (GroupReference *itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
{
|
|
|
|
|
Player *pl = itr->getSource();
|
|
|
|
|
Player* pl = itr->getSource();
|
|
|
|
|
if (pl && pl->GetSession())
|
|
|
|
|
if (IsLeader(pl->GetGUID()) || IsAssistant(pl->GetGUID()))
|
|
|
|
|
pl->GetSession()->SendPacket(packet);
|
|
|
|
@@ -1284,7 +1284,7 @@ void Group::OfflineReadyCheck()
|
|
|
|
|
{
|
|
|
|
|
for (member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr)
|
|
|
|
|
{
|
|
|
|
|
Player *pl = ObjectAccessor::FindPlayer(citr->guid);
|
|
|
|
|
Player* pl = ObjectAccessor::FindPlayer(citr->guid);
|
|
|
|
|
if (!pl || !pl->GetSession())
|
|
|
|
|
{
|
|
|
|
|
WorldPacket data(MSG_RAID_READY_CHECK_CONFIRM, 9);
|
|
|
|
@@ -1409,7 +1409,7 @@ void Group::UpdateLooterGuid(WorldObject* pLootedObject, bool ifneed)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// search next after current
|
|
|
|
|
Player *pNewLooter = NULL;
|
|
|
|
|
Player* pNewLooter = NULL;
|
|
|
|
|
for (member_citerator itr = guid_itr; itr != m_memberSlots.end(); ++itr)
|
|
|
|
|
{
|
|
|
|
|
if (Player* pl = ObjectAccessor::FindPlayer(itr->guid))
|
|
|
|
@@ -1482,9 +1482,9 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(Battleground const*
|
|
|
|
|
|
|
|
|
|
// check every member of the group to be able to join
|
|
|
|
|
memberscount = 0;
|
|
|
|
|
for (GroupReference *itr = GetFirstMember(); itr != NULL; itr = itr->next(), ++memberscount)
|
|
|
|
|
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next(), ++memberscount)
|
|
|
|
|
{
|
|
|
|
|
Player *member = itr->getSource();
|
|
|
|
|
Player* member = itr->getSource();
|
|
|
|
|
// offline member? don't let join
|
|
|
|
|
if (!member)
|
|
|
|
|
return ERR_BATTLEGROUND_JOIN_FAILED;
|
|
|
|
@@ -1541,7 +1541,7 @@ void Group::SetDungeonDifficulty(Difficulty difficulty)
|
|
|
|
|
if (!isBGGroup())
|
|
|
|
|
CharacterDatabase.PExecute("UPDATE groups SET difficulty = %u WHERE guid ='%u'", m_dungeonDifficulty, m_dbStoreId);
|
|
|
|
|
|
|
|
|
|
for (GroupReference *itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
{
|
|
|
|
|
Player* player = itr->getSource();
|
|
|
|
|
if (!player->GetSession())
|
|
|
|
@@ -1558,7 +1558,7 @@ void Group::SetRaidDifficulty(Difficulty difficulty)
|
|
|
|
|
if (!isBGGroup())
|
|
|
|
|
CharacterDatabase.PExecute("UPDATE groups SET raiddifficulty = %u WHERE guid ='%u'", m_raidDifficulty, m_dbStoreId);
|
|
|
|
|
|
|
|
|
|
for (GroupReference *itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
{
|
|
|
|
|
Player* player = itr->getSource();
|
|
|
|
|
if (!player->GetSession())
|
|
|
|
@@ -1571,9 +1571,9 @@ void Group::SetRaidDifficulty(Difficulty difficulty)
|
|
|
|
|
|
|
|
|
|
bool Group::InCombatToInstance(uint32 instanceId)
|
|
|
|
|
{
|
|
|
|
|
for (GroupReference *itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
|
|
|
|
|
{
|
|
|
|
|
Player *pPlayer = itr->getSource();
|
|
|
|
|
Player* pPlayer = itr->getSource();
|
|
|
|
|
if (pPlayer && !pPlayer->getAttackers().empty() && pPlayer->GetInstanceId() == instanceId && (pPlayer->GetMap()->IsRaidOrHeroicDungeon()))
|
|
|
|
|
for (std::set<Unit*>::const_iterator i = pPlayer->getAttackers().begin(); i != pPlayer->getAttackers().end(); ++i)
|
|
|
|
|
if ((*i) && (*i)->GetTypeId() == TYPEID_UNIT && (*i)->ToCreature()->GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_INSTANCE_BIND)
|
|
|
|
@@ -1594,8 +1594,8 @@ void Group::ResetInstances(uint8 method, bool isRaid, Player* SendMsgTo)
|
|
|
|
|
|
|
|
|
|
for (BoundInstancesMap::iterator itr = m_boundInstances[diff].begin(); itr != m_boundInstances[diff].end();)
|
|
|
|
|
{
|
|
|
|
|
InstanceSave *p = itr->second.save;
|
|
|
|
|
const MapEntry *entry = sMapStore.LookupEntry(itr->first);
|
|
|
|
|
InstanceSave* p = itr->second.save;
|
|
|
|
|
const MapEntry* entry = sMapStore.LookupEntry(itr->first);
|
|
|
|
|
if (!entry || entry->IsRaid() != isRaid || (!p->CanReset() && method != INSTANCE_RESET_GROUP_DISBAND))
|
|
|
|
|
{
|
|
|
|
|
++itr;
|
|
|
|
@@ -1614,7 +1614,7 @@ void Group::ResetInstances(uint8 method, bool isRaid, Player* SendMsgTo)
|
|
|
|
|
|
|
|
|
|
bool isEmpty = true;
|
|
|
|
|
// if the map is loaded, reset it
|
|
|
|
|
Map *map = sMapMgr->FindMap(p->GetMapId(), p->GetInstanceId());
|
|
|
|
|
Map* map = sMapMgr->FindMap(p->GetMapId(), p->GetInstanceId());
|
|
|
|
|
if (map && map->IsDungeon() && !(method == INSTANCE_RESET_GROUP_DISBAND && !p->CanReset()))
|
|
|
|
|
{
|
|
|
|
|
if (p->CanReset())
|
|
|
|
@@ -1690,7 +1690,7 @@ InstanceGroupBind* Group::GetBoundInstance(MapEntry const* mapEntry)
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
InstanceGroupBind* Group::BindToInstance(InstanceSave *save, bool permanent, bool load)
|
|
|
|
|
InstanceGroupBind* Group::BindToInstance(InstanceSave* save, bool permanent, bool load)
|
|
|
|
|
{
|
|
|
|
|
if (!save || isBGGroup())
|
|
|
|
|
return NULL;
|
|
|
|
@@ -1740,7 +1740,7 @@ void Group::BroadcastGroupUpdate(void)
|
|
|
|
|
for (member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
Player *pp = ObjectAccessor::FindPlayer(citr->guid);
|
|
|
|
|
Player* pp = ObjectAccessor::FindPlayer(citr->guid);
|
|
|
|
|
if (pp && pp->IsInWorld())
|
|
|
|
|
{
|
|
|
|
|
pp->ForceValuesUpdateAtIndex(UNIT_FIELD_BYTES_2);
|
|
|
|
@@ -1753,7 +1753,7 @@ void Group::BroadcastGroupUpdate(void)
|
|
|
|
|
void Group::ResetMaxEnchantingLevel()
|
|
|
|
|
{
|
|
|
|
|
m_maxEnchantingLevel = 0;
|
|
|
|
|
Player *pMember = NULL;
|
|
|
|
|
Player* pMember = NULL;
|
|
|
|
|
for (member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr)
|
|
|
|
|
{
|
|
|
|
|
pMember = ObjectAccessor::FindPlayer(citr->guid);
|
|
|
|
@@ -1917,7 +1917,7 @@ uint8 Group::GetMemberGroup(uint64 guid) const
|
|
|
|
|
return mslot->group;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Group::SetBattlegroundGroup(Battleground *bg)
|
|
|
|
|
void Group::SetBattlegroundGroup(Battleground* bg)
|
|
|
|
|
{
|
|
|
|
|
m_bgGroup = bg;
|
|
|
|
|
}
|
|
|
|
@@ -1986,7 +1986,7 @@ Group::Rolls::iterator Group::GetRoll(uint64 Guid)
|
|
|
|
|
return RollId.end();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Group::LinkMember(GroupReference *pRef)
|
|
|
|
|
void Group::LinkMember(GroupReference* pRef)
|
|
|
|
|
{
|
|
|
|
|
m_memberMgr.insertFirst(pRef);
|
|
|
|
|
}
|
|
|
|
|