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

Help !pub <gamename> <mode>

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

  1. Evolver Давний приятель

    Сообщения:
    9
    Спасибы:
    0
    Ребят кто может помочь с этим ? !pub <gamename> <mode>
    К сожалению я не знаю С++ но знаю Vb.net + Delphi ,
    хотел узнать как именно создавать переменную в C++ ?

    Если у кого есть возможность исправить код и если есть возможность скажите что куда кинуть -
    Код:
     else if( Command == "pub" && !Payload.empty( ) )
        string Mode;
        string GameName;
        string :: size_type GameNameStart = Payload.find( " " );
     
        if( GameNameStart != string :: npos )
        {
         Mode = Payload.substr( 0, GameNameStart );
        GameName = Payload.substr( GameNameStart + 1 );
        m_HCLCommandString = Mode;
        m_GHost->CreateGame( m_GHost->m_Map, GAME_PUBLIC, false, Payload, User, User, m_Server, Whisper );
     
        }
    
    как я понел нужно mode прописать в bnet.h
    и есть вопрос почему он ругается на m_HCLCommandString

    Лог ошибки -
    3>.\bnet.cpp(1779) : error C2065: Mode: необъявленный идентификатор
    3>.\bnet.cpp(1781) : error C2065: m_HCLCommandString: необъявленный идентификатор
    3>.\bnet.cpp(1781) : error C2065: Mode: необъявленный идентификатор

    Я как бы не создавал переменную m_Hclcommandstring а тупо взял с !hcl

    Причина этого кода в том чтобы сделать как на ICCUP /pub dasdasd aptb или dasdsad
    В будушем хотелось бы создать переменную типа boolean которая будет проверять на true или false " Balance = true
    If balance = true then
    formula = (Win - lose + blah +blah) * 0.3
    else
    forumula (Win - lose + blah +blah)
  2. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    Даю кусок из game_base.cpp думаю разберётесь
    Код:
    void CBaseGame :: AutoSetHCL ( )
    {
        // auto set HCL if map_defaulthcl is not empty
        string gameName = m_GameName;
        transform( gameName.begin( ), gameName.end( ), gameName.begin( ), (int(*)(int))tolower );
        string m_Mode = string();
        string m_Modes = string();
        string m_Modes2 = string();
        bool forceindota = (m_GHost->m_forceautohclindota && m_Map->GetMapType().find("dota")!= string ::npos);
        if (m_GHost->m_autohclfromgamename || forceindota )
            if (!m_Map->GetMapDefaultHCL().empty() || forceindota)
                //    if (m_AutoHosted)
                if (gameName.find("-")!= string::npos)
                {
                    uint32_t j = 0;
                    uint32_t k = 0;
                    uint32_t i = 0;
                    string mode = string();
                    while (j<gameName.length()-1 && (gameName.find("-",j)!= string::npos))
                    {
                        k = gameName.find("-",j);
                        i = gameName.find(" ",k);
                        if (i==0)
                            i = gameName.length() - k + 1;
                        else
                            i = i - k;
                        mode = gameName.substr(k, i);
                        // keep the first mode separately to be used in HCL
                        if (m_Mode.empty())
                            m_Mode = gameName.substr(k+1, i-1);
                        m_Modes += " "+mode;
                        if (m_Modes2.length()>0)
                            m_Modes2+=" ";
                        m_Modes2+= mode;
                        j = k + i;
                    }
                    if (!m_Mode.empty())
                    {
                        CONSOLE_Print( "[GHOST] autosetting HCL to [" + m_Mode + "]" );
                        if( m_Mode.size( ) <= m_Slots.size( ) )
                        {
                            string HCLChars = "abcdefghijklmnopqrstuvwxyz0123456789 -=,.";
     
                            if( m_Mode.find_first_not_of( HCLChars ) == string :: npos )
                            {
                                SetHCL(m_Mode);
                                if (m_Mode != m_HCLCommandString)
                                    SendAllChat( m_GHost->m_Language->SettingHCL( GetHCL() ) );
                            }
                            else
                                SendAllChat( m_GHost->m_Language->UnableToSetHCLInvalid( ) );
                        }
                        else
                            SendAllChat( m_GHost->m_Language->UnableToSetHCLTooLong( ) );         
                    }
                } else
                    // no gamemode detected from gamename, disable map_defaulthcl
                {
                    SetHCL(string());
                }
    }
    Evolver нравится это.
  3. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    ах да, ещё Вам нужно будет поправить команду !pub
    Как разберётесь с этим. Дам ответ на этот вопрос
    Evolver нравится это.
  4. Ziko Гуру

    Сообщения:
    130
    Спасибы:
    2
    Сборка бота GHost:
    Ghost ++17.1
    Дата начала использования бота:
    01.09.2010
    Skype:
    Мой статус
    клонеры айкапа. . . я с вами :)
  5. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Опять чето намудили... hcl и так с названия задает. Баланс можешь выставить автоматом, или дополнение в команде какоето придумать.
  6. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    есть такое условие
    Код:
    if (gameName.find("-")!= string::npos)
    где он ищет в названии игры знак "-" и берёт за мод значение после знака.
    автор темы хотел, чтобы у него было как на ICCUP'e - без знака "-".
  7. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    ну я собсно про это и сказал
  8. Evolver Давний приятель

    Сообщения:
    9
    Спасибы:
    0
    Рост у меня в боте ghost one plus нету чтоб он брал hcl с название игры, вот и хотел сделать это в этой версии,
  9. Evolver Давний приятель

    Сообщения:
    9
    Спасибы:
    0
    Можно тему закрывать -
    А для тех кому это интересно просто возьмите кусок кода из Ghost Custom build , AutoSetHcl -> весь код можно использовать
  10. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    ghost one plus? это что еще за сборка
    Guard нравится это.
  11. dbuser Ньюфаг

    Сообщения:
    10
    Спасибы:
    3
    Дата начала использования бота:
    01.01.1910
    обоже причем тут айкап:? ты походу помешан на этом сервере все тебе надо как у них...лечись
    rost нравится это.
  12. Ziko Гуру

    Сообщения:
    130
    Спасибы:
    2
    Сборка бота GHost:
    Ghost ++17.1
    Дата начала использования бота:
    01.09.2010
    Skype:
    Мой статус
    тебе не понять
  13. rost Гуру

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