Dealerships cause lag to the server.
#1

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;
}
Reply
#2

Anyone able to help?
Reply
#3

its djson and sqlite so it must lagg
Reply
#4

This also lags on my server
CAn someone give a solution?
Reply
#5

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.
Reply
#6

djson creates files on the scriptfiles witch might make it laggy hard i would just convert it to something else.

YSI all the way.
Reply
#7

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
Reply
#8

this section is for help not handouts
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)