Atualizado 01/04/2016 '-'
PS: Este tutorial é voltado para quem está começando e desenvolvendo seus próprios sistemas, por isso não o julgue!
Ainda há quem pense que é difícil criar um simples verificador de dinheiro e estou aqui para provar o contrário e mostrar que com algumas linhas podemos evitar QUALQUER Cheat de dinheiro no servidor.
Algo comum e ainda utilizado, mesmo não tendo necessidade, são stocks que substituem a função nativa GivePlayerMoney(playerid, amount);
A verdade é que essa não é a única solução e não precisamos criar mais stocks no GM/FS para setar dinheiro a um player.
Em primeiro lugar, se você já tiver uma variável definida para salvar o dinheiro, use-a e pule esta etapa (lembre-se de alterar as demais variáveis do tutorial):
Crie a variável Var_Money
PHP Code:
Em seguida, criaremos um Timer responsável por verificar o dinheiro do player
PHP Code:
MoneyCheck é a função chamada para verificar o dinheiro do player.
1000 são os milissegundos em que a verificação irá ocorrer.
true fará com que o Timer repita a verificação (loop)
Hora de criar a callback que será chamada para verificar o dinheiro
PHP Code:
PS: Este tutorial é voltado para quem está começando e desenvolvendo seus próprios sistemas, por isso não o julgue!
Ainda há quem pense que é difícil criar um simples verificador de dinheiro e estou aqui para provar o contrário e mostrar que com algumas linhas podemos evitar QUALQUER Cheat de dinheiro no servidor.
Algo comum e ainda utilizado, mesmo não tendo necessidade, são stocks que substituem a função nativa GivePlayerMoney(playerid, amount);
A verdade é que essa não é a única solução e não precisamos criar mais stocks no GM/FS para setar dinheiro a um player.
Em primeiro lugar, se você já tiver uma variável definida para salvar o dinheiro, use-a e pule esta etapa (lembre-se de alterar as demais variáveis do tutorial):
Crie a variável Var_Money
PHP Code:
- Código:
new Var_Money[MAX_PLAYERS];
Em seguida, criaremos um Timer responsável por verificar o dinheiro do player
PHP Code:
- Código:
public OnGameModeInit() // GM
ou
public OnFilterScriptInit() // FS
{
SetTimer("MoneyCheck", 1000, true);
return 1;
}
MoneyCheck é a função chamada para verificar o dinheiro do player.
1000 são os milissegundos em que a verificação irá ocorrer.
true fará com que o Timer repita a verificação (loop)
Hora de criar a callback que será chamada para verificar o dinheiro
PHP Code:
- Código:
forward MoneyCheck();
public MoneyCheck()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(GetPlayerMoney(i) != Var_Money[i])
{
ResetPlayerMoney(i);
GivePlayerMoney(i, Var_Money[i]);
}
}
}
return 1;
}