24.01.2013, 22:37
(
Последний раз редактировалось Maklister; 25.01.2013 в 12:52.
)
Anti Money Hacker SA:MP
Olб amiguets,
Bom, hoje 2 caras havia me mandado MP sobre a funзгo do money hack do s0rvete,
Bom o code й simples, pequeno porйm funcional:
• Descriзгo:
» Simples, com 1 Timer para checagem ele confere se a grana atual e compбtivel com a grana do GTA, caso nгo for ele ira fazer determinadas funзгo:
1є Iniciando:
pawn Код:
#include < a_samp >
new TimerAtuPlayer[MAX_PLAYERS];
new Grana[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
TimerAtuPlayer[playerid] = SetTimerEx("UpdatePlayer", 2000, true, "d", playerid);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
KillTimer(TimerAtuPlayer[playerid]);
return 1;
}
» Simples, lуgicamente para atualizar as informaзхes do jogador em questгo.
2є Meio:
pawn Код:
forward UpdatePlayer(playerid);
public UpdatePlayer(playerid)
{
if(GetPlayerMoney(playerid) != Grana[playerid])
{
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, Grana[playerid]);
}
return 1;
}
• Funcionalidade Grana[playerid]
» Funciona como sua segunda moeda do servidor, nela serб salva as informaзгo de tudo o que usar GivePlayerMoneyEx.
• Tenho um timer de atualizar, posso trocar por ele ?
» Sim, desde que troque o nome da callback para chamar no timer, assim chamando a callback certa e eliminando um timer a mais em seu servidor.
» OBS: Evite de utilizar a callback OnPlayerUpdate, opcional
3є stock's:
pawn Код:
stock GivePlayerMoneyEx(id, money) return Grana[id] += money;
stock GetPlayerMoneyEx(id) return Grana[id];
stock ResetPlayerMoneyEx(id) return Grana[id] = 0;
• GivePlayerMoneyEx ?
» Essa funзгo faz com que a grana colocada ou retirada seja igual a Grana[playeri] pois assim nгo serб identificado como hacker ou algo do tipo.
• GetPlayerMoneyEx ?
» Essa funзгo faz getar a Grana do jogador e nгo o GivePlayerMoney como padrгo do SA:MP
• ResetPlayerMoneyEx ?
» Essa funзгo ira resetar a grana do jogador e do GTA, fazendo assim a grana do jogador seja igual a 0 juntamente com a grana do GTA.
4є Finalizando:
• Mais por que ResetPlayerMoney ao invez de ResetPlayerMoneyEx ?
» Simples, como o s0rvete e derivados geta na raiz do SA:MP, temos que resetar a grana do GTA tambйm,
» Assim colocando as duas igual a 0
• Mais por que GivePlayerMoney ao invez de GivePlayerMoneyEx ?
» Para normalizar, temos que fazer com que a grana do GTA ficar igual a do player " Grana[playerid] "
» Assim todas as funзхes que usar " GivePlayerMoneyEx " nгo serб resetada pela public de atualizaзгo
• Como Usar ?
» Troque todas os:
GivePlayerMoney(playerid) por GivePlayerMoneyEx(playerid) exceto o que estб dentro da public de atualizaзгo da grana.
GetPlayerMoney(playerid) por GetPlayerMoneyEx(playerid) exceto o que estб dentro da public de atualizaзгo da grana.
ResetPlayerMoney(playerid) por ResetPlayerMoneyEx(playerid) exceto o que estб dentro da public de atualizaзгo da grana.
• Download
» Download tambйm disponнvel aqui.
• Crйditos:
pawn Код:
//[Full]Garfield[XDB] me ajudado com o mesmo
// Larceny me ajudado na funзгo das stocks
// DrTHE por ser vagabundo mais tb me deu dicas para diminuir o code