I'm using /vstorage system for personal vehicles, I recently added vip restriction for spawn it and I have a bug , I can't spawn it because I get that restrictions for VIP even I'm the respective VIP Rank.
Код:
if(dialogid == VSTORAGE && response) {
if(PlayerVehicleInfo[playerid][listitem][pvSpawned]) {
new iVehicleID = PlayerVehicleInfo[playerid][listitem][pvId];
if((!IsVehicleOccupied(iVehicleID) || IsPlayerInVehicle(playerid, iVehicleID)) && !IsVehicleInTow(iVehicleID)) {
new
Float: vehiclehealth;
GetVehicleHealth(iVehicleID, vehiclehealth);
if(vehiclehealth < 800) {
SendClientMessageEx(playerid, COLOR_WHITE, "Acest vehicul este prea avariat ca sa fie storat.");
}
else {
--PlayerCars;
VehicleSpawned[playerid]--;
PlayerVehicleInfo[playerid][listitem][pvSpawned] = 0;
PlayerVehicleInfo[playerid][listitem][pvFuel] = VehicleFuel[iVehicleID];
VehicleFuel[iVehicleID] = 100.0;
DestroyVehicle(iVehicleID);
PlayerVehicleInfo[playerid][listitem][pvId] = INVALID_PLAYER_VEHICLE_ID;
new vstring[128];
format(vstring, sizeof(vstring), "Ti-ai storat %s. Vehiculul a fost despawnat.", VehicleName[PlayerVehicleInfo[playerid][listitem][pvModelId] - 400]);
SendClientMessageEx(playerid, COLOR_WHITE, vstring);
CheckPlayerVehiclesForDesync(playerid);
}
}
else SendClientMessageEx(playerid, COLOR_WHITE, "Acest vehicul este momentat ocupat - nu poate fi despawnat acum.");
}
else if(PlayerVehicleInfo[playerid][listitem][pvImpounded]) {
SendClientMessageEx(playerid, COLOR_WHITE, "Nu poti spawna o masina impounded. Daca doresti sa o iei inapoi, mergi la DMV in Dillimore si plateste amenda.");
}
else if(PlayerVehicleInfo[playerid][listitem][pvDisabled]) {
SendClientMessageEx(playerid, COLOR_WHITE, "Nu poti spawna un vehicul disabled. Aceasta este disabled datorita rank-ului tau de VIP (vehicle restrictions).");
}
else if(!PlayerVehicleInfo[playerid][listitem][pvSpawned]) {
if(PlayerInfo[playerid][pDonateRank] == 0 && VehicleSpawned[playerid] >= 2) {
SendClientMessageEx(playerid, COLOR_GREY, "Ca membru Non-VIP poti avea doar 2 vehicule spawnate. Trebuie sa storezi o masina pentru a spawna alt vehicul.");
}
else if(PlayerInfo[playerid][pDonateRank] == 1 && VehicleSpawned[playerid] >= 2) {
SendClientMessageEx(playerid, COLOR_GREY, "Ca Bronze VIP poti avea doar 2 vehicule spawnate. Trebuie sa storezi o masina pentru a spawna alt vehicul.");
}
else if(PlayerInfo[playerid][pDonateRank] == 2 && VehicleSpawned[playerid] >= 2) {
SendClientMessageEx(playerid, COLOR_GREY, "Ca Silver VIP poti avea doar 2 vehicule spawnate. Trebuie sa storezi o masina pentru a spawna alt vehicul.");
}
else if(PlayerInfo[playerid][pDonateRank] == 3 && VehicleSpawned[playerid] >= 3) {
SendClientMessageEx(playerid, COLOR_GREY, "Ca Gold VIP poti avea 3 vehicule spawnate. Trebuie sa storezi o masina pentru a spawna alt vehicul.");
}
else if(PlayerInfo[playerid][pDonateRank] == 4 && VehicleSpawned[playerid] >= 5) {
SendClientMessageEx(playerid, COLOR_GREY, "Ca Platinum VIP poti avea 5 vehicule spawnate. Trebuie sa storezi o masina pentru a spawna alt vehicul.");
}
else if(PlayerInfo[playerid][pDonateRank] == 5 && VehicleSpawned[playerid] >= 5) {
SendClientMessageEx(playerid, COLOR_GREY, "Ca VIP Moderator poti avea 5 vehicule spawnate. Trebuie sa storezi o masina pentru a spawna alt vehicul.");
}
else if(!(0 <= PlayerInfo[playerid][pDonateRank] <= 5)) {
SendClientMessageEx(playerid, COLOR_GREY, "You have an invalid VIP level.");
}
else if((PlayerVehicleInfo[playerid][listitem][pvModelId]) < 400) {
SendClientMessageEx(playerid, COLOR_GREY, "The vehicle slot is empty.");
}
else {
new
iVeh = CreateVehicleEx(PlayerVehicleInfo[playerid][listitem][pvModelId], PlayerVehicleInfo[playerid][listitem][pvPosX], PlayerVehicleInfo[playerid][listitem][pvPosY], PlayerVehicleInfo[playerid][listitem][pvPosZ], PlayerVehicleInfo[playerid][listitem][pvPosAngle],PlayerVehicleInfo[playerid][listitem][pvColor1], PlayerVehicleInfo[playerid][listitem][pvColor2], -1, playerid);
++PlayerCars;
VehicleSpawned[playerid]++;
PlayerVehicleInfo[playerid][listitem][pvSpawned] = 1;
PlayerVehicleInfo[playerid][listitem][pvId] = iVeh;
VehicleFuel[iVeh] = PlayerVehicleInfo[playerid][listitem][pvFuel];
if(PlayerVehicleInfo[playerid][listitem][pvLocked] == 1) LockPlayerVehicle(playerid, iVeh, PlayerVehicleInfo[playerid][listitem][pvLock]);
LoadPlayerVehicleMods(playerid, listitem);
new vstring[64];
format(vstring, sizeof(vstring), "You have taken your %s out of storage.", VehicleName[PlayerVehicleInfo[playerid][listitem][pvModelId] - 400]);
SendClientMessageEx(playerid, COLOR_WHITE, vstring);
CheckPlayerVehiclesForDesync(playerid);
Vehicle_ResetData(iVeh);
new szPrefix[32], tmpFVehModelId, Float:tmpFVehPos[4];
format(szPrefix, sizeof(szPrefix), "tmpVeh%dModelId", listitem);
tmpFVehModelId = GetPVarInt(playerid, szPrefix);
DeletePVar(playerid, szPrefix);
format(szPrefix, sizeof(szPrefix), "tmpVeh%dPosX", listitem);
tmpFVehPos[0] = GetPVarFloat(playerid, szPrefix);
DeletePVar(playerid, szPrefix);
format(szPrefix, sizeof(szPrefix), "tmpVeh%dPosY", listitem);
tmpFVehPos[1] = GetPVarFloat(playerid, szPrefix);
DeletePVar(playerid, szPrefix);
format(szPrefix, sizeof(szPrefix), "tmpVeh%dPosZ", listitem);
tmpFVehPos[2] = GetPVarFloat(playerid, szPrefix);
DeletePVar(playerid, szPrefix);
format(szPrefix, sizeof(szPrefix), "tmpVeh%dAngle", listitem);
tmpFVehPos[3] = GetPVarFloat(playerid, szPrefix);
DeletePVar(playerid, szPrefix);
if(tmpFVehPos[0] != 0.0 && tmpFVehModelId == PlayerVehicleInfo[playerid][listitem][pvModelId])
{
SetVehiclePos(iVeh, tmpFVehPos[0], tmpFVehPos[1], tmpFVehPos[2]);
SetVehicleZAngle(iVeh, tmpFVehPos[3]);
SendClientMessageEx(playerid, COLOR_WHITE, "Your vehicle has been restored to it's last known location from your previous timeout.");
}
}
}
else SendClientMessageEx(playerid, COLOR_WHITE, "You can not spawn a non-existent vehicle.");
}