Hi ich wollte ein TeleportMenu erstellen (Turtorial)
Als erster macht ihr die ober Menu mit :
//Menus
new Menu: Teleports;// Muss Bleiben
new Menu: Teleport;
new Menu: Teleport1;
new Menu: Teleport2;
Dannmüsst ihr immer eintragen was ihr für ein menu macht (Obermenu ) z.b Teleport1 :
Teleports = CreateMenu("Teleports", 2, 200.0, 100.0, 150.0, 150.0); // MUSS BLEIBEN
AddMenuItem(Teleports, 0, "Teleport");// Immer dazu tragen was Für ein Ober Menu ( im schlimmsten falls erscheint es nicht)
AddMenuItem(Teleports, 0, "Teleport1");// Immer dazu tragen was Für ein Ober Menu ( im schlimmsten falls erscheint es nicht)
AddMenuItem(Teleports, 0, "Teleport2"); // Immer dazu tragen was Für ein Ober Menu ( im schlimmsten falls erscheint es nicht)
// Dan macht ihr die überhaupten menus die erscheinen sollen + denn untermenus
Teleports = CreateMenu("Teleport", 2, 200.0, 100.0, 150.0, 150.0);
AddMenuItem(Teleport, 0, "Tele");//UnterMenu
Teleports = CreateMenu("Teleport1", 2, 200.0, 100.0, 150.0, 150.0);
AddMenuItem(Teleport1, 0, "Tele1");//UnterMenu
Teleports = CreateMenu("Teleport2", 2, 200.0, 100.0, 150.0, 150.0);
AddMenuItem(Teleport2, 0, "Tele2");//UnterMenu
Dann macht ihr den CMD für das menu ( Irgendwo ins script ) :
if(strcmp("/telemenu", cmdtext, true, 10) == 0) // Der CmD Für das Menu
{
ShowMenuForPlayer(Teleports, playerid);/// Menu anzeigen
return 1;
}
Dann case immer die nächste zahl dazu zählen mit 0 gehtz an 0 1 2 3 ...
public OnPlayerSelectedMenuRow(playerid, row)
{
new Menu:CurrentMenu = GetPlayerMenu(playerid);
if(CurrentMenu == Teleports)
{
switch(row)
{
case 0: //Teleport
{
ShowMenuForPlayer(Teleport, playerid);//Ober Menu
}
case 1: //Teleport1
{
ShowMenuForPlayer(Teleport1, playerid);//Ober Menu
}
case 2: //Teleport2
{
ShowMenuForPlayer(Teleport2, playerid);//Ober Menu
}
}
}
Dann macht ihr zuerst das ober menu , dan nach mit case das unter mene ( hinter case muss die passende zahl wenn ihr mehr untermenus haben wollt müsst ihr mit case 0 anfangen und mit case 1 2 3 geht es weiter ...) und der port nicht zu vergessen (sind alles nur beispiel ports):
if(CurrentMenu == Teleport)//Ober Menu
{
switch(row)
{
case 0: //Tele
{
SetPlayerPos(playerid, -592.8676,904.3834,427.1366); // Der Port (Z.b Der)
SetPlayerInterior(playerid,0); // Interior
SendClientMessage(playerid, 0xFFFFFFFF, "Welcome "); // Player Message ( Nachricht de der Player bekommt)
}
}
}
if(CurrentMenu == Teleport1)//Ober Menu
{
switch(row)
{
case 0: //Tele1
{
SetPlayerPos(playerid, -592.8676,904.3834,427.1366); // Der Port (Z.b Der)
SetPlayerInterior(playerid,0); // Interior
SendClientMessage(playerid, 0xFFFFFFFF, "Welcome "); // Player Message ( Nachricht de der Player bekommt)
}
}
}
if(CurrentMenu == Teleport2)//Ober Menu
{
switch(row)
{
case 0: //Tele2
{
SetPlayerPos(playerid, -592.8676,904.3834,427.1366); // Der Port (Z.b Der)
SetPlayerInterior(playerid,0); // Interior
SendClientMessage(playerid, 0xFFFFFFFF, "Welcome ");// Player Message ( Nachricht de der Player bekommt)
}
}
}
return 1;
}
Dann Menu wird geschlossen , :
public OnPlayerExitedMenu(playerid)
{
new Menu:CurrentMenu = GetPlayerMenu(playerid);
if(Menu:CurrentMenu == Teleport)//Ober Menu
{
ShowMenuForPlayer(Teleports, playerid);
TogglePlayerControllable(playerid, 0);
}
if(Menu:CurrentMenu ==Teleport1)//Ober Menu
{
ShowMenuForPlayer(Teleports, playerid);
TogglePlayerControllable(playerid, 0);
}
if(Menu:CurrentMenu == Teleport2)//Ober Menu
{
ShowMenuForPlayer(Teleports, playerid);
TogglePlayerControllable(playerid, 0);
}
return 1;
}
das wars ich hoffe es is kein fehler drin wen ja bitte melden (hoffe es hat euch gefallen )