Probleme mit Fraktions Id´s bei Befehl

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,


    ich habe das Problem, das ich ein blitzer Befehl erstellt habe:


    if(strcmp(cmd, "/blitzer", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "[BENUTZUNG:] /blitzer [Funktion]");
    SendClientMessage(playerid, COLOR_WHITE, "Verfügbare Funktionen: add, remove, removeall");
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24) return SendClientMessage(playerid, COLOR_GREY, "[ERROR:] Du bist kein Oamt´ler!");
    if(strcmp(tmp,"add",true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GREY, "[BENUTZUNG:] /blitzer [add] [Geschwindigkeit] [Radius]");


    new b_speed;
    b_speed = strval(tmp);
    if(b_speed < 20 || b_speed > 180) return SendClientMessage(playerid, COLOR_GREY, "[ERROR:] Die Geschwindigkeit muss zwischen 20 und 180 km/h liegen!");


    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GREY, "[BENUTZUNG:] /blitzer [add] [Geschwindigkeit] [Radius]");


    new b_radius;
    b_radius = strval(tmp);
    if(b_radius < 5 || b_radius > 50) return SendClientMessage(playerid, COLOR_GREY, "[ERROR:] Der Radius muss zwischen 5 und 50 Meter liegen!");
    AddBlitzer(playerid,b_speed,b_radius);
    SendClientMessage(playerid, COLOR_GREEN, "[ZENTRALE:] Ein Blitzer wurde erfolgreich aufgestellt und registriert!");
    return 1;
    }
    else if(strcmp(tmp,"remove",true) == 0)
    {
    RemoveBlitzer(playerid);
    SendClientMessage(playerid, COLOR_GREEN, "[ZENTRALE:] Dieser Blitzer wurde erfolgreich abgebaut und aus der Akte entfernt!");
    return 1;
    }
    else if(strcmp(tmp,"removeall",true) == 0)
    {
    RemoveAllBlitzer();
    SendClientMessage(playerid, COLOR_GREEN, "[ZENTRALE:] Dieser Blitzer wurde erfolgreich abgebaut und aus der Akte entfernt!");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "[BENUTZUNG:] /blitzer [Funktion]");
    SendClientMessage(playerid, COLOR_WHITE, "Verfügbare Funktionen: add, remove, removeall");
    return 1;
    }
    }


    Jedoch ist es egal welche Fraktion ich bin ich kann immer einen Blitzer erstellen. Aber der Blitzer soll nur für Ordnungsamt erstellbar sein(Id 24)


    MfG. Cody09

  • Du hast einen Fehler beiif(PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24) return SendClientMessage(playerid, COLOR_GREY, "[ERROR:] Du bist kein Oamt´ler!");
    gemacht.
    Damit fragst du ab ob er ein OAmtler ist und wenn ja, bekommt der OAmtler die Nachricht Du bist kein OAmtler.
    Stattessen sollte es so aussehen:if(PlayerInfo[playerid][pMember] != 24||PlayerInfo[playerid][pLeader] != 24) return SendClientMessage(playerid, COLOR_GREY, "[ERROR:] Du bist kein Oamt´ler!");

    Statt dem "==" sollte da "!=" stehen. "!=" bedeutet, dass etwas NICHT GLEICH ist, also wenn playerid != OAmtler(ID 24) ist, Errornachricht.