[AJUDA] MapIcon causando lag
#1

Eu fiz um sistema de mapicon para o meu sistema de casa, baseado em um do sistema de propiedades da SANDRA, e ele vem causando um lag intenso no meu server, o uso do processador com em mйdia 30 pessoa estб 100% com o sistema, sem o sistema vбria de 20 a 30%

Aqui estб o code

pawn Код:
SetTimer("MapIconStreamer", 1500, 1);

forward MapIconStreamer();
public MapIconStreamer()
{
    for(new i; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            new Float:SmallestDistance = 99999.9;
            new CP, Float:OldDistance;
            for(new c; c < 95; c++) // tem 94 casas entгo fiz um loop de 95 para nгo dar lag, mas continuou
            {
                OldDistance = GetDistanceToProperty(i, c);
                if(OldDistance < SmallestDistance)
                {
                    SmallestDistance = OldDistance;
                    CP = c;
                }
            }
            RemovePlayerMapIcon(i, 95);
            new casas[128];
            format(casas, sizeof(casas), CASAS, CP);
            if(dini_Int(casas, "Dono") == 1)
            {
                SetPlayerMapIcon(i, 95, dini_Float(casas, "X"), dini_Float(casas, "Y"), dini_Float(casas, "Z"), 32, 0);
            }
            else
            {
                SetPlayerMapIcon(i, 95, dini_Float(casas, "X"), dini_Float(casas, "Y"), dini_Float(casas, "Z"), 31, 0);
            }
        }
    }
}

forward Float:GetDistanceToProperty(playerid, Property);
public Float:GetDistanceToProperty(playerid, Property)
{
    new casas[128];
    format(casas, sizeof(casas), CASAS, Property);
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    GetPlayerPos(playerid,x1,y1,z1);
    x2 = dini_Float(casas, "X");
    y2 = dini_Float(casas, "Y");
    z2 = dini_Float(casas, "Z");
    return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
Alguйm poderia me ajuda?
Reply
#2

O problema й o dini que acaba com o desempenho, aconselho a salvar as posiзхes em vбriaveis e fazer a checagem diretamente.
Reply
#3

Obrrigado [S]trong, eu fiz oque vocк falou e deu certinho
Reply
#4

galera eu estava a procura de um sistema tipo o cara ta andando de carro ai fica os mapicon no mapa quando tem casa a venda ai fica verde voce andando com o carro o mapicon some e aparece outro no local de casa a venda fica verde e no local de casa vendida fica vermelho voce andando sem para ele fica trocando mostrando os local alguem sabe como eu poderia criar este sistema ou poder postar um tutorial desse tipo aqui ??
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)