My command /rac made too big lag on server
#1

When I type /rac on my server it's freeze server and unfreeze after 2-3 minutes :/. I have around 120 vehicles

PHP код:
YCMD:rac(playerid, params[], help)
{
    if(
PlayerInfo[playerid][pAdmin] >= 1336)
    {
        new 
string[135];
        if(
LoginPanel[playerid] == 0) return SCM(playerid,-1, "{970004}GRESKA:{FFFFFF}Nemozete da ja koristete ovaa komanda.");
        new 
PID = GetPlayerPoolSize();
        for(new 
i; i <= PID; i++)
        {
            if(
IsPlayerInAnyVehicle(i))
            {
                new 
vid = GetPlayerVehicleID(i);
                
ZARAC[vid] = 1;
            }
        }
        for(new 
vehicleid; vehicleid < MAX_VEHICLES; vehicleid++)
        {
            if(
ZARAC[vehicleid] == 0){ SetVehicleToRespawn(vehicleid);}else ZARAC[vehicleid] = 0;
        }
        
format(string, sizeof(string), "{13A9E1}|ADMINI| %s gi respawn site vozila na serverot.", ZemiIme(playerid));
        
AdminGMChat(string);
    }
    return 
1;
} 
Sorry for bad english :!
Reply
#2

It can be improved a lot by using foreach.

"Player" iterator is still much faster than using GetPlayerPoolSize.

About the vehicles, I create/destroy vehicles only in the gamemode so I've created an iterator called "Vehicle" and everytime a vehicle is created, I add it to the iterator and remove it when it's get destroyed. By that, if the server has 5 created vehicles, it will just loop 5 times ONLY instead of 2000.
Reply
#3

PHP код:
new PVID = GetVehiclePoolSize();
    for(new 
vehicleid; vehicleid <= PVID; vehicleid++)
    {
         if(
ZARAC[vehicleid] == 0){ SetVehicleToRespawn(vehicleid), print("aa");}else ZARAC[vehicleid] = 0;
    } 
Reply
#4

WOW Wait a scnd.
I tried like this and not any lag on server and very fast loop!! I see with print
I thnik SetVehicleToRespawn mades the lag..

PHP код:
YCMD:test(playerid, params[], help)
{
        new 
PVID = GetVehiclePoolSize();
        for(new 
vehicleid; vehicleid <= PVID; vehicleid++)
        {
            print(
"aa");
        }
} 
EDIT: Yap. SetVehicleToRespawn make lag :/
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)