[Ajuda] Por que estб dando este erro?
#1

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

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)) 
Reply
#3

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;

Reply
#4

Me podem, por favor.
Reply
#5

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.
Reply
#6

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
Reply
#7

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;

Reply
#8

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.
Reply
#9

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

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
Reply
#11

Entendi, obrigado a todos
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)