Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 21 июл 2019, 05:07

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: HLSDK - Select players in a menu
СообщениеДобавлено: 28 июн 2017, 14:26 
Не в сети
Аватара пользователя
Зарегистрирован:
09 фев 2015, 02:46
Последнее посещение:
19 июл 2018, 16:07
Сообщения: 91
Откуда: Endcamp
How can I get the index of the player when I select their name in the menu idea?
What I can do
This is what I did
Код:
if (FStrEq(CMD_ARGV(0), "menu.test"))
{
   pPlayer->m_iMenu = 1;
   char m_szMenu[2048];
   int m_iLen;
   m_iNumbers = 0;
   m_iLen = _snprintf(m_szMenu, 2047, "Menu       1/%i\n\n", (m_iPlayerCounter / MENU_PLAYERS + ((m_iPlayerCounter % MENU_PLAYERS) ? 1 : 0)));
   for (int i = 1; i <= gpGlobals->maxClients; i++)
   {
      CBasePlayer* pPlayerLoop = AgPlayerByIndex(i);
      if (pPlayerLoop)
      {
         m_iNumbers++;
         m_iLen += _snprintf(m_szMenu + m_iLen, 2045 - m_iLen, "%i. %s | Slot number: %d\n", m_iNumbers, pPlayerLoop->GetName(), pPlayerLoop->entindex());
      }
      if (m_iNumbers == MENU_PLAYERS)
         break;
   }
   if (m_iPlayerCounter >= 9)
   {
      m_iLen += _snprintf(m_szMenu + m_iLen, sizeof m_szMenu - 1 - m_iLen, "\n9. Mas");
   }
   m_iLen += _snprintf(m_szMenu + m_iLen, sizeof m_szMenu - 1 - m_iLen, "\n0. Salir");
   AgMenu(pPlayer, MENU_KEYS, -1, AgSprintf("%s", m_szMenu), m_iLen);
   return true;
}
else if (FStrEq(CMD_ARGV(0), "menuselect"))
{
   if (CMD_ARGC() < 2)
      return true;
   int m_iSlot = atoi(CMD_ARGV(1));
   CBasePlayer* pPlayer1 = AgPlayerByIndex(m_iSlot);//This does not work just for demonstration
   switch (pPlayer->m_iMenu)
   {
   case 1:
      switch (m_iSlot)
      {
      case 0:
         pPlayer->m_iMenu = 0;
         break;
      default:
         if (pPlayer1)
         {
            AgSay(AgSprintf("Select player %s", pPlayer1->GetName()), pPlayer);
         }
         else
         {
            AgSay("The player does not exist", pPlayer);
         }
         break;
      }
      break;
   }
   return true;
}

 

_________________
Gennaro.R+
Изображение


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: HLSDK - Select players in a menu
СообщениеДобавлено: 03 июл 2017, 19:21 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
14 июл 2019, 12:15
Сообщения: 6724
You can list all 32 players, implement paging.
Store menu typeand slot values on the server when you send menu to the client (store pre client).


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: HLSDK - Select players in a menu
СообщениеДобавлено: 05 июл 2017, 21:16 
Не в сети
Аватара пользователя
Зарегистрирован:
09 фев 2015, 02:46
Последнее посещение:
19 июл 2018, 16:07
Сообщения: 91
Откуда: Endcamp
So it would be
Код:
for (int i = 1; i <= gpGlobals->maxClients; i++)
   {
      CBasePlayer* pPlayerLoop = AgPlayerByIndex(i);
      if (pPlayerLoop)
      {
         m_iNumbers++;
         m_iLen += _snprintf(m_szMenu + m_iLen, 2045 - m_iLen, "%i. %s | Slot number: %d\n", m_iNumbers, pPlayerLoop->GetName(), pPlayerLoop->entindex());
pPlayer->Test[i] = pPlayerLoop ->entindex();//I keep the Player Slot
      }
      if (m_iNumbers == MENU_PLAYERS)
         break;
   }

_________________
Gennaro.R+
Изображение


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: HLSDK - Select players in a menu
СообщениеДобавлено: 05 июл 2017, 23:40 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
14 июл 2019, 12:15
Сообщения: 6724
Код:
pPlayer->Test[m_iNumbers] = i;


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: HLSDK - Select players in a menu
СообщениеДобавлено: 06 июл 2017, 07:48 
Не в сети
Аватара пользователя
Зарегистрирован:
09 фев 2015, 02:46
Последнее посещение:
19 июл 2018, 16:07
Сообщения: 91
Откуда: Endcamp
Thank you :))

_________________
Gennaro.R+
Изображение


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB