From 80051c6d3c81f0716ae92c008c6b0977a2f18f32 Mon Sep 17 00:00:00 2001 From: Spp Date: Tue, 14 Sep 2010 16:37:54 +0200 Subject: Core/Scripts: Add GroupScript class --HG-- branch : trunk --- src/server/game/Groups/Group.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/server/game/Groups/Group.cpp') diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index d49255cff1e..8877839e2af 100644 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -256,6 +256,8 @@ bool Group::AddInvite(Player *player) player->SetGroupInvite(this); + sScriptMgr.OnGroupInviteMember(this, player->GetGUID()); + return true; } @@ -314,6 +316,7 @@ bool Group::AddMember(const uint64 &guid, const char* name) return false; SendUpdate(); + sScriptMgr.OnGroupAddMember(this, guid); Player *player = sObjectMgr.GetPlayer(guid); if (player) @@ -363,6 +366,8 @@ uint32 Group::RemoveMember(const uint64 &guid, const RemoveMethod &method) else if (isLFGGroup() && !isLfgDungeonComplete()) sLFGMgr.OfferContinue(this); + sScriptMgr.OnGroupRemoveMember(this, guid, method); + // remove member and change leader (if need) only if strong more 2 members _before_ member remove if (GetMembersCount() > (isBGGroup() ? 1u : 2u)) // in BG group case allow 1 members group { @@ -426,6 +431,7 @@ void Group::ChangeLeader(const uint64 &guid) if (slot == m_memberSlots.end()) return; + sScriptMgr.OnGroupChangeLeader(this, m_leaderGuid, guid); _setLeader(guid); WorldPacket data(SMSG_GROUP_SET_LEADER, slot->name.size()+1); @@ -436,8 +442,9 @@ void Group::ChangeLeader(const uint64 &guid) void Group::Disband(bool hideDestroy /* = false */) { - Player *player; + sScriptMgr.OnGroupDisband(this); + Player *player; for (member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr) { player = sObjectMgr.GetPlayer(citr->guid); -- cgit v1.2.3