PHP код:
LoadPlayerVehicles(playerid);
UnloadPlayerVeHicles(playerid)
stock LoadPlayerVehicles(playerid)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
printf(" Loading %s's vehicles.", playername);
for(new v = 0; v < MAX_PLAYERVEHICLES; v++)
{
if(PlayerVehicleInfo[playerid][v][pvModelId] != 0 && PlayerVehicleInfo[playerid][v][pvImpounded] == 0)
{
PlayerCars++;
new carcreated = AddStaticVehicleEx(PlayerVehicleInfo[playerid][v][pvModelId], PlayerVehicleInfo[playerid][v][pvPosX], PlayerVehicleInfo[playerid][v][pvPosY], PlayerVehicleInfo[playerid][v][pvPosZ], PlayerVehicleInfo[playerid][v][pvPosAngle],PlayerVehicleInfo[playerid][v][pvColor1], PlayerVehicleInfo[playerid][v][pvColor2], -1);
PlayerVehicleInfo[playerid][v][pvId] = carcreated;
Gas[carcreated] = PlayerVehicleInfo[playerid][v][pvFuel];
if(!isnull(PlayerVehicleInfo[playerid][v][pvPlate]))
{
SetVehicleNumberPlate(carcreated, PlayerVehicleInfo[playerid][v][pvPlate]);
}
else
{
new string[128], randletter[2];
randletter[0] = lAlphabet[random(sizeof(lAlphabet))][0];
randletter[1] = lAlphabet[random(sizeof(lAlphabet))][0];
format(string, sizeof(string), "%s%s%d", randletter[0], randletter[1], carcreated);
SetVehicleNumberPlate(carcreated, string);
}
//SetVehicleNumberPlate(carcreated, PlayerVehicleInfo[playerid][v][pvNumberPlate]);
if(PlayerVehicleInfo[playerid][v][pvLocked] == 1 && !IsABike(PlayerVehicleInfo[playerid][v][pvId])) LockPlayerVehicle(playerid, PlayerVehicleInfo[playerid][v][pvId], PlayerVehicleInfo[playerid][v][pvLock]);
}
else if(PlayerVehicleInfo[playerid][v][pvModelId] == 0 && PlayerVehicleInfo[playerid][v][pvImpounded] != 0)
PlayerVehicleInfo[playerid][v][pvImpounded] = 0;
}
LoadAllPlayerVehicleMods(playerid);
}
stock UnloadPlayerVehicles(playerid)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
printf(" Unloading %s's vehicles.", playername);
for(new v = 0; v < MAX_PLAYERVEHICLES; v++)
{
if(PlayerVehicleInfo[playerid][v][pvId] != INVALID_PLAYER_VEHICLE_ID && PlayerVehicleInfo[playerid][v][pvImpounded] == 0)
{
// new Float:x, Float:y, Float:z, Float:angle;
// GetVehiclePos(PlayerVehicleInfo[playerid][v][pvId], x, y, z);
//GetVehicleZAngle(PlayerVehicleInfo[playerid][v][pvId], angle);
//UpdatePlayerVehicleParkPosition(playerid, v, x, y, z, angle);
PlayerCars--;
if(LockStatus[PlayerVehicleInfo[playerid][v][pvId]] != 0) LockStatus[PlayerVehicleInfo[playerid][v][pvId]] = 0;
UpdatePlayerVehicleMods(playerid, v);
DestroyVehicle(PlayerVehicleInfo[playerid][v][pvId]);
Gas[PlayerVehicleInfo[playerid][v][pvId]] = 100.0;
PlayerVehicleInfo[playerid][v][pvId] = INVALID_PLAYER_VEHICLE_ID;
if(PlayerVehicleInfo[playerid][v][pvAllowedPlayerId] != INVALID_PLAYER_ID)
{
PlayerInfo[PlayerVehicleInfo[playerid][v][pvAllowedPlayerId]][pVehicleKeys] = INVALID_PLAYER_VEHICLE_ID;
PlayerInfo[PlayerVehicleInfo[playerid][v][pvAllowedPlayerId]][pVehicleKeysFrom] = INVALID_PLAYER_ID;
PlayerVehicleInfo[playerid][v][pvAllowedPlayerId] = INVALID_PLAYER_ID;
}
}
}
}
stock UpdatePlayerVehicleParkPosition(playerid, playervehicleid, Float:newx, Float:newy, Float:newz, Float:newangle, Float:health)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
if(PlayerVehicleInfo[playerid][playervehicleid][pvId] != INVALID_PLAYER_VEHICLE_ID)
{
if(!isnull(PlayerVehicleInfo[playerid][playervehicleid][pvPlate])) {
SetVehicleNumberPlate(playervehicleid, PlayerVehicleInfo[playerid][playervehicleid][pvPlate]);
}
new Float:oldx, Float:oldy, Float:oldz, Float: oldfuel;
oldx = PlayerVehicleInfo[playerid][playervehicleid][pvPosX];
oldy = PlayerVehicleInfo[playerid][playervehicleid][pvPosY];
oldz = PlayerVehicleInfo[playerid][playervehicleid][pvPosZ];
if(oldx == newx && oldy == newy && oldz == newz) return 0;
PlayerVehicleInfo[playerid][playervehicleid][pvPosX] = newx;
PlayerVehicleInfo[playerid][playervehicleid][pvPosY] = newy;
PlayerVehicleInfo[playerid][playervehicleid][pvPosZ] = newz;
PlayerVehicleInfo[playerid][playervehicleid][pvPosAngle] = newangle;
oldfuel = Gas[PlayerVehicleInfo[playerid][playervehicleid][pvId]];
Gas[PlayerVehicleInfo[playerid][playervehicleid][pvId]] = 100.0;
for(new c=0; c<12; c++) {
RemoveVehicleComponent(playervehicleid, c);
}
UpdatePlayerVehicleMods(playerid, playervehicleid);
DestroyVehicle(PlayerVehicleInfo[playerid][playervehicleid][pvId]);
new carcreated = AddStaticVehicleEx(PlayerVehicleInfo[playerid][playervehicleid][pvModelId], PlayerVehicleInfo[playerid][playervehicleid][pvPosX], PlayerVehicleInfo[playerid][playervehicleid][pvPosY], PlayerVehicleInfo[playerid][playervehicleid][pvPosZ],
PlayerVehicleInfo[playerid][playervehicleid][pvPosAngle],PlayerVehicleInfo[playerid][playervehicleid][pvColor1], PlayerVehicleInfo[playerid][playervehicleid][pvColor2], -1);
PlayerVehicleInfo[playerid][playervehicleid][pvId] = carcreated;
Gas[carcreated] = oldfuel;
//SetVehicleNumberPlate(carcreated, PlayerVehicleInfo[playerid][playervehicleid][pvNumberPlate]);
SetVehicleHealth(carcreated, health);
if(PlayerVehicleInfo[playerid][playervehicleid][pvLocked] == 1) LockPlayerVehicle(playerid, PlayerVehicleInfo[playerid][playervehicleid][pvId], PlayerVehicleInfo[playerid][playervehicleid][pvLock]);
LoadPlayerVehicleMods(playerid, playervehicleid);
return 1;
}
return 0;
}
I have disabled this two Load and unload for checking.
. I have also use UpdatePlayerVehicleParkPosition for try to place the vehicle in the last parked place