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

GhostOne !sd в лобби для игроков

Тема в разделе 'Основные вопросы', создана пользователем Svordal, 21 май 2013.

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

    Сообщения:
    39
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    12.12.1212
    Хай, помогите решить проблему, в лобби !sd юзать может только овнер и админы, но хотелось бы что бы эта команда была доступна всем, и работала так-же как команда !sd из bnet.cpp , тоесть если статов нет то выводился бы ланг что игр нет.

    Вот код из game.cpp

    Код:
    //
        // !SD
        // !SDI
        // !SDPRIV
        // !SDPUB
        //
    
        if( (Command == "sd" || Command == "sdi" || Command == "sdpub" || Command == "sdpriv") && GetTime( ) >= player->GetStatsDotASentTime( ) + 2 )
        {
            string StatsUser = User;
            string GameState = string();
    
            if (Command == "sdi")
                GameState = UTIL_ToString(m_GHost->m_gamestateinhouse);
    
            if (Command == "sdpub")
                GameState = "16";
    
            if (Command == "sdpriv")
                GameState = "17";
    
            if( !Payload.empty( ) )
            {
                StatsUser = Payload;
    
                CGamePlayer *LastMatch = NULL;
    
                uint32_t Matches = GetPlayerFromNamePartial( Payload , &LastMatch );
                if (Matches == 1)
                    StatsUser = LastMatch->GetName();
            }
    
            if (m_GHost->m_CalculatingScores)
                return HideCommand;
    
            bool nonadmin = !(( player->GetSpoofed( ) &&  AdminCheck) || RootAdminCheck || IsOwner( User ) ) ;
    
            if (!nonadmin)
                m_PairedDPSChecks.push_back( PairedDPSCheck( "%", m_GHost->m_DB->ThreadedDotAPlayerSummaryCheck( StatsUser, m_GHost->m_ScoreFormula, m_GHost->m_ScoreMinGames, GameState ) ) );
            else
                m_PairedDPSChecks.push_back( PairedDPSCheck( "%"+User, m_GHost->m_DB->ThreadedDotAPlayerSummaryCheck( StatsUser, m_GHost->m_ScoreFormula, m_GHost->m_ScoreMinGames, GameState ) ) );
    
            player->SetStatsDotASentTime( GetTime( ) );
        }
  2. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    свою на это замени
    Svordal нравится это.
  3. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    ответ на свой вопрос искать в этом векторе
    Код:
    vector<PairedDPSCheck>
    
  4. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    ну его, костыль лучше :alequate:
    Suicider нравится это.
  5. Svordal Наш человек

    Сообщения:
    39
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    12.12.1212
    Спасибо, оказывается надо было строчки закоментить а я все парился, спасибо большое. Только как выводить ланг или просто строчку из кода если игрок не одной игры не сыграл , lang_0075 например
  6. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
  7. Svordal Наш человек

    Сообщения:
    39
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    12.12.1212
    Я так понимаю нужно вот здесь править, но к сожалению я все перепробовал в этом коде, все то что в моих силах.
    Код:
                    if( i->first.empty( ) )
                        SendAllChat( Summary );
                    else
                    {
                        CGamePlayer *Player = GetPlayerFromName( i->first, true );
    
                        if( Player )
                            SendChat( Player, Summary );
                    }
                }
                else
                {
                    if( i->first.empty( ) )
                        SendAllChat( m_GHost->m_Language->HasntPlayedDotAGamesWithThisBot( i->second->GetName( ) ) );
                    else
                    {
                        CGamePlayer *Player = GetPlayerFromName( i->first, true );
    
                        if( Player )
                            SendChat( Player, m_GHost->m_Language->HasntPlayedDotAGamesWithThisBot( i->second->GetName( ) ) );
                    }
                }
    
    В Bnet.cpp все просто и понятно: если стата есть то отправит стату, если нету то выводит ланг и все это в двух строках. А здесь не понимаю что нужно изменить;(
  8. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    мде... ну добавь else ...
    Код:
    if( DotAPlayerSummary )
    {
    ...
    }
     
    else
    {
    if(!Whisper )
    SendAllChat( m_GHost->m_Language->HasntPlayedDotAGamesWithThisBot( i->second->GetName( ) ) );
    else
    {
    CGamePlayer *Player = GetPlayerFromName( i->first, true );
    if( Player ) SendChat( Player, m_GHost->m_Language->HasntPlayedDotAGamesWithThisBot( i->second->GetName( ) ) );
    }
    }
    
    Svordal нравится это.
  9. Svordal Наш человек

    Сообщения:
    39
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    12.12.1212
    Suicider, Спасибо
  10. Guard Старожила

    Сообщения:
    473
    Спасибы:
    47
    Сборка бота GHost:
    Ghost++ RAKAL Edition
    Дата начала использования бота:
    00.00.2009
    Skype:
    Мой статус
    ха-ха-ха.
  11. ıIıIİıİIıımusic Можно доверять

    Сообщения:
    134
    Спасибы:
    2
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.2013
    Skype:
    Мой статус
  12. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
  13. fun2mass Оштрафован: 1 балл

    Сообщения:
    209
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    00.00.00
    Skype:
    Мой статус
  14. fun2mass Оштрафован: 1 балл

    Сообщения:
    209
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    00.00.00
    Skype:
    Мой статус
    Не работает твоя команда Doterok для всех игроков в лобби:( !
    Oxxxymiron нравится это.
  15. ıIıIİıİIıımusic Можно доверять

    Сообщения:
    134
    Спасибы:
    2
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.2013
    Skype:
    Мой статус

    Пля трудно догнать что ли?
    вот строка которая была у тя:
    Код:
     bool nonadmin = !(( player->GetSpoofed( ) &&  AdminCheck) || RootAdminCheck || IsOwner( User ) ) ;
     
            if (!nonadmin)
                m_PairedDPSChecks.push_back( PairedDPSCheck( "%", m_GHost->m_DB->ThreadedDotAPlayerSummaryCheck( StatsUser, m_GHost->m_ScoreFormula, m_GHost->m_ScoreMinGames, GameState ) ) );
            else
                m_PairedDPSChecks.push_back( PairedDPSCheck( "%"+User, m_GHost->m_DB->ThreadedDotAPlayerSummaryCheck( StatsUser, m_GHost->m_ScoreFormula, m_GHost->m_ScoreMinGames, GameState ) ) );
    Оно должно выглядеть так:
    Код:
     // bool nonadmin = !(( player->GetSpoofed( ) &&  AdminCheck) || RootAdminCheck || IsOwner( User ) ) ;
     
            // if (!nonadmin)
                m_PairedDPSChecks.push_back( PairedDPSCheck( "%", m_GHost->m_DB->ThreadedDotAPlayerSummaryCheck( StatsUser, m_GHost->m_ScoreFormula, m_GHost->m_ScoreMinGames, GameState ) ) );
            // else
                m_PairedDPSChecks.push_back( PairedDPSCheck( "%"+User, m_GHost->m_DB->ThreadedDotAPlayerSummaryCheck( StatsUser, m_GHost->m_ScoreFormula, m_GHost->m_ScoreMinGames, GameState ) ) );
    что бы все могли юзать команду СД!
  16. fun2mass Оштрафован: 1 балл

    Сообщения:
    209
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    00.00.00
    Skype:
    Мой статус
  17. fun2mass Оштрафован: 1 балл

    Сообщения:
    209
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    00.00.00
    Skype:
    Мой статус
    Также сделал не работает:(
  18. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    мда...
    в твоём случае - при вызове команды будет выводить по 2 строки каждому игроку............ :fp:
  19. ıIıIİıİIıımusic Можно доверять

    Сообщения:
    134
    Спасибы:
    2
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.2013
    Skype:
    Мой статус

    нет... каждому по 1 строке... у меня по крайней мере нормально пашет...
  20. ___ROB___ Гуру

    Сообщения:
    256
    Спасибы:
    45
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    1.1.1991
    fun2mass
    Забанен: 7 баллов

    аминь
    Suicider нравится это.