In pawn this is a Problem, cuz when a player in already in vehicle PuttoAnotherVehicle wont work so try this:
[pawn] else if (strcmp(cmd, "!race", true) == 0)
{
tmp = strtok(cmdtext, idx);
if (!strlen(tmp)) {
SetPlayerPos(playerid,-1051.5901,321.7699,10.7553,0,0); // And also you need to add ,0,0
ResetPlayerWeapons(playerid);
PutPlayerInVehicle(playerid,100);
RemovePlayerFromVehicle(playerid);
PutPlayerInVehicle(playerid,101);
RemovePlayerFromVehicle(playerid);
PutPlayerInVehicle(playerid,102);
RemovePlayerFromVehicle(playerid);
PutPlayerInVehicle(playerid,103);
SendClientMessageToAll(GREEN, "Wait 10 seconds for more players");
format( szMsg, 128, "%s is now on racetrack, type !race for race with him",gPlayers[playerid]);
SendClientMessageToAll( RED, szMsg );
GameTextForAllBottom("~g~End ~g~On ~g~Malibu!");
}
return 1;
}[/pawn]
The other thing that i dont understand is: Why the player must enter to 3 vehicles before race?