SA-MP Forums Archive
[Tutorial] Цветные меню - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+----- Forum: Релизы/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=66)
+----- Thread: [Tutorial] Цветные меню (/showthread.php?tid=555146)



Цветные меню - OKStyle - 06.01.2015



В сегодняшнем рождественском уроке я покажу как делать забытое всеми меню с цветными пунктами. Например, удобно выделять цветом в меню покупки оружия те строчки, которые игроку не доступны из-за нехватки финансов или скилла/ранга. В коде меню я показал все возможные цветовые вариации, дальше только математика и ваша фантазия.

Создадим меню:

pawn Code:
ColoredMenu = CreateMenu("Colored Menu", 2, 200.0, 100.0, 150.0, 150.0);
SetMenuColumnHeader(ColoredMenu, 0, "Row 1");
SetMenuColumnHeader(ColoredMenu, 1, "Row 2");

AddMenuItem(ColoredMenu, 0, "Row1 ~r~Item1");
AddMenuItem(ColoredMenu, 0, "Row1 ~r~~h~Item2");
AddMenuItem(ColoredMenu, 0, "Row1 ~r~~h~~h~Item3");
AddMenuItem(ColoredMenu, 0, "Row1 ~r~~h~~h~~h~Item4");
AddMenuItem(ColoredMenu, 0, "Row1 ~r~~h~~h~~h~~h~Item5");
AddMenuItem(ColoredMenu, 0, "Row1 ~r~~h~~h~~h~~h~~h~Item6");
AddMenuItem(ColoredMenu, 0, "Row1 ~g~Item7");
AddMenuItem(ColoredMenu, 0, "Row1 ~g~~h~Item8");
AddMenuItem(ColoredMenu, 0, "Row1 ~g~~h~~h~Item9");
AddMenuItem(ColoredMenu, 0, "Row1 ~g~~h~~h~~h~Item10");
AddMenuItem(ColoredMenu, 0, "Row1 ~p~Item11");

AddMenuItem(ColoredMenu, 1, "Row2 ~p~~h~Item1");
AddMenuItem(ColoredMenu, 1, "Row2 ~b~Item2");
AddMenuItem(ColoredMenu, 1, "Row2 ~b~~h~Item3");
AddMenuItem(ColoredMenu, 1, "Row2 ~b~~h~~h~Item4");
AddMenuItem(ColoredMenu, 1, "Row2 ~b~~h~~h~~h~Item5");
AddMenuItem(ColoredMenu, 1, "Row2 Item6");
AddMenuItem(ColoredMenu, 1, "Row2 ~y~Item7");
AddMenuItem(ColoredMenu, 1, "Row2 ~y~~h~Item8");
AddMenuItem(ColoredMenu, 1, "Row2 ~y~~h~~h~Item9");
AddMenuItem(ColoredMenu, 1, "Row2 ~w~Item10");
AddMenuItem(ColoredMenu, 1, "Row2 ~l~Item11");
Ну и добавим простенькие команды для показа и скрытия меню:

pawn Code:
if(strcmp(cmdtext, "/showmenu", true) == 0) return ShowMenuForPlayer(ColoredMenu, playerid);
if(strcmp(cmdtext, "/hidemenu", true) == 0) return HideMenuForPlayer(ColoredMenu, playerid);
Экспериментируйте с сочетаниями цветов и функционалом меню, однако запомните несколько очень важных моментов, которые при написании урока были добавлены в официальные WIKI:
1) В меню не может быть больше 12 строк (точнее, 13-я станет неким подобием заголовка первой колонки (цветовое оформление сохранится), а 14-я и все последующие вообще не будут показаны).
2) Колонок по-умолчанию в меню может быть не больше 2-х (с ID 0 и 1). Однако, используя вышеописанный баг, можно сделать 4.
3) Вы можете использовать только 8 кодов цвета подряд (~r~, ~g~ и другие).
4) Длина строки с текстом пункта меню не должна превышать 31 символ (всё, что выходит за рамки - не показывается).
5) Код цвета занимает в строке 3 символа: ~, буква и второй ~.

Автор: OKStyle (а также ещё один человек, который когда-то давным-давно показывал скриншот цветного меню на этом форуме).


Re: Цветные меню - Darge - 01.03.2015

Только узнал, что цвета типа ~w~~g~ и т.д. можно смешивать


Re: Цветные меню - OKStyle - 01.03.2015

А их и нельзя смешивать, только осветлять...