12.01.2019, 22:12
Boa noite pessoal, estava programando e me deparei com um problema ...
Sinceramente buguei em como posso arrumar kkk ...
Bom, meu registro possui 3 Stocks elas sгo
CarregarPlayer ( Quando o player loga, carrega os dados dele )
SalvarPlayer ( Quando o player termina o registro, й salvo os dados dele jah pela primeira vez, isso й para evitar ele perde algum dado caso o servidor esteja caindo ! )
UltimaPosicao ( A UltimaPosicao eh quando o player loga serve para mandar ele pra ultima posiзгo que ele deslogou )
Essa stock ira ficar assim ...
isso chama a seguinte stock que й esta ...
Sу que quando o player se registra, й para ele spawnar nessa coordenada >>
porem em public OnPlayerSpawn(playerid) й chamado a stock >> UltimaPosicao e acaba dando conflito e o player nгo tem nenhuma posiзгo ainda salva, pois acabou de criar a acc, e eh spawnado no meio do nada, pois buga as coordenadas e spawna no lugar de onde toda GM do 0 comeзa ... aqui >> https://imgur.com/a/rcV3dX4
sendo que era pra ele ir na HQ de novato ...
Como posso estar resolvendo isso? Jб tentei por level tipo
Se o player for level inferior a 1 nгo й chamado a UltimaPosiзгo e ele sempre spawnara no Spawn de novato, se ele for level maior que 1 chamara a UltimaPosiзгo mais provavelmente por burrice minha o cуdigo deu uns erros, e quando n deu erro, n deu certo ... mas foi essa a maneira que achei atй no momento ... Alguйm poderia ajudar?
Sinceramente buguei em como posso arrumar kkk ...
Bom, meu registro possui 3 Stocks elas sгo
CarregarPlayer ( Quando o player loga, carrega os dados dele )
SalvarPlayer ( Quando o player termina o registro, й salvo os dados dele jah pela primeira vez, isso й para evitar ele perde algum dado caso o servidor esteja caindo ! )
UltimaPosicao ( A UltimaPosicao eh quando o player loga serve para mandar ele pra ultima posiзгo que ele deslogou )
Essa stock ira ficar assim ...
PHP код:
public OnPlayerSpawn(playerid)
{
UltimaPosicao(playerid);
return 1;
}
PHP код:
stock UltimaPosicao(playerid)
{
if(DOF2_FileExists(ContaPlayer(playerid)))
{
pPosX[playerid] = DOF2_GetFloat(ContaPlayer(playerid), "PosX"); //Busca dentro do Arquivo a "PosX" e transforma em "pPosX"
pPosY[playerid] = DOF2_GetFloat(ContaPlayer(playerid), "PosY"); //Busca dentro do Arquivo a "PosY" e transforma em "pPosY"
pPosZ[playerid] = DOF2_GetFloat(ContaPlayer(playerid), "PosZ"); //Busca dentro do Arquivo a "PosZ" e transforma em "pPosZ"
pPosA[playerid] = DOF2_GetFloat(ContaPlayer(playerid), "PosA"); //Busca dentro do Arquivo a "PosA" e transforma em "pPosA"
pInterior[playerid] = DOF2_GetInt(ContaPlayer(playerid), "Interior"); //Busca dentro do Arquivo "Interior" e transforma em "pInterior"
SetPlayerPos(playerid, pPosX[playerid], pPosY[playerid], pPosZ[playerid]); // Seta a posiзгo do Player para a que estava no Arquivo
SetPlayerInterior(playerid, pInterior[playerid]);
SetPlayerFacingAngle(playerid, pPosA[playerid]); // Seta o Вngulo do Player para o que estava no arquivo
SetCameraBehindPlayer(playerid); // Coloca a Cвmera atrбs da Skin
SendClientMessage(playerid, -1, "Vocк foi teleportado para o local onde estava antes de sair do jogo pela ъltima vez.");
SpawnarInPos[playerid] = 0; // Define que o mesmo nгo deve mais ser Spawnado na posiзгo que estб no Arquivo atй Relogar.
SetPlayerSkin(playerid, DOF2_GetInt(ContaPlayer(playerid),"Skin"));
}
}
PHP код:
SetSpawnInfo(playerid, 0, 0, 388.0107,-1525.8547,32.2734,237.9921, 0, 0, 0, 0, 0, 0);
sendo que era pra ele ir na HQ de novato ...
Como posso estar resolvendo isso? Jб tentei por level tipo
Se o player for level inferior a 1 nгo й chamado a UltimaPosiзгo e ele sempre spawnara no Spawn de novato, se ele for level maior que 1 chamara a UltimaPosiзгo mais provavelmente por burrice minha o cуdigo deu uns erros, e quando n deu erro, n deu certo ... mas foi essa a maneira que achei atй no momento ... Alguйm poderia ajudar?