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

новая команда -ff [-FastFinish]

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

Статус темы:
Закрыта.
  1. ____ROB____ Старожила

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    попроси что бы Гугл дал анбан.
  2. qwader Ньюфаг

    Сообщения:
    18
    Спасибы:
    0
    всё?.. все с мня поржали?!
    там много чего сменил помимо цфг... такое как мс одинаковый ип, причина бана, время и визуальные ефекты старта пуска входа игроков в лобби... в гост ване просто в отличии от брт хоть и ставиш русс но половина всего на инглиш было... зачем мне 20 мин.... если я уже все сделал, осталось стату подключить... я простых путей не ищу..)
  3. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    фхд
  4. attack Олд-фаг

    Сообщения:
    19
    Спасибы:
    0
    дайте линк на измененные файлы что комманда !ff работала! ПЛЗ
  5. qwader Ньюфаг

    Сообщения:
    18
    Спасибы:
    0
    Это фф без робочей статы(( решишь проблему
    Код:
    //	if( end1 )
    			//	m_Stats->Winner(2);
    			//else
    			//	m_Stats->Winner(1);
    <-тут, поделишься со мной))
    ... может быть чтото и упустил...))) если что пиши ну или сам розберешься там не сложно...
    game.cpp
    После команды !yes
    Код:
    //
    	// !FF 
    	// 
    
    	else if( Command == "ff" && !player->GetFFVote( ) && m_GameLoaded)
    	{
    		if ( !m_Stats )
    		{
    			SendChat(player->GetPID(), m_GHost->m_Language->Q1208());
    			return HideCommand;
    		}
    /*
    		if ( m_Stats->GetSwitchMode() )
    		{
    			SendChat(player->GetPID(), m_GHost->m_Language->GetLang("lang_1218"));
    			return HideCommand;
    		}
    */
    		if ( m_GHost->m_minFFtime && ((GetTime() - GetGameLoadedTime()) < m_GHost->m_minFFtime) )
    		{
    			SendChat(player->GetPID(), m_GHost->m_Language->Q1217(UTIL_ToString(m_GHost->m_minFFtime)));
    			return HideCommand;
    		}
    		
    		player->SetFFVote( true );
    		
    		unsigned char playerTeam = m_Slots[GetSIDFromPID(player->GetPID())].GetTeam();
    
    		uint32_t count1 = 0;
    		uint32_t count2 = 0; //count of players in the team.
    		uint32_t votes1 = 0;
    		uint32_t votes2 = 0; //count of votes in the team.
    		string teamname = (playerTeam == 0 ? "SENTINEL" : "SCOURGE");
    		
    		for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
    		{
    			if( !(*i)->GetLeftMessageSent( ) )
    			if(m_Slots[GetSIDFromPID((*i)->GetPID())].GetTeam() == (unsigned char)0)
    			{
    				count1++;
    				if( (*i)->GetFFVote( ) )
    					votes1++;
    			}
    			else
    			{
    				count2++;
    				if( (*i)->GetFFVote( ) )
    					votes2++;
    			}
    		}
    		
    		bool end1 = (votes1 == count1); 
    		bool end2 = (votes2 == count2);
    
    		if( end1 || end2 )
    		{
    		//	if( end1 )
    			//	m_Stats->Winner(2);
    			//else
    			//	m_Stats->Winner(1);
    				
    			SendAllChat(m_GHost->m_Language->Q1213(end1 ? "SENTINEL" : "SCOURGE" ));
    
    			SendAllChat(m_GHost->m_Language->Q1053()); // "Game will end in 5 seconds"
    			m_GameEndCountDownStarted = true;
    			m_GameEndCountDownCounter = 6;
    			m_GameEndLastCountDownTicks = GetTicks();
    		}
    		else
    		{
    			SendAllChat( m_GHost->m_Language->Q1211( User, teamname, UTIL_ToString(playerTeam == 0 ? votes1 : votes2), UTIL_ToString(playerTeam == 0 ? count1 : count2)));
    		
    		}
    	
    		SendChat(player->GetPID(), m_GHost->m_Language->Q1210());
    		return HideCommand;
    	}
    	
    	//
    	// !NOFF
    	//
    
    	else if( Command == "noff" && player->GetFFVote( ) && m_GameLoaded)
    	{
    		player->SetFFVote( false );
    		
    		unsigned char playerTeam = m_Slots[GetSIDFromPID(player->GetPID())].GetTeam();
    		uint32_t count1 = 0, count2 = 0; //count of players in the team.
    		uint32_t votes1 = 0, votes2 = 0; //count of votes in the team.
    		string teamname = (playerTeam == 0 ? "SENTINEL" : "SCOURGE");
    
    		for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
    		{
    			if( !(*i)->GetLeftMessageSent( ) )
    			if(m_Slots[GetSIDFromPID((*i)->GetPID())].GetTeam() == (unsigned char)0)
    			{
    				count1++;
    				if( (*i)->GetFFVote( ) )
    					votes1++;
    			}else{
    				count2++;
    				if( (*i)->GetFFVote( ) )
    					votes2++;
    			}
    		}
    
    		if ((votes1 != count1) && (votes2 != count2))
    		{
    			CONSOLE_Print( "[GAME: " + m_GameName + "] canceled end game" );
    			m_GameEndCountDownStarted = false;
    		}
    
    		SendAllChat( m_GHost->m_Language->Q1212( User, teamname, UTIL_ToString(playerTeam == 0 ? votes1 : votes2), UTIL_ToString(playerTeam == 0 ? count1 : count2)));
            		
    		return HideCommand;
    	}
    	
    ghost.cpp
    после
    Код:
    m_Banning = CFG->GetInt( "bot_banning", 1 );
    это
    Код:
    m_minFFtime = CFG->GetInt( "bot_minFFtime", 420 );
    ghost.h
    После
    Код:
    uint32_t m_InformAboutWarnsPrintout; // config value: how many secs should ghost wait to printout the warn count to each player.
    это
    Код:
    uint32_t m_minFFtime;
    gameplayer.h
    после
    Код:
    bool GetRmkVote( )							{ return m_RmkVote; }
    это
    Код:
    bool GetFFVote( )                           { return m_FFVote; }
    language.cpp
    вконце
    Код:
    string CLanguage :: Q1208( )
    {
       string Out = m_CFG->GetString( "lang_1208", "lang_1208" );
       return Out;
    }
    
    string CLanguage :: Q1217( string dotime )
    {
    	string Out = m_CFG->GetString( "lang_1217", "lang_1217" );
    	Replace( Out, "$DOTIME$", dotime );
    
    	return Out;
    }
    string CLanguage :: Q1213( string team )
    {
    	string Out = m_CFG->GetString( "lang_1213", "lang_1213" );
    	Replace( Out, "$TEAM$", team );
    
    	return Out;
    }
    
    string CLanguage :: Q1211( string teamname, string user, string votes, string team )
    {
    	string Out = m_CFG->GetString( "lang_1211", "lang_1211" );
    	Replace( Out, "$TEAMNAME$", teamname );
        Replace( Out, "$USER$", user );
    	Replace( Out, "$VOTES", votes );
    	Replace( Out, "$COUNT$", team );
    
    	return Out;
    }
    string CLanguage :: Q1212( string teamname, string user, string votes, string team )
    {
    	string Out = m_CFG->GetString( "lang_1212", "lang_1212" );
    	Replace( Out, "$TEAMNAME$", teamname );
        Replace( Out, "$USER$", user );
    	Replace( Out, "$VOTES", votes );
    	Replace( Out, "$COUNT$", team );
    
    	return Out;
    }
    
    
    
    string CLanguage :: Q1210( )
    {
       string Out = m_CFG->GetString( "lang_1210", "lang_1210" );
       return Out;
    }
    string CLanguage :: Q1053( )
    {
       string Out = m_CFG->GetString( "lang_1053", "lang_1053" );
       return Out;
    }
    language.h
    после
    Код:
    string VoteKickAcceptedNeedMoreVotes( string victim, string user, string votes );
    это
    Код:
    	
    	string Q1217( string dotime );
    	string Q1213 (string team);
    	string Q1211 (string teamname, string user, string votes, string team);
    	string Q1212 (string teamname, string user, string votes, string team);
    	string Q1208( );
    	string Q1210( );
    	string Q1053( );
    Ну и в папочке ghostone\languages\[язык которым пользуешься] вобем в цфгешке вконец
    Код:
    lang_1208 = Ви не можете використовувати цю команду.
    lang_1210 = Щоб забрати свiй голос пишемо !noff
    lang_1211 = $USER$ вирiшив здатися. В командi $TEAMNAME$ здалося $VOTES$ з $COUNT$ гравцiв.
    lang_1212 = $USER$ вирiшив не здаватися. В командi $TEAMNAME$ здалося $VOTES$ з $COUNT$ гравцiв.
    lang_1213 = Команда $TEAM$ здалась ворогу.
    lang_1217 = Команда !FF буде доступоною пiсля $DOTIME$ секунди гри.
    lang_1053 = Гра будет завершена через 6 секунд.
    У мня бот на юа такшто русифицируешь...)) там нофф всегда тригер "!" в сообщении сменишь...
  6. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    на 2 странице уже хз сколько весит... раки ппц


    spartanec_orc нравится это.
  7. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Если что, попробуйте это http://www.codelain.com/forum/index.php?topic=17885.0
    Правда стоит учесть: Note: The !ff command does NOT work after some1 switched, if player 1 of team A is switched to team B and team A wants to !ff player 1 whos now in team B would need to !ff to make it work. ^^
  8. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    я один не вижу там патча? -_-
  9. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Зарегься xD
  10. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
  11. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    я ж не дома, пасс не помню -_- ну спс за фаил че,ща скажу свой вердикт -_-

    адд: брт же, только кривой патч, много мусора :palevo:
  12. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Вполне может быть, сам не ставил, т.к. фф на моих ботах не требуется.
  13. liskator Ньюфаг

    Сообщения:
    3
    Спасибы:
    0
    Таааак. Столкнулся с такой проблемой)
    После компиляции кода, который нам дал Фейк, команда работает на УРА! Но есть одно НО. После окончания любой игры у меня вылетает бот с эрором
    Код:
    Segmentation fault
  14. fake Старожила

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

    Сообщения:
    23
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One 1.7.266
    Так в итоге кто-нибудь понял как заставить его крипов и асистов считать? Напишите плиз!!!!
  16. pulsar Наш человек

    Сообщения:
    23
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One 1.7.266
    Народ, кому не жалко, скиньте на почту госта у которого полностью настроена статистика и она полностью считается даже не сломав трон или дерево. Уже неделю убил на то что бы это найти и настроить. Напишите в ЛС кто может сделать такой подгончик. Заранее спасибо.
  17. Mefix Наш человек

    Сообщения:
    114
    Спасибы:
    3
    Ммм.. лучше бы подсказали как к тому же самому коду, ghost/ или brtghost в частности допилить команду FF и rmk чтобы при завершении итемы в стату добавлялись.
  18. dmg Ньюфаг

    Сообщения:
    11
    Спасибы:
    0
    Сборка бота GHost:
    1.7.266
    Вот команда фф в полне рабочем состоянии
    в game.cpp снизу эсьть "non amins commands" сразу же после нее вставляэте етот код но вам понадобица ещо 3 исходника я решил себе мозги не пудрить не вилавливать коди к команде) а просто виставил исходники)
    http://rghost.ru/36036877

    Код:
    if( ( Command == "fastfinish" || Command == "ff" ) && m_GameLoaded )
        {
          
            unsigned char CurentTeam=m_Slots[GetSIDFromPID(player->GetPID())].GetTeam();
          if (CurentTeam>1)
             return false ;
          player->SetFFVote(true);
          uint32_t VotesNeeded= 0;
          uint32_t Votes = 0;
            for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
          {
             if( !(*i)->GetLeftMessageSent( ) )
             if(m_Slots[GetSIDFromPID((*i)->GetPID())].GetTeam() == CurentTeam)
             {
                VotesNeeded++;
                if( (*i)->GetFFVote( ) )
                   Votes++;
             }
          }
             SendAllChat( player->GetName()+" сдался [" + UTIL_ToString( Votes )+"/"+ UTIL_ToString(VotesNeeded)+"] "+"Напиши !ff покажы свою слабосьть...");
             if( Votes >= VotesNeeded )
                  {
                   if (m_DotaGame )
                   {
                   SendAllChat("Победители The " + (string)(CurentTeam == 0 ? "Scrouge" : "Sentinel") + " игра закончится через 3 секунди");
                   m_Stats->SetWinner((uint32_t)(CurentTeam == 0 ? 2 : 1));
                   }
                   else SendAllChat("Игра будет окончена через 3сек.");
                   m_GameEndCountDownStarted = true;
                   m_GameEndCountDownCounter = 3;
                   m_GameEndLastCountDownTicks = GetTicks();
                  }
    }
    
  19. Smok Ньюфаг

    Сообщения:
    2
    Спасибы:
    0
    dmg как только 1 с команды пишет ff игра заканчиваеться
  20. [Xfight]Alina Наш человек

    Сообщения:
    38
    Спасибы:
    0
    Такая же проблема! Что нужно подправить для того чтобы хотябы 4 чела писали фф и игра заканчивалась?
Статус темы:
Закрыта.