[Ajuda] Funзгo causando lag
#1

Queria uma ajuda de vocкs, o sistema de habilitaзгo estб funcionando normalmente, mais a parte de checar se o player tem habilitaзгo estб dando um lag, exemplo: eu entro no veiculo ai demora uns 4 a 8 segundos e aparece a mensagem falando que nгo tenho habilitaзгo, nesse tempo as texdraws travam, a do relogio, velocimetro, tudo vou postar o codigo para ver se tem algo errado

pawn Код:
new CarrosH[0][1] =
{
        400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
        411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
        431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
        442, 443, 444, 445, 447, 448, 449, 450, 451, 455, 456,
        457, 456, 457, 458, 459, 470, 471, 474, 475, 477, 478,
        479, 480, 482, 483, 485, 486, 489, 490, 491, 492, 494,
        495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
        506, 507, 508, 514, 515, 516, 517, 518, 521, 522, 523,
        524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
        535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
        550, 551, 552, 554, 555, 556, 557, 558, 559, 560, 561,
        562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
        573, 574, 575, 576, 578, 579, 580, 581, 582, 583, 584,
        585, 586, 587, 588, 589, 590, 591, 594, 596, 597, 598,
        599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
        610
};

new Airplanes[0][1] =
{
    460, 487, 476, 511, 512, 513, 519, 520, 553, 577, 592,
    593, 460, 476
};

new Boats[0][1] =
{
    430, 446, 452, 453, 454, 472, 473, 474, 484, 493,
    595, 430, 446, 452, 453, 454
};
pawn Код:
if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new i; i < 200; i++)
        {
                new vehicleid = GetPlayerVehicleID(playerid);
                if(GetVehicleModel(vehicleid) == CarrosH[i][0])
                {
                        if (PlayerInfo[playerid][Terrestre] == 0)
                        {
                                SendClientMessage(playerid, Vermelho, "( Info ) Vocк estб conduzindo um veнculo sem habilitaзгo, vocк pode ser multado! Cuidado com os Policiais!");
                        }
                }
                if(GetVehicleModel(vehicleid) == Airplanes[i][0])
                {
                        if (PlayerInfo[playerid][Aerea] == 0)
                        {
                                SendClientMessage(playerid, Vermelho, "( Info ) Vocк estб conduzindo um veнculo sem habilitaзгo, vocк pode ser multado! Cuidado com os Policiais!");
                        }
                }
                if(GetVehicleModel(vehicleid) == Boats[i][0])
                {
                        if (PlayerInfo[playerid][Nautica] == 0)
                        {
                                SendClientMessage(playerid, Vermelho, "( Info ) Vocк estб conduzindo um veнculo sem habilitaзгo, vocк pode ser multado! Cuidado com os Policiais!");
                        }
                }
        }
    }
Reply
#2

Qual seria a intenзгo desse loop amigo ?

Pois pelo que vi aqui, se vocк estiver em um veнculo que nгo seja um carro, a coisa vai ficar feia pro seu loop...
E outra, essas variбveis poderiam ter sido criadas de outra forma, nгo necessita de uma 2є dimensгo para fazer isso que vocк quer fazer.

@EDIT, entendi o cуdigo, vou dar uma analisada aqui e te envio respostas.

Code:
pawn Код:
new CarrosH[166] =
{
        400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
        411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
        431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
        442, 443, 444, 445, 447, 448, 449, 450, 451, 455, 456,
        457, 456, 457, 458, 459, 470, 471, 474, 475, 477, 478,
        479, 480, 482, 483, 485, 486, 489, 490, 491, 492, 494,
        495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
        506, 507, 508, 514, 515, 516, 517, 518, 521, 522, 523,
        524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
        535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
        550, 551, 552, 554, 555, 556, 557, 558, 559, 560, 561,
        562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
        573, 574, 575, 576, 578, 579, 580, 581, 582, 583, 584,
        585, 586, 587, 588, 589, 590, 591, 594, 596, 597, 598,
        599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
        610
};

new Airplanes[14] =
{
    460, 487, 476, 511, 512, 513, 519, 520, 553, 577, 592,
    593, 460, 476
};

new Boats[15] =
{
    430, 446, 452, 453, 454, 472, 473, 474, 484, 493,
    595, 430, 446, 452, 453, 454
};

