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

Две формулы Оо

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

Статус темы:
Закрыта.
  1. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Хотел сделать так:

    Чтобы при вводе команды !sd показывало стату с формулой и мин. кол-вом игр = 5. А при "балансе слотов", уже не было учета минимальных игр. А то обычно 2-3 игрока имеют на боте сыгранность в пять и более игр.

    Знаю что не понятно :0 но знающие думаю поймут)

    И еще как заставить бота "читать" gameloaded.txt "по-строкам": тоесть не весь файл сразу, а по строчке каждые ну, 10 сек?)
  2. fake Старожила

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

    ~1397 game_base.cpp
    Код:
    **      if (m_GameLoadedTime!=0 && !m_GameLoadedMessageStop  )
    **	if ( GetTime()>=m_GameLoadedTime+m_GHost->m_GameLoadedPrintout ||( GetTime()>=m_LastGameLoadedPrint + m_GHost->m_GameLoadedPrintTime && !m_GameLoadedMessage))
    	{
    		CONSOLE_Print("[GAME: " + m_GameName + "] loading gameloaded.txt");
    		m_GameLoadedMessage = true;
    		ifstream inn;
    		inn.open( "gameloaded.txt" );
    
    		if( !inn.fail( ) )
    		{
    			// don't print more than 8 lines
    
    			uint32_t Count = 0;
    			string Line;
    
    			while( !inn.eof( ) && Count < 8 )
    			{
    				getline( inn, Line );
    
    				if( Line.empty( ) )
    **					m_GameLoadedMessageStop = true;
    **				else if (Count==m_CurrentGameLoadedLine)
    					SendAllChat( Line );
    
    				if( inn.eof( ) )
    					break;
    				
    				Count++;
    			}
    **			m_LastGameLoadedPrint = GetTime();
    **			m_CurrentGameLoadedLine++;
    
    			inn.close( );
    		} else
    			CONSOLE_Print("[GAME: " + m_GameName + "] gameloaded.txt load failed");
    
    	}
    ~178 game_base.cpp
    Код:
    	m_GameEndedTime = 0;
    	m_GameLoadedMessage = false;
    **	m_LastGameLoadedPrint = 0;	
    **	m_GameLoadedMessageStop = 0;
    **	m_CurrentGameLoadedLine = 0;
    ~136 game_base.h
    Код:
    	uint32_t m_GameLoadedTime;					// GetTime when the game was loaded
    	bool m_GameLoadedMessage;					// GameLoad message shown
    **	uint32_t m_LastGameLoadedPrint;	
    **	bool m_GameLoadedMessageStop;
    	uint32_t m_CurrentGameLoadedLine;

    ~3813 ghost.cpp
    Код:
    	m_AutoWarnEarlyLeavers = CFG->GetInt( "bot_autowarnearlyleavers", 0 ) == 0 ? false : true;
    **	m_GameLoadedPrintTime = CFG->GetInt( "bot_gameloadedprinttime", 10 );
    	m_GameLoadedPrintout = CFG->GetInt( "bot_gameloadedprintout", 10 );
    ~260 ghost.h

    Код:
    	uint32_t m_GameLoadedPrintout;	// config value: how many secs should Ghost wait to printout the GameLoaded msg
    **	uint32_t m_GameLoadedPrintTime;
    	uint32_t m_InformAboutWarnsPrintout; // config value: how many secs should ghost wait to printout the warn count to each player.
    первая строка появляется через "bot_gameloadedprintout" секунд последующие через "bot_gameloadedprinttime"
  3. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    А если я в welcome.txt напишу следующее:
    То 3 я уже не увижу...
  4. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Опа.. У меня пробелы есть в тексте)

    ps: не welcome.txt а gameloaded.txt
  5. fake Старожила

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

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    Fixed
    evilmaker нравится это.
  7. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Как я понял ты хотел зациклить данную ф-ю.
    И при каждом цикле выводить по 1 строке.
    Вот только
    Код:
    if( Line.empty( ) )
    m_GameLoadedMessageStop = true;
    else if (Count==m_CurrentGameLoadedLine)
    SendAllChat( Line );
    Нужно сделать так:
    Код:
    if (Count==m_CurrentGameLoadedLine)
    if( !Line.empty( ) )
    SendAllChat( Line );
    else
    SendAllChat( " " );
    А вот чтоб при окончании файла больше не выводило его, нужно сделать так:
    Заменить:
    Код:
    if( inn.eof( ) )
    break;
    на
    Код:
    if( inn.eof( ) )
    m_GameLoadedMessageStop = true;
    <parametr>.eof - EndOfFile
    evilmaker нравится это.
  8. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Код:
                if( Line.empty( ) )
                   SendAllChat( " " );
    **            else if (Count==m_CurrentGameLoadedLine)
    **            {
    **               SendAllChat( Line );
    **               break;
    **            }
    Боже.
    Если я в файле напишу.
    В игре я получу:
    При каждом запуске ф-ии (а по моему примеру 3 раза) запускается цикл while. При каждом запуске ф-ии у меня в файле есть пусто. А значит что каждый запуск ф-ии будет выводить SendAllChat( " " );.
    Поэтому SendAllChat( " " ); нужно включить в проверку if (Count==m_CurrentGameLoadedLine).
    Т.е. сначала проверить соответствует ли строка из цикла ф-ии со строкой из цикла while. А потом уже смотреть пустая она или нет. Выше постом я написал как решить.
    evilmaker нравится это.
  9. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Хоть бы спасибку 1 поставил :)
    2 ошибки заметил.
  10. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    =) 1 посмотри на время редактирования =)
  11. Deals Старожила

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

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    А я в панике ищу... А он уже отредактировал свой пост)) Спасибо за столь быстрой ответ.
  13. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    А я бы вообще убрал цикл while. И переделал. Ну... это же я ;D

    P.S.: Некогда. Ушел лечить зуб... не поминайте лихом. :'(
  14. TS_Igorexa Ньюфаг

    Сообщения:
    3
    Спасибы:
    0
    Дата начала использования бота:
    06.02.2013
    Всем привет!)
    1>.\game_base.cpp(182) : error C2065: m_CurrentGameLoadedLine: необъявленный идентификатор
    1>.\game_base.cpp(1424) : error C2065: m_CurrentGameLoadedLine: необъявленный идентификатор
    1>.\game_base.cpp(1439) : error C2065: m_CurrentGameLoadedLine: необъявленный идентификатор
    Не подскажите? :prayy:
    Решил :) Только сообщения, не пишет...( В чем может быть проблема?
Статус темы:
Закрыта.