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

[C++] gameoverteamdifference

Тема в разделе 'Основные вопросы', создана пользователем Deals, 28 июн 2010.

  1. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Код:
    // start the gameover timer if team unbalance is greater than m_gameovermaxteamdifference
    		// ex: m_gameovermaxteamdifference = 2, if one team has -3, start game over.
    		if (!m_GameLoading && m_GameLoaded)
    		if (!m_GameOverDiffCanceled)
    		if (!m_GameEnded)
    		if (!lessthanminplayers && !lessthanminpercent)
    		if (m_GetMapNumTeams==2 && m_GHost->m_gameovermaxteamdifference!=0 && m_Players.size()<m_PlayersatStart && m_Players.size()>1)
    		{
    			bool unbalanced = false;
    
    			if (m_TeamDiff > m_GHost->m_gameovermaxteamdifference)
    				unbalanced = true;
    
    			if (m_GameOverTime!=0 && !unbalanced)
    			{
    				CONSOLE_Print( "[GAME: " + m_GameName + "] gameover timer stoped (rebalanced team)" );
    				SendAllChat("Game over averted, team rebalanced");
    				m_GameOverTime = 0;
    			}
    
    
    			if (unbalanced && m_GameOverTime==0)
    			{
    				CONSOLE_Print( "[GAME: " + m_GameName + "] gameover timer started (unbalanced team)" );
    				SendAllChat("Game over in 120 seconds, rebalance quickly!, max team difference is "+UTIL_ToString(m_GHost->m_gameovermaxteamdifference)+" "+string(1, m_GHost->m_CommandTrigger)+"override to cancel");
    				m_GameOverTime = GetTime( )+60;				
    			}
    		}
    И так. В чем суть проблемы. Не работает gameoverteamdifference.
    В конфиге стоит у меня 1 (тобишь -2 включается).
    Суть проблемы.
    Код:
    			if (unbalanced && m_GameOverTime==0)
    			{
    				CONSOLE_Print( "[GAME: " + m_GameName + "] gameover timer started (unbalanced team)" );
    				SendAllChat("Game over in 120 seconds, rebalance quickly!, max team difference is "+UTIL_ToString(m_GHost->m_gameovermaxteamdifference)+" "+string(1, m_GHost->m_CommandTrigger)+"override to cancel");
    				m_GameOverTime = GetTime( )+60;				
    			}
    срабатывает, а после свича таймер не останавливает.
    Код:
    if (!m_GameLoading && m_GameLoaded)
    		if (!m_GameOverDiffCanceled)
    		if (!m_GameEnded)
    //              if (!m_Switched) Это я удалил. И все-равно не работает.
    		if (!lessthanminplayers && !lessthanminpercent)
    		if (m_GetMapNumTeams==2 && m_GHost->m_gameovermaxteamdifference!=0 && m_Players.size()<m_PlayersatStart && m_Players.size()>1)
  2. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    UP!
  3. JiLiZART Администрация

    Сообщения:
    815
    Спасибы:
    35
    Сборка бота GHost:
    Ghost++ 17.1
    Дата начала использования бота:
    12.12.04
    Думаю с такого рода проблемами лучше уж писать суда или если GHostOne то суда
    Максимум что там сделают это подскажут, а переделывать уже самому придётся если это не GHostOne, т.к основной разработчик покинул ряды. (разрабатывать бота некому)
  4. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Вот блин :(
    А у кого-то в боте видел эту функцию настроенную :(
  5. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Нужно поковыряться в функции расчета разницы количества в команде. Думаю там собака зарыта.
  6. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Кстати, мб похожая трабла - GHost One: если в автохосте овнера нет в игре (который указан в конфиге автохоста), то если срабатывает gameoverteamdifference и пишет что бла бла напишите !override для отмены, даже админ не может написать - игра какбы блокирована -_- Печаль, грусть.
  7. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    !override как раз работает. Я в игре был как овенр и рутадмин.
  8. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Апну тему, выложу решение.
    Было:
    Код:
    if (!m_GameLoading && m_GameLoaded)
    if (!m_GameOverDiffCanceled)
    if (!m_GameEnded)
    if (!m_Switched) // disable gameoverteamdifference if someone has switched
    if (!lessthanminplayers && !lessthanminpercent)
    if (m_GetMapNumTeams==2 && m_GHost->m_gameovermaxteamdifference!=0 && m_Players.size()<m_PlayersatStart && m_Players.size()>1)
    Нужно:
    Код:
    if (!m_GameLoading && m_GameLoaded)
    if (!m_GameEnded)
    if (!lessthanminplayers && !lessthanminpercent)
    if (m_GetMapNumTeams==2 && m_GHost->m_gameovermaxteamdifference!=0 && m_Players.size()<m_PlayersatStart && m_Players.size()>1)
    Т.е. фактически убрать
    Код:
    if (!m_GameOverDiffCanceled)
    if (!m_Switched)