Dealership lag
#1

Hi!
i have dealership system that causing a lot of lags.
when player buying a vehicle its making a lag in the server.

someone has any idea how to fix it?
Reply
#2

Are you using a dealership.json?
Reply
#3

Quote:
Originally Posted by James Bob
Посмотреть сообщение
Are you using a dealership.json?
Yes, I Think i fixed the problem.
if i do i will write here a comment and tell you.
Reply
#4

Quote:
Originally Posted by James Bob
Посмотреть сообщение
Are you using a dealership.json?
Didn't fixed..
Please help! [Using cardealerships.json]
Reply
#5

HELP!
Reply
#6

Post your script please?
Reply
#7

Quote:
Originally Posted by alinategh
Посмотреть сообщение
Post your script please?
Ok, This is what you need:

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;
}
On Player Enter Vehicle
pawn Код:
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;
        }
On Dialog Response
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;
        }
    }
Reply
#8

Help?
Reply
#9

What do you mean by lag? FPS lag where the player has a low frames per second or ping lag where the ping goes high and the player can't speak and nothing is in sync?
Reply
#10

Quote:
Originally Posted by DanishHaq
Посмотреть сообщение
What do you mean by lag? FPS lag where the player has a low frames per second or ping lag where the ping goes high and the player can't speak and nothing is in sync?
I Mean like i can't talk or nothing... Like server stop responding for few secends...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)