Portal SAMP
[Ajuda] estou com problema no loop - 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] estou com problema no loop (/showthread.php?tid=4370)



estou com problema no loop - Sr_Nublein - 02/01/2024

boa tarde galera e feliz ano novo adiantado mas eu estou desenvolvendo um sistema de casa certo ae eu fui criar um comando que dava pra trocar de mensagem na casa que voce comprou até ae tudo ok mas eu comprei a casa id 0 e id 1 e coloquei mensagem na casa id 0 foi tudo bl mas dps que comprei a casa id 1 ao invez de mudar a mensagem da minha casa id 1 mudou foi na casa id 0 ae foi só dps que descobri que foi o loop q tava  for(new c = 0; c < MAX_CASAS; c++) assim ae ele tava bugando por que o loop tava c = 0; ou seja toda vez que eu dava o comando pra mudar a mensagem ele só ia mudar a mensagem da casa id 0 e se fosse tentar mudar a mensagem de outra casa de outro id ia alterar só da casa do id 0 entenderam? se desse pra colocar c > 0; sla ae corrigia mas nao to conseguindo corrigir este problema vo passar o codigo para mudar a mensagem da casa completo 


Código:
CMD:mudarmensagem(playerid, params[])
{
new string[125];
for(new c = 0; c < MAX_CASAS; c++)
{
    format(string, 125, "Casas/%d.ini", c);
    if(dini_Exists(string))
    {
        new Float:Pos[3];
        Pos[0] = dini_Float(string, "CasaX");
        Pos[1] = dini_Float(string, "CasaY");
        Pos[2] = dini_Float(string, "CasaZ");
        if(IsPlayerInRangeOfPoint(playerid, 2.0, Pos[0], Pos[1], Pos[2]))
        {

      new casaid = Admin[playerid][pChave], mensagem[50], string2[125];
            if(Admin[playerid][pChave] == -1) return SendClientMessage(playerid, 0xFF0000FF, "Voce nao tem uma casa");
            if(Admin[playerid][pChave] != c) return SendClientMessage(playerid, 0xFF0000FF, "Esta casa nao é sua");
if(sscanf(params, "s[100]",mensagem)) return SendClientMessage(playerid, 0xFF0000FF, "Use /mudarmensagem [Mensagem]");
Update3DTextLabelText(pCasa[casaid][TextLabel], 0xFFFFFFFF , mensagem);
Delete3DTextLabel(pCasa[casaid][TextLabel]);
DestroyPickup(pCasa[casaid][Pickup]);
DestroyDynamicMapIcon(pCasa[casaid][Mapicon]);
dini_Set(string2, "Mensagem", mensagem);
CarregarCasa(casaid);
SalvarConta(playerid);





}
    }
}
return 1;
}


o problema nao é o comando e sim só o loop que esta causando o problema mas se eu tirar o loop vai dar outro problema que é vo poder mudar a mensagem da minha casa aonde que quiser e ta com o loop pra mudar a mensagem da casa só quando eu tiver no icone da minha casa se eu n tiver nao muda entenderam? por isso que nao posso tirar o loop já tentei de tudo e nao consego resolver este bendito problema se alguem conseguir me ajudar vou agradece-lo


RE: estou com problema no loop - Calasans - 02/01/2024

Poderia compartilhar a ENUM do sistema de casa?


RE: estou com problema no loop - Sr_Nublein - 02/01/2024

Precisa mas nao ja corrigi o problema no lugar do 0 tinha q colocar a minha variavel da casa tipo quando eu compro a casa ae seta a minha variavel para o id da casa ae coloquei a variavel no numero 0 e funcionou