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

Help Сохранение статов.

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Kazami, 19 апр 2014.

  1. Kazami Ньюфаг

    Сообщения:
    20
    Спасибы:
    0
    Дата начала использования бота:
    10.04.2014
    Здравствуйте.. Возможно я уже надоел(мне как кажется) но всёже.) След проблема - Нужно чтобы бот сохранял стату только когда в игре 10 ЛЮДЕЙ. Я понял эта делается через
    Код:
    GetNumHumanPlayers( )
    Понял что статы сохраняются в
    Код:
    // save the dotaplayers
     
            for( unsigned int i = 0; i < 12; i++ )
            {
                if( m_Players[i] && m_Winner!=0 )
                {
                    GHost->m_Callables.push_back( DB->ThreadedDotAPlayerAdd( GameID, m_Players[i]->GetColour( ), m_Players[i]->GetKills( ), m_Players[i]->GetDeaths( ), m_Players[i]->GetCreepKills( ), m_Players[i]->GetCreepDenies( ), m_Players[i]->GetAssists( ), m_Players[i]->GetGold( ), m_Players[i]->GetNeutralKills( ), m_Players[i]->GetItem( 0 ), m_Players[i]->GetItem( 1 ), m_Players[i]->GetItem( 2 ), m_Players[i]->GetItem( 3 ), m_Players[i]->GetItem( 4 ), m_Players[i]->GetItem( 5 ), m_Players[i]->GetHero( ), m_Players[i]->GetNewColour( ), m_Players[i]->GetTowerKills( ), m_Players[i]->GetRaxKills( ), m_Players[i]->GetCourierKills( ) ) );
                    Players++;
                }
            }
     
            if( DB->Commit( ) )
                CONSOLE_Print( "[STATSDOTA: " + m_Game->GetGameName( ) + "] saving " + UTIL_ToString( Players ) + " players" );
            else
                CONSOLE_Print( "[STATSDOTA: " + m_Game->GetGameName( ) + "] unable to commit database transaction, data not saved" );
        }
        else
            CONSOLE_Print( "[STATSDOTA: " + m_Game->GetGameName( ) + "] unable to begin database transaction, data not saved" );
        }
    Хочу добавить переменное
    string HumanPlayers = GetNumHumanPlayers();
    И Условие
    if ( HumanPlayers >= "10" )
    {
    }
    Но говорит что "GetNumHumanPlayers: идентификатор не найден".
    Вот сам
    Код:
    uint32_t CBaseGame :: GetNumHumanPlayers( )
    {
    uint32_t NumHumanPlayers = 0;
     
    for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
    {
    if( !(*i)->GetLeftMessageSent( ) )
    NumHumanPlayers++;
    }
     
    return NumHumanPlayers;
    }
  2. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    Ну так объяви в statsdota.h
  3. Kazami Ньюфаг

    Сообщения:
    20
    Спасибы:
    0
    Дата начала использования бота:
    10.04.2014
    Мм(( не получилось у меня((
  4. Kazami Ньюфаг

    Сообщения:
    20
    Спасибы:
    0
    Дата начала использования бота:
    10.04.2014
    Решено. Спс.