Problem mit Autohaus wegen ---->Anticheat..PLEASE HELP<-----

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 leute und zwa habe ich ein Anticheat das die definition auf GivePlayerPCash gesetzt hat siehe inc:
    stock GivePlayerPCash(playerid, money)
    {
    PCash[playerid] = PCash[playerid] + money;
    return PCash[playerid];
    }


    stock ResetPlayerPCash(playerid)
    {
    PCash[playerid] = 0;
    return PCash[playerid];
    }


    stock GetPlayerPCash(playerid)
    {
    return PCash[playerid];
    }

    Ist Natürlich nicht alles aber funktioniert...
    So und mein problem ist, Ich habe ein Externes Carsystem und dort habe ich folgendes gemacht:
    oben:
    #include <Anticheat>
    und dan sieht z.b. so das aus bei /autokaufen:
    else if (strcmp("/autokaufen", cmd, true, 10) == 0)
    {
    if (Spectating[playerid][0]!=-1)
    {
    if (Carlist[playerid][Typ]==-1)
    {
    new preis = Kaufliste[Spectating[playerid][0]][Preis];
    if (preis <= GetPlayerPCash(playerid))
    {
    new autohaus=Kaufliste[Spectating[playerid][0]][Autohaus];
    GivePlayerPCash(playerid, -preis);
    Carlist[playerid][Typ]=Spectating[playerid][0]; Carlist[playerid][X]=Autospawns[autohaus][X]; Carlist[playerid][Y]=Autospawns[autohaus][Y];
    Carlist[playerid][Z]=Autospawns[autohaus][Z]; Carlist[playerid][Rotation]=Autospawns[autohaus][Rotation]; Carlist[playerid][Status]=1; Carlist[playerid][Lock]=0;
    Carlist[playerid][Carid]=CreateVehicle(Kaufliste[Spectating[playerid][0]][Modelid],Carlist[playerid][X],Carlist[playerid][Y],Carlist[playerid][Z],Carlist[playerid][Rotation],-1,-1,-1);
    SetVehicleParamsForAll(Kaufliste[Spectating[playerid][0]][Carid],0,0);
    TogglePlayerControllable(playerid,1);
    Spectating[playerid][0]=-1;
    RemovePlayerFromVehicle(playerid);
    format(string,128,"Du hast dir erfolgreich für $%i ein/einen %s gekauft!",preis,Kaufliste[Carlist[playerid][Typ]][Name]);
    SendClientMessage(playerid, COLOR_RED, string);
    SendClientMessage(playerid, COLOR_GREEN, "Wenn du dein Fahrzeug zerstörst, gib /fixcar ein.");
    SendClientMessage(playerid, COLOR_GREEN, "Mit /carlock kannst du dein Fahrzeug für alle Mitspieler aufschliesen.");
    SendClientMessage(playerid, COLOR_GREEN, "Alle Befehle siehst du immer mit /carhelp .");
    SendClientMessage(playerid, COLOR_YELLOW, "Dein Auto steht beim Autohändler bereit! Viel Spas beim Fahren!");
    }
    else { format(string, 128, "Du hast nicht genug Geld für das Auto (ben?tigt: $%i)!", preis); SendClientMessage(playerid, COLOR_LIGHTRED, string); }
    }
    else { SendClientMessage(playerid, COLOR_GREY, "Man kann nur ein Auto besitzen. Benutze erst /carsell um es zu verkaufen!"); }
    }
    else { SendClientMessage(playerid, COLOR_GREY, "Du besichtigst kein Auto!"); }
    return 1;
    }


    Mein problem ist es tut sich auf dem Server garnichts.. es wird weder geld abgezoggen noch hinzugefügt.. please help...bitte bitte bitte <33

    Mein I-Net ^^

  • du musst das so machen:
    #define GivePlayerMoney GivePlayerPCash
    ohne jetzt große veränderung im Script vorzunehmen ist das die leichteste Variante!
    Das musste mit den anderen beiden auch machen


    //Und deine Anticheat funktion könnte falsch machen ich habs so

    //=========================== { Anti Money Hack
    forward Anti_GivePlayerMoney(playerid,summe);
    public Anti_GivePlayerMoney(playerid,summe)
    {
    if(IsPlayerConnected(playerid))
    {
    GivePlayerMoney(playerid, summe);
    AntiCheatGeld[playerid] += summe;
    return 1;
    }
    return 0;
    }
    forward Anti_ResetPlayerMoney(playerid);
    public Anti_ResetPlayerMoney(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    ResetPlayerMoney(playerid);
    AntiCheatGeld[playerid] = 0;
    return 1;
    }
    return 0;
    }
    forward Anti_GetPlayerMoney(playerid);
    public Anti_GetPlayerMoney(playerid)
    {
    new geld;
    if(IsPlayerConnected(playerid))
    {
    if(GetPlayerMoney(playerid) < AntiCheatGeld[playerid])
    {
    geld = GetPlayerMoney(playerid);
    }
    else
    {
    geld = AntiCheatGeld[playerid];
    }
    }
    return geld;
    }


    und dann noch in nem 1 Sek Timer

    if(GetPlayerMoney(playerid) > AntiCheatGeld[playerid])
    {
    Anti_ResetPlayerMoney(playerid);
    Anti_GivePlayerMoney(playerid, AntiCheatGeld[playerid]);
    }


    das wars dann

    Wenn Ihr noch einen Scripter braucht dann meldet euch bin noch frei!

  • Ein eigenes Callback+Forward Declaration ist vollkommen unnötig Raver.