[7213] Fixed quest related GO activation/deactivation at join/leave/convert raid group.

This commit is contained in:
VladimirMangos 2009-02-01 03:06:35 +03:00
parent a47c8d3bfc
commit ed52e3f8f0
2 changed files with 20 additions and 3 deletions

View file

@ -203,6 +203,11 @@ void Group::ConvertToRaid()
if(!isBGGroup()) CharacterDatabase.PExecute("UPDATE groups SET isRaid = 1 WHERE leaderGuid='%u'", GUID_LOPART(m_leaderGuid)); if(!isBGGroup()) CharacterDatabase.PExecute("UPDATE groups SET isRaid = 1 WHERE leaderGuid='%u'", GUID_LOPART(m_leaderGuid));
SendUpdate(); SendUpdate();
// update quest related GO states (quest activity dependent from raid membership)
for(member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr)
if(Player* player = objmgr.GetPlayer(citr->guid))
player->UpdateForQuestsGO();
} }
bool Group::AddInvite(Player *player) bool Group::AddInvite(Player *player)
@ -288,6 +293,10 @@ bool Group::AddMember(const uint64 &guid, const char* name)
} }
player->SetGroupUpdateFlag(GROUP_UPDATE_FULL); player->SetGroupUpdateFlag(GROUP_UPDATE_FULL);
UpdatePlayerOutOfRange(player); UpdatePlayerOutOfRange(player);
// quest related GO state dependent from raid memebership
if(isRaidGroup())
player->UpdateForQuestsGO();
} }
return true; return true;
@ -300,9 +309,12 @@ uint32 Group::RemoveMember(const uint64 &guid, const uint8 &method)
{ {
bool leaderChanged = _removeMember(guid); bool leaderChanged = _removeMember(guid);
Player *player = objmgr.GetPlayer( guid ); if(Player *player = objmgr.GetPlayer( guid ))
if (player)
{ {
// quest related GO state dependent from raid membership
if(isRaidGroup())
player->UpdateForQuestsGO();
WorldPacket data; WorldPacket data;
if(method == 1) if(method == 1)
@ -361,6 +373,11 @@ void Group::Disband(bool hideDestroy)
player->SetGroup(NULL); player->SetGroup(NULL);
// quest related GO state dependent from raid membership
if(isRaidGroup())
player->UpdateForQuestsGO();
if(!player->GetSession()) if(!player->GetSession())
continue; continue;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "7212" #define REVISION_NR "7213"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__