[Ajuda] Loop parando a funcao (meio que nao continua depois do loop)
#1

bom to atualizando um cogico meu e estou tendo um problema com uma funcao que fiz, bem eu fiz um meio que assim

pawn Code:
stock OrganizacaoApagar(playerid, orgid)
{
    new string[128];
    new quant_[2];
    faction[orgid][Ativo] = 0;
   
    format(faction[orgid][Nome], 32, "");
    format(faction[orgid][Cargo_1], 32, "");
    format(faction[orgid][Cargo_2], 32, "");
    format(faction[orgid][Cargo_3], 32, "");
    format(faction[orgid][Cargo_4], 32, "");
    format(faction[orgid][Cargo_5], 32, "");
    format(faction[orgid][Cargo_6], 32, "");
    print("comando 1");
    for(new i = 0; i < 100; i++)
    {
        if(player[i][pfaction] == orgid)
        {
            player[i][pfaction] = 0;
            player[i][pcargo] = 0;
            SetPlayerSkin(playerid, 29);
            SendClientMessage(i, -1, "{FF0000}ATENЗГO: {FFFFFF}sua organizacao foi {FF0000}apagada{FFFFFF}, por isso voce demitido!");
            SendClientMessage(i, -1, "{FF0000}ATENЗГO: {FFFFFF}vocк ja pode entrar em uma nova organizaзгo.");
            SendClientMessage(i, -1, "{FF0000}ATENЗГO: {FFFFFF}caso vocк tenha duvidas entre e contato com a {FF0000}adminstaзгo{FFFFFF}.");
            quant_[0]++;
        }
        if(HQ[i][factionid] == orgid)
        {
            HQ[i][ativo] = 0;
            HQ[i][tipo] = 0;
            HQ[i][factionid] = 0;
            HQ[i][x] = 0.0;
            HQ[i][y] = 0.0;
            HQ[i][z] = 0.0;
            HQ[i][intx] = 0.0;
            HQ[i][inty] = 0.0;
            HQ[i][intz] = 0.0;
            HQ[i][Interior] = 0;
            HQ[i][World] = 0;
            DestroyPickup(HQ[i][Pickup][0]);
            DestroyPickup(HQ[i][Pickup][1]);
            Delete3DTextLabel(HQ[i][Label][0]);
            Delete3DTextLabel(HQ[i][Label][1]);
            quant_[1]++;
        }
    }
    format(string, 128, "{FF0000}Adminitraзгo: {FFFFFF}vocк apagou a organizaзгo {FF0000}%d{FFFFFF}, removeu {FF0000}%d{FFFFFF} membros e {FF0000}%d{FFFFFF} HQ.", orgid, quant_[0], quant_[1]);
    SendClientMessage(playerid, -1, string);
    format(string, 128, local_f, orgid);
    DOF2_RemoveFile(string);
    return 1;
}
ja tive muitos problemas com isso, espero que possam me ajduar!! vlw

antes a msg ficava fora, ai coloquei dentro e tbm nao deu
Reply
#2

fez o debug? espalha printґs e veja atй qual numero vai...
Reply
#3

pse eu fiz eu ate esqueci de tirar um ali como pode ver, ele nao chega ate o final, nao sei pq, ae coloquei a msg dentro do loop e fiz a checagem para ver se era a ultima volta tbm nao deu
Reply
#4

Por favor alguem ajuda? ainda nao resolvi, pois minha logica continua a mesma..

-- esperei mais de 1h para responder novamente..
Reply
#5

Ele para em qual linha?
Reply
#6

na chave que fecha o loop
Reply
#7

sem o debug fica dificil alguem coompreender o erro rapaz...

Coloque prints expalhadas pela funзгo e irб encontrar ..
Reply
#8

eu ja fiz isso como eu disse em cima...
ele nao passa da chave que fecha o loop, assim nгo manda a mensagem
Reply
#9

Quote:
Originally Posted by Axll
View Post
eu ja fiz isso como eu disse em cima...
ele nao passa da chave que fecha o loop, assim nгo manda a mensagem
a string formatada excede o tamanho da string criada

mesmo que o chat global mostre apenas 128 caracteres, codigos de cores e outros tambйm sгo guardados na string

tente!

pawn Code:
stock OrganizacaoApagar(playerid, orgid)
{
    new
        string[ 170 ],
        quant_[2]
    ;
    faction[orgid][Ativo] = 0;
   
    format(faction[orgid][Nome], 32, "");
    format(faction[orgid][Cargo_1], 32, "");
    format(faction[orgid][Cargo_2], 32, "");
    format(faction[orgid][Cargo_3], 32, "");
    format(faction[orgid][Cargo_4], 32, "");
    format(faction[orgid][Cargo_5], 32, "");
    format(faction[orgid][Cargo_6], 32, "");
   
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
        if(player[i][pfaction] == orgid)
        {
            player[i][pfaction] = 0;
            player[i][pcargo] = 0;
            SetPlayerSkin(playerid, 29);
            SendClientMessage(i, -1, "{FF0000}ATENЗГO: {FFFFFF}sua organizacao foi {FF0000}apagada{FFFFFF}, por isso voce demitido!");
            SendClientMessage(i, -1, "{FF0000}ATENЗГO: {FFFFFF}vocк ja pode entrar em uma nova organizaзгo.");
            SendClientMessage(i, -1, "{FF0000}ATENЗГO: {FFFFFF}caso vocк tenha duvidas entre e contato com a {FF0000}adminstaзгo{FFFFFF}.");
            quant_[0]++;
        }
        if(HQ[i][factionid] == orgid)
        {
            HQ[i][ativo] = 0;
            HQ[i][tipo] = 0;
            HQ[i][factionid] = 0;
            HQ[i][x] = 0.0;
            HQ[i][y] = 0.0;
            HQ[i][z] = 0.0;
            HQ[i][intx] = 0.0;
            HQ[i][inty] = 0.0;
            HQ[i][intz] = 0.0;
            HQ[i][Interior] = 0;
            HQ[i][World] = 0;
            DestroyPickup(HQ[i][Pickup][0]);
            DestroyPickup(HQ[i][Pickup][1]);
            Delete3DTextLabel(HQ[i][Label][0]);
            Delete3DTextLabel(HQ[i][Label][1]);
            quant_[1]++;
        }
    }
    format(string, sizeof string, "Adminitraзгo: {FFFFFF}vocк apagou a organizaзгo {FF0000}%d{FFFFFF}, removeu {FF0000}%d{FFFFFF} membros e {FF0000}%d{FFFFFF} HQ.", orgid, quant_[0], quant_[1]);
    SendClientMessage(playerid, 0xFF0000AA, string);
    printf(string);
   
    format(string, 128, local_f, orgid);
    DOF2_RemoveFile(string);
    return 1;
}
se nгo mostrar na tela
Reply
#10

nao mostra nada

e o loop usa o maximo de orgs e HQs nao de players botei 100 pq esqueci a define e nao queria subir no topo para ver lkkkk
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)