07.08.2014, 17:38
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."); }