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

Создаём комманду для старта по голосованию.

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

  1. MooDBlooD Ньюфаг

    Сообщения:
    56
    Спасибы:
    1
    Короче, перекомпилил на свой лад по шаблону Zarj`a...
  2. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    скобка эт да, а вот про Language.h извините что я вам кЭпу не расписал всё
    я лишь показал как должно быть...
  3. MooDBlooD Ньюфаг

    Сообщения:
    56
    Спасибы:
    1
    Походу дела плохо смотришь:
    Код:
        string m_RmkVotePlayer;                            // the player who started the rmk vote
        string m_StartVotePlayer;                                     // the player who started the start vote   ADDED 
        string m_KickVotePlayer;                        // the player to be kicked with the currently running kick vote
        string m_HCLCommandString;                        // the "HostBot Command Library" command string, used to pass a limited amount of data to specially designed maps
        uint32_t m_RandomSeed;                            // the random seed sent to the Warcraft III clients
        uint32_t m_HostCounter;                            // a unique game number
  4. MooDBlooD Ньюфаг

    Сообщения:
    56
    Спасибы:
    1
    Да это я как бы в общем, просто если в .h не прописать стринги, то будет выдавать ошибку при компиляции.
    Я и сам то не с первого раза догнал про эту ошибку.
    Но всё равно там что-то не так в этом коде.
    По шаблону Zarj`a щас посмотрю как будет работать!
    :ИМХО: Спасибо за то что пытался помочь альтернативным варриантом! =)
  5. denischegaev Парнишка с небывалым умом

    Сообщения:
    289
    Спасибы:
    0
    Сборка бота GHost:
    17.266
    ну я ведь не слепой!!!
    Код:
    string m_GameName;								// game name
    	string m_OriginalGameName;						// game name
    	string m_VirtualHostName;						// virtual host's name
    	string m_OwnerName;								// name of the player who owns this game (should be considered an admin)
    	string m_CreatorName;							// name of the player who created this game
    	string m_CreatorServer;							// battle.net server the player who created this game was on
    	string m_AnnounceMessage;						// a message to be sent every m_AnnounceInterval seconds
    	string m_StatString;							// the stat string when the game started (used when saving replays)
    	string m_KickVotePlayer;						// the player to be kicked with the currently running kick vote
    	string m_HCLCommandString;						// the "HostBot Command Library" command string, used to pass a limited amount of data to specially designed maps
  6. denischegaev Парнишка с небывалым умом

    Сообщения:
    289
    Спасибы:
    0
    Сборка бота GHost:
    17.266
    кароче скачал чистые исходики, которые выложил царь, за что ему огромное спс, там все есть
  7. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    ЛОЛ я И сам улыбнуло...
    вообщето я думал что даже такой кран как ты догадаетцо, зарж выдавал пример для текста в котором нет переменных... :facepalm: если ты действительно Хочеш чтобы было КРАСИВО то юзай по анологие с гхост++
    если же ты хочеш чтобы было ПРОСТО УДОБНО? то юзай пример бртбота!!!
  8. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    У брт сделано лучше и удобней чем у ++ и уан вместе взятых
  9. MooDBlooD Ньюфаг

    Сообщения:
    56
    Спасибы:
    1
    fake Компилирую по твоему шаблону и получаю:
    Код:
    1>------ Построение начато: проект: ghost, Конфигурация: Release MySQL Win32 ------
    1>Компиляция...
    1>game.cpp
    1>.\game.cpp(5562) : error C2039: txtfive: не является членом "CLanguage"
    1>        f:\games\ghost files\ghost files\ghost\language.h(29): см. объявление 'CLanguage'
    1>language.cpp
    1>.\language.cpp(2087) : error C2039: txtfive: не является членом "CLanguage"
    1>        f:\games\ghost files\ghost files\ghost\language.h(29): см. объявление 'CLanguage'
    1>.\language.cpp(2089) : error C2065: m_CFG: необъявленный идентификатор
    1>.\language.cpp(2089) : error C2227: выражение слева от "->GetString" должно указывать на тип класса, структуры или объединения либо на универсальный тип
    1>        тип: 'unknown-type'
    1>Журнал построения был сохранен в "file://f:\Games\GHost Files\GHost Files\ghost\Release MySQL\BuildLog.htm"
    1>ghost - ошибок 4, предупреждений 0
    ========== Построение: успешно: 0, с ошибками: 1, без изменений: 1, пропущено: 0 ==========
    game.cpp (5562)
    Код:
    SendAllChat(  m_GHost->m_Language->txtfive(User,UTIL_ToString( Votes ), UTIL_ToString(VotesNeeded), m_GHost->m_CommandTrigger ));
    Language.cpp (2087-2089)
    Код:
    string CLanguage :: txtfive(string user, string votes, string votesned,string trigger)
    {
    string Out = m_CFG->GetString( "lang_1125", "lang_1125" );
    Поменял только txttri на txtfive, и lang_1123 на lang_1125
  10. MooDBlooD Ньюфаг

    Сообщения:
    56
    Спасибы:
    1
    Zarj чёт у меня какая то фигня получается.
    То я компилил у меня не откликался на последнии ланги, а на первый откликался...
    Щас вообще функция не откликается! =(
    Посмотри пожалуйста, всё ли правильно, а то при компиляции ошибок не выдаёт, а на функцию не откликается...
    game.cpp
    Код:
             //
             // !VSTART
             //
    
             if( ( Command == "go" || Command == m_GHost->m_Language->cmdgo( ) ) && !player->GetStartVote( ) && !m_CountDownStarted && !m_GameLoaded)
             {
    
                ReCalculateTeams();
                if (m_Team1<1 || m_Team2<1)
                {
                   SendAllChat(m_GHost->m_Language->txtone( ) );
                   return HideCommand;
                }
    
                if (m_StartVotePlayer.empty())
                {
                   for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
                      (*i)->SetStartVote( false );
                   m_StartVotePlayer = player->GetName();
                   m_StartedStartVoteTime = GetTime();
                }
                player->SetStartVote( true );
                uint32_t VotesNeeded = (uint32_t)ceil ( GetNumHumanPlayers( )  * (float)100 );
                if (VotesNeeded>GetNumHumanPlayers())
                   VotesNeeded = GetNumHumanPlayers();
                uint32_t Votes = 0;
    
                for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
                {
                   if( (*i)->GetStartVote( ) )
                      Votes++;
                }
    
                if( Votes >= VotesNeeded )
                {
                   SendAllChat(m_GHost->m_Language->txttwo( ) );
                      if( Votes >= VotesNeeded )
                         StartCountDown( true );
                      else
                      {
                         if( GetTicks( ) - m_LastPlayerLeaveTicks >= 2000 )
                            StartCountDown( false );
                         else
                            SendAllChat( m_GHost->m_Language->CountDownAbortedSomeoneLeftRecently( ) );
                      }
    
                   m_StartVotePlayer.clear( );
                   m_StartedStartVoteTime = 0;
                }
                else
                   SendAllChat( User+ m_GHost->m_Language->txttri( ) +" [" + UTIL_ToString( Votes )+"/"+ UTIL_ToString(VotesNeeded)+"] "+string( 1, m_GHost->m_CommandTrigger )+"vstart"+ m_GHost->m_Language->txtfour( ) );
             }
    Language.cpp
    Код:
    string CLanguage :: txtone( )
    {
       string Out = m_CFG->GetString( "lang_1121", "lang_1121" );
       return Out;
    }
    
    string CLanguage :: txttwo( )
    {
       string Out = m_CFG->GetString( "lang_1122", "lang_1122" );
       return Out;
    }
    
    string CLanguage :: txttri( )
    {
       string Out = m_CFG->GetString( "lang_1123", "lang_1123" );
       return Out;
    }
    
    string CLanguage :: txtfour( )
    {
       string Out = m_CFG->GetString( "lang_1124", "lang_1124" );
       return Out;
    }
    
    Langusage.cfg
    Код:
    lang_1121 = Невозможно стартовать игру с пустой коммандой противника!
    lang_1122 = Игра начнётся через 10 секунд!
    lang_1123 = проголосовал за немедленное начало старта.
    lang_1124 = (!го) для согласия старта.
  11. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    неоткликается скорей всего из за необъявленного cmdgo, а по поводу лангов - в language.h всё добавил:?
  12. MooDBlooD Ньюфаг

    Сообщения:
    56
    Спасибы:
    1
    Это какое то чудо...
    Другие могут заюзать команду, а я не могу! =(
    Ладно, буду тестить...
    P.S. Всё в лангах прописано в том числе и cmdgo!
  13. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    У брт сделано удобней , но НЕ КАК НЕ ЛУЧШЕ!!!!!!!
    без лангюсфг фиг чёт поймеш в брт, а в гхосте Все зделано не только для Работоспособность,но и для чистоты исходных кодов...
  14. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    language.h

    Код:
    string  txtfive(string user, string votes, string votesned,string trigger);
  15. denischegaev Парнишка с небывалым умом

    Сообщения:
    289
    Спасибы:
    0
    Сборка бота GHost:
    17.266
  16. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Дело не в дота не дота, в лобби пишеш? Всё делал по инструкции(с максимальной точностью)? Компилил? xD
  17. denischegaev Парнишка с небывалым умом

    Сообщения:
    289
    Спасибы:
    0
    Сборка бота GHost:
    17.266
    все делал по инструкции твоей, компиляцию сделал. в доте в лобби попробовал написать - 0 реакции. пробовал в лобби жизнь на арене, там хотяб реагировал, писал что типа без противников не начнет
  18. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    ему нету разницы дота или арена, там или работает или нет. сегодня уже ниичего не скажу, спать иду.
  19. denischegaev Парнишка с небывалым умом

    Сообщения:
    289
    Спасибы:
    0
    Сборка бота GHost:
    17.266
    вот кусочек лога
    Код:
    [         GAME: -sdso (LIV=BAN) #5] [Lobby] [SiriusRU]: !vstart
    [         GAME: -sdso (LIV=BAN) #5] admin [SiriusRU] sent command [vstart] with payload []
  20. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    этот "кусочек " говорит только о том что пользователь админ и что он послал действительно команду... :facepalm: