#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 //Put the #define dcmd at top of script.... public OnPlayerCommandText(playerid,cmdtext[]) { dcmd(vehicle,7,cmdtext); return 0; } dcmd_vehicle(playerid,params[]) { RandomValidVehicle(playerid,params); return 1; } stock RandomValidVehicle(playerid,params[]) { new RandomVehicle = minrand(400,611); while(!IsWantedVehicle(RandomVehicle)) RandomVehicle = minrand(400,611); new File:vehiclefile=fopen("vehicle.txt",io_append); new string[256]; new Float:X; new Float:Y; new Float:Z; new Float:FaceAng; GetPlayerPos(playerid,X,Y,Z); if(IsPlayerInAnyVehicle(playerid)) GetVehicleZAngle(GetPlayerVehicleID(playerid),FaceAng); else GetPlayerFacingAngle(playerid,FaceAng); format(string,sizeof(string),"AddStaticVehicle(%d,%f,%f,%f,%d,-1,-1) // %s",RandomVehicle,X,Y,Z,FaceAng,params); fwrite(vehiclefile,string); fclose(vehiclefile); return 1; } stock IsWantedVehicle(vehicleid) { if(vehicleid < 400 || vehicleid > 611) return 1; switch(vehicleid) { case 522,601,405,532: return 1; default: return 0; } return 0; } stock RandomEx(max) { return random(max * 100) / 100; } stock minrand(min,max) { return RandomEx(max - min) + min; }