[Tutorial] Создаем меню
#1

Создаем Меню.
Итак, в данном туторе, я научу делать вас меню.
В начало пишем название вашего меню к примеру:
Code:
new Menu:Menu1;
Далее, в
Code:
public OnGameModeInit
мы создаем само меню:
Code:
Menu1 = CreateMenu(MyMenu, 0, Float:x, Float:y, Float:col1width, Float:col2width);
Где: MyMenu - Название меню.
0 - Количество колонок (2 - макс).
Float - Позиция меню по оси X.
Float:y - Позиция меню по оси y.
Float:col1width - Ширина для первой колонки.
Float:col2width - Ширина для второй колонки.

Далее, создадим пункты меню:
Code:
AddMenuItem(Menuname, 0, "BZzz");
Где: Menuname - название меню,в нашем случае - Menu1
0 - Номер калонки.
BZzz - Название пункта меню.

Вот мы и создали основу меню:
Code:
new Menu:menu1;
public OnGameModeInit
{
Menu1 = CreateMenu("MyMenu", 1, 50.0, 180.0, 200.0, 200.0);
AddMenuItem(menu1, 0, "Hello");
AddMenuItem(menu1, 0, "Give Deagle");
return 1;
}
Далее, Меню у нас есть, оно должно что то делать, так? Для этого находим паблик (если его нет, создаем)
Code:
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
Пишем в данный паблик:
Code:
if(GetPlayerMenu(playerid) == menu1)
	{
		switch(row)
		{
			case 0:
			{
			SendClientMessage(playerid,0x33AA33AA,"Hello");
			HideMenuForPlayer(menu1,playerid);
			}
			case 1:
			{
			GivePlayerWeapon(playerid,24,150);
			HideMenuForPlayer(menu1,playerid);
			ShowMenuForPlayer(menu2,playerid);
			}
		}
	}
Вот у нас и получилос наше первое меню

Code:
public OnPlayerSelectedMenuRow(playerid, row)
{
if(GetPlayerMenu(playerid) == menu1)
	{
		switch(row)
		{
			case 0:
			{
			SendClientMessage(playerid,0x33AA33AA,"Hello");
			HideMenuForPlayer(menu1,playerid);
			}
			case 1:
			{
			GivePlayerWeapon(playerid,24,150);
			HideMenuForPlayer(menu1,playerid);
			ShowMenuForPlayer(menu2,playerid);
			}
		}
	}
return 1;
}
Если вы хотите сделать несколько меню, делаем следующее:
Создаем X меню:
Code:
new Menu:Menu1;
new Menu:Menu2;

Menu1 = CreateMenu("MyMenu", 1, 50.0, 180.0, 200.0, 200.0);
AddMenuItem(menu1, 0, "Hello");
AddMenuItem(menu1, 0, "Give Deagle");

Menu2 = CreateMenu("MyMenu2", 1, 50.0, 180.0, 200.0, 200.0);
AddMenuItem(menu1, 0, "Bye");
AddMenuItem(menu1, 0, "Give M4");
Далее, в public OnPlayerSelectedMenuRow(playerid, row)

Пишем:
Code:
public OnPlayerSelectedMenuRow(playerid, row)
{
	if(GetPlayerMenu(playerid) == menu1)
	{
		switch(row)
		{
			case 0:
			{
			SendClientMessage(playerid,0x33AA33AA,"Hello");
			HideMenuForPlayer(menu1,playerid);
			}
			case 1:
			{
			GivePlayerWeapon(playerid,24,150);
			HideMenuForPlayer(menu1,playerid);
			ShowMenuForPlayer(menu2,playerid);
			}
		}
	}
	else	
	if(GetPlayerMenu(playerid) == menu2)
	{
		switch(row)
		{
			case 0:
			{
			SendClientMessage(playerid,0x33AA33AA,"Bye");
			HideMenuForPlayer(menu2,playerid);
			}
			case 1:
			{
			GivePlayerWeapon(playerid,31,150);
			HideMenuForPlayer(menu2,playerid);
			}
		}
	}
return 1;
}
Вот и все, ребята


Special 4 HiNT
Reply
#2

Отлично

Потом тоже чонить напишу. И для оптимизации, если очень много меню лучше ставить new Men = GetPlayerMenu(playerid);
А потом юзать эту переменную.
Reply
#3

а не проще диалогом сделать хоть я и нуп
P.S. я водитель крана объясните плз функцию этого меню Hello например
Reply
#4

Quote:
Originally Posted by DeaD_MaN
а не проще диалогом сделать хоть я и нуп
P.S. я водитель крана объясните плз функцию этого меню Hello например
это статья давно мной писалась, под 0.2.2 вроде... тогда диалогов и в помине не было =)

Водитель крана, тут hello - это не функция, а
1 Hello - добавляем строку меню.
2 Hello - сообщение в чат.


P.S. Если надо, могу написать урок по диалоговым окнам.
Reply
#5

Реально, напиши.
Я их исчо не юзал даже )
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)