Antiwaffenhack

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
  • Guten Morgen


    Ich habe mich mal dran versucht ein kleines Antiwaffenhack-System zu schreiben.


    Die Fehler die ich drin habe weiß ich nicht warum die drin sind.


    Mann soll von Adminstufe 1 bis Adminstufe 7 es nur machen dürfen
    Fehler Meldungen:


    @Jeffry

    Code
    samplernen.p(1569) : error 029: invalid expression, assumed zero


    Deher Fehler bezieht sich auf das else im antiwaffensystem


    So sieht es aus:


  • Lol ich verstehe dein System überhaupt nicht?
    Dein Adminrang ist passend returnst du? wtf?



    if(!isAdmin(playerid,1)) return SendClientMessage(playerid,grün,"Dein Adminrang ist nicht hoch genug");
    {


    Das ist dein Fehler.


    So klappt es:
    forward Antiwaffensystem(playerid,params[]);
    public Antiwaffensystem(playerid,params[])
    {
    new pID,wpID,ammo;
    if(!isAdmin(playerid,1))
    {
    if(sscanf(params,"ui",pID,wpID))return SendClientMessage(playerid,rot,"INFO: Bist kein admin");
    if(wpID<1||wpID>46)return SendClientMessage(playerid,blau,"Waffenid falsch");
    if(ammo<1||ammo>999999)return SendClientMessage(playerid,rot,"Munition nicht gefunden");
    GivePlayerWeapon(pID,wpID,ammo);
    BanEx(pID,"Waffenhack");
    SendClientMessage(playerid,blau,"Du hast dir waffen gehackt somit auch ein Bann bekommen");
    }
    else
    {
    if(isAdmin(pID,1))return SendClientMessage(pID,rot,"Dein Adminlevel ist passend.");
    if(wpID<1||wpID>46)return SendClientMessage(pID,blau,"Waffenid falsch");
    if(ammo<1||ammo>999999)return SendClientMessage(playerid,rot,"Munition nicht gefunden");
    GivePlayerWeapon(pID,wpID,ammo);
    SendClientMessage(pID,blau,"Du hast dir waffen gegeben");
    return 1;
    }
    }

  • Naja richtig lesen hilft, er hat !isAdmin geschrieben.


    Aber komisch dass mir vorher der Klammerfehler nicht aufgefallen ist, lol


    So, kurze Erklärung:


    Wenn du schon bei einer If-Abfrage ein return mit reinmachst kannst du da unter keine Klammer mehr setzen, so wie m4a_X das gemacht hat ist es richtig, deswegen ist das else auch falsch, weil es keine If-Funktion finden konnte


    (Nach meiner Erfahrung,)

    SA:MP in 2020?

  • Für mich ergibt die Abfrage kein Sinn was für ne ID die Waffe hat um den Hacker dann sogar ne Meldung zu schicken "Die Waffe gibt es nicht" xD
    Selbe mit Munition etc.

    SA:MP in 2020?


  • So klappt es:

    Das wird zwar kompiliert, aber funktionieren wird es nicht.



    Der Code von Anfang an an sich macht schon keinen Sinn, da man sich als Admin keine Waffen geben kann (kein sscanf in dem Abschnitt) und man als Spieler nur gebannt würde, wenn man sich eine Waffe gibt, über den Befehl gesteuert.
    Des Weiteren würde nicht der Spieler selbst gebannt werden, sondern der Spieler, den er per params eingibt.
    Außerdem wird in sscanf die ammo nicht ausgelesen.


    Es wäre gut zu wissen, wie denn "Antiwaffensystem" überhaupt aufgerufen wird, und mit welchen Daten, denn so wird es nicht funktionieren.