Esempio n. 1
0
///////////////////////////////////////////////////////////////////////////////
// Serverliste abrufen
bool MySQL::GetServerList(LobbyServerList* List)
{
    MYSQL_RES*   pResult;
    MYSQL_ROW   Row;

    char query[1024];
    snprintf(query, 1024, "SELECT * FROM `lobby_servers` WHERE `curplayer` > 0 AND `maxplayers` > 0 ORDER BY `name` ASC;");

    if(!DoQuery(query))
        return false;

    pResult = mysql_store_result(m_pMySQL);

    unsigned int count = (unsigned int)mysql_num_rows(pResult);

    if(count == 0)
    {
        mysql_free_result(pResult);
        return true;
    }

    for(unsigned int i = 0; i < count; i++)
    {
        Row = mysql_fetch_row(pResult);

        LobbyServerInfo server;

        server.setId(atoi(Row[0]));
        server.setName(Row[1]);
        server.setHost(Row[2]);
        server.setPort(atoi(Row[3]));
        server.setVersion(Row[4]);
        server.setPing(atoi(Row[5]));
        server.setMap(Row[6]);
        server.setMaxPlayers(atoi(Row[7]));
        server.setCurPlayers(atoi(Row[8]));
        server.setPassword((atoi(Row[9]) != 0));

        List->push_back(server);
    }

    mysql_free_result(pResult);
    return true;
}