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


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

(23/12/2021 19:35)xbruno1000x Escreveu:
(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.
mandei a public onplayerspawn acima mano kkkk o spawn e randômico...

Código PHP:
new Float:RandomSpawn[][4] =
{
    
// Positions, (X, Y, Z and Facing Angle)
    
{408.3785,-1543.1652,32.2734,222.0006},
    {
1579.9550,-1328.0443,16.4844,314.6267}
};

new 
rand random(sizeof(RandomSpawn));

    
// SetPlayerPos to the random spawn data
    
SetPlayerPos(playeridRandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);

    
// SetPlayerFacingAngle to the random facing angle data
    
SetPlayerFacingAngle(playeridRandomSpawn[rand][3]); 



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

Agora sim você mandou o que eu tava procurando kkkkkkk

Eu imagino que o problema seja que o spawn random seja chamado antes do spawn vip, então é necessário condiciona-las.

Teste assim:
Código:
if(PlayerInfo[playerid][VipLevel] == 0)
{
    SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
} else {
    SetPlayerPos(playerid, ContaPlayer[playerid][UltimaPosX], ContaPlayer[playerid][UltimaPosY], ContaPlayer[playerid][UltimaPosZ]);
}



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

(24/12/2021 01:41)xbruno1000x Escreveu: Agora sim você mandou o que eu tava procurando kkkkkkk

Eu imagino que o problema seja que o spawn random seja chamado antes do spawn vip, então é necessário condiciona-las.

Teste assim:
Código:
if(PlayerInfo[playerid][VipLevel] == 0)
{
    SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
} else {
    SetPlayerPos(playerid, ContaPlayer[playerid][UltimaPosX], ContaPlayer[playerid][UltimaPosY], ContaPlayer[playerid][UltimaPosZ]);
}

Coloquei assim:

ONPLAYERSPAWN

Código PHP:
new rand random(sizeof(RandomSpawn));

    if(
PlayerInfo[playerid][VipLevel] == 0)
    {
    
SetPlayerPos(playeridRandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
    
SetPlayerFacingAngle(playeridRandomSpawn[rand][3]);
      } else {
    
SetPlayerPos(playeridContaPlayer[playerid][UltimaPosX], ContaPlayer[playerid][UltimaPosY], ContaPlayer[playerid][UltimaPosZ]);
    } 

Erros:
Código PHP:
error 028invalid subscript (not an array or too many subscripts): "PlayerInfo"
warning 215expression has no effect
error 001
expected token";"but found "]"
error 029invalid expressionassumed zero
fatal error 107
too many error messages on one line 



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

(24/12/2021 01:47)fear Escreveu:
(24/12/2021 01:41)xbruno1000x Escreveu: Agora sim você mandou o que eu tava procurando kkkkkkk

Eu imagino que o problema seja que o spawn random seja chamado antes do spawn vip, então é necessário condiciona-las.

Teste assim:
Código:
if(PlayerInfo[playerid][VipLevel] == 0)
{
    SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
} else {
    SetPlayerPos(playerid, ContaPlayer[playerid][UltimaPosX], ContaPlayer[playerid][UltimaPosY], ContaPlayer[playerid][UltimaPosZ]);
}

Coloquei assim:

ONPLAYERSPAWN

Código PHP:
new rand random(sizeof(RandomSpawn));

    if(PlayerInfo[playerid][VipLevel] == 0)
    {
    SetPlayerPos(playeridRandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
    SetPlayerFacingAngle(playeridRandomSpawn[rand][3]);
      } else {
    
SetPlayerPos(playeridContaPlayer[playerid][UltimaPosX], ContaPlayer[playerid][UltimaPosY], ContaPlayer[playerid][UltimaPosZ]);
    } 

Erros:
Código PHP:
error 028invalid subscript (not an array or too many subscripts): "PlayerInfo"
warning 215expression has no effect
error 001
expected token";"but found "]"
error 029invalid expressionassumed zero
fatal error 107
too many error messages on one line 

Tem que substituir pela sua variável de VIP no lugar da que eu coloquei.


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

(24/12/2021 15:04)xbruno1000x Escreveu:
(24/12/2021 01:47)fear Escreveu:
(24/12/2021 01:41)xbruno1000x Escreveu: Agora sim você mandou o que eu tava procurando kkkkkkk

Eu imagino que o problema seja que o spawn random seja chamado antes do spawn vip, então é necessário condiciona-las.

Teste assim:
Código:
if(PlayerInfo[playerid][VipLevel] == 0)
{
    SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
} else {
    SetPlayerPos(playerid, ContaPlayer[playerid][UltimaPosX], ContaPlayer[playerid][UltimaPosY], ContaPlayer[playerid][UltimaPosZ]);
}

Coloquei assim:

ONPLAYERSPAWN

Código PHP:
new rand random(sizeof(RandomSpawn));

    if(PlayerInfo[playerid][VipLevel] == 0)
    {
    SetPlayerPos(playeridRandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
    SetPlayerFacingAngle(playeridRandomSpawn[rand][3]);
      } else {
    
SetPlayerPos(playeridContaPlayer[playerid][UltimaPosX], ContaPlayer[playerid][UltimaPosY], ContaPlayer[playerid][UltimaPosZ]);
    } 

Erros:
Código PHP:
error 028invalid subscript (not an array or too many subscripts): "PlayerInfo"
warning 215expression has no effect
error 001
expected token";"but found "]"
error 029invalid expressionassumed zero
fatal error 107
too many error messages on one line 

Tem que substituir pela sua variável de VIP no lugar da que eu coloquei.

burro mesmo kkkkk agora sim mano funcionando 100%. vlw mesmo sempre fortalecendo! +REP


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

Um problema que ficou agora que eu seto vip novo.. ele é obrigado a dar /salvarpos --- senão ele reloga e cai no limbo kkkk


RE: Vip não esta salvando posição - Luiz - 25/12/2021

(24/12/2021 23:28)fear Escreveu: Um problema que ficou agora que eu seto vip novo.. ele é obrigado a dar /salvarpos --- senão ele reloga e cai no limbo kkkk

Quando ele logar, faça a verificação para ver se o jogador usou o comando /salvarpos alguma vez. Caso ele nunca tenha usado, faça ele spawnar no local que ele estava antes de sair do servidor.


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

(25/12/2021 02:01)Luiz Escreveu:
(24/12/2021 23:28)fear Escreveu: Um problema que ficou agora que eu seto vip novo.. ele é obrigado a dar /salvarpos --- senão ele reloga e cai no limbo kkkk

Quando ele logar, faça a verificação para ver se o jogador usou o comando /salvarpos alguma vez. Caso ele nunca tenha usado, faça ele spawnar no local que ele estava antes de sair do servidor.

Como eu faço isso? kkk


RE: Vip não esta salvando posição - Luiz - 25/12/2021

(25/12/2021 02:39)fear Escreveu:
(25/12/2021 02:01)Luiz Escreveu:
(24/12/2021 23:28)fear Escreveu: Um problema que ficou agora que eu seto vip novo.. ele é obrigado a dar /salvarpos --- senão ele reloga e cai no limbo kkkk

Quando ele logar, faça a verificação para ver se o jogador usou o comando /salvarpos alguma vez. Caso ele nunca tenha usado, faça ele spawnar no local que ele estava antes de sair do servidor.

Como eu faço isso? kkk

Várias formas. A mais fácil é criar um novo salvamento e verifica se ele está como 1 ou true, exemplo:
Código PHP:
DOF2_SetInt(Contas"SalvouPos"1);
...
if(
DOF2_GetInt(Contas"SalvouPos") == 0)
{
    // não salvou pos
}
else 
{
    // salvou pos


Pode fazer também verificando as posições salvas. Se todas constarem 0, significa que ele nunca usou o comando
Código PHP:
if(DOF2_GetInt(Contas"PosSalvaX") == && DOF2_GetInt(Contas"PosSalvaY") == && DOF2_GetInt(Contas"PosSalvaZ") == 0)
{
    
// não salvou pos
}
else 
{
    
// salvou pos




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

(25/12/2021 03:29)Luiz Escreveu:
(25/12/2021 02:39)fear Escreveu:
(25/12/2021 02:01)Luiz Escreveu:
(24/12/2021 23:28)fear Escreveu: Um problema que ficou agora que eu seto vip novo.. ele é obrigado a dar /salvarpos --- senão ele reloga e cai no limbo kkkk

Quando ele logar, faça a verificação para ver se o jogador usou o comando /salvarpos alguma vez. Caso ele nunca tenha usado, faça ele spawnar no local que ele estava antes de sair do servidor.

Como eu faço isso? kkk

Várias formas. A mais fácil é criar um novo salvamento e verifica se ele está como 1 ou true, exemplo:
Código PHP:
DOF2_SetInt(Contas"SalvouPos"1);
...
if(
DOF2_GetInt(Contas"SalvouPos") == 0)
{
    // não salvou pos
}
else 
{
    // salvou pos


Pode fazer também verificando as posições salvas. Se todas constarem 0, significa que ele nunca usou o comando
Código PHP:
if(DOF2_GetInt(Contas"PosSalvaX") == && DOF2_GetInt(Contas"PosSalvaY") == && DOF2_GetInt(Contas"PosSalvaZ") == 0)
{
    
// não salvou pos
}
else 
{
    
// salvou pos


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

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

    new 
rand random(sizeof(RandomSpawn));
    
    if(
DOF2_GetInt(ContaPlayer"UltimaPosX") == && DOF2_GetInt(ContaPlayer"UltimaPosY") == && DOF2_GetInt(ContaPlayer"UltimaPosZ") == 0)
    {
        
SetPlayerPos(playeridRandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
        
SetPlayerFacingAngle(playeridRandomSpawn[rand][3]);
    }
    else
    {
        
SetPlayerPos(playeridContaPlayer[playerid][UltimaPosX], ContaPlayer[playerid][UltimaPosY], ContaPlayer[playerid][UltimaPosZ]);
    }

    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);
            }
        }
    }


Porém deu esse erro pesquisei sobre não entendi esse erro não.

Código PHP:
error 048: array dimensions do not match