예제 #1
0
        private void enforceImmediateMove(PlayerProfile vp) {

            int dtid = vp.getDelayedTeamId();
            int dsid = vp.getDelayedSquadId();

            vp.resetDelayedTeamSquad();

            DebugWrite("Moving player " + vp + " from ^bTeam(" + TN(vp.getSavedTeamId()) + ").Squad(" + SQN(vp.getSavedSquadId()) + ")^n to ^bDTeam(" + TN(dtid) + ").DSquad(" + SQN(dsid) + ")^n", 3);
            movePlayer(vp, dtid, dsid);

        }
예제 #2
0
        private void enforceDelayedMove(PlayerProfile vp) {

            int dtid = vp.getDelayedTeamId();
            int dsid = vp.getDelayedSquadId();

            vp.resetDelayedTeamSquad();

            /* if player is already in the delayed team, ignore him */
            if (dtid == vp.getTeamId()) {
                DebugWrite("Player " + vp + " is already in to ^bDTeam(" + TN(dtid) + ")^n, will skip", 3);
                return;
            }

            /* if teams are already balanced, ignore this player */
            DebugWrite("I will now re-check if teams are balanced", 3);
            if (teamsBalanced()) {
                DebugWrite("Teams are balanced, will not move player " + vp, 3);
                return;
            } else {
                /* if teams are not balanced we still have to check direction of inbalancing because of possible manual move or standart balancer work! */
                Dictionary<int, int> player_count = getPlayerCount();

                int team_sz = serverInfo.MaxPlayerCount / 2;
                int bigger_team = (player_count[1] > player_count[2]) ? 1 : 2;
                int smaller_team = (player_count[1] > player_count[2]) ? 2 : 1;

                if (bigger_team == dtid) {
                    DebugWrite("Teams are unbalanced, but in other direction that was marked for this player. Will not move player " + vp, 3);
                    return;
                }

            }

            DebugWrite("Moving player " + vp + " from ^bTeam(" + TN(vp.getTeamId()) + ").Squad(" + SQN(vp.getSquadId()) + ")^n to ^bDTeam(" + TN(dtid) + ").DSquad(" + SQN(dsid) + ")^n", 3);
            movePlayer(vp, dtid, dsid);

        }