Oben steht ja eigentlich schon meine Frage ich arbeite momentan an einem Selfmade wie bekomme ich das GivePlayerMoney sicherer? Ich möchte es nicht mit Textdraw machen ich würde gern die "grüne" Geldanzeige behalten aber ich weis aus Erfahrung das diese sehr leicht zu "manipulieren" ist.
GivePlayerMoney sicherer machen?
- Pride
- 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
-
-
Immer wenn du GivePlayerMoney nutzt einer anderen Variablen auch den selben Wert hoch / runter setzen. Sobald diese 2 Werte abweichen -> Geldcheat (oder Varwert wurde nicht hoch/runter gesetzt).
-
Ich werde es mal eben testen.
-
Geldcheat (oder Varwert wurde nicht hoch/runter gesetzt).
Was ist mit PNS und Sprunks -
Du könntest auch eine Variable machen die speichert was der Spieler im gesamten Spiel bzw. seit seiner Registrierung ausgegeben und eingenommen hat.
z.b. hat der Spieler nun 100$ ausgegeben so addierst du dies in die Variable für die Ausgaben und wenn der Spieler nun 1000$ verdient in die Variable für die Einnahmen
Beim betreten bekommt er die Einnahmen und kriegt die ganzen Ausgaben abgezogen so hast du den Betrag den er aktuell hat.
-
Was ist mit PNS und SprunksLöschen oder berücksichtigen (Abfragen in welcher Zeit er wie oft was gedrückt hat in einer Sekunde 5x F ist gleich so viel ich weis 1x Essen also 1 Dollar verlust somit wird in der Var 1 Dollar abgezogen und wenn er in einem PNS ist kann er nur 1x sprayen also -100 dann muss er raus dann wird nicht mehr berücksichtigt wieder rein maximal -100 Dollar etc.)
-
Was ist mit PNS und Sprunks
Benötige ich eh nicht (Selfmade)
Ich habe es jetzt so gemacht.. oben in meinem enum 'geld' reingehauen...
dann hab ich einen Timer erstellt in Dauerschleife der das hier aufruft:public geldcheck(playerid)
{
if(GetPlayerMoney(playerid)==pInfo[playerid][geld])
{
ClearChat(playerid);
new string[128];
format(string,sizeof(string),"Spieler %s hat sich spontan dafür entschieden zugehen.. (Grund: Hack)",getplayername(playerid));
SendClientMessageToAll(rot,string);
SendClientMessage(playerid,rot,"Hack: Geldcheat");
SendClientMessage(playerid,weiss,"Sollte dies nicht richtig sein melde dich bitte im Teamspeak!");
Ban(playerid);
}
return 1;
} -
Was ist mit PNS und Sprunks
Wenn die Differenz zwischen Variable und GetPlayerMoney nicht größer als 100€ ist das Geld einfach wieder auf die Variable zurrücksetzen. Dann ist zwar der PNS umsonst aber das ist die einfachste Methode. -
Es wird aber irgendwie nicht in die MySQL Datenbank gesetzt..
Unter SavePlayer hab ich das hier pInfo[playerid][geld]=GetPlayerMoney(playerid);
und unter LoadPlayer das hier GivePlayerMoney(playerid,pInfo[playerid][geld]);
logischerweise hab ich auch noch den ganzen anderen mist mit der mysql query
da drinnen. -
if(GetPlayerMoney(playerid)==pInfo[playerid][geld]) -> Ban
??
Junge du hast das System nicht gepeilt :D.
if(GetPlayerMoney(playerid)!=pInfo[playerid][geld]) -> Ban! -
if(GetPlayerMoney(playerid)!=pInfo[playerid][geld])
Das ist auch nicht schlau, was ist, wenn er am Lebensautomat war oder Tuning-Garage?Hier, so kannst du es einfach machen: [ SCRIPTING ] Anti Moneyhack
Beachte, dass du das in ein Include schreiben solltest
mfg.
-
Kali.. Automaten sind egal brauch ich nicht genauso wie die Tuning Garagen
-
Das ist auch nicht schlau, was ist, wenn er am Lebensautomat war oder Tuning-Garage?Hier, so kannst du es einfach machen: [ SCRIPTING ] Anti Moneyhack
Beachte, dass du das in ein Include schreiben solltest
mfg.
Sorry aber lies dir mal die vorherigen Beiträge durch.
-
[DT]midomen: Anstatt '!=' würde '>' eher passen. .
Ansonsten 》'Ich wurde gebannt, weil ich weniger Geld hatte, als der Server es eingespeichert hat!'
Das ist glaube ich nicht so gut. .. -
Für so welche Fälle schreibt man sich Extra Funktionen
//Zum Geld addieren
stock GivePlayerMoneyEx(playerid, amount){
SetPVarInt(playerid, "geld", GetPVarInt(playerid, "geld") + amount );
GivePlayerMoney(playerid, amount);
}//Zum Geld setzen
stock SetPlayerMoneyEx(playerid, amount){
SetPVarInt(playerid, "geld", 0);
GivePlayerMoneyEx(playerid, amount);
}//Zum geld auslesen
stock GetPlayerMoneyEx(playerid)return GetPVarInt(playerid, "geld");//Der Timer den du irgendwo starten musst (optional)
SetTimerEx("@Timer", 1000, true, "i", playerid);//Der Timer an sich!
@Timer(playerid); @Timer(playerid){
if(GetPlayerMoney(playerid) > GetPlayerMoneyEx(playerid)){
//Geldcheat
}
return 1;
}Falls der Code Fehlerhaft dann tut es mir leid (ich bin grad noch im halbschlaf)
-
breadfish.de
Hat das Thema geschlossen.