Portal SAMP
[Ajuda] Salvar vida do veiculo - 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] Salvar vida do veiculo (/showthread.php?tid=2814)



Salvar vida do veiculo - RosaScripter - 17/09/2022

To com uma dificuldade para salvar a vida do veiculo da conce, a vida esta salvando mas depois que o jogador reloga o carro nasce pegando fogo.

Código:
public CarregarCarro(playerid)
{
    CarID = DOF2_GetInt(PachCarro(playerid),"CarID");
    CorID = DOF2_GetInt(PachCarro(playerid),"Cor1");
    PosSC[0] = DOF2_GetFloat(PachCarro(playerid),"PosX");
    PosSC[1] = DOF2_GetFloat(PachCarro(playerid),"PosY");
    PosSC[2] = DOF2_GetFloat(PachCarro(playerid),"PosZ");
    PosSC[3] = DOF2_GetFloat(PachCarro(playerid),"PosA");
    VidaCar = DOF2_GetFloat(PachCarro(playerid),"VIDA");
    DonoCar[playerid] = AddStaticVehicleEx(CarID,PosSC[0],PosSC[1],PosSC[2],PosSC[3],CorID,CorID,-1);
    SetVehicleHealth(DonoCar[playerid], VidaCar+0.5); < SETAGEM DA VIDA DO VEH (COLOQUEI UM 0.5 PRA VER SE RESOLVIA.
    return 1;
}
public SalvarCarro(playerid)
{
    if(!DOF2_FileExists(PachCarro(playerid))) DOF2_CreateFile(PachCarro(playerid));
    GetVehiclePos(DonoCar[playerid], PosSC[0],PosSC[1],PosSC[2]);
    GetVehicleZAngle(DonoCar[playerid], PosSC[3]);
    GetVehicleHealth(DonoCar[playerid], VidaCar);
    DOF2_SetInt(PachCarro(playerid),"CarID",GetVehicleModel(DonoCar[playerid]));
    DOF2_SetInt(PachCarro(playerid),"Cor1",CorID);
    DOF2_SetFloat(PachCarro(playerid),"PosX",PosSC[0]);
    DOF2_SetFloat(PachCarro(playerid),"PosY",PosSC[1]);
    DOF2_SetFloat(PachCarro(playerid),"PosZ",PosSC[2]);
    DOF2_SetFloat(PachCarro(playerid),"PosA",PosSC[3]);
    DOF2_SetBool(PachCarro(playerid),"TemCarro", Infocar[playerid][TemCarro]);
    DOF2_SetBool(PachCarro(playerid),"Estacionado", Infocar[playerid][Estacionado]);
    DOF2_SetFloat(PachCarro(playerid),"VIDA", GetVehicleHealth(DonoCar[playerid], VidaCar)); < SALVAMENTPO DA VIDA
    DOF2_SaveFile();
    return 1;
}



RE: Salvar vida do veiculo - xbruno1000x - 17/09/2022

Utilize o printf para ver a quantidade de vida que está sendo salva e a que está sendo carregada(Isso se estiver sendo carregada). A partir daí dá pra ter uma noção melhor de onde exatemente está o problema, se é no carregamento ou no salvamento.


RE: Salvar vida do veiculo - Device-Black - 17/09/2022

Percebi essa linha
Código:
DOF2_SetFloat(PachCarro(playerid),"VIDA", GetVehicleHealth(DonoCar[playerid], VidaCar));
GetVehicleHealth nao retorna a vida do veiculo

Correção:
Código:
static Float:VidaCar;
GetVehicleHealth(DonoCar[playerid], VidaCar);
DOF2_SetFloat(PathCarro(playerid), "VIDA", VidaCar);
DOF2_SaveFile();



RE: Salvar vida do veiculo - RosaScripter - 18/09/2022

(17/09/2022 22:40)Device-Black Escreveu: Percebi essa linha
Código:
DOF2_SetFloat(PachCarro(playerid),"VIDA", GetVehicleHealth(DonoCar[playerid], VidaCar));
GetVehicleHealth nao retorna a vida do veiculo

Correção:
Código:
static Float:VidaCar;
GetVehicleHealth(DonoCar[playerid], VidaCar);
DOF2_SetFloat(PathCarro(playerid), "VIDA", VidaCar);
DOF2_SaveFile();

Continua a mesma coisa

Código:
public CarregarCarro(playerid)
{
    CarID = DOF2_GetInt(PachCarro(playerid),"CarID");
    CorID = DOF2_GetInt(PachCarro(playerid),"Cor1");
    PosSC[0] = DOF2_GetFloat(PachCarro(playerid),"PosX");
    PosSC[1] = DOF2_GetFloat(PachCarro(playerid),"PosY");
    PosSC[2] = DOF2_GetFloat(PachCarro(playerid),"PosZ");
    PosSC[3] = DOF2_GetFloat(PachCarro(playerid),"PosA");
    VidaCar = DOF2_GetFloat(PachCarro(playerid),"VIDA");
    DonoCar[playerid] = AddStaticVehicleEx(CarID,PosSC[0],PosSC[1],PosSC[2],PosSC[3],CorID,CorID,-1);
    SetVehicleHealth(DonoCar[playerid], VidaCar);
    return 1;
}
public SalvarCarro(playerid)
{
    if(!DOF2_FileExists(PachCarro(playerid))) DOF2_CreateFile(PachCarro(playerid));
    GetVehiclePos(DonoCar[playerid], PosSC[0],PosSC[1],PosSC[2]);
    GetVehicleZAngle(DonoCar[playerid], PosSC[3]);
    GetVehicleHealth(DonoCar[playerid], VidaCar);
    DOF2_SetInt(PachCarro(playerid),"CarID",GetVehicleModel(DonoCar[playerid]));
    DOF2_SetInt(PachCarro(playerid),"Cor1",CorID);
    DOF2_SetFloat(PachCarro(playerid),"PosX",PosSC[0]);
    DOF2_SetFloat(PachCarro(playerid),"PosY",PosSC[1]);
    DOF2_SetFloat(PachCarro(playerid),"PosZ",PosSC[2]);
    DOF2_SetFloat(PachCarro(playerid),"PosA",PosSC[3]);
    DOF2_SetBool(PachCarro(playerid),"TemCarro", Infocar[playerid][TemCarro]);
    DOF2_SetBool(PachCarro(playerid),"Estacionado", Infocar[playerid][Estacionado]);
    DOF2_SetFloat(PachCarro(playerid),"VIDA", VidaCar);
    DOF2_SaveFile();
    return 1;
}



RE: Salvar vida do veiculo - Device-Black - 18/09/2022

(18/09/2022 12:56)RosaScripter Escreveu:
(17/09/2022 22:40)Device-Black Escreveu: Percebi essa linha
Código:
DOF2_SetFloat(PachCarro(playerid),"VIDA", GetVehicleHealth(DonoCar[playerid], VidaCar));
GetVehicleHealth nao retorna a vida do veiculo

Correção:
Código:
static Float:VidaCar;
GetVehicleHealth(DonoCar[playerid], VidaCar);
DOF2_SetFloat(PathCarro(playerid), "VIDA", VidaCar);
DOF2_SaveFile();

Continua a mesma coisa

Código:
public CarregarCarro(playerid)
{
    CarID = DOF2_GetInt(PachCarro(playerid),"CarID");
    CorID = DOF2_GetInt(PachCarro(playerid),"Cor1");
    PosSC[0] = DOF2_GetFloat(PachCarro(playerid),"PosX");
    PosSC[1] = DOF2_GetFloat(PachCarro(playerid),"PosY");
    PosSC[2] = DOF2_GetFloat(PachCarro(playerid),"PosZ");
    PosSC[3] = DOF2_GetFloat(PachCarro(playerid),"PosA");
    VidaCar = DOF2_GetFloat(PachCarro(playerid),"VIDA");
    DonoCar[playerid] = AddStaticVehicleEx(CarID,PosSC[0],PosSC[1],PosSC[2],PosSC[3],CorID,CorID,-1);
    SetVehicleHealth(DonoCar[playerid], VidaCar);
    return 1;
}
public SalvarCarro(playerid)
{
    if(!DOF2_FileExists(PachCarro(playerid))) DOF2_CreateFile(PachCarro(playerid));
    GetVehiclePos(DonoCar[playerid], PosSC[0],PosSC[1],PosSC[2]);
    GetVehicleZAngle(DonoCar[playerid], PosSC[3]);
    GetVehicleHealth(DonoCar[playerid], VidaCar);
    DOF2_SetInt(PachCarro(playerid),"CarID",GetVehicleModel(DonoCar[playerid]));
    DOF2_SetInt(PachCarro(playerid),"Cor1",CorID);
    DOF2_SetFloat(PachCarro(playerid),"PosX",PosSC[0]);
    DOF2_SetFloat(PachCarro(playerid),"PosY",PosSC[1]);
    DOF2_SetFloat(PachCarro(playerid),"PosZ",PosSC[2]);
    DOF2_SetFloat(PachCarro(playerid),"PosA",PosSC[3]);
    DOF2_SetBool(PachCarro(playerid),"TemCarro", Infocar[playerid][TemCarro]);
    DOF2_SetBool(PachCarro(playerid),"Estacionado", Infocar[playerid][Estacionado]);
    DOF2_SetFloat(PachCarro(playerid),"VIDA", VidaCar);
    DOF2_SaveFile();
    return 1;
}
Tenta esse https://pastebin.com/wh04bAgQ


RE: Salvar vida do veiculo - xbruno1000x - 18/09/2022

(17/09/2022 22:34)xbruno1000x Escreveu: Utilize o printf para ver a quantidade de vida que está sendo salva e a que está sendo carregada(Isso se estiver sendo carregada). A partir daí dá pra ter uma noção melhor de onde exatemente está o problema, se é no carregamento ou no salvamento.

Fez isso? qual foi o resultado?