SetVehicleDoorsStatus (vehicleid, bool);
SetVehicleTyre (vehicleid, bool);
SetVehicleAlarm (vehicleid, bool);
SetVehicleLights (vehicleid, bool);
this for me is succesully working, bool is 0,1 or 2
like:
else if (strcmp(cmd, "lights", true) == 0) {
		new param[256];
 param = strtok(cmdtext, idx);
		if(PlayerInfo[playerid][Logged] != 1) SendClientMessage(playerid, COLOR_TEXT, "You need to login first!");
		else if (IsPlayerInAnyVehicle(playerid)) {
		if (!strlen(param)) SendClientMessage(playerid,COLOR_TEXT,"USAGE: /c lights [on/off]");
		else {
		new id; id=GetPlayerVehicleID(playerid);
			if(strcmp(param, "on", true) == 0) {
				SetVehicleLights(id,1);
				SendClientMessage(playerid,COLOR_TEXT,"Lights of vehicle turned on.");
			}
			else if(strcmp(param, "off", true) == 0) {
				SetVehicleLights(id,0);
				SendClientMessage(playerid,COLOR_TEXT,"Lights of vehicle turned off.");
			}
			else SendClientMessage(playerid,COLOR_TEXT,"Syntax Error! USAGE: /c lights [on/off]");
		}
  }
About spawn you can do just as in samp, i made random spawn point for my server, setplayerstartposition is for skin selection.
Player positions, Interiors: VCMP one not bad SetPlayerPos(playerid, Float:X, Float:Y, Float:Z,Float:rotation,interior);
"Camera functions" too is for skin selecting 
Vehicle: GetVehicleModel i made by myself, but i think too this is necessary