if(newstate == PLAYER_STATE_DRIVER)
{
    new vehicleid = GetPlayerVehicleID(playerid);
    for (new i = 0; i < sizeof(CarrosH); ++i)
    {
        if(GetVehicleModel(vehicleid) == CarrosH[i])
        {
            if (PlayerInfo[playerid][Terrestre] == 0)
            {
                SendClientMessage(playerid, Vermelho, "( Info ) Vocк estб conduzindo um veнculo sem habilitaзгo, vocк pode ser multado! Cuidado com os Policiais!");
            }
        }
    }
    for (new i = 0; i < sizeof(Aisplanes); ++i)
    {
        if(GetVehicleModel(vehicleid) == Airplanes[i])
        {
            if (PlayerInfo[playerid][Aerea] == 0)
            {
                SendClientMessage(playerid, Vermelho, "( Info ) Vocк estб conduzindo um veнculo sem habilitaзгo, vocк pode ser multado! Cuidado com os Policiais!");
            }
        }
    }
    for (new i = 0; i < sizeof(Boats); ++i)
    {
        if(GetVehicleModel(vehicleid) == Boats[i])
        {
            if (PlayerInfo[playerid][Nautica] == 0)
            {
                SendClientMessage(playerid, Vermelho, "( Info ) Vocк estб conduzindo um veнculo sem habilitaзгo, vocк pode ser multado! Cuidado com os Policiais!");
            }
        }
    }
}
Tente algo assim, me avise sobre os resultados.
Reply
#3

vou olhar aqui e posto o resultado

@EDIT ainda tenho o lag, porem agora menor de uns 2 a 4 segundos pra mim que fiquei de host, para um amigo foi de atй 13 seg, Obrigado pela ajuda

@EDIT2 coloquei o sistema no grandlarc funcionou perfeitamente, entгo ja sei que o lag nгo й nas habs, provбvel que seja no velocimetro que tambйm coloquei um loop, vou dar uma olhada e ver se resolvo, Obrigado
Reply
#4

@Kikito, foi apenas um exemplo, mas jб que destes a ideia...

pawn Код:
new CarrosH[166] =
{
        400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
        411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
        431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
        442, 443, 444, 445, 447, 448, 449, 450, 451, 455, 456,
        457, 456, 457, 458, 459, 470, 471, 474, 475, 477, 478,
        479, 480, 482, 483, 485, 486, 489, 490, 491, 492, 494,
        495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
        506, 507, 508, 514, 515, 516, 517, 518, 521, 522, 523,
        524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
        535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
        550, 551, 552, 554, 555, 556, 557, 558, 559, 560, 561,
        562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
        573, 574, 575, 576, 578, 579, 580, 581, 582, 583, 584,
        585, 586, 587, 588, 589, 590, 591, 594, 596, 597, 598,
        599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
        610
};

new Airplanes[14] =
{
    460, 487, 476, 511, 512, 513, 519, 520, 553, 577, 592,
    593, 460, 476
};

new Boats[15] =
{
    430, 446, 452, 453, 454, 472, 473, 474, 484, 493,
    595, 430, 446, 452, 453, 454
};

if(newstate == PLAYER_STATE_DRIVER)
{
    new veh = GetVehicleModel(GetPlayerVehicleID(playerid));
    for (new i = 0; i < sizeof(CarrosH); ++i)
    {
        if (veh == CarrosH[i])
        {
            if (!PlayerInfo[playerid][Terrestre])
            {
                SendClientMessage(playerid, Vermelho, "( Info ) Vocк estб conduzindo um veнculo sem habilitaзгo, vocк pode ser multado! Cuidado com os Policiais!");
                break;
            }
        }
        else if (veh == Aisplanes[i])
        {
            if (!PlayerInfo[playerid][Aerea])
            {
                SendClientMessage(playerid, Vermelho, "( Info ) Vocк estб conduzindo um veнculo sem habilitaзгo, vocк pode ser multado! Cuidado com os Policiais!");
                break;
            }
        }
        else if (veh == Boats[i])
        {
            if (!PlayerInfo[playerid][Nautica])
            {
                SendClientMessage(playerid, Vermelho, "( Info ) Vocк estб conduzindo um veнculo sem habilitaзгo, vocк pode ser multado! Cuidado com os Policiais!");
                break;
            }
        }
    }
    return 1;
}
Reply
#5

o problema com o lag foi resolvido, era um loop no textdraw do velocimetro.
Obrigado pela ajuda
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)