Portal SAMP
[Pedido] Sistema de salvar - 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: [Pedido] Sistema de salvar (/showthread.php?tid=5038)



Sistema de salvar - Ratao4905 - 15/06/2025

Tem como alguem me mandar um FS ou Código de salvar a localização do player quando desliga do server e volta no mesmo quando loga, tbm de dinheiro saúde e colete, pfvr


RE: Sistema de salvar - White_Blue - 16/06/2025

Dê uma olhada no tutorial: https://portalsamp.com/showthread.php?tid=47


RE: Sistema de salvar - ANDREX - 29/06/2025

(15/06/2025 13:02)Ratao4905 Escreveu:
Código:
#include <Dini>
#include <dudb>

new Float:positionx;
new Float:positiony;
new Float:positionz;
new Float:health;
new Float:armor;
new Float:money;

public OnPlayerConnect(playerid)
{
    LoadStats(playerid);
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new Float:x;
    new Float:y;
    new Float:z;
    new health_value, armor_value, money_value;

    // Captura da posição atual do jogador
    GetPlayerPos(playerid, x, y, z);
    positionx = x;
    positiony = y;
    positionz = z;

    // Captura da vida, colete e dinheiro
    GetPlayerHealth(playerid, health_value);
    GetPlayerArmor(playerid, armor_value);
    GetPlayerMoney(playerid, money_value);

    health = health_value;
    armor = armor_value;
    money = money_value;

    if (!dini_Exists(FileStats(playerid)))
    {
        dini_Create(FileStats(playerid));
    }

    SaveStats(playerid);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    SetPlayerPos(playerid, positionx, positiony, positionz);

    // Restaura a vida, o colete e o dinheiro
    SetPlayerHealth(playerid, health);
    SetPlayerArmor(playerid, armor);
    GivePlayerMoney(playerid, money);

    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    // Reposiciona o jogador para a posição padrão
    SetPlayerPos(playerid, 1182.7733, -1323.6193, 13.5785);
    positionx = 1182.7733;
    positiony = -1323.6193;
    positionz = 13.5785;

    // Reseta a vida, o colete e o dinheiro na morte
    SetPlayerHealth(playerid, 100.0);  // Ajuste o valor conforme necessário
    SetPlayerArmor(playerid, 0.0);     // Ajuste o valor conforme necessário
    SetPlayerMoney(playerid, 0);       // Ajuste o valor conforme necessário

    return 1;
}

Player(playerid)
{
    new player[MAX_PLAYER_NAME];
    GetPlayerName(playerid, player, sizeof(player));
    return player;
}

FileStats(playerid)
{
    new a[256];
    format(a, sizeof(a), "%s.ini", udb_encode(Player(playerid)));
    return a;
}

SaveStats(playerid)
{
    // Salva a posição
    dini_IntSet(FileStats(playerid), "PositionX", floatround(positionx));
    dini_IntSet(FileStats(playerid), "PositionY", floatround(positiony));
    dini_IntSet(FileStats(playerid), "PositionZ", floatround(positionz));

    // Salva a vida
    dini_IntSet(FileStats(playerid), "Health", floatround(health));

    // Salva o colete
    dini_IntSet(FileStats(playerid), "Armor", floatround(armor));

    // Salva o dinheiro
    dini_IntSet(FileStats(playerid), "Money", money);
}

LoadStats(playerid)
{
    // Carrega a posição
    positionx = dini_Int(FileStats(playerid), "PositionX");
    positiony = dini_Int(FileStats(playerid), "PositionY");
    positionz = dini_Int(FileStats(playerid), "PositionZ");

    // Carrega a vida
    health = dini_Int(FileStats(playerid), "Health");

    // Carrega o colete
    armor = dini_Int(FileStats(playerid), "Armor");

    // Carrega o dinheiro
    money = dini_Int(FileStats(playerid), "Money");
}
Tem como alguem me mandar um FS ou Código de salvar a localização do player quando desliga do server e volta no mesmo quando loga, tbm de dinheiro saúde e colete, pfvr

Mano tenta isso não testei ainda mas se funcionar da maneira que vc quis dar +rep blz