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

SpoofCheck

Тема в разделе 'Основные вопросы', создана пользователем rost, 2 июн 2011.

Статус темы:
Закрыта.
  1. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Че так херово работате АвтоСпуфЧек ???
  2. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    Все претензии к серваку, который отвечает на запросы
  3. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Ручной работает на 100% как я заметил...
  4. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    Если автоматика - то бот спрашивает сервера, с которого зашел игрок: /whereis nickname
    уже от ответа сервера зависит прошел или нет(с этим иногда проблемы)
    2-й вариант игрок сам уведомляет бота, через посылание в личку боту соответствующее сообщения( s check etc ), и бот ставит "тру" в значение спуфчека.
    Видно, что 2-й вариант сработает 100%, если вы не спуфер конечно же.
    Я у себя сделал так,что если автоматический спуфчек провален( либо спуфер, либо ошибка сервера, либо игрок с гпрокси), то бот в личку просит игрока ответить "s", если игрок в течении 20сек не ответил - кик.
  5. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Ну у меня вроде гаму то он запускает. НО пишу check или в БД смотрю на spoofrealm и там краш (вобщем неправильно записует)
    и так бывает не у кого, а бывает у 3-4 игроков с игры , реалм неопределен, но и в игру их пускает и стартует.
    В какой строке ты код добавлял, там где автомат спуф стоит?
    If (realm == )
    так чтоли ? и сообщение в приват?
  6. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    game_base.cpp
    Код:
    	// kick players who don't spoof check within 20 seconds when spoof checks are required and the game is autohosted
    
    	if( !m_CountDownStarted && m_GHost->m_RequireSpoofChecks && m_GameState == GAME_PUBLIC && !m_GHost->m_AutoHostGameName.empty( ) && m_GHost->m_AutoHostMaximumGames != 0 && m_GHost->m_AutoHostAutoStartPlayers != 0 && m_AutoStartPlayers != 0 )
    	{
    		for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
    		{
    			if( !(*i)->GetSpoofed( ) && GetTime( ) - (*i)->GetJoinTime( ) >= 20 )
    			{
    				(*i)->SetDeleteMe( true );
    				(*i)->SetLeftReason( m_GHost->m_Language->WasKickedForNotSpoofChecking( ) );
    				(*i)->SetLeftCode( PLAYERLEAVE_LOBBY );
    				OpenSlot( GetSIDFromPID( (*i)->GetPID( ) ), false );
    			}
    		}
    	}
    я поставил спуфчек для всех + изменил условие + чуть изменил в случае провала автоспуфчека
  7. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Это код где он проверяет прошол ли он проверку
    Что ты к if прировнял чтобы оно писало меседж?
    У меня лично реалм пишет левый, если я его прировняю оно сработает?
    Я просто непонимаю как оно стартует если некоторые спуф то непроходят... или оно киком тока на спуфер реагирует?
  8. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    Сокращаем if, убираемавтохост и все что связано с ним(если хочешь чтобы работало для вручную пабнутых игр), добавил bool переменную для игрока, был ли предупрежден игрок, назвал ее m_SpoofCheckWarn(gameplayer.h). сделал для нее get, set. Время на автоспуф чек спуфчек дал 30 сек, если игрок не отметился за 50 секунд, то кик.
    У меня получилось следущее:
    Код:
    	if( !m_CountDownStarted && m_GHost->m_RequireSpoofChecks && m_GameState == GAME_PUBLIC )
    	{
            for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); ++i )
    		{
    			if (!(*i)->GetSpoofed( )){
    				if ( GetTime( ) - (*i)->GetJoinTime( ) >= 30 && !(*i)->GetSpoofWarn())
    				{
    					// предупреждаем что не пройдена проверка, вылет через N секунд!
    					for( vector<CBNET *> :: iterator j = m_GHost->m_BNETs.begin( ); j != m_GHost->m_BNETs.end( ); ++j ){
    						if ((*i)->GetJoinedRealm() == (*j)->GetServer()){
    						(*j)->QueueChatCommand( m_GHost->m_Language->WarningSpoofCheck(), (*i)->GetName() ,true);
    						}
    					}
    					(*i)->SetSpoofWarn(true);
    				} else if ( GetTime( ) - (*i)->GetJoinTime( ) >= 50 ){
    					(*i)->SetDeleteMe( true );
    					(*i)->SetLeftReason( m_GHost->m_Language->WasKickedForNotSpoofChecking( (*i)->GetName() ) );
    					(*i)->SetLeftCode( PLAYERLEAVE_LOBBY );
    					OpenSlot( GetSIDFromPID( (*i)->GetPID( ) ), false );
    					SendAllChat( m_GHost->m_Language->WasKickedForNotSpoofChecking( (*i)->GetName() ) );
    				}
    			}
    		}
    	}
    мб криво, но у меня работает)
    P.S. я еще добавил ф-ю WarningSpoofCheck в language.cpp/h
  9. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Про m_SpoofCheckWarn понял, зделал. Ток в коде у тя вроде SpoofWarn место SpoofCheckWarn))
    Тока про lagnuage.cpp/h непонял, а че ты прост ланг незасунул?
  10. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    Про language забудь, я тут нашел SpoofCheckByReplying, используй её.Это я ступил, не глянул что уже есть такая ф-я.
    Ты объявил переменную, добавь в gameplayer.h, сам найдешь куда
    Код:
    void SetSpoofWarn( bool nSpoofCheckWarn )     { m_SpoofCheckWarn = nSpoofCheckWarn; }
    Код:
    bool GetSpoofWarn( )						{ return m_SpoofCheckWarn; }
    Если все объявил правильно будет работать
  11. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Обьявил.
    Мне WarningSpoofCheck() заменить на SpoofCheckbyReplying() ?
    Вобщем как будет выглядеть:
    (*j)->QueueChatCommand
  12. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    Код:
    (*j)->QueueChatCommand( m_GHost->m_Language->SpoofCheckByReplying(), (*i)->GetName() ,true);
  13. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Мир смотри а если я это
    Код:
    if ( GetTime( ) - (*i)->GetJoinTime( ) >= 30 && !(*i)->GetSpoofWarn())
    на это заменю
    Код:
    if ( GetServer( ) == 111.111.111.111  && !(*i)->GetSpoofWarn())
    Так прокатит?? Бо у меня выходит ложная проверк, он придает в случае провала, тебе 1-й сервер из конфига. Я туда вписал левый АЙПИ и могу ли так его использовать??? ТОшо походу, нету как бы провала спуфа, хотя мне то понятно что серв неверно определен.
  14. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    Представь, ты заменишь скомпилируешь.
    Во первых, получиться что как тока игрок зайдет, бот сразу ему в личку просьбу подтвердить свой никнейм.
    Во вторых, ты меняешь только условие. Игроку тут ничего не будет присваиваться. Зачем так делать?
  15. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    КАК ты предлогаешь зделать???
    Заходит тип, его проверяет сек за 10. Дает не тот серв. Время можно и подставить.
    Надо так чтобы при присваевании ему другого серва бот писал
    Код:
    /w NAME spoofcheck pls write /w HOST sc
    А если он этого неделает за 30 сек. Бот его дропает.
    Разыве я нетак зделал?
  16. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    Если заходит тип и автомат спуфчек провалился, то в спуф реалм ничего не пишут. Зачем ему другой сервер присваивать? Представь зашел чел с ПГ, спуфчек провален, ты ему Алкар пропишешь с спуф реалме? Тогда смысл спуфчека пропадает.
    Он должен сам потвердить что он не спуфер, отправив сообщение s в личку боту.
    Код я тебе дал, он рабочий. Смотри посты выше
    Там у меня если авто спуф чек провален, то через 30 сек(GetTime( ) - (*i)->GetJoinTime( ) >= 30) после подключение игрока к игре, бот ему в личку попросит подтвердить себя, причем на том сервере, с которого он зашел. Если в течении 20 сек после предупреждения в личку(GetTime( ) - (*i)->GetJoinTime( ) >= 50) игрок не подтвердил себя, то его кикают.
    Что еще надо?
  17. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Та я то понял. Ты немного невкуриваешь. Смотри:
    тип зашол, егопроверило, провал, но место server = N/A ему присваевает реалм, который у меня стоит самый первый в конфиге. Я к тебе и обратился тошо странная трабла очень.
    Кароче главное что я баг отловил. Сам затестил. Заходит тип, я пишу чек, выдает мол он с алькара, я ему говорю напиши sc боту, потом сного я пишу чек, он уже с ПГ.(сервера просто левые в пример)
    Такое даже с адм бывает, из-за неверного серва, нету админки.
    Тоесть, я для безофибочной проверки сервера, выставил в конфиге первым сервером так - 111.111.111.111
    И использовать хочу в if - дабы оно если такой сервер, а на самом то деле это просто провал, оповещало его чтобы он прошол вручную.
    Понял??? Или я замудрил сного?
    Вобщем проверку я задал верную??? еще не тестил, занят комп. Но я так чтобы убедится.
    И еще доп вопрос: если оно всеже дает ему неверный серв, а из-за него он должен писать вручную, бот его кикнте через 30 сек если он ненапишет??? Ведь формально сервер то у него есть, но думаю что переменная warnspoofchek его всетаки остановит???(учитывая ж изменения if)
  18. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    Я чего-то не вкуриваю... Игрок заходит в игру с какого либо сервера, у него уже при check будет тот сервак с которого он зашел. А чтобы ручной спуфчек менял сервер с которого игрок заходит - такое не видел никогда...
    Мб я чего то не понимаю...
  19. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    мб ты менял количество серверов?? HostCounterID же
  20. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Чесно Fake ты меня насторожил. Я менял да. Но... незнаю какая трабла появилсаь раньше.
    Может и из-за этого, а может чето сразу незаладилось.
    Ладн допустим что в этом причина, как ее излечить то? Возможно ли?
Статус темы:
Закрыта.