Portal SAMP
[Ajuda] Vip não esta salvando posição - 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] Vip não esta salvando posição (/showthread.php?tid=1975)

Páginas: 1 2 3


Vip não esta salvando posição - fear - 22/12/2021

boa tarde. estou fazendo o sistema vip pro meu servidor mas tive um problema na hora de setar a posição salva do vip. ele salva no .ini certinho porém ele não ta setando ao logar no servidor tu spawna como qualquer player ao invez de spawnar a posição que tu salvou no /salvarpos

Código PHP:
CMD:salvarpos(playerid)
{
    if(!
IsVip(playerid))
        return 
Msg(playeridVermelho"<!> {FFFFFF}Comando exclusivo para Jogador Vip ou Sócio!");

    
GetPlayerPos(playeridContaPlayer[playerid][UltimaPosX], ContaPlayer[playerid][UltimaPosY], ContaPlayer[playerid][UltimaPosZ]);

    
SendClientMessage(playeridVerde"<!> {FFFFFF}Posição Salva Com sucesso, aqui será seu novo spawn!");

    return 
1;


onplayerconnect:
Código PHP:
ContaPlayer[playerid][UltimaPosX] = ContaPlayer[playerid][UltimaPosY] = ContaPlayer[playerid][UltimaPosZ] = 0.0

Código PHP:
CarregarVip(playerid)
{
    new 
pastaFormatada[11 24], auxiliar[15];

    
format(pastaFormatadasizeof(pastaFormatada), PASTA_VIPNome(playerid));

    if(
DOF2_FileExists(pastaFormatada))
    {
        
ContaPlayer[playerid][TempoVip] = DOF2_GetInt(pastaFormatada"Tempo Vip");

        if(
DiaExpirado(ContaPlayer[playerid][TempoVip]))
        {
           
MensagemVipExpirado[playerid] = true;
        }

        else
        {
            
format(ContaPlayer[playerid][Cor_Tag], 8"%s"DOF2_GetString(pastaFormatada"Cor Tag"));
            
format(ContaPlayer[playerid][Frase_Vip], 15"%s"DOF2_GetString(pastaFormatada"Frase"));

            
ContaPlayer[playerid][VipLevel]   = DOF2_GetInt(pastaFormatada"Level Vip");

            
ContaPlayer[playerid][UltimaPosX] = DOF2_GetFloat(pastaFormatada"Pos X");
            
ContaPlayer[playerid][UltimaPosY] = DOF2_GetFloat(pastaFormatada"Pos Y");
            
ContaPlayer[playerid][UltimaPosZ] = DOF2_GetFloat(pastaFormatada"Pos Z");

            for(new 
010++)
            {
                
format(auxiliarsizeof(auxiliar), "Slot Arma %d:"i);

                
inventarioPlayer[playerid][armaInv][i] = DOF2_GetInt(pastaFormatadaauxiliar);
            }

            for(new 
05++)
            {
                
format(auxiliarsizeof(auxiliar), "Slot Veiculo %d:"i);

                
inventarioPlayer[playerid][modeloCarroInv][i] = DOF2_GetInt(pastaFormatadaauxiliar);
            }
        }
    }
}

SalvarVip(playerid)
{
    new 
pastaFormatada[11 24], auxiliar[15];

    
format(pastaFormatadasizeof(pastaFormatada), PASTA_VIPNome(playerid));

    if(
DOF2_FileExists(pastaFormatada))
    {
        
DOF2_SetString(pastaFormatada"Cor Tag",  ContaPlayer[playerid][Cor_Tag]);
        
DOF2_SetString(pastaFormatada"Frase"ContaPlayer[playerid][Frase_Vip]);

        
DOF2_SetFloat(pastaFormatada,  "Pos X"ContaPlayer[playerid][UltimaPosX]);
        
DOF2_SetFloat(pastaFormatada,  "Pos Y"ContaPlayer[playerid][UltimaPosY]);
        
DOF2_SetFloat(pastaFormatada,  "Pos Z"ContaPlayer[playerid][UltimaPosZ]);

        for(new 
010++)
        {
            
format(auxiliarsizeof(auxiliar), "Slot Arma %d:"i);

            
DOF2_SetInt(pastaFormatadaauxiliarinventarioPlayer[playerid][armaInv][i]);
        }

        for(new 
05++)
        {
            
format(auxiliarsizeof(auxiliar), "Slot Veiculo %d:"i);

            
DOF2_SetInt(pastaFormatadaauxiliarinventarioPlayer[playerid][modeloCarroInv][i]);
        }

        
DOF2_SaveFile();
    }




RE: Vip não esta salvando posição - xbruno1000x - 22/12/2021

Creio que o salvamento esteja correto, olhei rápido mas não vi nenhum erro.

Por outro lado, não sei como você fez na OnPlayerSpawn. Lembre-se que as public's são lidas de cima pra baixo, então pode ser que o spawn comum seja chamado antes que o vip e esteja interferindo. Envie o spawn comum e o vip aqui para analisarmos melhor.


RE: Vip não esta salvando posição - fear - 22/12/2021

(22/12/2021 14:48)xbruno1000x Escreveu: Creio que o salvamento esteja correto, olhei rápido mas não vi nenhum erro.

Por outro lado, não sei como você fez na OnPlayerSpawn. Lembre-se que as public's são lidas de cima pra baixo, então pode ser que o spawn comum seja chamado antes que o vip e esteja interferindo. Envie o spawn comum e o vip aqui para analisarmos melhor.

Pode ser... eu uso spawn randomico.. mas no onplayerspawn não coloquei nada do salvpos do vip pode ser isso..

onplayerspawn:

Código PHP:
public OnPlayerSpawn(playerid)
{
    
hasHS[playerid] = 0;
    
SetPlayerRandomSpawn(playerid);
    
    
StopAudioStreamForPlayer(playerid);
    if(
playerConnectedNow[playerid])
    {
        
playerConnectedNow[playerid] = false;

        
SetTimerEx("LoadPlayerChainAdmin"300false"i"playerid);

        
GetPlayerPos(playeridplayerAFKCheck[playerid][E_PLAYER_AFK_POS][0], playerAFKCheck[playerid][E_PLAYER_AFK_POS][1], playerAFKCheck[playerid][E_PLAYER_AFK_POS][2]);

        
SetTimerEx("CheckPlayerAfk"CHECK_PLAYER_AFK_TIMEtrue"i"playerid);

        
SetTimerEx("CheckPlayerWeaponHack"700false"i"playerid);
        
checkPlayerNameTimer[playerid] = SetTimerEx("CheckPlayerNameAltered"1000true"i"playerid);

        
ContaPlayer[playerid][Score] = GetPlayerScore(playerid);
        if(
zoneperfect[playerid])
        {
            
TextDrawShowForPlayer(playeridTextdraw0);
            
TextDrawShowForPlayer(playeridTextdraw1);
            
TextDrawShowForPlayer(playeridTextdraw2);
            
TextDrawShowForPlayer(playeridTextdraw3);
            
TextDrawShowForPlayer(playeridTextdraw4);
            
TextDrawShowForPlayer(playeridTextdraw5);
            
TextDrawShowForPlayer(playeridPlayers);
        }

        if(
relogiod[playerid])
        {
            
TextDrawShowForPlayer(playeridDataC);
            
TextDrawShowForPlayer(playeridHoraC);
        }
        if(
MundoDM[playerid])
        {
            new 
weapons[13][2], i;

            for (
0<= 12i++)
                
GetPlayerWeaponData(playeridiweapons[i][0], weapons[i][1]);

            
ResetPlayerWeapons(playerid);

            for(
0<= 12i++)
            {
                if(
weapons[i][0] == 46 || weapons[i][0] == 43)
                    
GivePlayerWeapon(playeridweapons[i][0], weapons[i][1]);
            }
        }
    }
    if(
ContaPlayer[playerid][Level] > 1)
    {
         
spawnou[playerid] = true;
        
SetPlayerClass(playeridPLAYER_CLASS_ADMIN);
    }
    if(
Logado[playerid] == false)
    
Logado[playerid] = true;

    if(
ContaPlayer[playerid][Skin] > 0)
    {
        
SetPlayerSkin(playeridContaPlayer[playerid][Skin]);
    }

    if(
Logado[playerid] == false)
    {
        
Msg(playeridVermelho"{90EE90}CONTA: {FFFFFF}Você tem que spawnar primeiro!");
        return 
Kick(playerid);
    }
    return 
1;


não tenho nada do spawn do vip na public onplayerspawn somente no onplayerconnect como está acima.


RE: Vip não esta salvando posição - ipsLuan - 22/12/2021

Faça um debug.

Compare se a posição que você recebe no servidor é a mesma que está no arquivo.


RE: Vip não esta salvando posição - fear - 22/12/2021

(22/12/2021 16:28)ipsLuan Escreveu: Faça um debug.

Compare se a posição que você recebe no servidor é a mesma que está no arquivo.

Putz achei que com os códigos acima alguem saberia como resolver... debug não sei fazer...


RE: Vip não esta salvando posição - xbruno1000x - 22/12/2021

O que é SetPlayerRandomSpawn(playerid); ??
Me parece ser o responsável pela posição de spawn, e em nenhum lugar tem nada referente ao spawn vip...


RE: Vip não esta salvando posição - fear - 22/12/2021

(22/12/2021 22:12)xbruno1000x Escreveu: O que é SetPlayerRandomSpawn(playerid); ??
Me parece ser o responsável pela posição de spawn, e em nenhum lugar tem nada referente ao spawn vip...

spawn randômico... sera ele o problema?

Removi e não resolveu...


RE: Vip não esta salvando posição - xbruno1000x - 23/12/2021

(22/12/2021 22:37)fear Escreveu: spawn randômico... sera ele o problema?

Não acredito que é o problema. Eu só preciso saber onde está o trecho responsável por definir a posição do spawn.


RE: Vip não esta salvando posição - fear - 23/12/2021

(23/12/2021 10:22)xbruno1000x Escreveu:
(22/12/2021 22:37)fear Escreveu: spawn randômico... sera ele o problema?

Não acredito que é o problema. Eu só preciso saber onde está o trecho responsável por definir a posição do spawn.

Ve se seria isso.. está no onplayerspawn.

Código PHP:
ContaPlayer[playerid][UltimaPosX] = ContaPlayer[playerid][UltimaPosY] = ContaPlayer[playerid][UltimaPosZ] = 0.0

Código PHP:
enum PlayerInfo
{
    
Senha,
    
Dinheiro,
    
Score,
    
Skin,
    
Level,
    
TempoOn,
    Class,

    
bool:CanBeYoutuber,

    
VipLevel,
    
TempoVip,

    
Cor_Tag[8],
    
Frase_Vip[15],

    
FloatUltimaPosX,
    
FloatUltimaPosY,
    
FloatUltimaPosZ
}; 



RE: Vip não esta salvando posição - xbruno1000x - 23/12/2021

(23/12/2021 12:20)fear Escreveu:
(23/12/2021 10:22)xbruno1000x Escreveu:
(22/12/2021 22:37)fear Escreveu: spawn randômico... sera ele o problema?

Não acredito que é o problema. Eu só preciso saber onde está o trecho responsável por definir a posição do spawn.

Ve se seria isso.. está no onplayerspawn.

Código PHP:
ContaPlayer[playerid][UltimaPosX] = ContaPlayer[playerid][UltimaPosY] = ContaPlayer[playerid][UltimaPosZ] = 0.0

Código PHP:
enum PlayerInfo
{
    
Senha,
    
Dinheiro,
    
Score,
    
Skin,
    
Level,
    
TempoOn,
    Class,

    
bool:CanBeYoutuber,

    
VipLevel,
    
TempoVip,

    
Cor_Tag[8],
    
Frase_Vip[15],

    
FloatUltimaPosX,
    
FloatUltimaPosY,
    
FloatUltimaPosZ
}; 

Onde fica o spawn comum? Esse código é do seu sistema de VIP, eu preciso do spawn comum.