Geld abfrage

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
  • Hey,
    Ich wollte eine Geld abfrage machen, wenn der Spieler kein Geld verliert sollte er gekickt werden.
    Ich weiß allerdings nicht so genau wie ich das jetzt mache


    if(GetMoney(playerid) < menge)


    so frage ich es ab, aber muss irgendwie noch abfragen das wenn der Spieler dann kein Geld verliert das er danach gekickt wird.
    Kann mir jemand dabei helfen?
    Vielen Dank.

  • Ich weiß zwar nicht genau was du damit bezwecken willst, aber am einfachsten ist es, wenn du vorher das aktuelle Geld speicherst und nach dem Resetten das 'neue' Geld mit dem alten Geld abgleichst.

    Ich will das mit dem S0beit Detecten versuchen bekomme das nicht so wirklich hin hab schon versucht
    CMD:checkhack(playerid, params[])
    {
    new pID, menge, string[32];
    if(Spieler[playerid][pAdmin] == 0)return SendClientMessage(playerid, COLOR_GREY, ERROR_ADMIN);
    if(sscanf(params, "u", pID))return SendClientMessage(playerid, COLOR_GREY, "Benutze /checkhack [SpielerID/Name]");
    if(!IsLoggedIn(pID))return 1;
    new vehicleid = GetPlayerVehicleID(playerid);
    PutPlayerInVehicle(playerid, vehicleid, 0);
    SetPlayerPos(pID, 1024.8694,-1024.0836,32.1016);
    format(string, sizeof(string), "Spieler Geld: $%i.", GetPlayerMoney(pID));
    SendClientMessage(playerid, COLOR_GREY, string);
    if(GetMoney(playerid) < menge)return SendClientMessage(playerid, COLOR_GREY, ERROR_MONEY);
    return 1;
    }
    Weiß nicht wie ich das machen soll..

  • Achso, dann mach das lieber anders.


    Verwende anstatt GetPlayerMoney Variablen in deinem Script. Immer, wenn du etwas mit dem Geld machst ( hinzufügen, entfernen... ) kannst du die Variable anpassen. Damit kannst du dir zu 100% sicher sein, dass sich niemand Geld beschaffen kann.


    Logischerweise musst du dann bei Geldabfragen nicht auf GetPlayerMoney, sondern auf deine Variable abfragen.

  • CMD:checkhack(playerid, params[])
    {
    new pID, menge, string[32];
    if(Spieler[playerid][pAdmin] == 0)return SendClientMessage(playerid, COLOR_GREY, ERROR_ADMIN);
    if(sscanf(params, "u", pID))return SendClientMessage(playerid, COLOR_GREY, "Benutze /checkhack [SpielerID/Name]");
    if(!IsLoggedIn(pID))return 1;
    new vehicleid = GetPlayerVehicleID(playerid);
    PutPlayerInVehicle(playerid, vehicleid, 0);
    SetPlayerPos(pID, 1024.8694,-1024.0836,32.1016);
    format(string, sizeof(string), "Spieler Geld: $%i.", GetPlayerMoney(pID));
    SendClientMessage(playerid, COLOR_GREY, string);
    if(GetPlayerMoney(playerid) > GetMoney(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY,"Du hast verbotene Modifikationen installiert!");
    KickEx(pID);
    return 1;
    }
    return 1;
    }
    Hab es jetzt so geht allerdings noch immer nicht.
    Bitte um hilfe.
    @Jeffry

    Einmal editiert, zuletzt von RastaZopf. ()

  • Was steht im Server Log, wenn du diesen Print hier einfügst?
    if(GetPlayerMoney(playerid) > GetMoney(playerid))
    zu:
    printf("%d > %d", GetPlayerMoney(playerid), GetMoney(playerid));
    if(GetPlayerMoney(playerid) > GetMoney(playerid))

  • Was steht im Server Log, wenn du diesen Print hier einfügst?
    if(GetPlayerMoney(playerid) > GetMoney(playerid))
    zu:
    printf("%d > %d", GetPlayerMoney(playerid), GetMoney(playerid));if(GetPlayerMoney(playerid) > GetMoney(playerid))

    So hab es nun gemacht das kommt in der Log:


    Code
    81625 > 81625


    Ist halt mein Geld und er zieht auch nichts ab also soll er gekickt werden das habe ich so gemacht:
    if(GetPlayerMoney(playerid) > GetMoney(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY,"Du hast verbotene Modifikationen installiert!");
    KickEx(pID);
    return 1;
    }
    return 1;
    }
    geht allerdings nicht.

    2 Mal editiert, zuletzt von RastaZopf. ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Das hat nichts mit Sobeit zu tun.


    Code
    1 == 1 // true
    1 == 0 // false
    1 > 0 // true
    1 > 1 // false

    daher wird dein Code nicht ausgeführt; Die Werte siehst du ja im Log.

    Ich verstehe das nicht ganz, ich will das ja so machen wenn er kein Geld verliert das er gekickt wird und wenn er Geld verliert soll er nicht gekickt werden.. Was muss ich den genau ändern?

  • Dazu gibt es keinen Code. Die Pay'N'Sprays aktualisieren das Geld einfach so. Ebenso die Essens-/Trinkens-Automaten, der Tune-Shop und Stunt Bonuse, sowie die Ammu-Nations und Restaurants.
    Geld das dort ausgegeben wird kann vom Server nicht erkannt werden (nur bedingt, über Positionsabfragen). Wird bei einem dortigen Kauf aber kein Geld abgezogen, dann kannst du das nicht erkennen, außer mit aufwendigen Prüfungen (Health Veränderung, Waffen Veränderung, etc...).

  • Dazu gibt es keinen Code. Die Pay'N'Sprays aktualisieren das Geld einfach so. Ebenso die Essens-/Trinkens-Automaten, der Tune-Shop und Stunt Bonuse, sowie die Ammu-Nations und Restaurants.
    Geld das dort ausgegeben wird kann vom Server nicht erkannt werden (nur bedingt, über Positionsabfragen). Wird bei einem dortigen Kauf aber kein Geld abgezogen, dann kannst du das nicht erkennen, außer mit aufwendigen Prüfungen (Health Veränderung, Waffen Veränderung, etc...).

    Das ding ist mir wurde vorgeschlagen S0beit erkennen mit Paint n Spray wie soll man das den machen.. Man muss doch abfragen ob der Spieler Geld verliert, gibt es den noch eine andere Variante?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen