Würde das so funktionieren ?

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
  • Hallo Breadfish,


    ich bin gerade bei ein eigenes WaffenAntiCheat zu erstellen .. nur weiß ich nicht wirklich wie das funktioniert. Generell mit AntiCheats kenne ich mich noch nicht so aus.
    Ich dachte es so für den Anfang zu machen.


    Mit 2 Variablen :
    new adminwaffe[MAX_PLAYERS];
    new shopwaffe[MAX_PLAYERS];


    Also wenn ein Administrator, einem Spieler eine Waffe gibt wird die Variable adminwaffe auf 1 gesetzt und wenn ein Spieler eine Waffe im Ammu kauft wird die Variable shopwaffe auf 1 gesetzt.
    Wenn beide Variablen auf 0 stehen so wird das als Cheat gesehen und man wird vom System gebannt.


    Aber wenn ich es so machen würde bräuchte ich doch mehrere Variablen oder ? Weil wenn sich jetzt zum Beispiel ein Spieler eine Deagle kauft wird die Variable shopwaffe auf 1 gesetzt und er sich danach eine Waffe cheatet wird man nicht gebannt weil die Variable auf 1 gesetzt wurde... Versteht ihr was ich meine ?


    Wäre cool wenn ihr mir einpaar Tipps geben würdet.


    Mit freundlichen Grüßen,
    Sandro


  • Da reicht doch ein 2 dimensionales Array. Am besten hookst du die funktionen GivePlayerWeapon und ResetPlayerWeapons was jedoch auch nichtmal notwendig ist es reicht auch da eine eigene funktion zu schreiben hauptsache die jeweilige variabel wird gesetzt beziehungsweise wieder resetet , das reseten solltest fu auch nach dem sterben eines spielers machen.


    new bool:weapons[MAX_PLAYERS][46 char];
    weapons[MAX_PLAYERS]{0} = true;
    oder


    enum Weapons:(<<= 1) {
    FIST = 1,
    Brass_Knuckles,
    };
    new Weapons:WaffenInfo[MAX_PLAYERS];

    setzen :
    WaffenInfo[0] |= FIST; //an true
    WaffenInfo[0] &= ~FIST; //aus false
    ausgeben:
    if(WaffenInfo[0] & FIST) //soll der wert true sein
    oder
    if(!(WaffenInfo[0] & FIST)) // soll der wert alles außer true sein