mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 09:44:45 +01:00
Update to Trinity 863.
--HG-- branch : trunk
This commit is contained in:
@@ -295,12 +295,14 @@ bool Group::AddMember(const uint64 &guid, const char* name)
|
||||
|
||||
uint32 Group::RemoveMember(const uint64 &guid, const uint8 &method)
|
||||
{
|
||||
BroadcastGroupUpdate();
|
||||
|
||||
// remove member and change leader (if need) only if strong more 2 members _before_ member remove
|
||||
if(GetMembersCount() > (isBGGroup() ? 1 : 2)) // in BG group case allow 1 members group
|
||||
{
|
||||
bool leaderChanged = _removeMember(guid);
|
||||
|
||||
Player *player = objmgr.GetPlayer( guid );
|
||||
Player *player = objmgr.GetPlayer( guid ); // FG: TODO: could be removed, its just here for consistency
|
||||
if (player)
|
||||
{
|
||||
WorldPacket data;
|
||||
@@ -1521,3 +1523,20 @@ void Group::_homebindIfInstance(Player *player)
|
||||
player->m_InstanceValid = false;
|
||||
}
|
||||
}
|
||||
|
||||
void Group::BroadcastGroupUpdate(void)
|
||||
{
|
||||
// FG: HACK: force flags update on group leave - for values update hack
|
||||
// -- not very efficient but safe
|
||||
for(member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr)
|
||||
{
|
||||
|
||||
Player *pp = objmgr.GetPlayer(citr->guid);
|
||||
if(pp && pp->IsInWorld())
|
||||
{
|
||||
pp->ForceValuesUpdateAtIndex(UNIT_FIELD_BYTES_2);
|
||||
pp->ForceValuesUpdateAtIndex(UNIT_FIELD_FACTIONTEMPLATE);
|
||||
DEBUG_LOG("-- Forced group value update for '%s'", pp->GetName());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user