Falschgeld

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
  • Hi leute,


    Ich würde gerne für meinen Server falschgeld erstellen,



    Damit dass geld nicht mehr per GivePlayerMoney(playerid, BETRAG); gegeben wird soll es per GivePlayerGeld(playerid, BETRAG); gegeben werden.



    So dann soll nähmlich geprüft werden ob wenn mann sich wass dazu cheatet dass der jenige dann gekickt werden soll.


    Kennt da jemand ne möglichkeit?



    Thx im vorraus,
    [GRC]Flip

  • Sollte glaub ich klappen.
    stock GivePlayerGeld(playerid, Betrag)
    {
    definition für dein Gelbsave(playerid) = Betrag;
    return 1;
    }

  • Du erstellst eine Variable diese Speichert bei deiner Custom ,,GivePlayerMoney´´ Funktion den echten wert wie hier


    stock GivePlayerGeld(playerid,Betrag)
    {
    Deine_Var[playerid] + = Betrag;
    }


    Dann kannst du diese auch abfragen wie hier:

    stock GetPlayerGeld(playerid)
    {
    return Deine_Var[playerid];
    }


    und mit einem Timer oder durch OnPlayerUpdate prüfst du
    ob der momentane Spieler Betrage GetPlayermoney mit dem
    Betrag den du in der Var hast überein stimmt


    if(GetPlayerMoney(playerid) > Deine_Var[playerid] || GetPlayerMoney(playerid) < Deine_Var[playerid])


    wobei man sich das mit dem kleiner sparen kann, dann gibts keine probs beim Pay & Spray oder Bsn etc.
    und Geld runter cheaten daran is er dann selber schuld

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • hör auf blackfox. der hats besser erklärt ^^ viel spaß

  • Sollte glaub ich klappen.
    stock GivePlayerGeld(playerid, Betrag)
    {
    definition für dein Gelbsave(playerid) = Betrag;
    return 1;
    }



    Ö joar, blöder weiße weiß ich nicht wies geht 8|

  • if (strcmp(cmdtext, "/Geld", true) == 0)
    {
    GetPlayerGeld(playerid, +5000); // Gibt dem Spieler 5000
    return 1;
    }

  • ö joar, soweit sogut.


    Aber trotzdem weiß ich nicht, wie dass dann mit dem tatsächlichen überwachen des Geldes geht. Der spielr soll ja gekickt werden.

  • haste wohl blackfox's post übersehen ^^ scroll mal hoch

  • new SpielerGeld[MAX_PLAYERS];


    Beinhaltet als Variable in dem moment das echte Spieler geld, die normale Geld Anzeige
    in GTA zeigt diesen Betrag an und setzt sich der Variable, so kann der Spieler nicht Cheaten
    und du brauchst ihn nichtmal dafür kicken denn das Geld kann einfach wieder zurück gesetzt werden


    stock SetBack(playerid)
    {
    new oldvalue = GetPlayerMoney(playerid);
    GivePlayerMoney(playerid,-oldvalue);
    GivePlayerMoney(playerid,SpielerGeld[playerid]);
    }


    so kannst du seinen Betrag zurücksetzen, ausserdem ist die ganze Geschichte
    nur ein Tausch zwischen Variable und Standard Sa-mp Funktion, da der Spieler durch
    Trainer oder Hacks diese Variable nicht verändern kann bzw. den Wert darin nicht
    nach seinem belieben setzen


    Timer check Geld >Ist das Geld über oder unter dem variablen wert erfolgt eine Aktion > Zurücksetzen von Geld erfolgt
    Custom Funktionen können dazu genutzt werden dem Spieler sein geld zu geben bzw. zu reduzieren > Zugriff auf die Variable erfolgt > Timer erledigt durch seine Funktion den Rest.

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • new gPlayerCash[MAX_PLAYERS];


    public OnPlayerConnect(playerid)
    {
    gPlayerCash[playerid] = 0;
    return 1;
    }



    stock GivePlayerCash(playerid, amount)
    {
    gPlayerCash[playerid] += amount;
    return gPlayerCash[playerid];
    }



    public OnGameModeInit()
    {
    SetTimer("MoneyCheck",1337,true);
    return 1;
    }



    forward MoneyCheck();
    public MoneyCheck()
    {
    for(; new i = 0; i < MAX_PLAYERS; i++) {
    if(gPlayerCash[i] != GetPlayerMoney(i)) {
    Kick(i);
    }
    }
    return 1;
    }



    Dürfte funktionieren. Im "Nützliche Code Schnippsel" Thread hab ich auch irgendwo ein Anti-Cheat gepostet.


    Dürfte Seite 6 oder 7 gewesen sein.

  • Bright,


    Hab deins mal in mein Script eingebaut, 0 Errors.


    Aber, wird dass Geld auch gepseichert?


    Habe ja nen enum mit allem also bei mir pGeld

  • Nein es wird nicht gespeichert. Du musst ja auch das ganze an deine Geld-Variable anpassen.

  • und wie würds aussehen wenn ich dass speichern möchte?



    Habe dass GF Register & Login system

  • die Variable gibt werte zurück diese kannst du einfach in deine Speicher Funktione einbauen,
    aber Flip langsam muss es doch einleuchten für was variablen da sind ^^


    Variablen geben werte Zurück, nehmen wir die Funktion GetPlayerMoney
    sie gibt einen wert zurück,das ist der Betrag den der Spieler bei sich trägt
    genau so wie eine variable je nach dem man sie erstellt, wird sie auch Zurück gegeben

    Mfg. BlackFoX_UD_ alias [BFX]Explosion