Well your command should look a bit more like this:
PHP код:
CMD:park(playerid, params[])
{
if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
new vid = GetPlayerVehicleID(playerid);
if(!vid) return SendClientMessage(playerid, COLOR_GREY, "You are not in a vehicle.");
if(IsFamVehicle(vid) && Fam[vid] == PlayerInfo[playerid][pFam])
{
new idx = PlayerInfo[playerid][pFam], veh = GFVS(vid);
GetVehiclePos(vid, FamInfo[idx][fVehCoX][veh], FamInfo[idx][fVehCoY][veh], FamInfo[idx][fVehCoZ][veh]);
GetVehicleZAngle(vid, FamInfo[idx][fVehRot][veh]);
if(FamInfo[idx][fVehType][veh]) DestroyVehicle(FamInfo[idx][fVeh][veh]);
FamInfo[idx][fVeh][veh] = CreateVehicle(FamInfo[idx][fVehType][veh], FamInfo[idx][fVehCoX][veh], FamInfo[idx][fVehCoY][veh], FamInfo[idx][fVehCoZ][veh], FamInfo[idx][fVehRot][veh], FamInfo[idx][fVehCol1][veh], FamInfo[idx][fVehCol2][veh], 12000);
ChangeVehicleColor(FamInfo[idx][fVeh][veh], FamInfo[idx][fVehCol1][veh], FamInfo[idx][fVehCol2][veh]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, " You have parked your family vehicle, it will always spawn here until you park it somewhere else.");
return 1;
}
// Owned Vehicles
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_GREY, "You must be driving your own vehicle to park it.");
if(vid == PlayerInfo[playerid][pVeh])
{
for(new i = 0; i < 14; i++) PlayerInfo[playerid][pVehMod][i] = GetVehicleComponentInSlot(PlayerInfo[playerid][pVeh], i);
GetVehiclePos(PlayerInfo[playerid][pVeh], PlayerInfo[playerid][vX], PlayerInfo[playerid][vY], PlayerInfo[playerid][vZ]);
GetVehicleZAngle(PlayerInfo[playerid][pVeh], PlayerInfo[playerid][vA]);
DestroyVehicle(PlayerInfo[playerid][pVeh]);
PlayerInfo[playerid][pVeh] = CreateVehicle(PlayerInfo[playerid][vModel], PlayerInfo[playerid][vX], PlayerInfo[playerid][vY], PlayerInfo[playerid][vZ], PlayerInfo[playerid][vA], PlayerInfo[playerid][vC1], PlayerInfo[playerid][vC2], 1200);
ChangeVehiclePaintjob(PlayerInfo[playerid][pVeh], PlayerInfo[playerid][vPJ]);
for(new i = 0; i < 14; i++) AddVehicleComponent(PlayerInfo[playerid][pVeh], PlayerInfo[playerid][pVehMod][i]);
}
else if(vid == PlayerInfo[playerid][pVVeh])
{
for(new i = 0; i < 14; i++) PlayerInfo[playerid][pVVehMod][i] = GetVehicleComponentInSlot(PlayerInfo[playerid][pVVeh], i);
GetVehiclePos(PlayerInfo[playerid][pVVeh], PlayerInfo[playerid][vVX], PlayerInfo[playerid][vVY], PlayerInfo[playerid][vVZ]);
GetVehicleZAngle(PlayerInfo[playerid][pVVeh], PlayerInfo[playerid][vVA]);
DestroyVehicle(PlayerInfo[playerid][pVVeh]);
PlayerInfo[playerid][pVVeh] = CreateVehicle(PlayerInfo[playerid][vVModel], PlayerInfo[playerid][vVX], PlayerInfo[playerid][vVY], PlayerInfo[playerid][vVZ], PlayerInfo[playerid][vVA], PlayerInfo[playerid][vVC1], PlayerInfo[playerid][vVC2], 1200);
ChangeVehiclePaintjob(PlayerInfo[playerid][pVVeh], PlayerInfo[playerid][vVPJ]);
for(new i = 0; i < 14; i++) AddVehicleComponent(PlayerInfo[playerid][pVVeh], PlayerInfo[playerid][pVVehMod][i]);
}
else if(vid == PlayerInfo[playerid][pBVeh])
{
for(new i = 0; i < 14; i++) PlayerInfo[playerid][pBVehMod][i] = GetVehicleComponentInSlot(PlayerInfo[playerid][pBVeh], i);
GetVehiclePos(PlayerInfo[playerid][pBVeh], PlayerInfo[playerid][vBX], PlayerInfo[playerid][vBY], PlayerInfo[playerid][vBZ]);
GetVehicleZAngle(PlayerInfo[playerid][pBVeh], PlayerInfo[playerid][vBA]);
DestroyVehicle(PlayerInfo[playerid][pBVeh]);
PlayerInfo[playerid][pBVeh] = CreateVehicle(PlayerInfo[playerid][vBModel], PlayerInfo[playerid][vBX], PlayerInfo[playerid][vBY], PlayerInfo[playerid][vBZ], PlayerInfo[playerid][vBA], PlayerInfo[playerid][vBC1], PlayerInfo[playerid][vBC2], 1200);
ChangeVehiclePaintjob(PlayerInfo[playerid][pBVeh], PlayerInfo[playerid][vBPJ]);
for(new i = 0; i < 14; i++) AddVehicleComponent(PlayerInfo[playerid][pBVeh], PlayerInfo[playerid][pBVehMod][i]);
}
else return SendClientMessage(playerid, COLOR_GREY, "You are not in a vehicle that you can park.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "You have parked your vehicle, it will always spawn here until you park it somewhere else.");
return 1;
}
Then you would need to update your color variables every time you use the transfender or other mod shops. Note that this does not account for pay 'n' sprays.
PHP код:
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
if(vehicleid == PlayerInfo[playerid][pVeh])
PlayerInfo[playerid][vC1] = color1, PlayerInfo[playerid][vC2] = color2;
else if(vehicleid == PlayerInfo[playerid][pVVeh])
PlayerInfo[playerid][vVC1] = color1, PlayerInfo[playerid][vVC2] = color2;
else if(vehicleid == PlayerInfo[playerid][pBVeh])
PlayerInfo[playerid][vBC1] = color1, PlayerInfo[playerid][vBC2] = color2;
return 1;
}
You should technically subtract 1 from every array that uses vehicle IDs, because if you happen to get vehicle ID 2000, then you can expect an out of bounds error. Vehicle IDs start at 1, not 0. But that's a story for another time