04.03.2018, 00:10
nao estou conseguindo salvar o dinheiro ao player desconectar do servidor, alguem pode me ajudar ?
https://pastebin.com/3rB1gAXr
https://pastebin.com/3rB1gAXr
#define GivePlayerCash(%0,%1) SetPVarInt(%0,"Money",GetPlayerCash(%0)+%1),GivePlayerMoney(%0,%1)
#define ResetPlayerCash(%0) SetPVarInt(%0,"Money",0),ResetPlayerMoney(%0)
#define GetPlayerCash(%0) GetPVarInt(%0,"Money")
Use: sGivePlayerCash(playerid, Quantia); para setar grana, e GetPlayerCash(playerid); para salvar a grana e verificar Moneys.
public OnPlayerDisconnect(playerid, reason)
{
new file[40], Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, 32);
format(file,40,"Contas/%s.ini", Nome);
if(DOF2_FileExists(file))
{
DOF2_SetInt(file, "Dinheiro", PlayerInfo[playerid][pDinheiro]);
DOF2_SaveFile();
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new file[64];
GetPlayerName(playerid, file, sizeof(file));
format (file, sizeof(file), DOF2_File(file));
DOF2_SetInt(file, "Dinheiro", PlayerInfo[playerid][pDinheiro]);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new file[64];
GetPlayerName(playerid, file, sizeof(file));
format (file, sizeof(file), DOF2_File(file));
PlayerInfo[playerid][pDinheiro] = GetPlayerMoney(playerid);
DOF2_SetInt(file, "Dinheiro", PlayerInfo[playerid][pDinheiro]);
return 1;
}
public OnPlayerSpawn(playerid)
{
PlayerInfo[playerid][pDinheiro] = SetPlayerMoney(playerid, DOF2_GetInt(file, "Dinheiro"));
return 1;
}
stock SetPlayerMoney(playerid, cash)
{
ResetPlayerMoney(playerid);
return GivePlayerMoney(playerid, cash);
}
pawn Код:
PHP код:
|
/**
* @Author: wups
*/
//Coloca no inнcio do GM
#define CHECK_TIME 30 // Muda o tempo em segundos de quando vai atualizar
new PMoney[MAX_PLAYERS];
forward GetPlayerMonez(playerid);
forward ResetPlayerMonez(playerid);
forward GivePlayerMonez(playerid,moneyex);
forward MoneyCheck();
//Coloca em OnGameModeInit
public OnGameModeInit()
{
SetTimer("MoneyCheck",CHECK_TIME*1000,true);
return 1;
}
//coloca em OnPlayerConnect
public OnPlayerConnect(playerid)
{
PMoney[playerid]=0;
return 1;
}
//Cola no Final do GM
public MoneyCheck()
{
new moneyex;
foreach(new playerid: Player)
{
moneyex = GetPlayerMoney(playerid);
if( moneyex < PMoney[playerid] && moneyex > -1 ) PMoney[playerid]=moneyex;
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid,PMoney[playerid]);
}
return 1;
}
public GivePlayerMonez(playerid, moneyex)
{
new rmoney = GetPlayerMoney(playerid);
if( rmoney < PMoney[playerid] && rmoney > -1 ) PMoney[playerid]=rmoney;
PMoney[playerid]+=moneyex;
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "Contas/%s.ini", name);
DOF2_SetInt(file, "Dinheiro", PMoney[playerid]);
DOF2_SaveFile();
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, PMoney[playerid]);
return 1;
}
public ResetPlayerMonez(playerid)
{
ResetPlayerMoney(playerid);
PMoney[playerid]=0;
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "Contas/%.ini", name);
DOF2_SetInt(file, "Dinheiro", 0);
DOF2_SaveFile();
return 1;
}
public GetPlayerMonez(playerid) return PMoney[playerid];