Jeder kann /d chat lesen :o

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
  • Nabend,


    Habe ein Problem in meinem /d chat. Jeder kann diesen Lesen. Vllt nur ein kleiner Dummer Fehler aber ich finde ihn nicht :o


    dcmd_d(playerid,params[])
    {
    if(PlayerInfo[playerid][Leader] == 1 || PlayerInfo[playerid][Leader] == 4 || PlayerInfo[playerid][Leader] == 5)
    {
    new message[128];
    if(sscanf(params, "s", message))
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED, "/d(epartment) [Text]");
    }
    new text[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(text, sizeof(text), "**((%s: %s ))**", name, message);
    for(new i = 0; i <= MAX_PLAYERS; i++)
    {
    if(PlayerInfo[playerid][Leader] == 1 || PlayerInfo[playerid][Leader] == 4 || PlayerInfo[playerid][Leader] == 5)
    {
    SendClientMessage(i,COLOR_LIGHTRED,text);
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist in keinem Unternehmen.");
    return 1;
    }
    return 1;
    }

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

  • Tja ähm


    for(new i = 0; i <= MAX_PLAYERS; i++)
    {
    if(PlayerInfo[playerid][Leader] == 1 || PlayerInfo[playerid][Leader] == 4 || PlayerInfo[playerid][Leader] == 5)
    {
    SendClientMessage(i,COLOR_LIGHTRED,text);
    }
    }


    schon einmal genau angeschaut? Du machst eine For-Schleife mit der Variable i. so der Variable i hast du jetzt einen Wert zugewiesen, jedoch fragst du bei der if-Abfrage ab, ob der Spieler, der das Command gesendet hat, in der Fraktion, 1,4 oder 5 ist(playerid). Wenn dies übereinstimmt, sendest du an alle Spieler(For Schleife) die Message. folglich muss die if Abfrage, statt PlayerInfo[playerid][Leader] mit PlayerInfo[Leader] ersetzt werden.


    hier fertig:
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][Leader] == 1 || PlayerInfo[i][Leader] == 4 || PlayerInfo[i][Leader] == 5)
    {
    SendClientMessage(i,COLOR_LIGHTRED,text);
    }
    }


    MFG

  • Diese Variante habe ich auch versucht. Folgende entwickelung. /d chat konnte nun nicht mehr jeder lesen. Wenn ich was im /d chat schreibe und ein andere aus meiner Fraktion ist online, kann ich lesen was ich schreibe. Sollte er off gehen oder die Fraktion wechseln, kann ich nichts mehr lesen. 8|

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

  • dcmd_d(playerid,params[])
    {
    if(PlayerInfo[playerid][Leader] == 1 || PlayerInfo[playerid][Leader] == 4 || PlayerInfo[playerid][Leader] == 5 || PlayerInfo[playerid][Member] == 1 || PlayerInfo[playerid][Member] == 4 || PlayerInfo[playerid][Member] == 5)
    {
    new message[128];
    if(sscanf(params, "s[128]", message))
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED, "/d(epartment) [Text]");
    }
    new text[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(text, sizeof(text), "**((%s: %s ))**", name, message);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][Leader] == 1 || PlayerInfo[i][Leader] == 4 || PlayerInfo[i][Leader] == 5 || PlayerInfo[i][Member] == 1 || PlayerInfo[i][Member] == 4 || PlayerInfo[i][Member] == 5)
    {
    SendClientMessage(i,COLOR_LIGHTRED,text);
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist in keinem Unternehmen.");
    return 1;
    }
    return 1;
    }
    Fehlten die Member nicht ? :O
    und glaub die Schleife war Falsch.. hast <= statt < benutzt

  • Edit: Mein Aktueller /d cmd sieht so aus.



    dcmd_d(playerid,params[])
    {
    if(PlayerInfo[playerid][Leader] == 1 || PlayerInfo[playerid][Leader] == 4 || PlayerInfo[playerid][Leader] == 5)
    {
    new message[128];
    if(sscanf(params, "s", message))
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED, "/d(epartment) [Text]");
    }
    new text[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(text, sizeof(text), "**((%s: %s ))**", name, message);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][Leader] == 1 || PlayerInfo[i][Leader] == 4 || PlayerInfo[i][Leader] == 5)
    {
    if(PlayerInfo[playerid][Rank] > 0)
    {
    SendClientMessage(i,COLOR_LIGHTRED,text);
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist in keinem Unternehmen.");
    return 1;
    }
    return 1;
    }


    Wenn ich mich mit /makeleader zum Leader mache und alleine bin gehts. Wenn ich einen mit /invite invite und mich als Leader wegmache, sieht er nicht das was er geschrieben hat.
    Leader ist die Variable für eine Fraktion.
    Rank 7 bezeichnet jmd als Leader und Rank 1-6 sind die normalen Ränge. Nicht wundern das die Member fehlen :D

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

    Einmal editiert, zuletzt von Freggel ()

  • dcmd_d(playerid,params[])
    {
    if(PlayerInfo[playerid][Leader] == 1 || PlayerInfo[playerid][Leader] == 4 || PlayerInfo[playerid][Leader] == 5)
    {
    new message[128];
    if(sscanf(params, "s", message))
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED, "/d(epartment) [Text]");
    }
    new text[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(text, sizeof(text), "**((%s: %s ))**", name, message);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][Leader] == 1 || PlayerInfo[i][Leader] == 4 || PlayerInfo[i][Leader] == 5) // pass auf deine Variablen auf -.-'
    {
    if(PlayerInfo[i][Rank] > 0) // das gleiche gilt hier
    {
    SendClientMessage(i,COLOR_LIGHTRED,text);
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist in keinem Unternehmen.");
    return 1;
    }
    return 1;
    }


    So sollte das gehen, einen weiteren Fehler finde ich nicht

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski