Anti-Cheat GiveWeapon

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
  • Schönen Abend liebe Community,


    ich habe ein noch schwerwiegenderes Problem in meinem Anti-Cheat.


    Bei diesem Code wird man sofort gekickt ohne das man was gemacht hat:




    stock AC_GivePlayerWeapon(playerid, GunID, Muni)
    {
    //GivePlayerWeapon(playerid, GunID, Muni);
    BuyedWeapons[playerid][GunID] += Muni;
    SetTimerEx("GiveWeapons", 10, false, "ddd", playerid,GunID,Muni);
    return 1;
    }


    public GiveWeapons(playerid,GunID,Muni)
    {
    GivePlayerWeapon(playerid, GunID, Muni);
    return 1;
    }



    Und die Kick - Funktion:



    GetPlayerName(playerid, CheaterName, sizeof(CheaterName));
    for(new i = 0; i < 13; i++)
    {
    GetPlayerWeaponData(playerid, i, Waffen, Muni);
    if(Muni > BuyedWeapons[playerid][Waffen])
    {
    if(allreadybanned[playerid]==0)
    {
    if(!IsPlayerInAnyVehicle(playerid) && Waffen != 0)
    {
    new Message[300],wdata[300];
    new i = playerid;



    GuardKickPlayer(playerid,"Waffenhack");
    }
    }
    }
    }



    Ich hoffe man kann mir helfen :(


    Noch einen schönen Abend :)

  • Hallo.
    Benutze doch bitte auch die PWN Funktion (neben dem YT symbol)


    Zeig mir mal den code hier:
    GuardKickPlayer(playerid,"Waffenhack");
    Also den Public oder Stock

    "Imagine if the government went after corruption as hard as it goes after guys who run filesharing sites. Priorities. " - @Snowden
    "More worrying than FBI temporarily running a server that contained child porn, is hacking computers anywhere in the world with one warrant" - @josephfcox

  • Ändere mal:


    GetPlayerWeaponData(playerid, i, Waffen, Muni);


    zu:
    GetPlayerWeaponData(playerid, i, Waffen, Muni);
    printf("%d > %d (i: %d - Waffen: %d)", Muni, BuyedWeapons[playerid][Waffen], i, Waffen);


    Was kommt im Server Log wenn du gebannt wirst?



    PS: Probiere das mal mit dem pwn Code, wenn du den Script den du posten willst zuerst in Editor einfügst, dann alles markierst und ausschneidest, und dann hier einfügst. Funktioniert es dann?

  • [06:54:21] 1 > 0 (i: 5 - Waffen: 30)


    Das hier passiert alles nach dem Login:
    http://pastebin.com/eUnf5Ta6


    ( Die Funktion ist unter OnPlayerUpdate )

  • Von irgendwo bekommt der Spieler einen Schuss der AK47.
    Möglicherweise liegt es auch einfach daran, dass die GetPlayerWeaponData - Funktion nicht gescheit funktioniert, das Problem habe ich vor Jahren gemeldet, scheint niemanden zu interessieren.


    Ich habe das so umgangen, in dem ich einfach erst banne, wenn der Spieler 2 Schuss hat.


    if(Muni > BuyedWeapons[playerid][Waffen] && Muni > 1)


    Bleibt zu hoffen, dass sich keiner eine Kugel cheatet, wobei dafür hat man ja auch Admins.