Problem mit /fmember 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
  • Abend




    Ich habe mal wieder etwas schönes für euch :D




    und zwar wie oben schon geschrieben, habe ich ein Problem mit meinem /fmember Befehl
    Der Befehl soll folgendes bewirken, es erscheint eine Nachricht mit einer liste der Fraktions mitglieder die sich gerad in der Fraktion aufhalten
    also gerad Online auf dem Server sind.


    So das Problem nur ich sehe auch die Fraktions mitglieder aus der anderen Fraktion, warum ?




    Code:

    ocmd:fmember(playerid,params[])
    {
    new string[128],bool:online;
    //if(isPlayerInFrakt(playerid,1) || isPlayerInFrakt(playerid,2) || isPlayerInFrakt(playerid,3))return SendClientMessage(playerid,ORANGE,"Du bist in keiner Fraktion");
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerNPC(i))
    if(GetPVarInt(i,"Fraktion") == 1)
    {
    if(online == false)
    {
    SendClientMessage(playerid,0x00B71EFF,"Fraktions mitglieder online:");
    SendClientMessage(playerid,WEIS,"");
    format(string,sizeof(string),"%s | Rank: %i",SpielerName(i),GetPVarInt(i,"Rank"));
    SendClientMessage(playerid,ORANGE,string);
    online = true;
    }
    else
    {
    format(string,sizeof(string),"%s | Rank: %i",SpielerName(i),GetPVarInt(i,"Rank"));
    SendClientMessage(playerid,ORANGE,string);
    }
    return 1;
    }
    if(GetPVarInt(i,"Fraktion") == 2)
    {
    if(online == false)
    {
    SendClientMessage(playerid,0x00B71EFF,"Fraktions mitglieder online:");
    SendClientMessage(playerid,WEIS,"");
    format(string,sizeof(string),"%s | Rank: %i",SpielerName(i),GetPVarInt(i,"Rank"));
    SendClientMessage(playerid,ORANGE,string);
    online = true;
    }
    else
    {
    format(string,sizeof(string),"%s | Rank: %i",SpielerName(i),GetPVarInt(i,"Rank"));
    SendClientMessage(playerid,ORANGE,string);
    }
    }
    }
    if(online == false)
    {
    SendClientMessage(playerid,DUNKELROT,"Derzeit ist kein fraktions mitglied Online");
    }
    return 1;
    }







    Hoffe ihr könnt mir weiter helfen,




    Grüße

  • Der folgende Code sollte funktionieren, ist aber ungetestet
    ocmd:fmember(playerid,params[])
    {
    new string[128],bool:online;
    //if(isPlayerInFrakt(playerid,1) || isPlayerInFrakt(playerid,2) || isPlayerInFrakt(playerid,3))return SendClientMessage(playerid,ORANGE,"Du bist in keiner Fraktion");
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(IsPlayerNPC(i))continue;
    if(GetPVarInt(i,"Fraktion") == GetPVarInt(playerid,"Fraktion") && GetPvarInt(playerid,"Fraktion") != 0)
    {
    if(online == false)
    {
    SendClientMessage(playerid,0x00B71EFF,"Fraktions mitglieder online:");
    SendClientMessage(playerid,WEIS,"");
    format(string,sizeof(string),"%s | Rank: %i",SpielerName(i),GetPVarInt(i,"Rank"));
    SendClientMessage(playerid,ORANGE,string);
    online = true;
    }
    else
    {
    format(string,sizeof(string),"%s | Rank: %i",SpielerName(i),GetPVarInt(i,"Rank"));
    SendClientMessage(playerid,ORANGE,string);
    }
    }
    }
    if(online == false)
    {
    SendClientMessage(playerid,DUNKELROT,"Derzeit ist kein Fraktionsmitglied Online");
    }
    return 1;
    }


    Der Befehl ist nun "individuell" für den ausführenden d.h wenn der auführende in Frak 5 ist werden alle aus Frak 5 angezeigt und wenn er aus Frak 2 ist werden alle aus Frak 2 angezeigt. Außerdem hab ich noch eingefügt, dass es nicht für Zivilisten gild(ich bin mal davon ausgegangen, dass diese in Frak 0 sind) das müsstest du eventuelle anpassen