Arbeite lieber mit switch und Vase ist schonender
Beiträge von Kindischer Namesfaker
-
-
Ehm das kann man auch ohne Timer regeln gib doch den Neulingen direkt den reocurcenfrssenden Müll
stock _GivePlayerMoney(playerid,az)
{
if(GetPlayerMoney(playerid) != PlayerInfo[playerid][Geld]) return 1;
else PlayerInfo[playerid][Geld] += az, GivePlayerMoney(playerid,az);
return 1;
}So easy ohne timner statt return 1; bei dem ersten if deine Sache hineinschreiben (ban(); kick())
Ne ich machs auf meiner art mit dem Geld in der Variable... -
So ist der stock richtigstock GiveMoney(playerid,value)
{
SetPVarInt(playerid,"Money",GetPVarInt(playerid,"Money")+value);
Spieler[playerid][pMoney]=+value;
return value;
} -
Also die Idee ist Super.
Dafür...
Aber dann sollte dies auch von den Moderatoren manuell freigeschalten werden. -
Du sprichst schon die Textdraws so an??
new td[MAX_PLAYERS];
new td1[MAX_PLAYERS];td[playerid] = TextdrawCreate....new td[2][MAX_PLAYERS]
td[0][playerid] = TextdrawCreate...
td[1][playerid] = TextdrawCreate...
PlayerTextDrawSetString(playerid,td[0][playerid],string); -
@Music4You
bID = BuyID also käuferIch finde immer noch kein Ansatz
-
Da ich bald ein SM machen will....
Will ichn Car system machen mit /sellcar [bID] [CarSlot] [Price]
Ich würd ja gern das von Sniper nehmen aber will es selbst schreiben mit Autohaus undso...
evtl. versuch ich das in sein dyn. Carsys einzubauen...
[DT]SniperWenn du willst kannst mir dabei helfen?? Kannst das das auch als Update rein nehmen +Neuer Befehl :))
Wäre kuhl wenn jemand paar Tipps gibt.
-
Naja ich schreibs auf enums
-
CreateVehicle gibt dir ja auch was zurück (Vehicle ID) und heißt deswegen nicht "GetCreateVehicle", oder?
Wie er die Funktion nennt, und was er zurück gibt ist irrelevant, solange er durchblickt. Er kann es auch "IchMagSchokodonuts" nennen.
Siehe dazu: http://forum.sa-mp.com/showthread.php?t=255246reoarni:
WENN, dann so:
Spieler[playerid][pMoney]+=value;
Nö. Nur wenn du es auch angibst. Von selber geht nichts.
In dem Fall bei OnPlayerDisconnect: pMoney[playerid] = 0;CreateVehicle gibt dir ja auch was zurück (Vehicle ID) und heißt deswegen nicht "GetCreateVehicle", oder?
Wie er die Funktion nennt, und was er zurück gibt ist irrelevant, solange er durchblickt. Er kann es auch "IchMagSchokodonuts" nennen.
Siehe dazu: http://forum.sa-mp.com/showthread.php?t=255246reoarni:
WENN, dann so:
Spieler[playerid][pMoney]+=value;
Nö. Nur wenn du es auch angibst. Von selber geht nichts.
In dem Fall bei OnPlayerDisconnect: pMoney[playerid] = 0;
Ein neuer Spieler mit der selben ID wird ja sicher bald den Server betreten, in dem Fall wäre die Variable angenommen vom Spieler der das Spiel verlassen hat noch "12345", gibst du dem neuen Spieler dann sein Geld, so hat die Variable 12345 mehr an Wert, was nach deinem System mit != zu einem Ban führt.Variablen IMMER bei OnPlayerDisconnect resetten, sofern sie für den Spieler bestimmt sind, sie resetten sich NIE von alleine (außer du startest den Server neu).
Was empfiehlst du?enum oda PVar hab auch mehr erfahrung mit PVar -
Es ist kein RL servr PNS gibts nicht gut ehm .. Was eine Idee ist wenn er die Trinkautomaten Anim macht geld abziehen... oder per samp map editor entfernen und BSN etc machen.
Spieler[playerid][pMoney]+value; //Das hier hat keinen Sinn, und auch keinen Effekt.Warum nicht?
Arbeite eig. immer mit pvars wird das erste mal mit enum
-
Hey,
@Jerry:
Zu Punkt 6 ist es möglich, eine Toleranzgrenze einzubauen, da es meiner Meinung nach nicht möglich ist, zu überprüfen, ob der Spieler sich was am Automaten gekauft hat.z.B. if(GetPlayerMoney(playerid) >= pMoney[playerid] - 200)
Das wäre eine Toleranzgrenze von 200$
reoarni:
Du gibst dem Spieler aber garnicht das Geld ( oben rechts ) sondern speicherst es nur in die PVar.Du musst die Toleranzgrenze zudem einbauen, was aber beim Check funktioniert
Was für eine grenze?
Doch ich gebe ihm doch +value d.h input = value = Sein Money -
Also da muss ich doch mal einlenken. So sieht ein Anti Money Hack hoffentlich bei niemanden auch nur annähernd aus. Warum? Erklärungen folgen:- pMoney[playerid] = money; <= Falsch. Alleine der Aufruf deiner GiveUserMoney Funktion würde den Spieler schon bannen.
- Es fehlen sämtliche Variable-Resets, wenn der Spieler den Server verlässt.
- SetTimer("CheckMoneyHack", true), <= Alleine hier sind schon 2 Fehler. Zum einen Fehlt die Abfragezeit, also das Intervall, zum anderen gehört da ein Semikolon hin, und kein Komma.
- Du beachtest keinen Lag. Spieler mit sehr hoher Ping können gebannt werden, wenn die Variable bereits hoch gesetzt wurde, der Befehl aber noch nicht beim Spieler Client ankam. Das ist tatsächlich der Fall, hatte das bei meinem Anti Money Hack System.
- Außerdem fehlt dir jeglicher Ausschluss von Desynchronisation. Was ist das? Geh mal in einen Server, und dann lade eine größere Datei hoch, je nach Internetverbindung bist du danach im Server nicht mehr synchronisiert, was folglich zu einem Ban führt, sobald sich dein Geld per Aufruf ändert.
- Es fehlen sämtliche Ausschlüsse, dazu zählen:
- Snack Maschinen
- Ammu Nation
- Stunt Bonus
- Tune Garagen
- Pay'n'Spray
- Casino
- (...)
Da du abfragst ob GetPlayerMoney nicht der Variable entspricht, wirst du, sofern der Timer richtig gesetzt wird (siehe (1)) sofort gebannt, solltest du eine der obigen Funktionen nutzen. Das ist sehr schlecht.
Es gibt noch weitere Kriterien die unbedingt beachtet werden sollten, um falsche Bans auszuschließen. Ich habe über 1 Jahr lang mein Anti Money Hack immer wieder verbessert und mit diesen Kriterien ausgestattet. Also so was ist nicht in 5 Minuten gemacht.
Mein Stock wird aber gehen?
stock GiveMoney(playerid,value)
{
SetPVarInt(playerid,"Money",GetPVarInt(playerid,"Money")+value);
Spieler[playerid][pMoney]+value;
return value;
} -
Ich mach das auf meinr art...
pvar oda enum
stock GiveMoney(playerid,value)
{
SetPVarInt(playerid,"Money",GetPVarInt(playerid,"Money")+value);
Spieler[playerid][pMoney]+value;
return 1;
} -
Brauchst du nicht...
Der Speichert beim Disconnect sein aktuelles Money -
mhh ne eig nicht.
-
Wie denn? xD Wenn man im Script trotzdem GivePlayerMoney verwendet wie im GF
-
Könnte man nicht einfach das so machen das man nicht mit GivePlayerMoney und GetMoney sondern ein eigenes mit pvars oda enums dann würde das ercheatete Geld ihm kein Sinn machen weil er damit nix anfangen kann...
-
dini_IntSet(Spieler,"Geld",GetPlayerMoney(playerid));Beim Speichern stock.
-
Hast du schon ein Register Login sys? DiNi MySqL?
-
MbH bei mir auch...
Vllt. Defekt? Garantie?