Das mit den PVars funktioniert trotzdem.
Du musst halt trotzdem beim Speichern die PVar Variante in dein Speichersystem umwandeln.
Ich hab das ganze so gemacht 
//Ganz oben
new Money[MAX_PLAYERS];
forward CheckMoney(playerid)
public CheckMoney(playerid)
{
if(GetPlayerMoney(playerid) != Money[playerid])return SendClientMessage(playerid,farbe,"Du hast gecheatet!");
return 1;
}
//OnPlayerConnect
SetTimerEx("CheckMoney",1000*5,1,"i",playerid);//Alle 5 Sekunden wird der Timer aktualisiert.
//Beim Laden des Spielers
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
Money[playerid] = mysql_int("Spieler","Geld", "Name", name);
//beim Speichern
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
mysql_SetInt("Spieler", "Geld", Money[playerid], "Name", name);
stock AGivePlayerMoney(playerid,amount)
{
GivePlayerMoney(playerid,amount);
Money[playerid] += amount;
return 1;
}
Anschließend könntest du in der Theorie AGivePlayerMoney benutezn um dem Spieler das Geld zu geben.
Natürlich musst du das Laden und das Speichern anpassen.
Je nach dem, wie du deine Daten speicherst und lädst 
mfg Pinguin - German Reallife Unlimited by SaN