Dealerships cause lag to the server. -
James Bob - 26.03.2013
Hey I need help I have this gamemode what i've been working on but the dealerships cause lag to the server, when creating a dealership/creating a dealershipcar/buying the car.
Code:
#define MAX_DEALERSHIPVEHICLES 25
#define MAX_CARDEALERSHIPS 50
enum cdInfo
{
cdOwned,
cdOwner[MAX_PLAYER_NAME],
Float: cdEntranceX,
Float: cdEntranceY,
Float: cdEntranceZ,
Float: cdExitX,
Float: cdExitY,
Float: cdExitZ,
cdMessage[128],
cdTill,
cdInterior,
Float: cdRadius,
cdPrice,
cdPickupID,
Text3D:cdTextLabel,
Text3D:cdVehicleLabel[MAX_DEALERSHIPVEHICLES],
cdVehicleModel[MAX_DEALERSHIPVEHICLES],
cdVehicleCost[MAX_DEALERSHIPVEHICLES],
cdVehicleId[MAX_DEALERSHIPVEHICLES],
Float: cdVehicleSpawnX[MAX_DEALERSHIPVEHICLES],
Float: cdVehicleSpawnY[MAX_DEALERSHIPVEHICLES],
Float: cdVehicleSpawnZ[MAX_DEALERSHIPVEHICLES],
Float: cdVehicleSpawnAngle[MAX_DEALERSHIPVEHICLES],
Float: cdVehicleSpawn[4],
};
Code:
new CarDealershipInfo[MAX_CARDEALERSHIPS][cdInfo];
}
if(GetCarDealershipVehicleId(newcar) != -1 && GetCarDealershipVehicleId(newcar) == GetPVarInt(playerid, "editingcdveh")) return 1;
if(GetCarDealershipVehicleId(newcar) != -1)
{
new string[57 + 20 + 4];
format(string, sizeof(string),"Would you like to buy this %s?\n\nThis vehicle costs $%d.", GetVehicleName(newcar), CarDealershipInfo[GetCarDealershipId(newcar)][cdVehicleCost][GetCarDealershipVehicleId(newcar)]);
ShowPlayerDialog(playerid,DIALOG_CDBUY,DIALOG_STYLE_MSGBOX,"Warning:",string,"Buy","Cancel");
TogglePlayerControllable(playerid, false);
return 1;
}
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;
}
Code:
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;
}
Code:
CMD:createdealership(playerid, params[])
{
if (PlayerInfo[playerid][pAdmin] < 1337)
{
SendClientMessageEx(playerid, COLOR_GREY, " You are not allowed to use this command.");
return 1;
}
new string[128], price, radius, message[64];
if(sscanf(params, "dds[64]", price, radius, message)) return SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: /createdealership [price] [radius] [message]");
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
new dealershipid = CreateCarDealership(X, Y, Z, radius, price, message);
if(dealershipid == -1)
{
SendClientMessageEx(playerid, COLOR_GREY, "ERROR: Car Dealerships limit reached.");
}
else
{
format(string, sizeof(string), " Car Dealership created with ID %d.", dealershipid);
SendClientMessageEx(playerid, COLOR_GRAD1, string);
}
return 1;
}
Code:
CMD:destroydealership(playerid, params[])
{
if (PlayerInfo[playerid][pAdmin] < 1337)
{
SendClientMessageEx(playerid, COLOR_GREY, " You are not allowed to use this command.");
return 1;
}
new string[128], dealershipid;
if(sscanf(params, "d", dealershipid)) return SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: /destroydealership [dealershipid]");
for(new d = 0 ; d < MAX_CARDEALERSHIPS; d++)
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, CarDealershipInfo[d][cdEntranceX], CarDealershipInfo[d][cdEntranceY], CarDealershipInfo[d][cdEntranceZ]))
{
DestroyCarDealership(d);
format(string, sizeof(string), " Car Dealership destroyed with ID %d.", d);
SendClientMessageEx(playerid, COLOR_GRAD1, string);
return 1;
}
}
if(dealershipid > MAX_CARDEALERSHIPS) return 1;
if(dealershipid < 0) return 1;
DestroyCarDealership(dealershipid);
format(string, sizeof(string), " Car Dealership destroyed with ID %d.", dealershipid);
SendClientMessageEx(playerid, COLOR_GRAD1, string);
return 1;
}
CMD:createcdveh(playerid, params[])
{
if (PlayerInfo[playerid][pAdmin] < 1337)
{
SendClientMessageEx(playerid, COLOR_GREY, " You are not allowed to use this command.");
return 1;
}
new string[128], price, dealershipid, modelid;
if(sscanf(params, "ddd", price, dealershipid, modelid)) return SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: /createcdveh [price] [dealership] [modelid]");
new Float:X,Float:Y,Float:Z,Float:A;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid, A);
new cdvehicleid = CreateCarDealershipVehicle(dealershipid, modelid, X, Y, Z, A, price);
if(cdvehicleid == -1)
{
SendClientMessageEx(playerid, COLOR_GREY, "ERROR: cdVehicles limit reached.");
}
else
{
format(string, sizeof(string), " Car Dealership Vehicle created with ID %d.", cdvehicleid);
SendClientMessageEx(playerid, COLOR_GRAD1, string);
}
return 1;
}
Code:
CMD:destroycdveh(playerid, params[])
{
if (PlayerInfo[playerid][pAdmin] < 1337)
{
SendClientMessageEx(playerid, COLOR_GREY, " You are not allowed to use this command.");
return 1;
}
new string[128], vehid;
if(sscanf(params, "d", vehid)) return SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: /destroycdveh [vehicleid]");
DestroyCarDealershipVehicle(GetCarDealershipId(vehid), GetCarDealershipVehicleId(vehid));
SavecDealership(GetCarDealershipId(vehid));
format(string, sizeof(string), " Car Dealership Vehicle destroyed with ID %d.", vehid);
SendClientMessageEx(playerid, COLOR_GRAD1, string);
return 1;
}
Re: Dealerships cause lag to the server. -
James Bob - 27.03.2013
Anyone able to help?
Re: Dealerships cause lag to the server. -
Jefff - 27.03.2013
its djson and sqlite so it must lagg
Re: Dealerships cause lag to the server. -
TahaAsif12 - 05.12.2013
This also lags on my server

CAn someone give a solution?
Re: Dealerships cause lag to the server. -
batonsa - 05.12.2013
Converting the saving/loading part of your script to MySQL or y_ini would improve the speed drastically, i'm just expressing my subjective opinion, though.
Re: Dealerships cause lag to the server. -
Yves - 05.12.2013
djson creates files on the scriptfiles witch might make it laggy hard i would just convert it to something else.
YSI all the way.
Re: Dealerships cause lag to the server. -
TahaAsif12 - 06.12.2013
hmm.. Can u plz convert it for us? i will rep u.
this is my request plzz
Please post the converted code from this to y_ini
Re: Dealerships cause lag to the server. -
cessil - 06.12.2013
this section is for help not handouts