Fraktionserstellung MySQL

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
  • Da gibt es verschiedene Möglichkeiten. Die Kreativität steht dir ganz frei!
    Einer der beliebtesten ist jedenfalls, dass du einfach abfragst bei bspw. "SpielerInfo[playerid][pFraktion]" welcher integer zurückgegeben wird.. Wenn 0 zurückgegeben wird, dann ist er ein "Fraktionsloser" und bei 1 bspw. ist er ein Cop usw. .
    Den Rank kannst du dann ganz einfach über "SpielerInfo[playerid][pRank]" abfragen.. Allerdings musst du auch schon selber die Variablen definieren, denn Zugriff auf dein Script hat nicht jeder hier.


    Liebe Grüße,
    - Nynja

  • Dazu muss man ja erstmal wissen wie du speicherst.
    Wie da oben schon erwähnt kannst dj das mit Spielerinfo Bsp machen.


    Erstmal musst du bei deinem Save &load stock
    Fraktion,member und Rang speichern. In deiner Datenbank musst du die jeweiligen Spalten mit int erstellen. Dann halt die Befehle, wenn ich zuhause bin helf ich dir falls noch nicht geholfen wurde.



    Mfg



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)


  • Es wird schon in der Datenbank gespeichert und geladen.


    Wie erstelle ich die Frak Namen? Und RangNamen für die Fraktionen?

  • Wenn du das Speichern und Laden hast istja schonmal gut.
    Die Rangnamen sowie Fraktionen erstellst du folgender maßen:


    Wenn mann z.b im Fraktionschat schreiben möchte ( z.b. mit /f ) dann steht ja normalerweise zuerst der Rangname, SpielerName sowie der Text ( Praktikant GamerKing: Text )
    Bei /f machst du einfach eine abfrage ob der spieler in einer Fraktion ist. Wenn ja fragst du ab welcher Rang er ist.
    Wenn rang eins, erstellst du ein format. Wenn z.b. Leader schriebst dus genauso.


    Hier mal ein Beispiel, wie ich es gemacht hab:


    new team = Spieler[playerid][Team];
    new rank = Spieler[playerid][Rank];
    if(team == 13)
    {
    if(rank == 0){ rtext ="Neuling"; }
    else if(rank == 1){ rtext ="Eingewiesener"; }
    else if(rank == 2){ rtext ="Eventveranstalter"; }
    else if(rank == 3){ rtext ="Fahrer"; }
    else if(rank == 4){ rtext ="Finanzminister"; }
    else if(rank == 5){ rtext ="Vice-Präsident"; }
    else if(rank == 6){ rtext ="Präsident"; }
    format(string, sizeof(string), "** %s %s: %s **", rtext, SpielerName(playerid), result);
    SendFamilyMessage(13, GANGCHAT, string);
    }


    Hoffe kann dir helfen :p

  • Hast du denn die Fraktionen und die Ränge bereits erstellt (nicht mit Namen, aber mit IDs, also Zahlen)?
    Du sagst ja, du speicherst und lädst es schon, also gehe ich mal von ja aus. Poste dann bitte mal den Code, mit dem du das machst.



  • +Mein Level wird von InGame nicht Geschpeichert

  • Also hast du es doch schon...


    Nutze diese Funktionen:
    stock GetFraktionsName(fid)
    {
    new name[32];
    switch(fid)
    {
    case 0: name = "Zivilist";
    case 1: name = "LSPD";
    case 2: name = "Grove";
    //...
    default: name = "Unbekannt";
    }
    return name;
    }


    Sowie:
    stock GetRangName(fid, rang)
    {
    new name[32];
    switch(fid)
    {
    case 0:
    {
    switch(rang)
    {
    case 0: name = "Anfänger";
    case 1: name = "Pro";
    //...
    default: name = "Kein Rang";
    }
    }
    case 1:
    {
    switch(rang)
    {
    case 0: name = "Streife";
    case 1: name = "Officer";
    //...
    default: name = "Kein Rang";
    }
    }
    //...
    default: name = "Kein Rang";
    }
    return name;
    }



    Verwenden kannst du es dann so:
    new string[145];
    format(string, sizeof(string), "Ich bin in Fraktion %s und habe den Rang %s.", GetFraktionsName(SpielerInfo[playerid][pFraktion]), GetRangName(SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pFRang]));
    SendClientMessage(playerid, 0xFF0000FF, string);



    Alternativ kann man es über ein Array machen, aber ich denke für den Anfang ist das hier übersichtlicher und für dich leichter zu verstehen.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry () aus folgendem Grund: return 1 -> return name

  • Wegen meinem Code nicht, nein. Der ist so konzipiert, dass du ihn nur einfügen musst.



    Welches der Level? Und wie vergibst du das Level?


    Hier ist der des wo man Level 1 bekommt.
    Es wird aber nicht in der Daten Bank eingeschrieben