Wie erstelle ich Fraktionsränge mit Namen?

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,


    wollte mal fragen wie ich Fraktionsränge mit Namen erstellen kann.
    Also z.B in der Fraktion LSPD soll es Rang 1-6 geben. Rang 1-5 soll p(Member) sein und Rang 6 p(Leader) sein.
    Denn ich möchte auch Befehle schreiben die dann nur die Leader ausführen können wie z.B den /frc befehl um die Frakcars zurück zu spawnen
    und befehle die auch die Member benutzen können.


    (Und pMember und pLeader weil es abgespeichert werden soll wenn man Member oder leader ist)


    Wie mache ich dies? Hoffe mir kann jemand helfen. ;)

  • hey also mal ein Tipp ich würde an deiner Stelle das mit dem Leder nicht machen sondern z.b
    Spieler[playerid][leader] = 1;
    Nicht damit jemand einfach ein anderen Leader geben kann oder so.


    Btw
    Du erstellst eine Variable ( in dein Spieler Enum )
    Da machst du dann z.b pRang
    Und dann setzt du den höher und dann im FChat kannst du eine Funktion Schreiben wo der Name Returnt wird.

  • Also generell wuerde ich Dir erstmal nicht empfehlen das so wie in einem GodFather Script zu machen, da es meiner Meinung nach total schlecht geloest wurde. Ich meine damit, dass 2 Variablen zu erstellen, fuer mich Quatsch ist (pMember und pLeader). Ich wuerde einfach eine Variable machen, wo der Rang definiert wird und dort wird geguckt, ob der Spieler den hoechsten Rang hat, dann ist er Leader und wenn er den hoechsten Rang-1 (Abzug) hat, dann ist er Co Leader. So erparst Du Dir mit 2 Variablen zu arbeiten. Das ist an vielen Stellen einfach effektiver. Dann stellt sich hier noch die Frage, wie dynamsich Du das ganze haben willst. Ich mache es z.B. in meinem Script so, dass die Fraktionsraenge und Fraktionen generell aus der Datenbank geladen werden. Das hat den Vorteil, dass Leader In Game ihre Raenge umbennen koennen wie sie wollen. Wenn Du das ganze aber einfach nur stur im Script definiert haben willst (Raengnamen), dann brauchst Du Dir auch ueber die Dynamik keine Gedanken machen weil sich Raenge dann nicht von Spielern anpassen lassen, da sie fest definiert wurden.


    Ohne sich nicht Gedanken darueber zu machen, wie viel man Wert auf Dynamik legt, braucht man garnicht mit der Implementierung anfangen. Mach Dir also erst Gedanken wie Du das verwaltet haben moechtest und danach kann man weiterhelfen.

  • Das machst du indem du deinen Rängen einen Namen als String zuweist.


    Code
    new string[MAX_PLAYER_NAME]; //Sofern du keinen Rangnamen mit einer Länge über 25 Zeichen hast
    if(player[frak1][rang] == 1) {string = "Neuling(1)";} //Speichert "Neuling(0)" in "string"


    usw.
    Somit würde dann player der fraktion 1 mit rang 1 "Neuling(1)" im String gespeichert kriegen.
    player[frak1][rang] musst du selbstverständlich bei dir anpassen.


    Wen du es global möchtest, musst du eine neue function/stock dafür schreiben und es entsprechend für alle Einordnen so dass nur im Endeffekt im
    Script nur mit einer function arbeiten brauchst zur Wiedergabe des Rangnamens.


    Mit dieser Methode kannst du ganz individuell für alle Fraktionen seperate & unterschiedliche Namen erstellen.


    lg,
    YaBroo

    KleineHilfe 2.0

  • Genau wie deine Adminränge.
    Wenn du per MySQL Speicherst dann ganz easy.
    Du erstellst einfach eine Spalte in der MySQL Datenbank mit dem Namen "Rang"
    Und dann fragst du halt ab was da für eine Zahl drin steht, z.B. Du willst 6 Ränge dann im Script einfach definieren so:

    new FraktionRang[][] =
    {
    {"Member"},
    {"Member"},
    {"Member"},
    {"Member"},
    {"Ausbilder"},
    {"Leader"}
    };


    Dann fragst du einfach ab.
    In meinem Fall so:
    FraktionRang[SpielerInfo[playerid][pFraktionRang]]


    Sollte in der MySQL Spalte die 6 bei dem Benutzer stehen, dann ist er Leader, sollte da 1-4 Stehen ist er Member, sollte da 5 Stehen ist er Ausbilder.


    Musst du halt auf dein Script anpassen.