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

Issue админы с условием

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

  1. Krabsss Наш человек

    Сообщения:
    50
    Спасибы:
    4
    помогите пожалуйста с кодом, чет не получается, как сделать чтобы в админы можно было добавлять тока тех кто сыграл 100 игр на боте и average stay не менее 85%.
  2. Ziko Гуру

    Сообщения:
    130
    Спасибы:
    2
    Сборка бота GHost:
    Ghost ++17.1
    Дата начала использования бота:
    01.09.2010
    Skype:
    Мой статус
    кол.во побед / кол.во всего сыгранных игр и будет тебе процент победы. А про проверки админа в процентах то подумай сам, постав проверку (к примеру если у игрока процент победы от 85% до 100% то можно добавить его(её) в админ) и всё.
  3. Krabsss Наш человек

    Сообщения:
    50
    Спасибы:
    4
    причем здесь процент победы?
  4. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    А добавление ручное или автоматическое?
  5. Krabsss Наш человек

    Сообщения:
    50
    Спасибы:
    4
    ручное
  6. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    А смысл?глянул топ, есть 100 игр добавил...если б автоматом то да норм, а так мусор...
  7. Ziko Гуру

    Сообщения:
    130
    Спасибы:
    2
    Сборка бота GHost:
    Ghost ++17.1
    Дата начала использования бота:
    01.09.2010
    Skype:
    Мой статус
    А откуда тогда берёшь пребывания пользователя?
  8. Krabsss Наш человек

    Сообщения:
    50
    Спасибы:
    4
    раз прошу значит надо, просто помогите ктонить, очень нужно
    Ziko не засоряй тему, у меня бот даже не хостит доту, какие победы?
  9. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    Солидарен с MySQL123, раз добавление ручное пишешь stats <имя>
    Если более 100 игр => addadmin <имя>, если меньше => то фиг
  10. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Нужно разобрать следующий код:

    for( vector<PairedGPSCheck> :: iterator i = m_PairedGPSChecks.begin( ); i != m_PairedGPSChecks.end( ); )
    	{
    		if( i->second->GetReady( ) )
    		{
    			CDBGamePlayerSummary *GamePlayerSummary = i->second->GetResult( );
    
    			if( GamePlayerSummary )
    				QueueChatCommand( m_GHost->m_Language->HasPlayedGamesWithThisBot( i->second->GetName( ), GamePlayerSummary->GetFirstGameDateTime( ), GamePlayerSummary->GetLastGameDateTime( ), UTIL_ToString( GamePlayerSummary->GetTotalGames( ) ), UTIL_ToString( (float)GamePlayerSummary->GetAvgLoadingTime( ) / 1000, 2 ), UTIL_ToString( GamePlayerSummary->GetAvgLeftPercent( ) ) ), i->first, !i->first.empty( ) );
    			else
    				QueueChatCommand( m_GHost->m_Language->HasntPlayedGamesWithThisBot( i->second->GetName( ) ), i->first, !i->first.empty( ) );
    
    			m_GHost->m_DB->RecoverCallable( i->second );
    			delete i->second;
    			i = m_PairedGPSChecks.erase( i );
    		}
    		else
    			i++;
    	}


    Причем после отброса лишнего останется так:


    for( vector<PairedGPSCheck> :: iterator i = m_PairedGPSChecksOAVG.begin( ); i != m_PairedGPSChecksOAVG.end( ); )
    	{
    
    		if( i->second->GetReady( ) )
    		{
    			CDBGamePlayerSummary *GamePlayerSummary = i->second->GetResult( );
    
    			if( GamePlayerSummary )
    				SomeFunc((float)GamePlayerSummary->GetAvgLoadingTime( ) / 1000);
    			
    
    			m_GHost->m_DB->RecoverCallable( i->second );
    			delete i->second;
    			i = m_PairedGPSChecksOAVG.erase( i );
    		}
    		else
    			i++;
    	}


    Т.е. в зоне метода Update, bnet.cpp, сделаем перебор вектора m_PairedGPSChecksOAVG, которого нужно объявить офк. В этом переборе будет вызвана, в удачном случае, функция, которая в свою очередь получит процент пребывания в игре, и вот тогда, уже в последней функции нужно работать с админами.

    А "вызвать" этот перебор можно в команде !addadmin:

    m_PairedGPSChecksOAVG.push_back( PairedGPSCheck( string( ), m_GHost->m_DB->ThreadedGamePlayerSummaryCheck( USERNAME ) ) );
  11. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    классная идея, особенно когда пользователь напишет !statsme