1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Help Помогите реализовать

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Sparko_Dima, 7 дек 2012.

  1. Sparko_Dima Старожила

    Сообщения:
    744
    Спасибы:
    104
    Сборка бота GHost:
    Ghost Sparko
    Дата начала использования бота:
    10.10.09
    Код:
    Вот что Пишит бы все слоты заполнены (70(??), 120(LT) А хотелось бы ник пинг ник пинг вот код
    // if all slots occupied for 3 seconds, announce in the lobby
    if (!m_CountDownStarted && !m_GameLoaded && !m_GameLoading)
    if (GetSlotsOpen()==0 && m_AllSlotsOccupied && !m_AllSlotsAnnounced)
    if (GetTime()-m_SlotsOccupiedTime>3)
    {
    m_AllSlotsAnnounced = true;
    string Pings;
    string Pings2;
    uint32_t Ping;
    bool samecountry=true;
    string CN, CNL;
     
    Pings = tr("lang_1016");
    Pings2 = Pings;
     
    // copy the m_Players vector so we can sort by descending ping so it's easier to find players with high pings
     
    vector<CGamePlayer *> SortedPlayers = m_Players;
    sort( SortedPlayers.begin( ), SortedPlayers.end( ), CGamePlayerSortDescByPing( ) );
     
    //string FirstC;
     
    for( vector<CGamePlayer *> :: iterator i = SortedPlayers.begin( ); i != SortedPlayers.end( ); i++ )
    {
    //Pings += (*i)->GetName( );
    //Pings += ": ";
    bool skipP;
     
    if (((*i)->GetExternalIPString()=="127.0.0.1" || (*i)->GetExternalIPString()==m_GHost->m_ExternalIP) && !m_GHost->IsRootAdmin((*i)->GetName()))
    CN = "Ga";
    else
    CN = m_GHost->m_DBLocal->FromCheck( UTIL_ByteArrayToUInt32( (*i)->GetExternalIP( ), true ) );
    //CN = m_GHost->m_DBLocal->FromCheck( UTIL_ByteArrayToUInt32( (*i)->GetExternalIP( ), true ) );
    if (CNL=="")
    CNL=CN;
    else
    if (CN!=CNL)
    samecountry=false;
     
    if( (*i)->GetNumPings( ) > 0 )
    {
    Ping=(*i)->GetPing( m_GHost->m_LCPings );
    if (Ping>5)
    {
    skipP = false;
    Pings += UTIL_ToString( Ping );
    Pings += tr("lang_1017") + " (";
    Pings += CN;
    Pings += ")";
    Pings2 += UTIL_ToString( Ping );
    Pings2 += tr("lang_1017");
    } else
    {
    skipP = true;
    }
    }
    else
    {
    skipP = false;
    Pings += tr("lang_1018") + " (";
    Pings += CN;
    Pings += ")";
    }
     
    if( i != SortedPlayers.end( ) - 1 && !skipP)
    {
    Pings += ", ";
    Pings2 += ", ";
    }
    }
    Pings2 += tr("lang_1019", CNL); // " are all from ("+CNL+")";
     
    if (samecountry)
    SendAllChat( Pings2 );
    else
    SendAllChat( Pings );
    }
  2. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    уже банального текста не изменить?
  3. Sparko_Dima Старожила

    Сообщения:
    744
    Спасибы:
    104
    Сборка бота GHost:
    Ghost Sparko
    Дата начала использования бота:
    10.10.09
    Бля Видимо слишком рак я тестил не выходило(
  4. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Код:
    // if all slots occupied for 3 seconds, announce in the lobby
    if (!m_CountDownStarted && !m_GameLoaded && !m_GameLoading)
    if (GetSlotsOpen()==0 && m_AllSlotsOccupied && !m_AllSlotsAnnounced)
    if (GetTime()-m_SlotsOccupiedTime>3)
    {
    m_AllSlotsAnnounced = true;
    string Pings;
    uint32_t Ping = 0;
    uint32_t totp = 0;
     
    for( vector<CGamePlayer *> :: iterator i = SortedPlayers.begin( ); i != SortedPlayers.end( ); i++ )
        {
       totp++;
       Ping = (*i)->GetPing( m_GHost->m_LCPings );
     
       if(totp == 1)
       Pings += (*i)->GetName( ) + " (" + Ping + ")";
       else
       Pings += ", " + (*i)->GetName( ) + " (" + Ping + ")";
        }
    SendAllChat( Pings );
    }
    Sparko_Dima нравится это.
  5. Sparko_Dima Старожила

    Сообщения:
    744
    Спасибы:
    104
    Сборка бота GHost:
    Ghost Sparko
    Дата начала использования бота:
    10.10.09
    Спасибо, Я рак так же делал почти:facepalm: