SA-MP Forums Archive
djson - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: djson (/showthread.php?tid=436105)



djson - ryanhawk31 - 10.05.2013

Hi, my server is laggy when i buy a dealership i have djson is it a way to fix it? maybe updating it or something?


Respuesta: djson - LoLeRo - 10.05.2013

If you want to reduce the lag in our server, you have to reduce the timers in your script, and also some long loops that are unnessesary.

Also reducing your max players slots in your server.


Re: djson - CJay9209 - 10.05.2013

I think this is actually a known issue with using djson. If u search the forum JSON and lag u should find a few topics describing the issue.


Re: djson - Kwarde - 10.05.2013

Can you show me/us the script code that makes your server lagg?


Re: djson - ryanhawk31 - 10.05.2013

here is one

pawn Код:
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;
}
but the one i need to fix is when they buy the car

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;
        }
        GetVehicleParamsEx(newcar,engine,lights,alarm,doors,bonnet,boot,objective);
        if((engine == VEHICLE_PARAMS_UNSET || engine == VEHICLE_PARAMS_OFF) && GetVehicleModel(newcar) != 509 && GetVehicleModel(newcar) != 481 && GetVehicleModel(newcar) != 510) {
            SendClientMessageEx(playerid, COLOR_WHITE, "This vehicle's engine is not running - if you wish to start it, type /car engine.");
        }
        else
        {
            if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 481 && GetVehicleModel(GetPlayerVehicleID(playerid)) != 509 && GetVehicleModel(GetPlayerVehicleID(playerid)) != 510)
            {
                SetPVarInt(playerid, "fuelonoff", 1);
                FuelBar[playerid] = CreateProgressBar(548.00, 26.00, 57.50, 3.20, 866792447, 100.0);
                textdrawscount++;
                SetProgressBarValue(FuelBar[playerid], VehicleFuel[GetPlayerVehicleID(playerid)]);
                ShowProgressBarForPlayer(playerid, FuelBar[playerid]);
            }
        }
and the dialog
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;
        }
    }