SA-MP Forums Archive
[Ajuda]Uso loop pra checar as empresas mas funciona somente na emp. 0. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda]Uso loop pra checar as empresas mas funciona somente na emp. 0. (/showthread.php?tid=293824)



[Ajuda]Uso loop pra checar as empresas mas funciona somente na emp. 0. - iansinho - 30.10.2011

Bom, eu sempre usei um loop pra checar as empresas no OnGameModeInit, pra verificar se uma empresa tem dono ou nгo e criar um pickup e um 3dtext.
Antes, funcionava para todas as empresas, mas agora, sу funciona na empresa 0.
Vou explicar.
pawn Код:
for(new h = 0; h < sizeof(BizzInfo); ++h)
    {    
        if(BizzInfo[h][bOwned] == 0)
        {
            new string20[550];
            format(string20, sizeof(string20), "[%s]\nEmpresa а venda.\nLucro: %d$.", BizzInfo[h][bMessage], BizzInfo[h][bLucro]);
            BizzLabel[h] = Create3DTextLabel(string20,0x0080FFFF,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]+0.30,20.0,0,1);
            CreateDynamicPickup(1272,1,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ],-1);
        }
        else if(BizzInfo[h][bOwned] == 1)
        {
            new string20[550];            
            format(string20, sizeof(string20), "[%s]\nDono: %s.\nLucro: %d$.", BizzInfo[h][bMessage], BizzInfo[h][bOwner],BizzInfo[h][bLucro]);
            BizzLabel[h] = Create3DTextLabel(string20,0x0080FFFF,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]+0.30,20.0,0,1);
            CreateDynamicPickup(1272,1,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ], -1);
        }        
         
    }
Eu nunca tive problemas nele atй usar o format.
Na pasta "Bizz", em scriptfiles, contйm 10 empresas (nomeadas de 0 a 9) mas o cуdigo acima funciona somente no ID 0.
Eu sei que ele sу lк o id 0 porque eu jб inverti as empresas: renomeava o nъmero das empresas, mas SEMPRE, a que era nomeade de 0, era a ъnica a ser lida...

help


Re: [Ajuda]Uso loop pra checar as empresas mas funciona somente na emp. 0. - TopFuel - 30.10.2011

Vocк poderia me mandar a new BizzInfo e a new BizzLabel assim fica mais fбcil pra eu achar o erro.


Re: [Ajuda]Uso loop pra checar as empresas mas funciona somente na emp. 0. - iansinho - 30.10.2011

PHP код:
new BizzInfo[10][bInfo];
new 
Text3D:BizzLabel[sizeof(BizzInfo)]; 



Re: [Ajuda]Uso loop pra checar as empresas mas funciona somente na emp. 0. - TopFuel - 30.10.2011

Quote:
Originally Posted by iansinho
Посмотреть сообщение
PHP код:
new BizzInfo[10][bInfo];
new 
Text3D:BizzLabel[sizeof(BizzInfo)]; 
Bom tente colocar assim:
pawn Код:
new BizzInfo[10][bInfo];
new Text3D:BizzLabel[10];
ou

pra facilita use assim:

pawn Код:
//topo
#define NumeroDeEmpresas 10

new BizzInfo[NumeroDeEmpresas][bInfo];
new Text3D:BizzLabel[NumeroDeEmpresas];



Re: [Ajuda]Uso loop pra checar as empresas mas funciona somente na emp. 0. - iansinho - 30.10.2011

Acho que isso nгo tem nada haver com o problema...
Mas nгo custa nada tentar.
Jб jб posto o resutado


Re: [Ajuda]Uso loop pra checar as empresas mas funciona somente na emp. 0. - TopFuel - 30.10.2011

Quote:
Originally Posted by iansinho
Посмотреть сообщение
Acho que isso nгo tem nada haver com o problema...
Mas nгo custa nada tentar.
Jб jб posto o resutado
ok caso nгo desbugue avise que vamos tentar outras coisas


Re: [Ajuda]Uso loop pra checar as empresas mas funciona somente na emp. 0. - iansinho - 30.10.2011

Й, como previsto, o erro nгo era esse...
O que eu nгo entendendo й que somente a empresa 0 funciona, o resto nгo.
Se fosse um problema, como vocк citou acima, em nenhuma empresa iria funcionar...
#Tenso


Re: [Ajuda]Uso loop pra checar as empresas mas funciona somente na emp. 0. - WLSF - 30.10.2011

Boa noite,
Tente isso...
pawn Код:
for(new h = 0; h < sizeof(BizzInfo); h++)
{
    new wii[128];
    if(BizzInfo[h][bOwned] == 0)
    {
        AddStaticPickup(1272, 1, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]);
        format(wii, sizeof(wii), "[%s]\nEmpresa a venda\nLucro %d$.",BizzInfo[h][bMessage],BizzInfo[h][bLucro]);
        BizzLabel[h] = Create3DTextLabel(wii,0x0080FFFF,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]+0.5,20.0,0);
    }
    if(BizzInfo[h][bOwned] == 1)
    {
        AddStaticPickup(1272, 1, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]);
        format(wii, sizeof(wii), "[%s]\nDono: %s\nLucro.",BizzInfo[h][bMessage],BizzInfo[h][bOwner],BizzInfo[h][bLucro]);
        BizzLabel[h] = Create3DTextLabel(wii,0x0080FFFF,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]+0.5,20.0,0);
    }
}



Re: [Ajuda]Uso loop pra checar as empresas mas funciona somente na emp. 0. - iansinho - 30.10.2011

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
Boa noite,
Tente isso...
pawn Код:
for(new h = 0; h < sizeof(BizzInfo); h++)
{
    new wii[128];
    if(BizzInfo[h][bOwned] == 0)
    {
        AddStaticPickup(1272, 1, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]);
        format(wii, sizeof(wii), "[%s]\nEmpresa a venda\nLucro %d$.",BizzInfo[h][bMessage],BizzInfo[h][bLucro]);
        BizzLabel[h] = Create3DTextLabel(wii,0x0080FFFF,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]+0.5,20.0,0);
    }
    if(BizzInfo[h][bOwned] == 1)
    {
        AddStaticPickup(1272, 1, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]);
        format(wii, sizeof(wii), "[%s]\nDono: %s\nLucro.",BizzInfo[h][bMessage],BizzInfo[h][bOwner],BizzInfo[h][bLucro]);
        BizzLabel[h] = Create3DTextLabel(wii,0x0080FFFF,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]+0.5,20.0,0);
    }
}
Boa noite...
O problema continua igual.
Ah, esqueci de mencionar, na empresa 0 tudo funciona perfeito (Pickup e 3DText), mas nas outras somente aparece o pickup.


Re: [Ajuda]Uso loop pra checar as empresas mas funciona somente na emp. 0. - TopFuel - 30.10.2011

Quote:
Originally Posted by iansinho
Посмотреть сообщение
Й, como previsto, o erro nгo era esse...
O que eu nгo entendendo й que somente a empresa 0 funciona, o resto nгo.
Se fosse um problema, como vocк citou acima, em nenhuma empresa iria funcionar...
#Tenso
bom eu vou explicar por que eu achei que era isso:

bom eu nгo sei se vocк estava setando a new BizzLabel antes da new BizzInfo, porque pelo que eu sei se vocк setar essa new BizzLabel antes da new BizzInfo ela nao tera de onde pegar o sizeof(BizzInfo) por que a new BizzInfo ainda nгo existe, entгo isso faria ele setar para:

pawn Код:
new Text3D:BizzLabel[0];
porem se vocк falou que nгo desbugou entгo eu estava errado.