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

!sd для всех

Тема в разделе 'Запуск и Поддержка', создана пользователем ____ROB____, 22 дек 2010.

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

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    Вечер добрый
    Имеется команда !sd и !statsdota, при написании етой конмады в лобби игры (ну и в самой игре) результат увидит только тот кто написал, а хотелось что бы достижение написавшего видели все ^^
    ПС: команду пишут не админы ! а простые игроки

    заранее спасибо :prayy:
  2. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    game.cpp
    Код:
    for( vector<PairedDPSCheck> :: iterator i = m_PairedDPSChecks.begin( ); i != m_PairedDPSChecks.end( ); )
    Замени в этом блоке:
    Код:
    SendChat( Player, Summary );
    На:
    Код:
    SendAllChat( Summary );
    Хотя зачем оно тебе?
  3. ____ROB____ Старожила

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
  4. Synth (LM) Пантограф!

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

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    ему в личку написало - "не играл на етом боте"
    но ету надпись я не увидел!!! :spy:
  6. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    А разве включение не аднских команд не позволяет простым смертным смотреть стату?
    Может быть в ленг паке строки криво переведены и место формулы там лежит "не играл на этом боте"?
    Точно не скажу, но кажется в 266 версии, доступ к этой команде открывается без изменения кода.
  7. fake Старожила

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

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    :facepalm:
  9. ____ROB____ Старожила

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    [IMG]
    при написании команды !sd и !statsdota он видит свои статы (он не админ), а я хочу что бы при написании етих команд, статы видели все !!!
    вот как на канале, наважно кто пишет, админ или не админ --->

    [IMG]
  10. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Конечно не увидел. Т.к. я сделал так чтоб показывало только стату всем.
    Хочешь видеть чтоб писало всем что не играл на этом боте:
    Код:
    SendChat( Player, m_GHost->m_Language->HasntPlayedDotAGamesWithThisBot( i->second->GetName( ) ) );
    Код:
    SendAllChat( m_GHost->m_Language->HasntPlayedDotAGamesWithThisBot( i->second->GetName( ) ) );
  11. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Предыдущий код и этот должны работать. Либо ты что-то сделал не так.
    Найди юзверя который у тебя уже играл и у него есть стата. И пусть он зайдет в игру и в лобби напишет статистику.
    И ты ее должен увидеть. Так же как и все.
  12. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Это весь код вывода статистики
    Код:
    	for( vector<PairedDPSCheck> :: iterator i = m_PairedDPSChecks.begin( ); i != m_PairedDPSChecks.end( ); )
    	{
    		if( i->second->GetReady( ) )
    		{
    			CDBDotAPlayerSummary *DotAPlayerSummary = i->second->GetResult( );
    
    			bool sd = false;
    			bool Whisper = !i->first.empty();
    			string name = i->first;
    
    			if (i->first[0]=='%')
    			{
    				name = i->first.substr(1,i->first.length()-1);
    				Whisper = i->first.length()>1;
    				sd = true;
    			}
    
    			if (sd)
    			if( DotAPlayerSummary )
    			{
    				uint32_t scorescount = m_GHost->ScoresCount();
    
    				CGamePlayer *PlayerN = GetPlayerFromName( i->second->GetName(), true );
    
    				if( PlayerN )
    				{
    					PlayerN->SetScoreS(UTIL_ToString2( DotAPlayerSummary->GetScore()));
    					PlayerN->SetRankS(UTIL_ToString( DotAPlayerSummary->GetRank()));
    				}
    
    				string RankS = UTIL_ToString( DotAPlayerSummary->GetRank());
    				if (DotAPlayerSummary->GetRank()>0)
    					RankS = RankS + "/" + UTIL_ToString(scorescount);
    
    				string Summary = m_GHost->m_Language->HasPlayedDotAGamesWithThisBot2( i->second->GetName( ),
    					UTIL_ToString(DotAPlayerSummary->GetTotalGames( )), UTIL_ToString( DotAPlayerSummary->GetWinsPerGame( )),
    					UTIL_ToString( DotAPlayerSummary->GetLossesPerGame( )),UTIL_ToString( DotAPlayerSummary->GetKillsPerGame( )),
    					UTIL_ToString( DotAPlayerSummary->GetDeathsPerGame( )),UTIL_ToString( DotAPlayerSummary->GetCreepKillsPerGame( )),
    					UTIL_ToString( DotAPlayerSummary->GetCreepDeniesPerGame( )),UTIL_ToString( DotAPlayerSummary->GetAssistsPerGame( )),
    					UTIL_ToString( DotAPlayerSummary->GetNeutralKillsPerGame( )),UTIL_ToString( DotAPlayerSummary->GetTowerKillsPerGame( )),
    					UTIL_ToString( DotAPlayerSummary->GetRaxKillsPerGame( )), UTIL_ToString( DotAPlayerSummary->GetCourierKillsPerGame( )),UTIL_ToString2( DotAPlayerSummary->GetScore()),RankS);
    				if (!Whisper)
    					SendAllChat(Summary);
    				else
    				{
    					CGamePlayer *Player = GetPlayerFromName( i->first, true );
    
    					if( Player )
    						SendChat( Player, Summary );
    				}				
    			}
    			if (!sd)
    			if( DotAPlayerSummary )
    			{
    				string Summary = m_GHost->m_Language->HasPlayedDotAGamesWithThisBot(	i->second->GetName( ),
    																						UTIL_ToString( DotAPlayerSummary->GetTotalGames( ) ),
    																						UTIL_ToString( DotAPlayerSummary->GetTotalWins( ) ),
    																						UTIL_ToString( DotAPlayerSummary->GetTotalLosses( ) ),
    																						UTIL_ToString( DotAPlayerSummary->GetTotalKills( ) ),
    																						UTIL_ToString( DotAPlayerSummary->GetTotalDeaths( ) ),
    																						UTIL_ToString( DotAPlayerSummary->GetTotalCreepKills( ) ),
    																						UTIL_ToString( DotAPlayerSummary->GetTotalCreepDenies( ) ),
    																						UTIL_ToString( DotAPlayerSummary->GetTotalAssists( ) ),
    																						UTIL_ToString( DotAPlayerSummary->GetTotalNeutralKills( ) ),
    																						UTIL_ToString( DotAPlayerSummary->GetTotalTowerKills( ) ),
    																						UTIL_ToString( DotAPlayerSummary->GetTotalRaxKills( ) ),
    																						UTIL_ToString( DotAPlayerSummary->GetTotalCourierKills( ) ),
    																						UTIL_ToString( DotAPlayerSummary->GetAvgKills( ), 2 ),
    																						UTIL_ToString( DotAPlayerSummary->GetAvgDeaths( ), 2 ),
    																						UTIL_ToString( DotAPlayerSummary->GetAvgCreepKills( ), 2 ),
    																						UTIL_ToString( DotAPlayerSummary->GetAvgCreepDenies( ), 2 ),
    																						UTIL_ToString( DotAPlayerSummary->GetAvgAssists( ), 2 ),
    																						UTIL_ToString( DotAPlayerSummary->GetAvgNeutralKills( ), 2 ),
    																						UTIL_ToString( DotAPlayerSummary->GetAvgTowerKills( ), 2 ),
    																						UTIL_ToString( DotAPlayerSummary->GetAvgRaxKills( ), 2 ),
    																						UTIL_ToString( DotAPlayerSummary->GetAvgCourierKills( ), 2 ) );
    
    				if( i->first.empty( ) )
    					SendAllChat( Summary );
    				else
    				{
    					CGamePlayer *Player = GetPlayerFromName( i->first, true );
    
    					if( Player )
    						SendChat( Player, Summary );
    				}
    			}
    			else
    			{
    				if( i->first.empty( ) )
    					SendAllChat( m_GHost->m_Language->HasntPlayedDotAGamesWithThisBot( i->second->GetName( ) ) );
    				else
    				{
    					CGamePlayer *Player = GetPlayerFromName( i->first, true );
    
    					if( Player )
    						SendChat( Player, m_GHost->m_Language->HasntPlayedDotAGamesWithThisBot( i->second->GetName( ) ) );
    				}
    			}
    
    			m_GHost->m_DB->RecoverCallable( i->second );
    			delete i->second;
    			i = m_PairedDPSChecks.erase( i );
    		}
    		else
    			i++;
    	}
    Вот весь код вывода в лобби статистик.
    Неужели тебе так сложно заменить по синтаксису SendChat на SendAllChat?
    Синтаксис:
    SendChat ( кому сообщение, сообщение ) - видно только тому кому отправлено.
    SendAllCHat ( сообщение ) - видно всем вне зависимости кто отправил.
    Тогда что нужно сделать чтоб отправляло всем, а не 1?
    Красное - убрать
    Зеленое - добавить
    Вот и все. Сложно?
  13. ____ROB____ Старожила

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    нет [IMG]
    но вот ещё хотел спросить, как бы... команда !SD у не админов, в лобби игры (ну и в самой игре) недоступна?
    (если не щитать вывод её через bot_showscoresonjoin = 1)
  14. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Странно. Колупай исходники. Мб де накосячил.
  15. ____ROB____ Старожила

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    не не не, меня просто тип спрашивал на алкаре, ещё неделю назад, что в лобби игры и в самой игре, команда !sd не выдают инфу не тому кто написал, не всем.
    я думал что он что-то путает, но вот сам проверил, оказывается так и есть, было бы неплохо если б и сд тоже работала o_O
    :spy:
  16. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    чё за ебанутый не хороший бот у тебя?(версия..)
  17. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    та я бы несказал что тут версия решила, у мну такой еж трабл(((
    !statsdota выдает стату в приват, но это по теме попробую исправить, а как зделать чтобы !sd тоже работал, а то только при входе в игру и если пишет админ !sd или !sd "nik"