/occ für normale User nicht verwendbar

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 Abend,
    Wie man schon erahnen kann, bin ich ein ziemlicher Anfänger,
    und habe folgendes Problem. Der /occ Chat, kann nur von Administratoren
    verwendet werden, nicht aber von normalen Usern.



    dcmd_occ(playerid,params[])
    {
    new name[MAX_PLAYER_NAME],Text[128],string[128];
    if(sscanf(params,"s",Text))
    {
    SendClientMessage(playerid,Rot,"Benutze /occ [Text]");
    return 1;
    }
    if(OChat == 0 || PlayerInfo[playerid][Admin] == 0 && Adminlogin[playerid] == 0) //Diese Zeile meine ich
    {
    SendClientMessage(playerid,Rot,"Der OCC Chat ist Ausgeschaltet!");
    return 1;
    }
    if(PlayerInfo[playerid][Mute] == 1)
    {
    SendClientMessage(playerid,Rot,"Du bist gemutet!");
    return 1;
    }
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"((Spieler: %s schreibt: %s))",name,Text);
    SendClientMessageToAll(Weiß,string);
    return 1;
    }


    Ich würde sagen es hat etwas mit der markierten Zeile zutun,
    da ich aber nichts unüberlegt rauslöschen möchte, frage ich hier nach.

  • Du musst überprüfen, ob der Spieler, der den Befehl eingibt, auch ein Administrator ist. Falls er kein Administrator ist, sendest du ihm eine Nachricht, dass er kein Administrator ist.
    Hoffe du hast dein Problem nun gelöst.


    Es sollen ja normale User benutzen können,
    dies ist aber nicht der Fall. Ich möchte die Admin abfrage rausnehmen.

  • Mit deiner markierten Zeile fragst Du ab, ob der Spieler kein Administrator ist und ob er sich nicht als Administrator im Dienst befindet.
    Wenn Du möchtest, dass sowohl Spieler als auch Administratoren den Chat verwenden können, dann musst Du if(OChat == 0 || PlayerInfo[playerid][Admin] == 0 && Adminlogin[playerid] == 0) zu if(OChat == 0) verändern.

    Einmal editiert, zuletzt von Sheldon () aus folgendem Grund: Korrektur

  • Mit deiner markierten Zeile fragst du ab, ob der Spieler kein Administrator ist und ob er sich nicht als Administrator im Dienst befindet.
    Wenn du möchtest, dass sowohl Spieler als auch Administratoren den Chat verwenden können, dann musst du if(OChat == 0 || PlayerInfo[playerid][Admin] == 0 && Adminlogin[playerid] == 0) zu if(OChat == 0) verändern.

    Nein das steuert nur das der Spieler trotz ausgeschalteten OOC als Admin schreiben kann.


    Lösung: OOC einfach einschalten oder die if Abfrage zu if(OChat == 1... ändern oder die ganze Abfrage entfernen.

  • Lösung: OOC einfach einschalten


    daran habe ich natürlich gedacht. Auch wenn er eingeschaltet ist können normale User nicht schreiben.
    Werde mal mit



    if(OChat == 1 || PlayerInfo[playerid][Admin] == 0 && Adminlogin[playerid] == 0)

    versuchen

  • Ich übersetze dir deine markierte Zeile mal in die deutsche Sprache: Wenn der Chat deaktiviert ist oder der Spieler kein Administrator ist und sich dazu nicht als Administrator im Dienst befindet, dann sende die folgende Nachricht aus: "Der OCC Chat ist Ausgeschaltet!" Die Zeile bedeutet also, dass man als normaler Benutzer den Chat nicht verwenden kann. Mein Beitrag war daher korrekt. Mit einem zweitem Befehl kannst Du die Variable OChat dann auch ganz einfach auf den Wert 0 beziehungsweise 1 setzen.

    2 Mal editiert, zuletzt von Sheldon ()


  • Habe das gemacht, und es hat funktioniert. Vielen Dank an alle die geholfen haben :)