Problem mit Ganggov

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 ein Problem mit meinem GangGov
    undzwar wenn ich /gsgov eingebe kommt das ich kein Groove Street Member binn..


    if(strcmp(cmd, "/gsgov", true) == 0 || strcmp(cmd, "/gsgoverment", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 13 || PlayerInfo[playerid][pLeader] == 13)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Grove Street Mitglied");
    return 1;
    }
    if(PlayerInfo[playerid][pRank] < 5)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du benötigst mindestens Rang 5!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /gsgov(ernment) [Nachricht]");
    return 1;
    }
    SendClientMessageToAll(COLOR_WHITE, "|___________ Grove Street ___________|");
    if(PlayerInfo[playerid][pLeader] == 13)
    {
    format(string, sizeof(string), "O.G Nigga %s: %s", sendername, result);
    }
    SendClientMessageToAll(0x00FF28FF, string);
    }
    return 1;
    }

  • if((PlayerInfo[playerid][pMember] != 13) && (PlayerInfo[playerid][pLeader] != 13)) So gehts.
    Geändert: || in && geändert, außerdem weitere Klammern hinzugefügt.
    Einmal ist es durch die Klammern übersichtlicher, und das && (logischer Operator UND) sorgt für folgendes:
    Wenn er wederMember der GroveStreet ist, noch der Leader, soll das passieren.


    Wenn du || (logischer Operator ODER) verwendest, sagt es:
    Wenn du kein member ODER kein Leader bist.
    Wenn du Member bist -> Bist du kein Leader, trifft zu.
    Wenn du Leader bist -> Bist du kein Member, trifft zu.


    ...


    //edit: Erklärung

  • if(PlayerInfo[playerid][pMember] != 13 || PlayerInfo[playerid][pLeader] != 13) return SendClientMessage(playerid, COLOR_RED,"du bist kein Member");

    :) versuch es mal so

  • if(PlayerInfo[playerid][pMember] != 13 || PlayerInfo[playerid][pLeader] != 13) return SendClientMessage(playerid, COLOR_RED,"du bist kein Member");

    Wird nicht gehen.
    Du nutzt den ODER-Operator.
    Wenn du kein Member ODER kein Leader bist, return blubb..
    Das ist doch unlogisch Deuce..
    Da muss ganz klar ein UND rein.


    //edit: Zudem habe ich ihm schon geholfen & es klappt bei ihm. Warum also nochmal falsche Methoden posten? ..

  • In dem Fall ist es egal, wenn du nämlich Leader bist kommt es nicht und wenn du kein Member bist kommt es genau so andersrum.


    /e.


    Da es GF ist , wird der Leader auch als Member eingestellt von daher funktioniert das.

  • Und wenn du nur Member bist?


    Wenn du kein Member bist ODER kein Leader bist, sage blubb.


    Wenn du kein member bist -> bin ich
    ODER wenn du kein Leader bist -> bin ich nicht -> blubb.


    D.h. als Member kannst du es nicht ausführen.


    //edit:
    Und mit dem UND?
    Wenn ich kein Member bin -> Bin ich aber
    UND kein Leader bin -> bin ich nicht, ist aber irrelevant weil die erste Bedingung im UND schon nicht stimmt.

  • Stimmt. Nun ich benutze stock :) von daher habe ich dieses Wirrwarr nicht.

  • Code?


    if(PlayerInfo[playerid][pLeader] == /*ID */)
    {
    format(string, sizeof(string), "O.G Nigga %s: %s", sendername, result);
    }

  • if(strcmp(cmd, "/lgov", true) == 0 || strcmp(cmd, "/lgoverment", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] != 5 && PlayerInfo[playerid][pLeader] != 5)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein La Cosa Nostra Mitglied");
    return 1;
    }
    if(PlayerInfo[playerid][pRank] < 5)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du benötigst mindestens Rang 5!");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /lgov(ernment) [Nachricht]");
    return 1;
    }
    SendClientMessageToAll(COLOR_WHITE, "|___________ La Cosa Nostra ___________|");
    if(PlayerInfo[playerid][pLeader] == 13)
    {
    format(string, sizeof(string), "Don %s: %s", sendername, result);
    }
    SendClientMessageToAll(0x00FF28FF, string);
    }
    return 1;
    }