Все оно работает, только что проверил.
Может у тебя просто таймер не успевает обновляться? т.е. скорость у тебя показывает в одном таймере, а эта функция в другом таймере, который обновляется не так часто, как тот, что показывает скорость.
Это я сделал, что бы ты сам убедился, что оно работает
PHP код:
stock LimitingVehicleSpeed(const playerid, const vehicleid, const max_speed)
{
if(vehicleid == 0)
return 1;
new Float: velocity_x,
Float: velocity_y,
Float: velocity_z;
GetVehicleVelocity(vehicleid, velocity_x, velocity_y, velocity_z);
new vehicle_speed = floatround(VectorSize(velocity_x, velocity_y, velocity_z) * 100.0);
if(vehicle_speed >= max_speed)
SetVehicleVelocity(vehicleid, velocity_x*0.99, velocity_y*0.99, velocity_z);
new string[8 + 3];
format(string, sizeof(string), "SPEED: %d", vehicle_speed);
GameTextForPlayer(playerid, string, 50, 6);
return 1;
}
В public OnPlayerUpdate(playerid)
PHP код:
LimitingVehicleSpeed(playerid, GetPlayerVehicleID(playerid), 45);
Это только для примера.