29/06/2025 10:40
(15/06/2025 13:02)Ratao4905 Escreveu: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, pfvrCó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");
}
Mano tenta isso não testei ainda mas se funcionar da maneira que vc quis dar +rep blz