J-Ex
Ученик
Возможно, кому-то пригодится, писалось специально для паблика.
Ко всем new:
В OnPlayerConnect:
В OnPlayerStateChange:
В OnPlayerUpdate:
Функция измерения скорости:
Ложных срабатываний нет. Обход возможен, но лучше вариантов нет. Буду рад слышать советы по коду.
Автор: Я.
Отдельное спасибо Deimos`у за рекомендации по коду.
Ко всем new:
PHP:
new Float:vehicle_health [ MAX_PLAYERS ];
new Float:speed_player [ MAX_PLAYERS ];
new player_vehicle [ MAX_PLAYERS ];
PHP:
speed_player [ playerid ] = 0;
player_vehicle [ playerid ] = INVALID_VEHICLE_ID;
PHP:
if ( newstate == PLAYER_STATE_DRIVER )
{
player_vehicle[ playerid ] = GetPlayerVehicleID( playerid );
}
if( oldstate == PLAYER_STATE_DRIVER )
{
player_vehicle[ playerid ] = INVALID_VEHICLE_ID;
}
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`у за рекомендации по коду.
Последнее редактирование:
