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

команда !stats после входа в игру

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

  1. AlexKar Ньюфаг

    Сообщения:
    6
    Спасибы:
    0
    Нужно что бы после входа в игру выдавалось сообщение со статистикой(!stats) по каждому зашедшему игроку. Карта не дота.
    Нашел в ланг паке строку
    lang_0061 = $USER$ - $TOTALGAMES$ игр. Средняя загрузка: $AVGLOADINGTIME$ сек. Среднее пребывание: $AVGSTAY$ %.
    lang_0062 = $USER$ не играл игр на этом боте.
    Эта информация появляется после ввода команды !stats
    Как автоматически выполнять эту команду для каждого вошедшего игрока?

    Есть код в файле game_base.cpp который говорит с какого сервера игрок.
    SendAllChat( "Player [" + joinPlayer->GetName( ) + "] has joined from [" + ( JoinedRealm == string( ) ? "LAN" : JoinedRealm ) + "]" );
    Может после этих строк что то добавить?
  2. AlexKar Ньюфаг

    Сообщения:
    6
    Спасибы:
    0
    Еще нанеш нужные строки в файле game.cpp
    Но как собрать это вместе не знаю

    Line 199: SendAllChat( 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( ) ) ) );

    Line 205: SendChat( Player, 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( ) ) ) );
  3. AlexKar Ньюфаг

    Сообщения:
    6
    Спасибы:
    0
    Спасибо за помошь.
    Так и знал что ру сообщества нет, лучне напрямую у авторов спросить
  4. Synth (LM) Пантограф!

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

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    угу, и заодно спроси как прятать етот код под тег
    Код:
     [code]
    [/code]
  6. eX_LuckiEr Ньюфаг

    Сообщения:
    2
    Спасибы:
    0
    дико извиняюсь но мб кто нить ответит что нить ??? (хотя бы стандартное погугли)
  7. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    Пиши автору в личку, мб уже спросил у авторов и ему уже ответили.
  8. AlexKar Ньюфаг

    Сообщения:
    6
    Спасибы:
    0
  9. Synth (LM) Пантограф!

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

    То что это сеть проектов, да пох, да...
  10. Anufrii Ньюфаг

    Сообщения:
    33
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One 1.7.266
    В общем заинтересовался я этой темой и решил попробовать, вот что у меня получилось

    в game_base.h добавил
    Код:
    class CCallableWarnCount;
    class CCallableGamePlayerSummaryCheck;
    
    typedef pair<string,CCallableGamePlayerSummaryCheck *> PairedGPSCheck;
    typedef pair<string,CCallableDotAPlayerSummaryCheck *> PairedDPSCheck;
    
    vector<PairedGPSCheck> m_PairedGPSChecks;
    
    в game_base.cpp добавил в двух местах после SendWelcomeMessage( Player );
    Код:
    m_PairedGPSChecks.push_back( PairedGPSCheck( joinPlayer->GetName( ), m_GHost->m_DB->ThreadedGamePlayerSummaryCheck( joinPlayer->GetName( ) ) ) );
    
    Компилируется все это дело без ошибок и ругани, а вот на деле не работает, не подскажете что не так? :)
  11. Aloha_Hawaii Старожила

    Сообщения:
    314
    Спасибы:
    33
    Сборка бота GHost:
    Ghost One 1.7.266
    тоже крайне интересует сабжец
  12. Anufrii Ньюфаг

    Сообщения:
    33
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One 1.7.266
    В общем вот как сделал я, все намного проще, чем кажется :alequate:

    ищем в game.cpp

    Код:
    	if (m_ShowScoreOf!="")
    	{
    //		CONSOLE_Print( "[GAME: " + m_GameName + "] checking score for "+ m_ShowScoreOf );		
    		if (!m_GHost->m_CalculatingScores)
    		m_PairedDPSChecks.push_back( PairedDPSCheck( "%", m_GHost->m_DB->ThreadedDotAPlayerSummaryCheck( m_ShowScoreOf, m_GHost->m_ScoreFormula, m_GHost->m_ScoreMinGames, string() ) ) );
    		m_ShowScoreOf=string();
    	}
    
    и меняем на

    Код:
    if (m_ShowScoreOf!="")
    //		CONSOLE_Print( "[GAME: " + m_GameName + "] checking score for "+ m_ShowScoreOf );		
    		m_PairedGPSChecks.push_back( PairedGPSCheck( string(), m_GHost->m_DB->ThreadedGamePlayerSummaryCheck( m_ShowScoreOf ) ) );
    		m_ShowScoreOf=string();
    
    в ghost.cfg ставим bot_showscoresonjoin = 1

    У меня все работает :rickroll:

    И да, в game_base.h

    Код:
    class CCallableWarnCount;
    class CCallableGamePlayerSummaryCheck;
    
    typedef pair<string,CCallableGamePlayerSummaryCheck *> PairedGPSCheck;
    typedef pair<string,CCallableDotAPlayerSummaryCheck *> PairedDPSCheck;
    
    vector<PairedGPSCheck> m_PairedGPSChecks;
    
  13. Aloha_Hawaii Старожила

    Сообщения:
    314
    Спасибы:
    33
    Сборка бота GHost:
    Ghost One 1.7.266
    вот только теперь рехост идет каждую секунду
    даже если я его отключаю

    дело похоже в айсикапе [IMG]
  14. Anufrii Ньюфаг

    Сообщения:
    33
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One 1.7.266
    хз, у меня все норм, проверь ghost.cfg

    а точнее :
    Код:
    # the bot will auto rehost the game as gamename + 1 if 60 seconds have passed since last player joined, 0 = disable
    bot_autorehostdelay = 0
    
    и еще, если ICCup, то смотри Сюда и Сюда
  15. Mr_LiSa Старожила

    Сообщения:
    421
    Спасибы:
    3
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    В game.cpp заменил всё норм ...
    а вот в game_base.h
    к
    class CCallableWarnCount;
    добавил
    class CCallableGamePlayerSummaryCheck;

    typedef pair<string,CCallableGamePlayerSummaryCheck *> PairedGPSCheck;
    typedef pair<string,CCallableDotAPlayerSummaryCheck *> PairedDPSCheck;

    vector<PairedGPSCheck> m_PairedGPSChecks;

    и
    Код:
    1>------ Построение начато: проект: ghost, Конфигурация: Release MySQL Win32 ------
    1>Компиляция...
    1>game_base.cpp
    1>Компиляция...
    1>bnet.cpp
    1>game.cpp
    1>game_admin.cpp
    1>gameplayer.cpp
    1>gameprotocol.cpp
    1>ghost.cpp
    1>statsdota.cpp
    1>statsw3mmd.cpp
    1>Компоновка...
    1>game.obj : error LNK2005: "class std::vector<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *>,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *> > > m_PairedGPSChecks" (?m_PairedGPSChecks@@3V?$vector@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@V?$allocator@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@@2@@std@@A) уже определен в bnet.obj
    1>game_admin.obj : error LNK2005: "class std::vector<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *>,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *> > > m_PairedGPSChecks" (?m_PairedGPSChecks@@3V?$vector@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@V?$allocator@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@@2@@std@@A) уже определен в bnet.obj
    1>game_base.obj : error LNK2005: "class std::vector<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *>,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *> > > m_PairedGPSChecks" (?m_PairedGPSChecks@@3V?$vector@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@V?$allocator@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@@2@@std@@A) уже определен в bnet.obj
    1>gameplayer.obj : error LNK2005: "class std::vector<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *>,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *> > > m_PairedGPSChecks" (?m_PairedGPSChecks@@3V?$vector@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@V?$allocator@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@@2@@std@@A) уже определен в bnet.obj
    1>gameprotocol.obj : error LNK2005: "class std::vector<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *>,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *> > > m_PairedGPSChecks" (?m_PairedGPSChecks@@3V?$vector@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@V?$allocator@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@@2@@std@@A) уже определен в bnet.obj
    1>ghost.obj : error LNK2005: "class std::vector<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *>,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *> > > m_PairedGPSChecks" (?m_PairedGPSChecks@@3V?$vector@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@V?$allocator@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@@2@@std@@A) уже определен в bnet.obj
    1>statsdota.obj : error LNK2005: "class std::vector<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *>,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *> > > m_PairedGPSChecks" (?m_PairedGPSChecks@@3V?$vector@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@V?$allocator@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@@2@@std@@A) уже определен в bnet.obj
    1>statsw3mmd.obj : error LNK2005: "class std::vector<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *>,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CCallableGamePlayerSummaryCheck *> > > m_PairedGPSChecks" (?m_PairedGPSChecks@@3V?$vector@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@V?$allocator@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVCCallableGamePlayerSummaryCheck@@@std@@@2@@std@@A) уже определен в bnet.obj
    1>C:\GHostOne\\ghost.exe : fatal error LNK1169: обнаружен многократно определенный символ - один или более
    1>Журнал построения был сохранен в "file://c:\GHostOne\ghost\Release MySQL\BuildLog.htm"
    1>ghost - ошибок 9, предупреждений 0
    ========== Построение: успешно: 0, с ошибками: 1, без изменений: 1, пропущено: 0 ==========
    
    :stenka:
  16. Smok Ньюфаг

    Сообщения:
    2
    Спасибы:
    0
    выводит вот эту строку: lang_0061 = $USER$ - $TOTALGAMES$ игр. Средняя загрузка: $AVGLOADINGTIME$ сек. Среднее пребывание: $AVGSTAY$ %.
    пример: kapitoshka 1 игр. Средняя загрузка: 6.72 сек. Среднее пребывание: 99 %.
    а как же рейтинг?