Befehl funktioniert nicht wie ich will

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
  • Der Spieler hat die möglichkeit via /f [Text] einen Text an alle zusenden die in der gleichen Fraktion sind. Allerdings wenn sie /f ohne Text eingeben wird dieser auch ausgegeben.
    Was habe ich bei meinem Code vergessen um abzufragen ob ein Text geschrieben wurde ?




    ocmd:f(playerid,params[])
    {
    if(PlayerInfo[playerid][pLoggedIn]==false)return 1;
    if(isPlayerInFrakt(playerid, 0))return SendClientMessage(playerid, COLOR_RED, "Du bist in keiner Fraktion.");
    new string[128];
    if(sscanf(params,"s",string))return SendClientMessage(playerid,COLOR_RED,"Falsche Eingabe");
    {
    new fID = PlayerInfo[playerid][pMember];
    format(string,sizeof(string), "(( %s: %s ))",getPlayerName(playerid), string);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!isPlayerInFrakt(i, fID))continue;
    SendClientMessage(i, COLOR_BUSBLUE, string);
    }
    }
    return 1;
    }


    über jede hilfe bin ich dankbar.


    Liebe Grüße

  • Ja. Das ist für mich auch das wunderliche. Der Chat wird angesteuert und es wird eben nichts ausgegeben außer den Benutzernamen den ich ja weiter unten definiert habe.


    //edit


    Jetzt funktionierts. Kp was ich eben noch an dem Befehl gemacht habe aber nun gehts wie es soll


    // Edit


    Aber bei einer Sache kannst mir sicherlich helfen. Wie kann ich definieren wenn pMember == 1 ist das dort steht LSPD Benutzer Text


    und bei pMember == 2


    LVPD BEnutzer Text steht ?

    Einmal editiert, zuletzt von robbi2304 () aus folgendem Grund: Frage nicht richtig beantwortet

  • Am besten du machst ein Array irgendwo oben im Script in dem du alle Fraktionsnamen der Reihe nach definierst.
    Weiß grad nicht wie genau das in Pawn aussehen muss denke mal irgend sowas in der Art:

    Code
    new Frak_Shortnames[] = {
    "LSPD", "LVPD", "LSMD"
    };


    Und abrufen könntest du das dann so:

    Code
    format(string, sizeof(string), "Fraktion: %s", Frak_Shortnames[pMember-1]);

    Das -1 deswegen weil die Fraktionen wsl bei 1 beginnen und das Array aber bei 0 beginnt. Alertnativ könntest du natürlich auch im Array ganz vorne noch "Zivilist" oderso eintragen.

  • Soweit verstanden bis auf




    Und abrufen könntest du das dann so:

    Code
    format(string, sizeof(string), "Fraktion: %s", Frak_Shortnames[pMember-1]);

    Das -1 deswegen weil die Fraktionen wsl bei 1 beginnen und das Array aber bei 0 beginnt. Alertnativ könntest du natürlich auch im Array ganz vorne noch "Zivilist" oderso eintragen.


    Wie soll ich das Array mit pMember aufrufen wenn es garnicht vorhanden ist `?

  • Hoppla dachte du verwendest pMember als Variable für die Fraktions ID. Tust du ja auch aber eben nicht so wie ich dachte ^^


    Ich meinte das so:

    Code
    new fID = PlayerInfo[playerid][pMember];
    format(string, sizeof(string), "Fraktion: %s", Frak_Shortnames[fID-1]);


    falls es das [fID-1] so nicht akzeptiert müsstest du vorher noch das machen:

    Code
    fID--;