Fraktionsrang

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 liebe Brotfische.


    Zuerst möchte ich mich entschuldigen, wenn einige die Überschrift nicht so passend fanden. Mir wollte beim besten Willen keine bessere einfallen.


    Also. Ich benutze oft in Strings mehrere Abfragen, damit dort der richtige Rang steht.

    new level = sInfo[playerid][Fraktion];
    new mFraktion[64];
    if(level == 1) { mFraktion= "[LSPD]"; }
    else if(level == 2) { mFraktion= "[SFPD]"; }
    else if(level == 3) { mFraktion= "[LVPD]"; }


    Jetzt möchte ich dies aber nicht überall, in so vielen Funktionen/Befehlen stehen haben. Dafür wollte ich eine neue Funktion(oder wie nennt man das in dem Fall?) bestimmen. Also soetwas, wie ich schon bei SpielerName(playerid) habe:

    stock SpielerName(playerid)
    {
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    return Name;
    }


    So... Jetzt möchte ich zum Beispiel so etwas machen, dass ich bei einem String...

    format(str, sizeof(str), "%s %s sagt: %s", mFraktion, mFrakRang, SpielerName(playerid), message);

    ... nicht immer das mFrakRang einsetzen muss, was ich darüber definiert habe.


    Wie kann ich das nun machen?
    Ich habe das so etwa schon aufgebaut:

    stock Fraktionsrang()
    {
    new str[64];
    if(IstSpielerInFraktion(playerid, 1) || IstSpielerInFraktion(playerid, 2) || IstSpielerInFraktion(playerid, 3)) // LSPD || SFPD || LVPD
    {
    new level = sInfo[playerid][FrakRang];
    new mFrakRang[64];
    if(level2 == 0) { str= ""; }
    else if(level == 1) { str= "Anwärter"; }
    else if(level == 2) { str= "Officer"; }
    else if(level == 3) { str= "Polizeimeister"; }
    else if(level == 4) { str= "Polizeihauptmeister"; }
    else if(level == 5) { str= "Polizeikommissar"; }
    else if(level == 6) { str= "Polizeioberkommissar"; }
    else if(level == 7) { str= "Polizeihauptkommissar"; }
    else if(level == 8) { str= "Erster Polizei-hauptkommissar"; }
    else if(level == 9) { str= "Polizeirat"; }
    else if(level == 10) { str= "Polizeioberrat"; }
    else if(level == 11) { str= "Polizeidirektor"; }
    else if(level == 12) { str= "Leitender Polizeidirektor"; }
    }
    else if(IstSpielerInFraktion(playerid, 4)) // FBI
    {

    }
    else if(IstSpielerInFraktion(playerid, 5))// S.W.A.T.
    {

    }
    else if(IstSpielerInFraktion(playerid, 6))// Army
    {

    }
    else if(IstSpielerInFraktion(playerid, 7))// Ambulanz
    {

    }
    else if(IstSpielerInFraktion(playerid, 8))// O-Amt
    {

    }
    else if(IstSpielerInFraktion(playerid, 9))// Taxi
    {

    }
    else if(IstSpielerInFraktion(playerid, 10))// CNN
    {

    }
    }


    Ist das falsch, oder richtig? Was muss ich (besonders) beachten?



    Mit freundlichen Grüßen, und danke jetzt schon für die Hilfe,
    Bosei

  • Wie möchtest du das ganze den später einmal anwenden?


    Möchtest du es z.b. so anwenden, das "Fraktionsrang" den Text ausgibt:
    (Hier mal ein Beispiel):

    new string[128]
    format(string,sizeof(string),"%s",Fraktionsrang(playerid));


    oder soll es wie ein public aufgerufen werden, der automatisch einen Text sendet.
    das währe dann z.b. einfach nur:
    Fraktionsrang(playerid);


    Hoffe du verstehst meine frage^^

  • So sollte es dann klappen: (hoffe ich habe nichts vergessen :D)


    stock Fraktionsrang(playerid) //Du must wenn du Fraktionsrang benutzt immer eine playerid angeben
    {
    new str[64];
    if(IstSpielerInFraktion(playerid, 1) || IstSpielerInFraktion(playerid, 2) || IstSpielerInFraktion(playerid, 3)) // LSPD || SFPD || LVPD
    {
    new level = sInfo[playerid][FrakRang];
    new mFrakRang[64];
    if(level2 == 0) { str= ""; }
    else if(level == 1) { str= "Anwärter"; }
    else if(level == 2) { str= "Officer"; }
    else if(level == 3) { str= "Polizeimeister"; }
    else if(level == 4) { str= "Polizeihauptmeister"; }
    else if(level == 5) { str= "Polizeikommissar"; }
    else if(level == 6) { str= "Polizeioberkommissar"; }
    else if(level == 7) { str= "Polizeihauptkommissar"; }
    else if(level == 8) { str= "Erster Polizei-hauptkommissar"; }
    else if(level == 9) { str= "Polizeirat"; }
    else if(level == 10) { str= "Polizeioberrat"; }
    else if(level == 11) { str= "Polizeidirektor"; }
    else if(level == 12) { str= "Leitender Polizeidirektor"; }
    }
    else if(IstSpielerInFraktion(playerid, 4)) // FBI
    {

    }
    else if(IstSpielerInFraktion(playerid, 5))// S.W.A.T.
    {

    }
    else if(IstSpielerInFraktion(playerid, 6))// Army
    {

    }
    else if(IstSpielerInFraktion(playerid, 7))// Ambulanz
    {

    }
    else if(IstSpielerInFraktion(playerid, 8))// O-Amt
    {

    }
    else if(IstSpielerInFraktion(playerid, 9))// Taxi
    {

    }
    else if(IstSpielerInFraktion(playerid, 10))// CNN
    {

    }
    return str; //Gibt am ende den string aus.
    }