Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. Group* Battlefield::GetFreeBfRaid(uint32 TeamId)
  2. {
  3.     //if found free group we return it
  4.     for(GroupSet::const_iterator itr=m_Groups[TeamId].begin();itr!=m_Groups[TeamId].end();++itr)
  5.     {
  6.         if(!(*itr))
  7.             return false;
  8.  
  9.         if((*itr) && !(*itr)->IsFull())
  10.             return (*itr);      
  11.     }
  12.     //if dont found free group
  13.     Group* g=new Group();    
  14.     m_Groups[TeamId].insert(g);
  15.     return g;
  16. }
  17.  
  18. bool Battlefield::AddOrSetPlayerToCorrectBfGroup(Player *plr)
  19. {
  20.     if(!plr)
  21.         return false;
  22.        
  23.     if(!plr->IsInWorld())
  24.         return false;
  25.        
  26.     if(Group* group = plr->GetGroup())
  27.              
  28.         group->RemoveMember(plr->GetGUID(),GROUP_REMOVEMETHOD_DEFAULT);
  29.  
  30.     Group* group = GetFreeBfRaid(plr->GetTeamId());
  31.     if(!group)
  32.     {
  33.         sLog.outError("Error:OutdoorPvPWG::AddOrSetPlayerToCorrectBgGroup can't get a group");
  34.         return false;
  35.     }
  36.     else
  37.     {
  38.         if (!group->IsCreated())
  39.         {
  40.             group->Create(plr->GetGUID(), plr->GetName());
  41.             group->ConvertToRaid();
  42.         }
  43.         if (group->IsMember(plr->GetGUID()))
  44.         {
  45.             uint8 subgroup = group->GetMemberGroup(plr->GetGUID());
  46.             plr->SetGroup(group, subgroup);
  47.         }
  48.         else
  49.         {
  50.             group->AddMember(plr->GetGUID(), plr->GetName());
  51.         }
  52.         return true;
  53.     }
  54.     return false;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement