Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Group* Battlefield::GetFreeBfRaid(uint32 TeamId)
- {
- //if found free group we return it
- for(GroupSet::const_iterator itr=m_Groups[TeamId].begin();itr!=m_Groups[TeamId].end();++itr)
- {
- if(!(*itr))
- return false;
- if((*itr) && !(*itr)->IsFull())
- return (*itr);
- }
- //if dont found free group
- Group* g=new Group();
- m_Groups[TeamId].insert(g);
- return g;
- }
- bool Battlefield::AddOrSetPlayerToCorrectBfGroup(Player *plr)
- {
- if(!plr)
- return false;
- if(!plr->IsInWorld())
- return false;
- if(Group* group = plr->GetGroup())
- group->RemoveMember(plr->GetGUID(),GROUP_REMOVEMETHOD_DEFAULT);
- Group* group = GetFreeBfRaid(plr->GetTeamId());
- if(!group)
- {
- sLog.outError("Error:OutdoorPvPWG::AddOrSetPlayerToCorrectBgGroup can't get a group");
- return false;
- }
- else
- {
- if (!group->IsCreated())
- {
- group->Create(plr->GetGUID(), plr->GetName());
- group->ConvertToRaid();
- }
- if (group->IsMember(plr->GetGUID()))
- {
- uint8 subgroup = group->GetMemberGroup(plr->GetGUID());
- plr->SetGroup(group, subgroup);
- }
- else
- {
- group->AddMember(plr->GetGUID(), plr->GetName());
- }
- return true;
- }
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement