SA-MP Forums Archive
[Ajuda] Por que estб dando este erro? - 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] Por que estб dando este erro? (/showthread.php?tid=642766)



[Ajuda] Por que estб dando este erro? - WiliHacking - 06.10.2017

PHP код:
if(DOF2_FileExists(File) && (pPosX 0.0) && (pPosY 0.0) && (pPosZ 0.0) && SpawnarInPos[playerid] == 1
Код:
array must be indexed (variable "pPosX")



Re: [Ajuda] Por que estб dando este erro? - NathanT - 07.10.2017

Provavelmente tal variбvel seja um array e vocк estб tentando comparar seu valor sem colocar um нndice.
Tenta assim:
PHP код:
if(DOF2_FileExists(File) && SpawnarInPos[playerid] == && (pPosX[playerid] > 0.0 && pPosY[playerid] > 0.0 && pPosZ[playerid] > 0.0)) 



Re: [Ajuda] Por que estб dando este erro? - WiliHacking - 07.10.2017

Mas agora nгo ta setando o player na posiзгo salva dele.

PHP код:
stock CarregarPosicao(playerid)
{
    new 
pName[MAX_PLAYER_NAME], File[56];
       
GetPlayerName(playeridpNamesizeof(pName));
    
format(Filesizeof(File), "Posicoes/%s.txt"pName);
    if(
DOF2_FileExists(File) && SpawnarInPos[playerid] == && (pPosX[playerid] > && pPosY[playerid] > && pPosZ[playerid] > 0))
    {
        
pPosX[playerid] = DOF2_GetFloat(File"PosX");
        
pPosY[playerid] = DOF2_GetFloat(File"PosY");
        
pPosZ[playerid] = DOF2_GetFloat(File"PosZ");
        
pPosA[playerid] = DOF2_GetFloat(File"PosA");
        
pInterior[playerid] = DOF2_GetInt(File"Interior");
           
SetPlayerPos(playeridpPosX[playerid],  pPosY[playerid], pPosZ[playerid]);
        
SetPlayerInterior(playeridpInterior[playerid]);
        
SetPlayerFacingAngle(playeridpPosA[playerid]);
        
SetCameraBehindPlayer(playerid);
           
SendClientMessage(playerid, -1"Vocк foi teleportado para o local onde estava antes de sair do jogo pela ъltima vez.");
         
SpawnarInPos[playerid] = 0;
    }
    return 
1;




Re: [Ajuda] Por que estб dando este erro? - WiliHacking - 07.10.2017

Me podem, por favor.


Re: [Ajuda] Por que estб dando este erro? - NathanT - 07.10.2017

Provavelmente vocк nгo estб salvando a posiзгo do jogador. Tente usar esta funзгo, qualquer erro me avise, pois nгo uso DOF2 mais.
PHP код:
SalvarPosicao(playerid)
{
    new 
file[50], nome[25];
    
GetPlayerName(playeridnomesizeof(nome));
    
    
format(filesizeof(file), "Posicoes/%s.txt"nome);
    
    if(!
DOF2_FileExists(file))
        
DOF2_CreateFile(file);

    new 
Float:XFloat:YFloat:Z;
    
GetPlayerPos(playeridXYZ);
    
    
DOF2_SetFloat(file"PosX"X);
    
DOF2_SetFloat(file"PosY"Y);
    
DOF2_SetFloat(file"PosZ"Z);
    
DOF2_SaveFile();
    return 
1;

Chame esta funзгo quando quiser salvar a posiзгo de algum jogador.


Re: [Ajuda] Por que estб dando este erro? - WiliHacking - 07.10.2017

Nгo usei o seu cуdigo.. mas, estб salvando sim! ele salva.. mas nгo vai atй a posiзгo salva, ai eu retirei isso aqui
PHP код:
(pPosX[playerid] > && pPosY[playerid] > && pPosZ[playerid] > 0)) 
ai ele seto o jogador para a posiзгo salva, mas quando ta isso ele nгo seta, eu quero isso aqui por que tipo... vai que o arquivo existe, mas estб tudo 0 o X,Y,Z ai nгo quero que ele vб para a posiзгo


Re: [Ajuda] Por que estб dando este erro? - Whoo - 07.10.2017

Isso acontece porque realmente elas nгo sгo maior que 0.0, vocк ainda nгo armazenou os dados nas variaveis, esta declarando elas como flutuantes correto ?

try:
PHP код:
stock CarregarPosicao(playerid)
{
    new 
pName[MAX_PLAYER_NAME], File[56];
    
GetPlayerName(playeridpNamesizeof(pName));
    
format(Filesizeof(File), "Posicoes/%s.txt"pName);
    if(
DOF2_FileExists(File) && SpawnarInPos[playerid])
    {
        
        
// Pegando os valores e armazenando nas variaveis.
        
pPosX[playerid] = DOF2_GetFloat(File"PosX");
        
pPosY[playerid] = DOF2_GetFloat(File"PosY");
        
pPosZ[playerid] = DOF2_GetFloat(File"PosZ");
        
pPosA[playerid] = DOF2_GetFloat(File"PosA");
        
// Agora vamos verificar se й maior que 0.0
        
if(pPosX[playerid] > 0.0 && pPosY[playerid] > 0.0 && pPosZ[playerid] > 0.0)
        {
            
            
pInterior[playerid] = DOF2_GetInt(File"Interior");
            
SetPlayerPos(playeridpPosX[playerid],  pPosY[playerid], pPosZ[playerid]);
            
SetPlayerInterior(playeridpInterior[playerid]);
            
SetPlayerFacingAngle(playeridpPosA[playerid]);
            
SetCameraBehindPlayer(playerid);
            
SendClientMessage(playerid, -1"Vocк foi teleportado para o local onde estava antes de sair do jogo pela ъltima vez.");
            
SpawnarInPos[playerid] = 0;
        }
        else
        {
            
            
//...
        
}
    }
    return 
1;




Re: [Ajuda] Por que estб dando este erro? - NathanT - 07.10.2017

Por padrгo, as variбveis assumem o valor 0 (para variбveis do tipo Float: 0.0; booleanas: false). Vocк nгo associou nenhum valor a essa variбvel quando estб verificando se ela й maior que 0, portanto, ela tem o valor de 0.0, logo o cуdigo desejado nгo estб sendo executado. Eu nгo aconselharia vocк fazer isso, pois hб coordenadas que sгo negativas, entгo mesmo que o jogador tenha sido registrado, tudo normal, mas se ele desconectou-se em algum local que alguma coordenada seja negativa, ele nгo vai ser setado para onde ele deslogou. Se eu fosse vocк, retiraria isso.


Re: [Ajuda] Por que estб dando este erro? - WiliHacking - 07.10.2017

Entгo se ele deslogar e fica negativo.. nгo vai seta ele? pensei que fosse apenas para cordenadas 0.0000


Re: [Ajuda] Por que estб dando este erro? - NathanT - 07.10.2017

Nгo, nгo vai. Pois qualquer nъmero negativo й menor que zero. Coordenadas negativas geralmente aparecem muito em interiores nгo-nativos, criados por alguйm e adicionados ao servidor


Re: [Ajuda] Por que estб dando este erro? - WiliHacking - 07.10.2017

Entendi, obrigado a todos