//forwards and definition : Must be on start of map code new pexit[200]; new exits[200]; forward exitsclear(playerid); forward pexitclear(playerid); forward GetClosestCar(playerid); forward GetDistanceToCar(playerid, carid); // Funcions public OnPlayerStateChange(playerid, newstate, oldstate) { if(pexit[playerid]==0){ if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT){ exits[playerid]++; if(exits[playerid] < 10){ new close = GetClosestCar(playerid); if(!IsPlayerInAnyVehicle(playerid))if(!IsVehicleInUseDF2(close))PutPlayerInVehicle(playerid, close, 0);SetCameraBehindPlayer(playerid); }else if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_EXIT_VEHICLE){ new close = GetClosestCar(playerid); if(!IsPlayerInAnyVehicle(playerid))if(!IsVehicleInUseDF2(close))PutPlayerInVehicle(playerid, close, 0);SetCameraBehindPlayer(playerid); } } } SetTimerEx("exitsclear", 4500, 0, "d", playerid); return 1; } public exitsclear(playerid)exits[playerid]=0; public GetClosestCar(playerid) //By Darkrealm { if (!IsPlayerConnected(playerid)) { return -1; } new Float:prevdist = 100000.000; new prevcar; for (new carid = 0; carid < MAX_VEHICLES; carid++) { new Float:dist = GetDistanceToCar(playerid,carid); if ((dist < prevdist)) { prevdist = dist; prevcar = carid; } } return prevcar; } public GetDistanceToCar(playerid,carid) //By Darkrealm (Edited by Sacky) { new Float:dis; new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2; if (!IsPlayerConnected(playerid)) { return -1; } GetPlayerPos(playerid,x1,y1,z1); GetVehiclePos(carid,x2,y2,z2); dis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2)); return floatround(dis); } public OnPlayerExitVehicle(playerid, vehicleid) { pexit[playerid]=1; SetTimerEx("pexitclear", 4500, 0, "d", playerid); return 1; } // Easy ;p I thing there is all code. regards - Flyin