SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian > Релизы/Releases

Reply
 
Thread Tools Display Modes
Old 23/03/2010, 05:15 PM   #1
BaRRyS3R
Big Clucker
 
Join Date: Aug 2008
Posts: 189
Reputation: 0
Default Создаем меню

Создаем Меню.
Итак, в данном туторе, я научу делать вас меню.
В начало пишем название вашего меню к примеру:
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
BaRRyS3R is offline   Reply With Quote
Old 23/03/2010, 07:39 PM   #2
^Woozie^
Gangsta
 
^Woozie^'s Avatar
 
Join Date: Jul 2007
Posts: 716
Reputation: 15
Default Re: [Урок] Создаем меню

Отлично

Потом тоже чонить напишу. И для оптимизации, если очень много меню лучше ставить new Men = GetPlayerMenu(playerid);
А потом юзать эту переменную.
^Woozie^ is offline   Reply With Quote
Old 23/03/2010, 08:42 PM   #3
DeaD_MaN
Big Clucker
 
DeaD_MaN's Avatar
 
Join Date: Mar 2010
Posts: 136
Reputation: 0
Default Re: [Урок] Создаем меню

а не проще диалогом сделать хоть я и нуп
P.S. я водитель крана объясните плз функцию этого меню Hello например
DeaD_MaN is offline   Reply With Quote
Old 23/03/2010, 08:51 PM   #4
BaRRyS3R
Big Clucker
 
Join Date: Aug 2008
Posts: 189
Reputation: 0
Default Re: [Урок] Создаем меню

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

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


P.S. Если надо, могу написать урок по диалоговым окнам.
BaRRyS3R is offline   Reply With Quote
Old 23/03/2010, 09:57 PM   #5
^Woozie^
Gangsta
 
^Woozie^'s Avatar
 
Join Date: Jul 2007
Posts: 716
Reputation: 15
Default Re: [Урок] Создаем меню

Реально, напиши.
Я их исчо не юзал даже )
^Woozie^ is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 08:00 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.