Hey, kann mir jemand erklären wie ich einen 100% sicheren Anti Money Hack mache?
Money Hack
- xFreeze
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
In dem du nicht die Geldanzeige von SA verwendest sondern ein eigenes System Scriptest.
-
Mach ne Textdraw Rüber
-
Naja, man kann ruhig die Geldanzeige von SA-MP verwenden.
Allerdings solltest Du das Geld für jeden Spieler Serverseitig in Variablen speichern. -
Jop
new Geld[MAX_PLAYERS]; //Irgenwo in script :D
forward AntiGeldHack();
//OnGameModeInitSetTimer("AntiGeldHack",1000,1);
//Neue Public
public AntiGeldHack()
{
for(new i; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
GetPlayerMoney(i,Geld);
SetPlayerMoney(i,Geld);}
return 1;
}//Stock SetPlayerMoney(playerid)
stock SetPlayerMoney(playerid, cash)
{
ResetPlayerMoney(playerid);
return GivePlayerMoney(playerid, cash);
}Musst halt alles Anpassen
Fg [GEC]Der_Elite
-
@[GEC]Der_Elite:
Das was du geposted hast wird kein Anti Money Hack schutz bieten da einfach nur GetPlayerMoney(playerid) [GetPlayerMoney gibt das aktuelle Geld zurück als Integer] und danach einfach nur gesetzt wird ohne jegliche Abfrage der Variable Geld.
-
-
Es ist also egal wenn GetPlayerMoney mehr Geld beinhaltet als die Variable Geld[playerid] ? Ist mir neu
-
Es ist also egal wenn GetPlayerMoney mehr Geld beinhaltet als die Variable Geld[playerid] ? Ist mir neu
Habe ich nicht gesagt, aber nehmen wir's mal so an:
Geldvariable (Hacker sowie normaler Spieler): 10000
Geld auf Hand vom Hacker: 9999999
Geld auf Hand von normalem Spieler: 10000Das Anti Hack-System setzt nun das Geld jede Sekunde wieder auf den Wert von der Geldvariable.
Das heißt, nach einer Sekunde:Geld auf Hand vom Hacker: 10000
Geld auf Hand von normalem Spieler: 10000Wo liegt das Problem?
Wie gesagt, man muss halt schon sein ganzes Script umschreiben, dass halt beim Kauf eines Autos oder beim Erhalten von Geld sich der Wert der Geldvariable ändert.
Und Trinkautomaten (Sprunk etc.) werden halt nicht berücksichtigt, dann muss man es halt ein bisschen "komplexer" scripten ("Wenn Geld nur 1 bis 10$ vom Wert der Geldvariable abweicht, dann lasse es so") -
Naja siehste das Geht ;D
-
-
Und Trinkautomaten (Sprunk etc.) werden halt nicht berücksichtigt, dann muss man es halt ein bisschen "komplexer" scripten ("Wenn Geld nur 1 bis 10$ vom Wert der Geldvariable abweicht, dann lasse es so")
Oder er löscht die Automaten/fragt ab ob der Spieler F drückt und in der nähe des automaten ist falls ja wert der variable um 1 verringern
-
Habe ich nicht gesagt, aber nehmen wir's mal so an:
Geldvariable (Hacker sowie normaler Spieler): 10000
Geld auf Hand vom Hacker: 9999999
Geld auf Hand von normalem Spieler: 10000Das Anti Hack-System setzt nun das Geld jede Sekunde wieder auf den Wert von der Geldvariable.
Das heißt, nach einer Sekunde:Geld auf Hand vom Hacker: 10000
Geld auf Hand von normalem Spieler: 10000Wo liegt das Problem?
Wie gesagt, man muss halt schon sein ganzes Script umschreiben, dass halt beim Kauf eines Autos oder beim Erhalten von Geld sich der Wert der Geldvariable ändert.
Und Trinkautomaten (Sprunk etc.) werden halt nicht berücksichtigt, dann muss man es halt ein bisschen "komplexer" scripten ("Wenn Geld nur 1 bis 10$ vom Wert der Geldvariable abweicht, dann lasse es so")
Falsch
GetPlayermoney gibt den Wert zurück was ingame steht
Das bedeutet er klaut einfach das aktuelle Geld und gibt es wieder.
Da ist nichts serverseitig gespeichert.Das mit den Sprunk usw kann auch rein scripten da gab es mal ein Script zu das alle positionen hatte usw..
Ich hab alle gelöscht und eigene eingebaut -
@Dark.Shadow: Ooh, danke dir für den Hinweis, ich habe die Zeile mit GetPlayerMoney ganz überlesen...
Sorry! -
for(new i; i<GetMaxPlayers(); i++) ist doch eine Schleife für jeden Spieler?
wieso nicht mit forward einer playerid,
forward antigeldhack(playerid);
public antigeldhack(playerid {
?
-
breadfish.de
Hat das Thema geschlossen.