Beitrag von Kaliber ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Nah..verlesen ().
...wenn man sich jetzt aber mehr geld cheaten würde..dann würde dieser Code nicht greifen...xD
Was verstehst du unter mehr Geld cheaten ? Ich habe mit s0beit versucht sämtliche beträge 100x zu buchen und ich komme immer wieder auf den wert der sein soll
Warte mal...Gott
Das sollte alles so stimmen..lass das alles mal so..
Ehm sicher, dass du dein Auto auch demoliert hattest ein bisschen..sonst werden keine 100$ abgezogen -_-
Kein Problem. Wir habens Nachts um 2 da darf das gerne vorkommen. Ich bin erstmal dankbar das es überhaupt jemanden gibt der mir da hilft :D.
Das Auto hat schaden ja. Es werden 100$ abgezogen. Dann sagt AntiCheat aber nein das darfst du nicht und schreibt das Geld wieder Gut weil ihm da ja die außnahme fehlt.
Eigentlich ist das aber hier die Ausnahme:
if( money < PMoney[playerid] && money > -1 ) PMoney[playerid]=money;
Denn sagen wir du hast 5.000$ auf der Hand.
Dann werden dir 100$ abgezogen.
Dann steht da, wenn:
if(4900 < 5000 && 4999 > -1) 5000 = 4900;
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, 4900);
und das ist ja alles korrekt...
Deshalb irritiert mich das ein wenig...
Hast du eventuell noch anderen Anti-Cheat Code, wo es ums Geld geht? o:
Ich habs mit dem AntiCheat scheinbar viel zu genau genommen.
Hier noch ein Teil vom AntiCheat der beim Joinen das Geld mit lädt
public OnPlayerUpdate(playerid)
{
if (IsPlayerNPC(playerid)) return 1;
new cash = GetPlayerMoney(playerid); if (cash != PlayerInfo[playerid][pMoney])
{
ResetPlayerMoney(playerid); GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]);
}
return 1;
}
Ahja, genau das dachte ich mir
Du hast 2 Geld Variablen...& 2 Geld Funktionen...
Die die du unter OnPlayerUpdate hast....macht nicht mit...lösch das mal
Ja habe ich mir auch gerade gedacht. Sinnvoll wäre es das geld wie folgt zuladen oder ?
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
also direkt aus der variable ?
...ich weiß nicht wie deine Geld geben funktionen aussehn...auf welche Variablen du zurückgreifst...
der beim Joinen das Geld mit lädt
...da steht OnPlayerUpdate nicht OnPlayerConnect....
OnPlayerUpdate..wird permanent aufgerufen..nicht nur am Anfang...
Insofern...wird permanent das Geld gecleart..und deshalb auch immer wieder zurückgesetzt.
Zeig am besten nochmal kurz deine Geld-Gebe Funktion...^^
Also derzeit lade ich das Geld garnicht mehr weil ich einen Textdraw hatte der das übernommen hat. Aber wegen den PNS´s fand ich das doof. Da konntest du mir glücklicherweise helfen. Hinzu war das mit der AntiCheat da noch etwas schwieriger.
Das funktioniert nun auch. Herzlichen dank dazu.
Ich lade das Geld derzeit aus
cache_get_value_name_int(0, "money", PlayerInfo[playerid][pMoney]);
und muss dieses mit
GivePlayerMonez
zuweisen. Da ja die AntiCheat sonst wieder meckern tut.
Teil aus dem AntiCheat was dies betrifft.
public GivePlayerMonez(playerid) return PMoney[playerid];
und im letzten Thread meine ich
GivePlayerMonez(playerid, PlayerInfo[playerid][pMoney]);
Nichts für ungut...aber das was du da so schreibst...geht alles drunter und drüber...
GivePlayerMonez z.B. hat bei dir nur einen Parameter und zwar playerid.
Unten nutzt du das mit 2 Parametern...
das macht iwi keinen Sinn xD
Und was du meintest mit..das funktioniert jetzt..weiß ich nicht was du damit meinst...
Aber da du PlayerInfo[playerid][pMoney] lädst...schreib das wenn dann so:
public OnPlayerUpdate(playerid)
{
if (IsPlayerNPC(playerid)) return 1;
static cash;
cash = GetPlayerMoney(playerid);
if (cash != PlayerInfo[playerid][pMoney])
{
if(cash < PlayerInfo[playerid][pMoney] && cash > -1) PlayerInfo[playerid][pMoney] = cash;
ResetPlayerMoney(playerid); GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]);
}
return 1;
}
Alles anzeigen
Mit dem Geld geben hat sich erledigt.
Das Include funktioniert nun Einwandfrei. Ich danke dir für deine intensive hilfe am späten Abend
Einen schönen Abend an alle