Вопрос про меню в SourcePawn

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
521
Как вывести меню только КТ или Т?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #2
Создаешь меню, а потом

PHP:
for(new i = 1; i <= MaxClients; i++)
{
	if(IsClientInGame(i) && !IsFakeClient(i) && GetClientTeam(i) == 2) // 2 для Т и 3 для КТ
		DisplayMenu(Handle:menu, i, 20);
}
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
521
Что тут не так?

PHP:
public ControledMenu(Handle:hMenu, MenuAction:action, client, iSlot) 
{
	if ( action == MenuAction_Select )
	{
		if ( iSlot == 0 )
		{
			ShowControlMenuClient(client);
		}
	}
		else if ( action == MenuAction_End )
	{
		CloseHandle(hMenu);
	}
}

ShowControlMenuClient(client)
{
      new Handle:hMenu = CreateMenu(ControledMenucl); 
      SetMenuTitle(hMenu, "Выберите игрока:\n \n"); 
      decl String:userid[15], String:name[32]; 
      for (new i = 1; i <= MaxClients; i++) 
      { 
          if (IsClientInGame(i) && GetClientTeam(i) == 3)
          { 
              IntToString(GetClientUserId(i), userid, 15); 
              GetClientName(i, name, 32);
			  DisplayMenu(Handle:hMenu, i, 20);
          } 
      }
}

Компилятор ругается на строчку:

ShowControlMenuClient(client)
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
521
И что не так?
Добавлено через 3 минуты
PHP:
ShowControledMenu(client)
{ 
      new Handle:hMenu = CreateMenu(ControledMenu); 
      SetMenuTitle(hMenu, "Меню командования \n \n"); 
	  AddMenuItem(hMenu, NULL_STRING, "Выбрать нового командира");
      DisplayMenu(hMenu, client, MENU_TIME_FOREVER);
}

public ControledMenu(Handle:hMenu, MenuAction:action, client, iSlot) 
{
	if ( action == MenuAction_Select )
	{
		if ( iSlot == 0 )
		{
			ShowControlMenuClient(client);
		}
	}
		else if ( action == MenuAction_End )
	{
		CloseHandle(hMenu);
	}
}

ShowControlMenuClient(client)
{
      new Handle:hMenu = CreateMenu(ControledMenucl); 
      SetMenuTitle(hMenu, "Выберите игрока:\n \n"); 
      decl String:userid[15], String:name[32]; 
      for (new i = 1; i <= MaxClients; i++) 
      { 
          if (IsClientInGame(i) && GetClientTeam(i) == 3)
          { 
              IntToString(GetClientUserId(i), userid, 15); 
              GetClientName(i, name, 32);
			  DisplayMenu(Handle:hMenu, i, 20);
          } 
      }
}

public ControledMenucl(Handle:hMenu, MenuAction:action, client, iSlot) 
{
      if (action == MenuAction_End) 
      { 
            //Код
 
Последнее редактирование модератором:

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
alex2131, как именно ругается? Скопируй (в меню правой кнопкой пометить, потом Enter и копируешь сюда)
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
521
// F:\Servers\TEST\cstrike\addons\sourcemod\scripting\cjbw.sp(88) : warning 203:
symbol is never used: "client"

88 строчка - ShowControlMenuClient(client)
 

FrozDark

Участник
Сообщения
1,769
Реакции
2,050
удали оттуда client

ShowControlMenuClient(client)
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #10
WeSTMan, да пусть будет, это просто предупреждение
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
521
Да? Он мне не открывает это меню...

Добавлено через 13 минут
Так проблема решена, теперь как убрать в меню, чтобы самого себя так не было?
 
Последнее редактирование модератором:

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
1. Так проблема решена, теперь как убрать в меню, чтобы самого себя так не было?
- Передаешь клиента, в цикле делаешь условие i != client

2. Разве ошибок больше нету? Ведь в callback ControledMenu есть уже переменная hMenu, но в функции ShowControlMenuClient handle с таким же именем вновь создается, или я не о том? не помню точно..
 
Сверху Снизу