Just create a new faction (you can use my tutorial) and set the player to that faction upon login or character creation. That should allow for a 'third faction'. Although this is a pure guess.
TeamId GetTeamId() const { return m_team == ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE; } void setFactionForRace(uint8 race);
TeamId GetTeamId() const { return m_team == ALLIANCE ? TEAM_ALLIANCE : m_team == HORDE ? TEAM_HORDE : TEAM_SCOURGE; }
uint32 Player::TeamForRace(uint8 race){ if (ChrRacesEntry const* rEntry = sChrRacesStore.LookupEntry(race)) { switch (rEntry->TeamID) { case 1: return HORDE; case 7: return ALLIANCE; } TC_LOG_ERROR("entities.player", "Race (%u) has wrong teamid (%u) in DBC: wrong DBC files?", uint32(race), rEntry->TeamID); } else TC_LOG_ERROR("entities.player", "Race (%u) not found in DBC: wrong DBC files?", uint32(race)); return ALLIANCE;}
uint32 Player::TeamForRace(uint8 race){ if (ChrRacesEntry const* rEntry = sChrRacesStore.LookupEntry(race)) { switch (rEntry->TeamID) { case 1: return HORDE; case 5: return SCOURGE; case 7: return ALLIANCE; } TC_LOG_ERROR("entities.player", "Race (%u) has wrong teamid (%u) in DBC: wrong DBC files?", uint32(race), rEntry->TeamID); } else TC_LOG_ERROR("entities.player", "Race (%u) not found in DBC: wrong DBC files?", uint32(race)); return ALLIANCE;}