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

gameover timer

Тема в разделе 'Кодинг/Собственные решения', создана пользователем qwader, 5 май 2011.

  1. qwader Ньюфаг

    Сообщения:
    18
    Спасибы:
    0
    Подскажите плз... Я хочу сделать ... Когда происходит лив из игры... вобщем..
    Код:
    // 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 (!m_Switched) // disable gameoverteamdifference if someone has switched
    		if (!lessthanminplayers && !lessthanminpercent)
    		if (m_GetMapNumTeams==2 && m_GHost->m_gameovermaxteamdifference!=2 && 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;	
    			
    				
    						
    			}
    		}
    Но чтобы оно давало предупреждения каждых 10 сек типо "Игра завершитсо через 110сек. Делайте свичь..." потом через 100, и т.д
    я тут вконце
    Код:
    if ( m_GameOverTime ==117 || m_GameOverTime ==110 || m_GameOverTime ==100 || m_GameOverTime ==90 || m_GameOverTime ==80 || m_GameOverTime ==70 || m_GameOverTime ==60 || m_GameOverTime ==50 || m_GameOverTime ==40 || m_GameOverTime ==30 || m_GameOverTime ==20 || m_GameOverTime ==10 )
    			        SendAllChat ("Игра закончится через - " (UTIL_ToString(m_GameOverTime)) " сек." );
    добавил... оказалось что оно не принимает 1 аргумент этот геймовертайм... подскажите плз. :opasnoste:
  2. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Ну такой балда-код, что онли рукалицо. Даже если ты сделаешь, у тебя раз 300 напишется этот текст. Это же апдейт :facepalm:

    Код:
    SendAllChat ("Игра закончится через - "+(UTIL_ToString(m_GameOverTime))+" сек." );
  3. qwader Ньюфаг

    Сообщения:
    18
    Спасибы:
    0
    да я 4 года протер штаны учясь на програмиста :metal: подскажите как бут лутше реализовать это дело...
  4. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Вставь после
    Код:
            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 (unbalanced && m_GameOverTime == m_LastAnn)
    {
                     SendAllChat ("Игра закончится через - " + (UTIL_ToString(m_GameOverTime)) + " сек." );
    m_LastAnn = m_GameOverTime-10; 
    }
    
    Надеюсь переменную сам объявишь (uint32_t m_LastAnn = X; //Где вместо X, число секунд до окончания игры).
  5. qwader Ньюфаг

    Сообщения:
    18
    Спасибы:
    0
    да спасиб большое!
  6. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Это автор походу увидел у меня на боте на алькаре. Но обрадую. Эта ф-я не работает с модом -so. А еще не фиксит если была попытка свича на чара который унлокнут. Даже я еще на придумал как написать ф-ю фикса унлока. Нужно что-то типа переменной которая держит 2 значения bool или создать внутри еще 1 класс. Пока думаю что лучше.
  7. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Посмотрел код лонга - не используй его. Гейм овер тайм содержит в себе точное время наперед когда закончится игра. И она не изменяется со временем
  8. qwader Ньюфаг

    Сообщения:
    18
    Спасибы:
    0
    да мы с тобой нераз играли...
    унлок.....:facepalm: да... все действительно худо.. а я и не подумал...
  9. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Ну мне стоит переделывать код? Или ты остановился и понял что без фикса анлока и свича, тебе не сделать ничего полезного?
  10. qwader Ньюфаг

    Сообщения:
    18
    Спасибы:
    0
    спасиб LongMan, Deals
    я воздержусь пока что от этой затеи))