Portal SAMP
[Ajuda] Objeto demorado para carregar - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Objeto demorado para carregar (/showthread.php?tid=1922)



Objeto demorado para carregar - Cirilo_Samp - 12/12/2021

Fiz um teste quando dor /teste ele cria um objeto mais ta demorando muito ou vezes new cria

Comando
Código PHP:
CMD:teste(playerid)
{
 new randloot minrand(060);
 new Float:XFloat:YFloat:Z;
 GetPlayerPos(playeridXYZ);
 CreateDrop(randlootXYZ);
 return 
1;



Stock cria o objeto 
Código PHP:
stock CreateDrop(itemidFloat:XFloat:YFloat:Z)
{
    if(itemid != -1)
    {
        for(new iMAX_DROPSi++) 
        {
                new str[100];

                DropInfo[i][dPosX] = XDropInfo[i][dPosY] = YDropInfo[i][dPosZ] = Z-0.92;

                DropInfo[i][DropItemID] = itemid;

                format(strsizeof(str), "{FFFFFF}[{27E6E6}%s{FFFFFF}]\nAperte [{27E6E6}F{FFFFFF}] {FFFFFF}para pegar."ItemInfo[itemid][Item_Name]);
                DropInfo[i][DropLabel] = CreateDynamic3DTextLabel(str, -1DropInfo[i][dPosX], DropInfo[i][dPosY], DropInfo[i][dPosZ], 1.5);
                DropInfo[i][DropObj] = CreateDynamicObject(ItemInfo[itemid][Item_Obj], DropInfo[i][dPosX], DropInfo[i][dPosY], DropInfo[i][dPosZ], ItemInfo[itemid][Item_RotX], ItemInfo[itemid][Item_RotY], ItemInfo[itemid][Item_RotZ]);
                return 1;
        }
    }
    return 
0;




RE: Objeto demorado para carregar - ipsLuan - 12/12/2021

Dependendo da quantidade que você definiu em MAX_DROPS, vai demorar mesmo.


RE: Objeto demorado para carregar - SrBlue - 12/12/2021

amigo, você ta criando varios objetos ao mesmo tempo, com o MAX_DROPS,
faça uma verificação, crie na enum DropInfo um "cheated"
ai passa para if(DropInfo[i][HasCreated] == 1 ) e passa para outro id...
desse geito que você ta fazendo ta criando VARIOS drops com mesmo id na mesma posição etc..etc..


RE: Objeto demorado para carregar - xbruno1000x - 13/12/2021

Loopings devem ser utilizados com cuidado, eles podem demandar muito processamento do host e causar esse tipo de delay.


RE: Objeto demorado para carregar - ipsLuan - 13/12/2021

Há também um erro gravíssimo que você está cometendo: criar variável em loop. Isso deve ser extremamente evitado.


RE: Objeto demorado para carregar - Kayke - 13/12/2021

Código PHP:
stock CreateDrop(itemidFloat:XFloat:YFloat:Z)
{
    if(
itemid != -1)
    {
        new 
str[100];
        
        for(new 
iMAX_DROPSi++)
        {
            if(
DropInfo[i][dPosX] != 0.0)
                continue;
                
            
DropInfo[i][dPosX] = X;
            
DropInfo[i][dPosY] = Y;
            
DropInfo[i][dPosZ] = Z-0.92;

            
DropInfo[i][DropItemID] = itemid;

            
format(strsizeof(str), "[{27E6E6}%s{FFFFFF}]\nAperte [{27E6E6}F{FFFFFF}] {FFFFFF}para pegar."ItemInfo[itemid][Item_Name]);
            
DropInfo[i][DropLabel] = CreateDynamic3DTextLabel(str0xFFFFFFFFDropInfo[i][dPosX], DropInfo[i][dPosY], DropInfo[i][dPosZ], 1.5);
            
DropInfo[i][DropObj] = CreateDynamicObject(ItemInfo[itemid][Item_Obj], DropInfo[i][dPosX], DropInfo[i][dPosY], DropInfo[i][dPosZ], ItemInfo[itemid][Item_RotX], ItemInfo[itemid][Item_RotY], ItemInfo[itemid][Item_RotZ]);
            return 
1;
        }
    }
    return 
0;