[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] == 1 && (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(playerid, pName, sizeof(pName));
format(File, sizeof(File), "Posicoes/%s.txt", pName);
if(DOF2_FileExists(File) && SpawnarInPos[playerid] == 1 && (pPosX[playerid] > 0 && pPosY[playerid] > 0 && 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(playerid, pPosX[playerid], pPosY[playerid], pPosZ[playerid]);
SetPlayerInterior(playerid, pInterior[playerid]);
SetPlayerFacingAngle(playerid, pPosA[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(playerid, nome, sizeof(nome));
format(file, sizeof(file), "Posicoes/%s.txt", nome);
if(!DOF2_FileExists(file))
DOF2_CreateFile(file);
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
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] > 0 && pPosY[playerid] > 0 && 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(playerid, pName, sizeof(pName));
format(File, sizeof(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(playerid, pPosX[playerid], pPosY[playerid], pPosZ[playerid]);
SetPlayerInterior(playerid, pInterior[playerid]);
SetPlayerFacingAngle(playerid, pPosA[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