- Регистрация
- 21 Окт 2011
- Сообщения
- 360
- Лучшие ответы
- 0
- Репутация
- 242
Поиск по разделу ничего не дал, поэтому решил написать FAQ.
Итак, сейчас я расскажу, как же создать меню.
Пример меню:
Ну что ж, начнем.
Для начала ко всем new добавим:
Тем самым, мы говорим, что будем использовать меню с название test.
Теперь у нас 2 варианта:
1. Создавать меню в public OnGameModeInit()
2. Или же создать отдельный паблик для меню.
Я обычно использую 2 вариант, т.к. у меня используется не одно меню.
Теперь ко всем forward добавляем
Тут всем ясно, что мы объявляем наш будущий паблик с нашими менюшками.
После в конеце мода создаем сам паблик:
И начинаем заполнять его. В итаге у нас получится:
Итак, что же мы написали, разберем построчно.
CreateMenu - создаем само меню.
"Menu" - даем название этому меню, оно будет указываться в самом верху нашего меню.
Далее после запятой идет 1 - количество колонок нашего меню.
50.0, 160.0 - положение меню на экране. Лично я узнаю это положение через программу IEV11.
90.0 - ширина нашего меню.
AddMenuItem - функция добавления в меню так скажем "Кнопки"
0 - в какой колонке будет находиться "Кнопка". Если мы создавали меню с 1 колонкой, то ставим 0. Если с двумя колонками, то будет уже выбор либо 0, либо 1, будет зависеть от того, где мы хотим, что была наша "кнопка"
"Gun" - текст который будет отображаться в меню.
Остальные строки аналогичны предыдущей.
Итак, паблик создали. Теперь идем в
И добавляем где-нибудь в начале
Тем самым мы делаем загрузку всех меню во время загрузки мода.
Что мы делаем теперь. А теперь мы заполним наши "кнопки".
Для этого следуем в паблик:
И тут уже начинаем расписывать каждую кнопку:
Итак, мы ведь помним, что мы создали 4 "кнопки".
Начинаем описывать первую "кнопку" с case 0, 2 "кнопку" с case 1, и так далее.
Опишу: при нажатии на первую "кнопку", в нашем случае Gun, игроку будет выдано дигл, дробовик, м4, и будет выдано по 100 патронов.
ShowMenuForPlayer(test,playerid); - показываем игроку наше меню, после того как он нажал первую "кнопку"
При нажатии на "кнопку" Armour игроку будет установлена броня в размере 100.
При нажатии на "кнопку" HP, игроку будет установлено ХП, в размере 100.
Закрываем меню и размораживаем игрока. Стандартная функция.
Вот и все меню создано. Ах да, чуть не забыл, команда, для вызова меню:
Что эти строки обозначают:
ShowMenuForPlayer(test,playerid); - мы показываем наше созданное меню test.
TogglePlayerControllable(playerid, 0); - замораживаем игрока.
Все, можно сохранять, компилировать и идти тестировать.
С вами был advokat48, удачи в скриптинге.
Скачать new.pwn с созданным меню:
Урок подготовил: advokat48.
Ну и напоследок скрин того что мы сделали:
-----------------------------------------
Модератор John_Bens - Тема Одобрена!
Итак, сейчас я расскажу, как же создать меню.
Пример меню:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Ну что ж, начнем.
Для начала ко всем new добавим:
PHP:
new Menu:test;
Теперь у нас 2 варианта:
1. Создавать меню в public OnGameModeInit()
2. Или же создать отдельный паблик для меню.
Я обычно использую 2 вариант, т.к. у меня используется не одно меню.
Теперь ко всем forward добавляем
PHP:
forward CreatedMenu();
После в конеце мода создаем сам паблик:
PHP:
public CreatedMenu()
{
}
PHP:
public CreatedMenu()
{
test = CreateMenu("Menu", 1, 50.0, 160.0, 90.0);
AddMenuItem(test ,0,"Gun");
AddMenuItem(test ,0,"Armour");
AddMenuItem(test ,0,"HP");
AddMenuItem(test ,0,"Close");
}
PHP:
test = CreateMenu("Menu", 1, 50.0, 160.0, 90.0);
"Menu" - даем название этому меню, оно будет указываться в самом верху нашего меню.
Далее после запятой идет 1 - количество колонок нашего меню.
50.0, 160.0 - положение меню на экране. Лично я узнаю это положение через программу IEV11.
90.0 - ширина нашего меню.
PHP:
AddMenuItem(test ,0,"Gun");
0 - в какой колонке будет находиться "Кнопка". Если мы создавали меню с 1 колонкой, то ставим 0. Если с двумя колонками, то будет уже выбор либо 0, либо 1, будет зависеть от того, где мы хотим, что была наша "кнопка"
"Gun" - текст который будет отображаться в меню.
Остальные строки аналогичны предыдущей.
Итак, паблик создали. Теперь идем в
PHP:
public OnGameModeInit()
PHP:
CreatedMenu();
Что мы делаем теперь. А теперь мы заполним наши "кнопки".
Для этого следуем в паблик:
PHP:
public OnPlayerSelectedMenuRow(playerid, row)
PHP:
public OnPlayerSelectedMenuRow(playerid, row)
{
new Menu:Check = GetPlayerMenu(playerid);
if(Check == test)
{
switch(row)
{
case 0:
{
GivePlayerWeapon(playerid, 24, 100);
GivePlayerWeapon(playerid, 25, 100);
GivePlayerWeapon(playerid, 30, 100);
SendClientMessage(playerid, 0xFFFFFF, "Вам выдали Desert Eagle, Shotgun,AK-47");
ShowMenuForPlayer(test,playerid);
}
case 1:
{
SetPlayerArmour(playerid, 100);
SendClientMessage(playerid, 0xFFFFFF, "Вам выдали броню");
ShowMenuForPlayer(test,playerid);
}
case 2:
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, 0xFFFFFF, "Вы были вылечены");
ShowMenuForPlayer(test,playerid);
}
case 4:
{
OnPlayerExitedMenu(playerid);
TogglePlayerControllable(playerid, 1);
}
}
return 1;
}
Начинаем описывать первую "кнопку" с case 0, 2 "кнопку" с case 1, и так далее.
PHP:
case 0:
{
GivePlayerWeapon(playerid, 24, 100);
GivePlayerWeapon(playerid, 25, 100);
GivePlayerWeapon(playerid, 30, 100);
SendClientMessage(playerid, 0xFFFFFF, "Вам выдали Desert Eagle, Shotgun,AK-47");
ShowMenuForPlayer(test,playerid);
ShowMenuForPlayer(test,playerid); - показываем игроку наше меню, после того как он нажал первую "кнопку"
PHP:
case 1:
{
SetPlayerArmour(playerid, 100);
SendClientMessage(playerid, 0xFFFFFF, "Вам выдали броню");
ShowMenuForPlayer(test,playerid);
}
PHP:
case 2:
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, 0xFFFFFF, "Вы были вылечены");
ShowMenuForPlayer(test,playerid);
}
PHP:
case 4:
{
OnPlayerExitedMenu(playerid);
TogglePlayerControllable(playerid, 1);
}
Вот и все меню создано. Ах да, чуть не забыл, команда, для вызова меню:
PHP:
if(strcmp(cmdtext, "/menu", true) == 0)
{
ShowMenuForPlayer(test,playerid);
TogglePlayerControllable(playerid, 0);
return 1;
}
ShowMenuForPlayer(test,playerid); - мы показываем наше созданное меню test.
TogglePlayerControllable(playerid, 0); - замораживаем игрока.
Все, можно сохранять, компилировать и идти тестировать.
С вами был advokat48, удачи в скриптинге.
Скачать new.pwn с созданным меню:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Урок подготовил: advokat48.
Ну и напоследок скрин того что мы сделали:
-----------------------------------------
Модератор John_Bens - Тема Одобрена!
Последнее редактирование: