Wie macht man so eine Auswahl?

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
  • Du brauchst eine Datenbank mit einer Tabelle, in der die Ranks stehen.
    Dann brauchst du einen Befehl, des in etwa so aussieht: /arang [rangID] [neuer Name]


    Die Ränge speicherst du in einer Variable die so aussieht:
    new aRangName[10][32]; //Angenommen du hast 10 Ränge, die maximal 32 Buchstaben lang sind.


    Wie jedes mal, solltest du natürlich erst mal einen Code haben, damit wir dir weiterhelfen können, da wir dir nicht das ganze System schreiben können/werden. ;)

  • Tabelle erstellen - Spalten: "rank", "rankName" (kannst Du nennen, wie Du möchtest)
    Rangnamen dann speichern (bspw. Spalte 1: rank = 1 & rankName = "Supporter".


    Dann machst Du ingame einen Query:

    SQL
    SELECT * FROM ranks WHERE rank = 1


    Aus diesem liest Du dann "rankName" aus und Du hast den Rangnamen.
    Alternativ kannst Du es natürlich noch in einem Array speichern, nachdem Du alle ausgelesen hast.
    Dann ändert sich natürlich der Query, da das "WHERE rank = 1" wegfällt.

  • Ich habe das zurzeit so:
    if(dialogid==DIALOG_ARANG)
    {
    if(response==0)
    {
    SendClientMessage(playerid,Rot,"Abgebrochen");
    }
    if(response==1)
    {
    }
    if(listitem == 0)
    {

    }
    }

    ocmd:arang(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdminlevel] < 6) return SendClientMessage(playerid,Rot,"M�glich ab: "COLO" Adminrank 6");
    ShowPlayerDialog(playerid,DIALOG_ARANG,DIALOG_STYLE_LIST,"Adminrangsystem","Rank 1\nRank 2\nRank 3\nRank 4\nRank 5\nRank 6\n","Wählen","Abbrechen");
    return 1;
    }

    new aRangName[6][32];


    Tabellen so erstellt:
    rang1 in einer spalte mit dem Typ text
    rang2
    rang3
    rang4
    rang5
    rang6


    Wie komme ich nun weiter?

  • if(dialogid==DIALOG_ARANG)
    {
    if(response==0)
    {
    SendClientMessage(playerid,Rot,"Abgebrochen");
    }
    if(response==1)
    {
    SetPVarInt(playerid, "gewRang", listitem+1);
    ShowPlayerDialog(playerid, DIALOG_ARANG_NAME, DIALOG_STYLE_INPUT, "Name", "Gebe den Name ein:", "Ok", "Abbrechen");
    }
    return 1;
    }


    if(dialogid == DIALOG_ARANG_NAME)
    {
    if(response == 1)
    {
    format(aRangName[GetPVarInt(playerid, "gewRang")], 32, inputtext);
    //dann ein Query, das musst du an deine Datenbank anpassen:
    new query[128];
    format(query, sizeof(query), "UPDATE tabelle SET rangname = '%s' WHERE rangid = %d", aRangName[GetPVarInt(playerid, "gewRang")], GetPVarInt(playerid, "gewRang"));
    mysql_query(query);
    }
    return 1;
    }


    Nach diesem Prinzip. Das query musst du wie gesagt anpassen, da ich den exakten Aufbau deiner Datenbank nicht kenne. Das wirst du aber hinbekommen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen