Portal SAMP
[Ajuda] loop não obtem as posicoes corretas - 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] loop não obtem as posicoes corretas (/showthread.php?tid=3816)



loop não obtem as posicoes corretas - AllanSG - 21/07/2023

Salve,

fiz o comando pro player marcar gps na empresa dele (dono ou funcionario), porém o loop está enviando ao SePlayerCheckpoint as coordenadas erradas e está marcando 0, 0, 0 (marca na fazenda com essas coordenadas do mapa), tentei arrumar algumas vezes porém sem sucesso

código abaixo

Código PHP:
CMD:minhaempresa (playeridparams[])
{
     if(Player[playerid][tEmpresa] == false && Player[playerid][Funcionario] == 0) return SendClientMessage(playeridvermelho"| ERRO | Você não trabalha em uma empresa");

     new Pasta[100];
     for(new 0MAX_EMPRESASi++)
     {
    if(!strcmp(Empresa[i][nDono], GetPlayerNameEx(playerid), true) || !strcmp(Empresa[i][eFuncionario1], GetPlayerNameEx(playerid), true) || !strcmp(Empresa[i][eFuncionario2], GetPlayerNameEx(playerid), true))
    {
        format(Pastasizeof(Pasta), Empresasi);
        SetPlayerCheckpoint(playeridEmpresa[i][PosX], Empresa[i][PosY], Empresa[i][PosZ], 2.5);
        break;
    }
}

SendClientMessage(playeridverde"| INFO | GPS marcado na sua empresa!");

return 
1;




RE: loop não obtem as posicoes corretas - White_Blue - 21/07/2023

Primeira coisa, a array "Empresa" não aparece no seu código, recomendo dar um printf nessa array para ver se está salvando corretamente.


RE: loop não obtem as posicoes corretas - AllanSG - 22/07/2023

(21/07/2023 17:52)White_Blue Escreveu: Primeira coisa, a array "Empresa" não aparece no seu código, recomendo dar um printf nessa array para ver se está salvando corretamente.

salva certinho, as posicoes X Y e Z do Empresa[i][PosX] , Empresa[i][PosY] e Empresa[i][PosZ] são as mesmas que criam as empresas quando o servidor liga ou crio in-game.. não há erros quanto a isso

o problema realmente está nesse loop pois outros comandos como /irempresa (sem loop) funcionam perfeitamente


RE: loop não obtem as posicoes corretas - White_Blue - 22/07/2023

Refiz o seu código, teste dessa forma:


Código PHP:
CMD:minhaempresa(playerid, const params[]) {
      new 
pasta[MAX_EMPRESAS];
      if(
Player[playerid][tEmpresa] == false && Player[playerid][Funcionario] == 0) return SendClientMessage(playeridvermelho"| ERRO | Você não trabalha em uma empresa");
      for(new 
0MAX_EMPRESASi++) {
        
format(pastasizeof(pasta), Empresasi);
        if(!
DOF2_FileExists(pasta)) continue;
        else if(!
strcmp(Empresa[i][nDono], GetPlayerNameEx(playerid), true) || !strcmp(Empresa[i][eFuncionario1], GetPlayerNameEx(playerid), true) || !strcmp(Empresa[i][eFuncionario2], GetPlayerNameEx(playerid), true)) {
        
SetPlayerCheckpoint(playeridEmpresa[i][PosX], Empresa[i][PosY], Empresa[i][PosZ]);
       }
      }
      
      
SendClientMessage(playeridverde"| INFO | Localização da empresa marcada no mapa!");
      return 
1;