pawn Код:
LoadcDealerships()
{
new idx, idx2;
new string[128];
new owner[MAX_PLAYER_NAME];
new message[128];
djAutocommit(false);
while (idx < sizeof(CarDealershipInfo))
{
format(string, sizeof(string), "%d/owned", idx);
CarDealershipInfo[idx][cdOwned] = djInt("cardealerships.json", string);
format(string, sizeof(string), "%d/owner", idx);
format(owner, sizeof(owner), "%s", dj("cardealerships.json", string));
strmid(CarDealershipInfo[idx][cdOwner], owner, 0, strlen(owner), 255);
format(string, sizeof(string), "%d/entrance/x", idx);
CarDealershipInfo[idx][cdEntranceX] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/entrance/y", idx);
CarDealershipInfo[idx][cdEntranceY] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/entrance/z", idx);
CarDealershipInfo[idx][cdEntranceZ] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/exit/x", idx);
CarDealershipInfo[idx][cdExitX] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/exit/y", idx);
CarDealershipInfo[idx][cdExitY] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/exit/z", idx);
CarDealershipInfo[idx][cdExitZ] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/message", idx);
format(message, sizeof(message), "%s", dj("cardealerships.json", string));
strmid(CarDealershipInfo[idx][cdMessage], message, 0, strlen(message), 255);
format(string, sizeof(string), "%d/till", idx);
CarDealershipInfo[idx][cdTill] = djInt("cardealerships.json", string);
format(string, sizeof(string), "%d/interior", idx);
CarDealershipInfo[idx][cdInterior] = djInt("cardealerships.json", string);
format(string, sizeof(string), "%d/vehiclespawn/x", idx);
CarDealershipInfo[idx][cdVehicleSpawn][0] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/vehiclespawn/y", idx);
CarDealershipInfo[idx][cdVehicleSpawn][1] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/vehiclespawn/z", idx);
CarDealershipInfo[idx][cdVehicleSpawn][2] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/vehiclespawn/a", idx);
CarDealershipInfo[idx][cdVehicleSpawn][3] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/radius", idx);
CarDealershipInfo[idx][cdRadius] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/price", idx);
CarDealershipInfo[idx][cdPrice] = djInt("cardealerships.json", string);
while (idx2 < MAX_DEALERSHIPVEHICLES)
{
format(string, sizeof(string), "%d/vehicleangle/%d", idx, idx2);
CarDealershipInfo[idx][cdVehicleSpawnAngle][idx2] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/vehiclespawnx/%d", idx, idx2);
CarDealershipInfo[idx][cdVehicleSpawnX][idx2] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/vehiclespawny/%d", idx, idx2);
CarDealershipInfo[idx][cdVehicleSpawnY][idx2] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/vehiclespawnz/%d", idx, idx2);
CarDealershipInfo[idx][cdVehicleSpawnZ][idx2] = djFloat("cardealerships.json", string);
format(string, sizeof(string), "%d/vehiclecost/%d", idx, idx2);
CarDealershipInfo[idx][cdVehicleCost][idx2] = djInt("cardealerships.json", string);
format(string, sizeof(string), "%d/vehicletypes/%d", idx, idx2);
CarDealershipInfo[idx][cdVehicleModel][idx2] = djInt("cardealerships.json", string);
idx2++;
}
idx2 = 0;
idx++;
}
djAutocommit(true);
return 1;
}
SavecDealership(id)
{
new idx2;
new string[128];
printf("Saving Car Dealership %d.", id);
//djAutocommit(false);
format(string, sizeof(string), "%d/owned", id);
djSetInt("cardealerships.json", string, CarDealershipInfo[id][cdOwned]);
format(string, sizeof(string), "%d/owner", id);
djSet("cardealerships.json", string, CarDealershipInfo[id][cdOwner]);
format(string, sizeof(string), "%d/entrance/x", id);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdEntranceX]);
format(string, sizeof(string), "%d/entrance/y", id);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdEntranceY]);
format(string, sizeof(string), "%d/entrance/z", id);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdEntranceZ]);
format(string, sizeof(string), "%d/exit/x", id);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdExitX]);
format(string, sizeof(string), "%d/exit/y", id);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdExitY]);
format(string, sizeof(string), "%d/exit/z", id);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdExitZ]);
format(string, sizeof(string), "%d/message", id);
djSet("cardealerships.json", string, CarDealershipInfo[id][cdMessage]);
format(string, sizeof(string), "%d/till", id);
djSetInt("cardealerships.json", string, CarDealershipInfo[id][cdTill]);
format(string, sizeof(string), "%d/interior", id);
djSetInt("cardealerships.json", string, CarDealershipInfo[id][cdInterior]);
format(string, sizeof(string), "%d/vehiclespawn/x", id);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdVehicleSpawn][0]);
format(string, sizeof(string), "%d/vehiclespawn/y", id);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdVehicleSpawn][1]);
format(string, sizeof(string), "%d/vehiclespawn/z", id);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdVehicleSpawn][2]);
format(string, sizeof(string), "%d/vehiclespawn/a", id);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdVehicleSpawn][3]);
format(string, sizeof(string), "%d/radius", id);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdRadius]);
format(string, sizeof(string), "%d/price", id);
djSetInt("cardealerships.json", string, CarDealershipInfo[id][cdPrice]);
while (idx2 < MAX_DEALERSHIPVEHICLES)
{
format(string, sizeof(string), "%d/vehicleangle/%d", id, idx2);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdVehicleSpawnAngle][idx2]);
format(string, sizeof(string), "%d/vehiclespawnx/%d", id, idx2);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdVehicleSpawnX][idx2]);
format(string, sizeof(string), "%d/vehiclespawny/%d", id, idx2);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdVehicleSpawnY][idx2]);
format(string, sizeof(string), "%d/vehiclespawnz/%d", id, idx2);
djSetFloat("cardealerships.json", string, CarDealershipInfo[id][cdVehicleSpawnZ][idx2]);
format(string, sizeof(string), "%d/vehiclecost/%d", id, idx2);
djSetInt("cardealerships.json", string, CarDealershipInfo[id][cdVehicleCost][idx2]);
format(string, sizeof(string), "%d/vehicletypes/%d", id, idx2);
djSetInt("cardealerships.json", string, CarDealershipInfo[id][cdVehicleModel][idx2]);
idx2++;
}
//djAutocommit(true);
return 1;
}
pawn Код:
else if(dialogid == DIALOG_CDBUY)
{
// Account Eating Bug Fix
if(!IsPlayerInAnyVehicle(playerid))
{
TogglePlayerControllable(playerid, 1);
SendClientMessageEx(playerid,COLOR_GRAD2,"You need to be in the vehicle you wish to purchase.");
return 1;
}
new vehicleid = GetPlayerVehicleID(playerid);
new v = GetCarDealershipVehicleId(vehicleid);
new d = GetCarDealershipId(vehicleid);
if(response)
{
if(CarDealershipInfo[d][cdVehicleSpawn][0] == 0.0 && CarDealershipInfo[d][cdVehicleSpawn][1] == 0.0 && CarDealershipInfo[d][cdVehicleSpawn][2] == 0.0)
{
SendClientMessageEx(playerid, COLOR_GRAD1, "ERROR: The owner of this Car Dealership hasn't set the purchased vehicles spawn point.");
RemovePlayerFromVehicle(playerid);
new Float:slx, Float:sly, Float:slz;
GetPlayerPos(playerid, slx, sly, slz);
SetPlayerPos(playerid, slx, sly, slz+1.2);
TogglePlayerControllable(playerid, 1);
return 1;
}
if(IsVIPModel(vehicleid) && (PlayerInfo[playerid][pDonateRank] == 0 || PlayerInfo[playerid][pTempVIP] > 0))
{
SendClientMessageEx(playerid, COLOR_GREY, "ERROR: Only VIP's can own that type of vehicles.");
RemovePlayerFromVehicle(playerid);
new Float:slx, Float:sly, Float:slz;
GetPlayerPos(playerid, slx, sly, slz);
SetPlayerPos(playerid, slx, sly, slz+1.2);
TogglePlayerControllable(playerid, 1);
return 1;
}
new playervehicleid = GetPlayerFreeVehicleId(playerid);
new carsamount = GetPlayerVehicleCount(playerid);
if((PlayerInfo[playerid][pDonateRank] == 0 || PlayerInfo[playerid][pTempVIP] > 0) && carsamount >= 2)
{
SendClientMessageEx(playerid, COLOR_GREY, "ERROR: You can't have more cars.");
RemovePlayerFromVehicle(playerid);
new Float:slx, Float:sly, Float:slz;
GetPlayerPos(playerid, slx, sly, slz);
SetPlayerPos(playerid, slx, sly, slz+1.2);
TogglePlayerControllable(playerid, 1);
return 1;
}
if(PlayerInfo[playerid][pDonateRank] == 1 && carsamount >= 3)
{
SendClientMessageEx(playerid, COLOR_GREY, "ERROR: You can't have more cars, VIP Rank 1 can only own 1 extra car.");
RemovePlayerFromVehicle(playerid);
new Float:slx, Float:sly, Float:slz;
GetPlayerPos(playerid, slx, sly, slz);
SetPlayerPos(playerid, slx, sly, slz+1.2);
TogglePlayerControllable(playerid, 1);
return 1;
}
if(PlayerInfo[playerid][pDonateRank] == 2 && carsamount >= 4)
{
SendClientMessageEx(playerid, COLOR_GREY, "ERROR: You can't have more cars, VIP Rank 2 can only own 2 extra cars.");
RemovePlayerFromVehicle(playerid);
new Float:slx, Float:sly, Float:slz;
GetPlayerPos(playerid, slx, sly, slz);
SetPlayerPos(playerid, slx, sly, slz+1.2);
TogglePlayerControllable(playerid, 1);
return 1;
}
if(PlayerInfo[playerid][pDonateRank] == 3 && carsamount >= 5)
{
SendClientMessageEx(playerid, COLOR_GREY, "ERROR: You can't have more cars, VIP Rank 3 can only own 3 extra cars.");
RemovePlayerFromVehicle(playerid);
new Float:slx, Float:sly, Float:slz;
GetPlayerPos(playerid, slx, sly, slz);
SetPlayerPos(playerid, slx, sly, slz+1.2);
TogglePlayerControllable(playerid, 1);
return 1;
}
if(playervehicleid == -1)
{
SendClientMessageEx(playerid, COLOR_GREY, "ERROR: You can't have more cars.");
RemovePlayerFromVehicle(playerid);
new Float:slx, Float:sly, Float:slz;
GetPlayerPos(playerid, slx, sly, slz);
SetPlayerPos(playerid, slx, sly, slz+1.2);
TogglePlayerControllable(playerid, 1);
return 1;
}
new randcolor1 = Random(0, 126);
new randcolor2 = Random(0, 126);
SetPlayerPos(playerid, CarDealershipInfo[d][cdVehicleSpawn][0], CarDealershipInfo[d][cdVehicleSpawn][1], CarDealershipInfo[d][cdVehicleSpawn][2]+2);
TogglePlayerControllable(playerid, 1);
new cost;
if(PlayerInfo[playerid][pDonateRank] < 1)
{
cost = CarDealershipInfo[d][cdVehicleCost][v];
if(GetPVarInt(playerid, "Cash") < CarDealershipInfo[d][cdVehicleCost][v])
{
SendClientMessageEx(playerid, COLOR_GRAD1, "ERROR: You don't have enough money to buy this.");
RemovePlayerFromVehicle(playerid);
new Float:slx, Float:sly, Float:slz;
GetPlayerPos(playerid, slx, sly, slz);
SetPlayerPos(playerid, slx, sly, slz+1.2);
return 1;
}
format(string, sizeof(string), " Thank you for buying at %s.", CarDealershipInfo[d][cdMessage]);
SendClientMessageEx(playerid, COLOR_GRAD1, string);
SetPVarInt(playerid, "Cash", GetPVarInt(playerid, "Cash")-CarDealershipInfo[d][cdVehicleCost][v]);
CarDealershipInfo[d][cdTill] += ( CarDealershipInfo[d][cdVehicleCost][v] * 40 ) / ( 100 );
}
else
{
cost = ( CarDealershipInfo[d][cdVehicleCost][v] * 80 ) / ( 100 );
if(GetPVarInt(playerid, "Cash") < cost)
{
SendClientMessageEx(playerid, COLOR_GRAD1, "ERROR: You don't have enough money to buy this.");
RemovePlayerFromVehicle(playerid);
new Float:slx, Float:sly, Float:slz;
GetPlayerPos(playerid, slx, sly, slz);
SetPlayerPos(playerid, slx, sly, slz+1.2);
return 1;
}
format(string, sizeof(string), " Thank you for buying at %s.", CarDealershipInfo[d][cdMessage]);
SendClientMessageEx(playerid, COLOR_GRAD1, string);
SetPVarInt(playerid, "Cash", GetPVarInt(playerid, "Cash") - cost );
CarDealershipInfo[d][cdTill] += cost;
}
new car = CreatePlayerVehicle(playerid, playervehicleid, CarDealershipInfo[d][cdVehicleModel][v], CarDealershipInfo[d][cdVehicleSpawn][0], CarDealershipInfo[d][cdVehicleSpawn][1], CarDealershipInfo[d][cdVehicleSpawn][2], CarDealershipInfo[d][cdVehicleSpawn][3], randcolor1, randcolor2, cost);
SetTimerEx("PutPlayerInVeh", 2000, 0, "dd", playerid, car);
SavecDealership(d);
}
else
{
RemovePlayerFromVehicle(playerid);
new Float:slx, Float:sly, Float:slz;
GetPlayerPos(playerid, slx, sly, slz);
SetPlayerPos(playerid, slx, sly, slz+1.2);
TogglePlayerControllable(playerid, 1);
return 1;
}
}