27.10.2015, 00:51
No, no, no. There is absolutely no need to ban anyone nor to use a timer. Prevention is the best protection.
The only thing that you would need to do is make default in-game purchases alter the player's variable so that those purchases made in-game have an actual effect on their cash.
Note: Cheaters will see that their money on their hud changes, but their actual server-sided cash will remain un-altered.
pawn Код:
// DEVELOPMENT SCRIPT
// ** INCLUDES
#include <a_samp>
// ** VARIABLES
// *** PER-PLAYER VARIABLES
new pMoney[MAX_PLAYERS];
// ** HOOKS
// *** GivePlayerMoney
stock Hook_GivePlayerMoney(playerid, amount)
{
pMoney[playerid] += amount;
return GivePlayerMoney(playerid, amount);
}
#if defined _ALS_GivePlayerMoney
#undef GivePlayerMoney
#else
#define _ALS_GivePlayerMoney
#endif
#define GivePlayerMoney Hook_GivePlayerMoney
// *** GetPlayerMoney
stock Hook_GetPlayerMoney(playerid)
{
return pMoney[playerid];
}
#if defined _ALS_GetPlayerMoney
#undef GetPlayerMoney
#else
#define _ALS_GetPlayerMoney
#endif
#define GetPlayerMoney Hook_GetPlayerMoney
// *** ResetPlayerMoney
stock Hook_ResetPlayerMoney(playerid)
{
pMoney[playerid] = 0;
return ResetPlayerMoney(playerid);
}
#if defined _ALS_ResetPlayerMoney
#undef ResetPlayerMoney
#else
#define _ALS_ResetPlayerMoney
#endif
#define ResetPlayerMoney Hook_ResetPlayerMoney
// ** MAIN
main()
{
print("Loaded \"anti_money_hacks.amx\".");
}
// ** CALLBACKS
public OnGameModeInit()
{
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
pMoney[playerid] = 0;
return 1;
}
Note: Cheaters will see that their money on their hud changes, but their actual server-sided cash will remain un-altered.