02/01/2024 14:43
(Esta mensagem foi modificada pela última vez a: 02/01/2024 19:15 por xbruno1000x.)
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
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
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