Ich wollte euch fragen wie man so eine Auswahl macht wie im Anhang
Danke im voraus

Wie macht man so eine Auswahl?
- [PeL]Smiley
- Geschlossen
- Erledigt
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
-
-
http://wiki.sa-mp.com/wiki/CreateMenu_DE
SoDer Beispiel ist im Link.
-
Mit der Funktion CreateMenu
PS: Allerdings würde ich dir davon abraten und stattdessen ShowPlayerDialog verwenden
mfg.
-
Wieso würdest du davon abraten?
-
Von den veralteten Menüs ist abzuraten, weil:
Quelle: http://wiki.sa-mp.com/wiki/CreateMenu_DEZudem sind sie komplizierter zu handhaben.
Außerdem sind sie, wie schon gesagt, veraltet.
Wenn du nicht mehr brauchst als 12 Items und nicht mehr als 128 Menüs hast ist es kein Problem, allerdings solltest du wissen was du machst. -
Ok dann eine andere frage wie kann ich ein dynamisches adminrangsystem machen das ich die adminnamen ingame aendern kann?
Speichersystem ist mysql r5Danke schonmal fuer deine schnelle antwort
-
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:
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
rang6Wie 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.
-
-
breadfish.de
Hat das Thema geschlossen.