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

!ss

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

Статус темы:
Закрыта.
  1. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Ок, тогда более подробно опишите, в какие именно участки кода вы добавляете эту команду? Я лично вставлял в нон админ командс, рядом со !statsdota. Повторюсь, сама команда работает, но краши всё же случаются и не редко.
  2. zazulya Ньюфаг

    Сообщения:
    80
    Спасибы:
    0
    а случайно в !statsdota нету сокращения ss?, имею ввиду мб по запарке забыли и оставили вот так
    Код:
    else if( (Command == "statsdota" || Command == "ss") && GetTime( ) >= player->GetStatsDotASentTime( ) + 5 && !m_GHost->m_nostatsdota )
    дада, у меня тоже в game.cpp после !statsdota и bnet.cpp тоже после !statsdota
    а что именно происходит с ботом? выкидывает с баттлы? бот просто закрывается с ошибкой? или может какие другие команды перестают работать
  3. frakc Ньюфаг

    Сообщения:
    34
    Спасибы:
    1
    а у меня компилируется с ошибками
    взял код дева
    и пишет мне вот такое:
    Построение начат: проект: ghost, .Конфигурация: Debug MySQL|Win32

    Командные строки


    Создание временного файла "f:\loaders\GHostOne1.7.265\GHostTwo\ghost\Debug MySQL\RSP00000128366084.rsp" с содержимым
    [
    /Od /I "..\bncsutil\src" /I "..\StormLib" /I "..\zlib\include" /I "..\mysql\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "GHOST_MYSQL" /D "_CRT_SECURE_NO_WARNINGS" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Fo"Debug MySQL\\" /Fd"Debug MySQL\vc90.pdb" /W3 /c /ZI /TP .\game.cpp

    .\bnet.cpp
    ]
    Создаю командную строку "cl.exe @"f:\loaders\GHostOne1.7.265\GHostTwo\ghost\Debug MySQL\RSP00000128366084.rsp" /nologo /errorReport:prompt"

    Окно выходных данных


    Компиляция...
    bnet.cpp
    f:\loaders\ghostone1.7.265\ghosttwo\ghost\bnet.cpp(6856) : error C2059: синтаксическая ошибка: if
    f:\loaders\ghostone1.7.265\ghosttwo\ghost\bnet.cpp(6857) : error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
    f:\loaders\ghostone1.7.265\ghosttwo\ghost\bnet.cpp(6857) : error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
    game.cpp
    f:\loaders\ghostone1.7.265\ghosttwo\ghost\game.cpp(6135) : error C2059: синтаксическая ошибка: if
    f:\loaders\ghostone1.7.265\ghosttwo\ghost\game.cpp(6136) : error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
    f:\loaders\ghostone1.7.265\ghosttwo\ghost\game.cpp(6136) : error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
    Создание кода...

    Результаты


    Журнал построения был сохранен в "file://f:\loaders\GHostOne1.7.265\GHostTwo\ghost\Debug MySQL\BuildLog.htm"
    ghost - ошибок 6, предупреждений 0
  4. zazulya Ньюфаг

    Сообщения:
    80
    Спасибы:
    0
    из лога видно же чего не хватает...
    вот нормальный код, который работает
    bnet.cpp
    Код:
    				//
    				//!SS
    				//
    
    				if( (Command == "ss") && (GetTime()-m_LastStats>=5) && !m_GHost->m_nostatsdota)
    				{
    					m_LastStats = GetTime();
    					string StatsUser = User;
    					
    					string Usr = Whisper ? User : string( );
    					if (m_GHost->m_WhisperAllMessages)
    						Usr = User;
    
    					if (!Payload.empty())
    					{
    						stringstream tt;
    						tt << Payload;
    						while (!tt.eof())
    						{
    							uint32_t SID;
    							tt >> SID;
    							if (tt.fail())
    							{
    								CONSOLE_Print( "Bad input to show stats command" );
    								//HideCommand;
    								break;
    							}
    							else
    							{
    								CGamePlayer *Player = m_GHost->m_CurrentGame->GetPlayerFromSID (SID - 1);
    								if (Player)
    								{
    								StatsUser = Player->GetName();
    								if( !StatsUser.empty( ) && StatsUser.size( ) < 16 && StatsUser[0] != '/' )
    									m_PairedDPSChecks.push_back( PairedDPSCheck( Usr, m_GHost->m_DB->ThreadedDotAPlayerSummaryCheck( StatsUser, m_GHost->m_ScoreFormula, m_GHost->m_ScoreMinGames, string() ) ) );
    								}
    							}
    						}
    					}
    					else if( !User.empty( ) && User.size( ) < 16 && User[0] != '/' )
    						m_PairedDPSChecks.push_back( PairedDPSCheck( Usr, m_GHost->m_DB->ThreadedDotAPlayerSummaryCheck( StatsUser, m_GHost->m_ScoreFormula, m_GHost->m_ScoreMinGames, string() ) ) );
    				
    				}
    game.cpp
    Код:
    	//
    	//!SS
    	//
    	
    	if( Command == "ss" && GetTime( ) >= player->GetStatsDotASentTime( ) + 5 && !m_GHost->m_nostatsdota )
    	{
    		string StatsUser = User;
    		if (!Payload.empty())
    		{
    			stringstream tt;
    			tt << Payload;
    			while (!tt.eof())
    			{
    				uint32_t SID;
    				tt >> SID;
    				if (tt.fail())
    				{
    					CONSOLE_Print( "Bad input to show stats command" );
    					break;
    				}
    				else
    				{
    					CGamePlayer *Player = GetPlayerFromSID (SID - 1);
    
    					if (Player)
    					{
    					StatsUser = Player->GetName();
    					m_PairedDPSChecks.push_back( PairedDPSCheck( User, m_GHost->m_DB->ThreadedDotAPlayerSummaryCheck( StatsUser, m_GHost->m_ScoreFormula, m_GHost->m_ScoreMinGames, string() ) ) );
    					}
    				}
    			}
    		}
    		else if( !User.empty( ) && User.size( ) < 16 && User[0] != '/' )
    			m_PairedDPSChecks.push_back( PairedDPSCheck( User, m_GHost->m_DB->ThreadedDotAPlayerSummaryCheck( StatsUser, m_GHost->m_ScoreFormula, m_GHost->m_ScoreMinGames, string() ) ) );
    		
    		player->SetStatsDotASentTime( GetTime( ) );
    
    		m_Stats = 0;	
    	}
    а вообще пару постов прочитать-то не ленитесь епт, понимаю там ладно где-то на 30-ой странице 15-ый пост и в нем еще 40 страниц обсуждений и то...
  5. frakc Ньюфаг

    Сообщения:
    34
    Спасибы:
    1
    взял код который ты мне скинул.
    выдает теже самые ошибки.

    ну судя из этой ошибки то нужно всеголишь поставить ";" перед "{" да вот беда, что в том месте их как раз ставить и не надо , это вот к этому куску
    Код:
                if( (Command == "ss") && (GetTime()-m_LastStats>=5) && !m_GHost->m_nostatsdota)
                {
     
    а вот что значит эта ошибка
    я не знаю.

    хотя не спорю что дело может крытся в моих кривых руках
    что я делаю:
    во первых использую ghostone
    открываю компилятор
    в самый конец bnet.cpp вставляю первый блок кода
    в самый конец game.ccp вставляю второй блок.
    (кроме того что вставляю код ничего не доисываю и не обьявляю)
    жму компилировать
    получаю ошибку :metal:
  6. zazulya Ньюфаг

    Сообщения:
    80
    Спасибы:
    0
    кто-ж говорил что в самом конце то =)
    надо сразу после команды !statsdota и в гейм.цпп и бнет.цпп
  7. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    GetTime()-m_LastStats>=5

    Вот эта строчка только в команде бнет.цпп есть? Всмысле в гейм.цпп её нет и не должно быть?
    Поставил не 5, а 0.1 проверим что выйдет.

    pS Крашится - совсем прекращает работу с ошибкой.
  8. zazulya Ньюфаг

    Сообщения:
    80
    Спасибы:
    0
    Почему нету, вот же:
    if( Command == "ss" && GetTime( ) >= player->GetStatsDotASentTime( ) + 5 && !m_GHost->m_nostatsdota )
    ....
    и вот в конце player->SetStatsDotASentTime( GetTime( ) );
    это сделано для того чтобы слишком часто к бд не было обращений, зачем тебе одна десятая секунды?
  9. Synth (LM) Пантограф!

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

    Сообщения:
    80
    Спасибы:
    0
    где? постом выше? там коду то две строки и то надо было выделить жирным, чтоб человек увидел, а в тегах так не получится...
    лучше б подсказали, может ли привести эта команда к нестабильности бота =)
  11. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Потому, что тут не целый, много тысячный код, а пара строчек.

    То есть надо было еще 5 заменить на 0.1 О.о
    Зачем мне это? Есть подозрения, что возможно краши вызывает эта зедержка, вот я и пытаю её минимизировать.

    pS Что будет если в одной строке написано 0.1, а в другой 5? Какие последствия?
  12. zazulya Ньюфаг

    Сообщения:
    80
    Спасибы:
    0
    зачем тебе так быстро обращаться к бд, гиперактивный што ли? :jump:
    5 секунд стоит по умолчанию во всех командах типа !sd, !stats, !statsdota, создатели не просто так ведь это сделали...
  13. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Задержка для всех общая или для каждого свои эти 5 сек?
    В предоставленной команде !ss эти 5 сек для всех общие, то есть если один написал !ss то любой другой может ей воспользоваться лишь по истечении этой задержки.
  14. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    обьясняюю вам зачем нужны ЭТи 5 секунд


    врывается тело и начинает флудить !statsdota думаете бд выдержет такой нагрузки?????
    да и не только бд.При обращение в бд создается отдельный поток .Я хз может ли количество потоков както повредить, но лаги точно будут -_-


    зы: поток будет существовать пока не получит ответ от бд( т.е если бд далеко то ети юзеры могут создать тысячи потоков -_-)

    зыы: гж код ) разрабы бота все продумали убрали возможность злоупотреблять статсами=)
    НО РУССКИЕ РАЗРАБЫ РЕШИЛИ ВЕРНУТЬ ВЕРОЯТНОСТЬ СРЫВА БД И НАГРУЗКУ НА КОМП гж ..
    (если вы не поняли про что я то попробуйте написать
    Код:
    !ss 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
    )
  15. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    или !sd !v в толпу ботов на алкаре ^_^
  16. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    fake, молодец! Всё хорошо, но я и без тебя это прекрасно знаю, ты вопрос читал? :facepalm:
  17. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    у тебя какбЭ пост с ответом ок да???
    - вОПРОС
    - отВЕТ блеать!
    если знаеш про игнорь ок да??
    судя ПО ЭТОМУ МСЖУ есть инфа что ты не знаеш...
  18. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Вопрос был следствием поста zazula:
    А значит и вопрос про стандартные команды, такие как !sd !stats !statsdota. :facepalm:

    Далее мой "ответ", является лишь пояснением к работе команды !ss
    :facepalm:

    Как я уже сказал, краши вызывает точно это команда и я использую любую возможность это проверить, и как могу её тестирую. Но это совершенно не значит, что я не знаю, что вызывает изменение той или иной функции и каковы её последствия. :facepalm:

    А ты fake, удосужился хотя бы её поставить на свой бот и проверить? И опять же, не просто написать !ss, обрадоваться, что работает и закрыть бот, а подождать N кол-во дней да бы юзеры сами могли её испробовать вдоль и поперёк? :facepalm:
  19. fake Старожила

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

    Вывод один ничё ты не шариш ты даже не читаешь что тебе отвечают.троляб здесь не место :nea:
  20. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Я бы хотел, что бы ты держал при себе свои выводы. :facepalm:
    Если ты не умеешь читать и правильно понимать суть предложений, то я ничем не смогу помочь. Я описал свои доводы и вероятные причины, на что получил от тебя "ответы" на вопросы которых не задавал. :facepalm:
    Хватит разжигать форумные войны, я конечно понимаю, что стилистика построения предложений, а так же грамматика выдают твой юношеский максимализм, но увы, я на этом форуме не для этого сижу. Впредь прошу не отвечать на мои сообщения, они не для тебя, они для других. Удачи. ^^
Статус темы:
Закрыта.