Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Античит на SpeedHack в авто

Статус
В этой теме нельзя размещать новые ответы.

J-Ex

Ученик
Возможно, кому-то пригодится, писалось специально для паблика.
Ко всем new:
PHP:
new Float:vehicle_health [ MAX_PLAYERS ];
new Float:speed_player [ MAX_PLAYERS ];
new player_vehicle [ MAX_PLAYERS ];
В OnPlayerConnect:

PHP:
speed_player [ playerid ] = 0;
player_vehicle [ playerid ] = INVALID_VEHICLE_ID;
В OnPlayerStateChange:
PHP:
    if ( newstate == PLAYER_STATE_DRIVER )
	{
		player_vehicle[ playerid ] = GetPlayerVehicleID( playerid );
	}
	if( oldstate == PLAYER_STATE_DRIVER )
       {
		player_vehicle[ playerid ] = INVALID_VEHICLE_ID;
	}
В OnPlayerUpdate:
PHP:
if( player_vehicle [playerid ] != INVALID_VEHICLE_ID )
{
        new Float:veh_health_now,Float: veh_speed = GetPlayerSpeed ( playerid );
        GetVehicleHealth( player_vehicle[ playerid ],veh_health_now );
        if( veh_speed - speed_player [ playerid ] > 20 && veh_health_now - vehicle_health [ playerid ] == 0 )
        {
			Kick( playerid );//Наказываем
            return 1;
        }
        speed_player [ playerid ] = veh_speed;
  	  GetVehicleHealth( player_vehicle[ playerid ],vehicle_health [ playerid ] );
    }
Функция измерения скорости:
PHP:
stock GetPlayerSpeed ( playerid )
{
    new Float:x, Float:y, Float:z;
    GetVehicleVelocity ( player_vehicle[ playerid ], x, y, z ) ;
    return floatround ( floatsqroot ( x * x + y * y + z * z ) * 295  ) ;
}
Ложных срабатываний нет. Обход возможен, но лучше вариантов нет. Буду рад слышать советы по коду.

Автор: Я.
Отдельное спасибо Deimos`у за рекомендации по коду.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу