SA-MP Forums Archive
[Ajuda] Salvar o dinheiro - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Salvar o dinheiro (/showthread.php?tid=650656)



Salvar o dinheiro - k2bi - 04.03.2018

nao estou conseguindo salvar o dinheiro ao player desconectar do servidor, alguem pode me ajudar ?


https://pastebin.com/3rB1gAXr



Re: Salvar o dinheiro - GuiKommander - 04.03.2018

Quando Salvar A conta, Use essa funзгo:
https://sampwiki.blast.hk/wiki/GetPlayerMoney
Vou deixar uma define minha que uso a bastante tempo evitando tambйm Anti Money Hacks.
PHP код:
#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.



Re: Salvar o dinheiro - IgorLuiz - 04.03.2018

Tente usar assim em OnPlayerDisconnect


PHP код:
public OnPlayerDisconnect(playeridreason)
{
    new 
file[40], Nome[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNome32);
    
format(file,40,"Contas/%s.ini"Nome);
    if(
DOF2_FileExists(file))
    {
        
DOF2_SetInt(file"Dinheiro"PlayerInfo[playerid][pDinheiro]);
        
DOF2_SaveFile();
    }
    return 
1;




Re: Salvar o dinheiro - zG - 04.03.2018

pawn Код:
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;
}
por

PHP код:
public OnPlayerDisconnect(playeridreason)
{
    new 
file[64];
    
GetPlayerName(playeridfilesizeof(file));
    
format (filesizeof(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(playeridDOF2_GetInt(file"Dinheiro"));
    return 
1;
}
stock SetPlayerMoney(playeridcash)
{
    
ResetPlayerMoney(playerid);
    return 
GivePlayerMoney(playeridcash);




Re: Salvar o dinheiro - IlanZ - 04.03.2018

Quote:
Originally Posted by zG
Посмотреть сообщение
pawn Код:
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;
}
por

PHP код:
public OnPlayerDisconnect(playeridreason)
{
    new 
file[64];
    
GetPlayerName(playeridfilesizeof(file));
    
format (filesizeof(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(playeridDOF2_GetInt(file"Dinheiro"));
    return 
1;
}
stock SetPlayerMoney(playeridcash)
{
    
ResetPlayerMoney(playerid);
    return 
GivePlayerMoney(playeridcash);

OnPlayerSpawn? O ideal era o OnPlayerConnect.


Re: Salvar o dinheiro - Adiiti - 04.03.2018

Mano recomendo a utilizar esse cуdigo aqui. Tirei do meu antigo GM. Й sу vocк adaptar ao seu GM. Mas jб coloquei em comentбrio onde tem que colocar cada coisa.

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 
playeridPlayer)
    {
        
moneyex GetPlayerMoney(playerid);
        if( 
moneyex PMoney[playerid] && moneyex > -PMoney[playerid]=moneyex;
        
ResetPlayerMoney(playerid);
        
GivePlayerMoney(playerid,PMoney[playerid]);
    }
    return 
1;
}
public 
GivePlayerMonez(playeridmoneyex)
{
    new 
rmoney GetPlayerMoney(playerid);
    if( 
rmoney PMoney[playerid] && rmoney > -PMoney[playerid]=rmoney;
    
PMoney[playerid]+=moneyex;
    new 
name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnamesizeof(name));
    
format(filesizeof(file), "Contas/%s.ini"name);
    
DOF2_SetInt(file"Dinheiro"PMoney[playerid]);
    
DOF2_SaveFile();
    
ResetPlayerMoney(playerid);
    
GivePlayerMoney(playeridPMoney[playerid]);
    return 
1;
}
public 
ResetPlayerMonez(playerid)
{
    
ResetPlayerMoney(playerid);
    
PMoney[playerid]=0;
    new 
name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnamesizeof(name));
    
format(filesizeof(file), "Contas/%.ini"name);
    
DOF2_SetInt(file"Dinheiro"0);
    
DOF2_SaveFile();
    return 
1;
}
public 
GetPlayerMonez(playerid) return PMoney[playerid]; 



Re: Salvar o dinheiro - k2bi - 04.03.2018

Funcionou obrigado