// Called when a player enters the zone void Battlefield::HandlePlayerEnterZone(Player* player, uint32 /*zone*/) { // If battle is started, // If not full of players > invite player to join the war // If full of players > announce to player that BF is full and kick him after a few second if he desn't leave if (IsWarTime()) { if (m_PlayersInWar[player->GetTeamId()].size() + m_InvitedPlayers[player->GetTeamId()].size() < m_MaxPlayer) // Vacant spaces InvitePlayerToWar(player); else // No more vacant places { /// @todo Send a packet to announce it to player m_PlayersWillBeKick[player->GetTeamId()][player->GetGUID()] = time(NULL) + 10; InvitePlayerToQueue(player); } } else { // If time left is < 15 minutes invite player to join queue if (m_Timer <= m_StartGroupingTimer) InvitePlayerToQueue(player); } // Add player in the list of player in zone m_players[player->GetTeamId()].insert(player->GetGUID()); OnPlayerEnterZone(player); }
void Battlefield::HandlePlayerEnterZone(Player* player, uint32 /*zone*/) { // If battle is start, // if it not fully > invite player to join the war // if it fully > announce to player that BF is full and kick after few second if he dont leave if (IsWarTime()) { if (m_PlayersInWar[player->GetTeamId()].size() + m_InvitedPlayers[player->GetTeamId()].size() < m_MaxPlayer) //Not fully InvitePlayerToWar(player); else //Full { //TODO:Send packet for announce it to player m_PlayersWillBeKick[player->GetTeamId()][player->GetGUID()] = time(NULL) + 10; InvitePlayerToQueue(player); } } else { //If time left is <15 minutes invite player to join queue if (m_Timer <= m_StartGroupingTimer) InvitePlayerToQueue(player); } //Add player in list of player in zone m_players[player->GetTeamId()].insert(player->GetGUID()); OnPlayerEnterZone(player); //for scripting }