Инвентарь

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
Пишу небольшой инвентарь для своего сервера и нашел ошибку.
Оффтоп
PHP:
ShowSelectMenu(client){
	new Handle:menu = CreateMenu(Select_Menu); 
	SetMenuTitle(menu, "Инвентарь:\n \n");
	if(Bandage[client] == true)
	{
		AddMenuItem(menu, "option1", "Бинт");
	}
	if(Healthkit[client] == true) 
	{
		AddMenuItem(menu, "option2", "Аптечка");
	}
	DisplayMenu(menu, client, 0); 
}

public Select_Menu(Handle:menu, MenuAction:action, client, option) 
{ 
	if (action == MenuAction_End) 
	{ 
		CloseHandle(menu); 
		return; 
	} 
	if (action != MenuAction_Select) return; 
	switch(option)
	{
		case 0:
		{
			if(Bandage[client])
			{
				PrintToChat(client, "Бинт");
				Bandage[client] = false;
			}
		}
		case 1:
		{
			if(Healthkit[client])
			{
				PrintToChat(client, "Аптечка");
				Healthkit[client] = false;
			}
		}
	}
}
Суть в том что.
Если выбираю Бинт, то аптечка потом не выбирается.
Если выбираю аптечку (первый раз), то бинт выбирается нормально.
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
глобальное меню, при выборе пункта мб еще раз показать меню, ну и странный метод, лучше все в одну переменную, там и циклом можно будет, кода меньше
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Здесь нельзя пользоваться switch "нажатой кнопкой", т.к. у тебя на кнопках могут меняться местами Бинт и Аптечка из-за условий:
if(Bandage[client] == true)
    {
        AddMenuItem(menu, "option1", "Бинт");
    }
    if(Healthkit[client] == true
    {
        AddMenuItem(menu, "option2", "Аптечка");
А раз так, то:
Если выбираю Бинт, то аптечка потом не выбирается
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
Hejter, у тебя пункты могут меняться местами, поэтому тользуйся не их номерами, а их описанием. "option1" .... Можешь тут передавать 1, 2, 3.. (как строки), потом при нажатии делать Str2Int и switch
 

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
глобальное меню, при выборе пункта мб еще раз показать меню, ну и странный метод, лучше все в одну переменную, там и циклом можно будет, кода меньше

Не люблю писать все в одну переменную, а может и не умею.

Добавлено через 8 минут
тользуйся не их номерами, а их описанием. "option1"
Вот так работает.

Добавлено через 5 лет
Вопрос еще назрел. Как закрыть меню игрока или он умер?
Решил. Сделала проверку жив или мертв.
 
Последнее редактирование:
Сверху Снизу