[FS] ANTI MONEY HACK - SERVER SIDE

Introdução.

Sempre teve esse negócio de hackear dinheiro e tals, então eu fiz isso (Eu sei que tem um monte).
Demorou por volta de 45 Minutos, mas nada muito complicado.

Funçoes.

Bom, fui criar natives e deu maior rolo >.< então, vai as forwards mesmo.

forward MoneyUpdate(); // Ele atualiza o dinheiro do player e checa se o dinheiro esta diferente. As funções estão dentro de um loop while e tem um timer nele desde o Init do GM e é executado a cada 5 seg.
forward MoneyUpdateForPlayer(playerid); // Ele apenas atualiza o dinheiro pro player.
forward MoneyCheckForPlayer(playerid, checkedid); // Checa se o dinheiro tá diferente do server. Se maior, alerta o admin se for menor, executa O MoneyUpdateForPlayer
forward SetPlayerServerMoney(playerid, ammount); // Seta a grana server side e atualiza ele
forward GivePlayerServerMoney(playerid, ammount); // mesma coisa, só que dá a grana
forward ResetPlayerServerMoney(playerid); // e aqui ele reseta

Créditos.

Créditos: Juninho_Boy.

Download.

#include



new Money[MAX_PLAYERS];
new
UpdateTimer;


forward MoneyUpdate();
forward MoneyUpdateForPlayer(playerid);
forward MoneyCheckForPlayer(playerid, checkedid);
forward SetPlayerServerMoney(playerid, ammount);
forward GivePlayerServerMoney(playerid, ammount);
forward ResetPlayerServerMoney(playerid);






public
MoneyUpdate()
{
new
i;
while(
i < MAX_PLAYERS)
{
if(
GetPlayerMoney(i) > Money[i])
{
new
ii;
while(
ii < MAX_PLAYERS)
{
if(
IsPlayerAdmin(ii))
{
new
str[80], str2[50], pName[21];
GetPlayerName(i, pName, 21);
format(str, 80, " -- O Player %s pode estar usando Cheat de Grana", pName);
format(str2, 50, " -- Client Side Money: %d | Server Side Money", GetPlayerMoney(i), Money[i]);
SendClientMessage(ii, 0xFFFFAAAA, str);
SendClientMessage(ii, 0xFFFFAAAA, str2);
}
}
}
ResetPlayerMoney(i);
GivePlayerMoney(i, Money[i]);
}
}
public
MoneyUpdateForPlayer(playerid)
{
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, Money[playerid]);
}

public
SetPlayerServerMoney(playerid, ammount)
{
Money[playerid] = ammount;
MoneyUpdateForPlayer(playerid);
}

public
GivePlayerServerMoney(playerid, ammount)
{
Money[playerid] += ammount;
MoneyUpdateForPlayer(playerid);
}

public
ResetPlayerServerMoney(playerid)
{
Money[playerid] = 0;
MoneyUpdateForPlayer(playerid);
}

public
MoneyCheckForPlayer(playerid, checkedid)
{
new
CMoney, SMoney, pName[21];
GetPlayerName(checkedid, pName, 21);
CMoney = GetPlayerMoney(checkedid);
SMoney = Money[checkedid];
// Aqui, eu criei variaveis locais pra não fazer consultas Get repetidamente
if(CMoney > SMoney)
{
new
str[80];
format(str, 80, "[!] - %s. [Client-Side: %d | Server-Side: %d]", pName, CMoney, SMoney);
SendClientMessage(playerid, 0xFFFFAAAA, str);
}
else
MoneyUpdateForPlayer(checkedid);
}
public
OnGameModeInit()
{
print(
"=============|Tecno-Samp |==============");
print(
"=====| ServerSide Money Carregado |=====");
print(
"========================================");
print(
"========= por: Juninho_Boy =============");

UpdateTimer = SetTimer("MoneyUpdate", 5000, true);
return
1;
}

public
OnGameModeExit()
{
KillTimer(UpdateTimer);
return
1;
}

Por favor, não retire os creditos, =)

Postador
Juninho_Boy

1 comentários:

Don.Salvatore disse...

HostName: [VsGames]Brasil New City[0.3e]
Address: 108.61.40.187:7719
Players: 18 / 100
Ping: 173
Mode: BNC RPG: Brasil
Map: Brasil v1.3 RPG

Postar um comentário