Hi,
ich zeige euch mal wie man ein Menü und ein Untermenü erstellt!
Als erstes geben wir dem Menü mal einen Namen und müssen es über
main definieren. Ich nehme jetzt einfach mal das Menü aus meinem Selfmade
Reallife Server
new Menu:ladenmenu;
new Menu:getraenke;
new Menu:fastfood;
new Menu:snacks;
Wenn wir die Menüs definiert haben gehen wir zu OnGameModeInit und fügen da die Menüitems von allen 4 Menüs ein.
Das erste Menü haben wir ladenmenü genannt. Also ladenmenu = CreateMenu("TEXT",....
Bei TEXT könnt ihr dem Menü einen Namen geben. Der steht wenn ihr das Menü öffnet ganz oben!
ladenmenu = CreateMenu("Shop",2, 200.0, 150.0, 120.0, 50.0);
AddMenuItem(ladenmenu,0, "Getraenke");
AddMenuItem(ladenmenu,0, "Fastfood");
AddMenuItem(ladenmenu,0, "Snacks");
getraenke = CreateMenu("Getraenke",2, 200.0, 150.0, 120.0, 50.0);
AddMenuItem(getraenke,0, "Cola");
AddMenuItem(getraenke,0, "Fanta");
AddMenuItem(getraenke,0, "Sprite");
AddMenuItem(getraenke,0, "Sprudel");
AddMenuItem(getraenke,0, "Stilles Wasser");
AddMenuItem(getraenke,0, "Paulaner Bier");
AddMenuItem(getraenke,0, "Lieblicher Weißwein");
fastfood = CreateMenu("Fastfood",2, 200.0, 150.0, 120.0, 50.0);
AddMenuItem(fastfood,0, "Bigmac");
AddMenuItem(fastfood,0, "Chesseburger");
AddMenuItem(fastfood,0, "Hamburger");
AddMenuItem(fastfood,0, "Pizza Salami");
snacks = CreateMenu("Snacks",2, 200.0, 150.0, 120.0, 50.0);
AddMenuItem(snacks,0, "Chips");
AddMenuItem(snacks,0, "Mentos");
AddMenuItem(snacks,0, "Schokolade");
AddMenuItem(snacks,0, "Gummibaerchen");
AddMenuItem(snacks,0, "Wackelpudding");
Wenn wir nun alle Menüs einen Namen gegeben haben und ein paar Items hinzugefügt haben geht es
weiter mit den Funktion, weil es soll ja was passieren wenn wir das Menü öffnen, deswegen fügen
wir nun mal die Funktionen ein. Die könnt ihr natürlich beliebig erweitern!
Folgendes schreibt ihr beim Public OnPlayerSelectedMenuRow:
public OnPlayerSelectedMenuRow(playerid, row)
{
new Menu:CurrentMenu = GetPlayerMenu(playerid);
if(CurrentMenu == ladenmenu) // Hier gehts erst mal los mit dem ladenmenü
{
switch(row)
{
case 0: //case 0 ist das erste Item im ladenmenü sprich Getränke! Wenn ein Spieler jetzt zum Beispiel getränke wählt, öffnet sich das Menü Getränke!
{
ShowMenuForPlayer(getraenke,playerid);
}
case 1:
{
ShowMenuForPlayer(fastfood,playerid); //case 1 ist das Fastfood Menü, wenn ihr case 1 also das 2 Item wählt öffnet sich das Fastfood Menü!
}
case 2:
{
ShowMenuForPlayer(snacks,playerid); //case 2 Hier öffnet sich das Snacks Menü!
}
}
}
if(CurrentMenu == getraenke) // Als erstes geht es los mit dem Menü Getränke! case 0 ist die Cola da das erste Item im Menü Getränke die Cola ist!
{
switch(row)
{
case 0:
{
GameTextForPlayer(playerid,"Cola gekauft! (-100$)",3000,3); //Wenn man die Cola kauft kommt der GameText Cola gekauft!
SetPlayerHealth(playerid,100.00); // Man bekommt volles Leben
GivePlayerMoney(playerid,-100); // Und man bekommt 100 abgezogen! Das selbe passiert auch im case 1! Case 1 ist im Menü Getränke das 2 Item usw...
}
case 1:
{
GameTextForPlayer(playerid,"Fanta gekauft! (-100$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-100);
}
case 2:
{
GameTextForPlayer(playerid,"Sprite gekauft! (-100$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-100);
}
case 3:
{
GameTextForPlayer(playerid,"Sprudel gekauft! (-100$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-100);
}
case 4:
{
GameTextForPlayer(playerid,"Stilles Wasser gekauft! (-100$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-100);
}
case 5:
{
GameTextForPlayer(playerid,"Paulaner Bier gekauft! (-100$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-100);
}
case 6:
{
GameTextForPlayer(playerid,"Lieblicher Weißwein gekauft! (-100$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-100);
}
}
}
if(CurrentMenu == fastfood) // Hier gehts mit dem Fastfoodmenü los! Hier passiert das selbe wie im Getränkemenü!
{
switch(row)
{
case 0:
{
GameTextForPlayer(playerid,"Bigmac gekauft! (-200$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-200);
}
case 1:
{
GameTextForPlayer(playerid,"Chesseburger gekauft! (-200$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-200);
}
case 2:
{
GameTextForPlayer(playerid,"Hamburger gekauft! (-200$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-200);
}
case 3:
{
GameTextForPlayer(playerid,"Pizza Salami gekauft! (-200$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-200);
}
}
}
if(CurrentMenu == snacks) // Hier fängt das Menü Snacks an! case 0 ist das erste Item im Menü Snacks so wie ich es euch schon mehrmals erklärt habe!
{
switch(row)
{
case 0:
{
GameTextForPlayer(playerid,"Chips gekauft! (-150$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-150);
}
case 1:
{
GameTextForPlayer(playerid,"Mentos gekauft! (-150$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-150);
}
case 2:
{
GameTextForPlayer(playerid,"Schokolade gekauft! (-150$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-150);
}
case 3:
{
GameTextForPlayer(playerid,"Gummibaerchen gekauft! (-150$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-150);
}
case 4:
{
GameTextForPlayer(playerid,"Wackelpudding gekauft! (-150$)",3000,3);
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-150);
}
}
}
return 1;
}
So nun sind wir fast fertig! Jetzt müssen wir das Menü nur noch aufrufen können! Das geht am besten mit einem Command.
Bei mir im Script heißt der Command /buy ihr könnt ihn ja beliebig umändern! Das bei OnPlayerCommandText einfügen:
if (strcmp("/buy", cmdtext, true) == 0)
{
ShowMenuForPlayer(ladenmenu, playerid);
return 1;
}
Das war es! Ich hoffe ihr habt alles soweit verstanden! Eigentlich ist es ja ganz simpel! Bei Fragen einfach melden!
Ihr könnt gerne das Tutorial bewerten!
MfG Markus