Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Поиск

[ вход ]
[ последние сообщения ]

  • Страница 2 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Форум » SourceMod >> CS:Source >> CSGO » Уроки SourceMod (SourcePawn) Скриптинга » Создание Меню (CreatePanel, CreateMenu)
Создание Меню
Naykon Дата: Суббота, 20.10.2012, 12:28:48 | Сообщение # 16
Сообщений: 439
Репутация: -4 [ +/- ]
ну да ну да))) спс

Добавлено (20.10.2012, 12:28:48)
---------------------------------------------
Как совершидь действие если пункт меню не был выбран?

 
scorpion2904 Дата: Вторник, 30.10.2012, 16:40:41 | Сообщение # 17
Сообщений: 68
Репутация: 5 [ +/- ]
Как сделать, чтобы опция в меню называлась значением переменной? Например, если s[client] = 12, то опция в меню у этого игрока тоже будет 12.

Пробовал сделать так:

Code
decl String:sp[3];
IntToString(s[client], sp, 3);  
AddMenuItem(menu, "", "%s", sp);


, но не получилось
 
Scarface_slv Дата: Вторник, 30.10.2012, 22:28:45 | Сообщение # 18
Сообщений: 737
Репутация: 61 [ +/- ]
AddMenuItem(menu, sp, sp);
 
scorpion2904 Дата: Среда, 31.10.2012, 09:05:28 | Сообщение # 19
Сообщений: 68
Репутация: 5 [ +/- ]
А если после sp идет еще текст?
 
Scarface_slv Дата: Среда, 31.10.2012, 09:26:49 | Сообщение # 20
Сообщений: 737
Репутация: 61 [ +/- ]
decl String:format[50];
Format(format, sizeof(format), "бла бла бла %d бла бла", s[client]);
AddMenuItem(menu, format, format);
 
wISE Дата: Четверг, 08.11.2012, 20:58:18 | Сообщение # 21
Сообщений: 1
Репутация: 0 [ +/- ]
Помогите создать такое меню:

При команде "move" всех игроков перекидывает за наблюдателей.
И появляется меню с выбором 1 игрока из всех наблюдателей за кт с названем меню "2 игрок",
потом опять появляется меню с выбором 2 игрока за т с названем меню "2 игрок".

Заранее благодарю, сегодня с обеда сижу и ничего не получается.


Сообщение отредактировал wISE - Четверг, 08.11.2012, 20:59:34
 
Scarface_slv Дата: Суббота, 10.11.2012, 12:43:08 | Сообщение # 22
Сообщений: 737
Репутация: 61 [ +/- ]
А как те помочь? За тебя все написать? Может пример своей работы кинешь там где не получается там и помогут
 
Naykon Дата: Четверг, 06.12.2012, 14:18:11 | Сообщение # 23
Сообщений: 439
Репутация: -4 [ +/- ]
Code
QuestionsRules(client)
{
    new Handle:SkinMenu2 = CreateMenu(QuestionsRulesSelect);
    if (Question == 1)
   {
   SetMenuTitle(SkinMenu2, "Вопрос 1\n \n");
    AddMenuItem(SkinMenu2, "1", "ответ1");
    AddMenuItem(SkinMenu2, "2", "ответ1");
    AddMenuItem(SkinMenu2, "3", "ответ1");
   }
    if (Question == 2)
   {
   SetMenuTitle(SkinMenu2, "Вопрос 1\n \n");
    AddMenuItem(SkinMenu2, "1", "ответ1");
    AddMenuItem(SkinMenu2, "2", "ответ1");
    AddMenuItem(SkinMenu2, "3", "ответ1");
   }
    if (Question == 3)
   SetMenuTitle(SkinMenu2, "Вопрос 1\n \n");
    AddMenuItem(SkinMenu2, "1", "ответ1");
    AddMenuItem(SkinMenu2, "2", "ответ1");
   }
    if (Question == 4)
   {
   SetMenuTitle(SkinMenu2, "Вопрос 1\n \n");
    AddMenuItem(SkinMenu2, "1", "ответ1");
    AddMenuItem(SkinMenu2, "2", "ответ1");
    AddMenuItem(SkinMenu2, "3", "ответ1");
   }
       SetMenuExitButton(SkinMenu2, false);
       DisplayMenu(SkinMenu2, client, 8);
}  

public QuestionsRulesSelect(Handle:menu, MenuAction:action, client, i)
{
   if (action == MenuAction_End)
      {
    PrintToChatAll("Убил менюху");
          CloseHandle(menu);
          return;  
  }
       if (action == MenuAction_Select)
       {
     decl String:Info[300];
     decl String:Skin[300];
           GetMenuItem(menu, i, Info, sizeof(Info), _, Skin, sizeof(Skin));
     if (Question == 1)
   {
      if (StrEqual(Info, "2") || StrEqual(Info, "3"))
      {  
        CS_SwitchTeam(client, 2);  
      CS_RespawnPlayer(client);
      PrintToChatAll("%N валит", client);
      }
      else
      {
       PrintToChatAll("%N правильно.", client);
     ChTeam[client] = 1;
      }
   }
     if (Question == 2)
   {
      if (StrEqual(Info, "1") || StrEqual(Info, "3"))
      {  
        CS_SwitchTeam(client, 2);  
      CS_RespawnPlayer(client);
      PrintToChatAll("%N валит", client);
      }
      else
      {
       PrintToChatAll("%N правильно", client);
     ChTeam[client] = 1;
      }
   }
     if (Question == 3)
   {
      if (StrEqual(Info, "2"))
      {  
        CS_SwitchTeam(client, 2);  
      CS_RespawnPlayer(client);
      PrintToChatAll("%N валит.", client);
      }
      else
      {
       PrintToChatAll("%N правильно", client);
     ChTeam[client] = 1;
      }
   }
     if (Question == 4)
   {
      if (StrEqual(Info, "1") || StrEqual(Info, "3"))
      {  
        CS_SwitchTeam(client, 2);  
      CS_RespawnPlayer(client);
      PrintToChatAll("%N валит.", client);
      }
      else
      {
       PrintToChatAll("%N правильно", client);
     ChTeam[client] = 1;
      }
   }
  }
   else if (action == MenuAction_Cancel || i == MenuCancel_Timeout)
      {
   CS_SwitchTeam(client, 2);  
   CS_RespawnPlayer(client);
   PrintToChatAll("Игрок %N выкинут", client);
      }  
}


В общем радмомом для каждого игрока СТ выбирается вопрос если он отвечает не правильно то переходит за другую команду...
По началу раунда все работает вроде ок. Но потом когда отвечаешь правильно - защитывется как будто ты не праивльно ответил... я думаю это связано с тем что несколько игроков отвечают на вопросы а ответы ихние перемешиваются... но это предположение..

Почему так происходит?
 
volodya Дата: Суббота, 06.04.2013, 19:10:20 | Сообщение # 24
Сообщений: 14
Репутация: 0 [ +/- ]
Как сделать чтобы при выборе опции ON или OFF текст переходил с [ ] на [X] ? Дайте пожалуйста не большой пример.

Мой скелет меню:


Сообщение отредактировал volodya - Пятница, 24.01.2014, 21:33:54
 
_wS_ Дата: Понедельник, 08.04.2013, 15:52:48 | Сообщение # 25
Thanks
Цитата (volodya)
текст переходил с [ ] на [X]

Это непонятно (для меня), что ты имеешь в виду.
И нужно не забывать делать if (action == MenuAction_End) CloseHandle(menu);
 
Darkeneez Дата: Понедельник, 08.04.2013, 15:54:29 | Сообщение # 26
Сообщений: 221
Репутация: 18 [ +/- ]
Как я понял было в меню []привет, а должно после нажатия быть [X]привет.
 
_wS_ Дата: Понедельник, 08.04.2013, 16:26:54 | Сообщение # 27
Thanks
Нельзя просто изменить текст, нужно использовать RemoveMenuItem и InsertMenuItem.
 
volodya Дата: Понедельник, 08.04.2013, 18:35:54 | Сообщение # 28
Сообщений: 14
Репутация: 0 [ +/- ]
Цитата (Darkeneez)
Как я понял было в меню []привет, а должно после нажатия быть [X]привет.

да, так надо сделать.
Цитата (_wS_)
Нельзя просто изменить текст, нужно использовать RemoveMenuItem и InsertMenuItem.

Дайте пример, пожалуйста.
 
_wS_ Дата: Понедельник, 08.04.2013, 19:33:27 | Сообщение # 29
Thanks
Цитата (volodya)
Дайте пример, пожалуйста.

В таких случаях нужно самому тестировать.

Код
// item - позиция опции

// Добавляем новую опцию, которая будет в этой же позиции
InsertMenuItem(menu, item, "то, что тут было раньше", "новый текст");

// Прошлая сдвинулась вперед на 1 шаг, удаляем ее
RemoveMenuItem(menu, item + 1);

Или лучше:

Код
if (InsertMenuItem(menu, item, "то, что тут было раньше", "новый текст"))
{
     RemoveMenuItem(menu, item + 1);
}
 
volodya Дата: Понедельник, 08.04.2013, 20:06:31 | Сообщение # 30
Сообщений: 14
Репутация: 0 [ +/- ]
Спасибо
 
Форум » SourceMod >> CS:Source >> CSGO » Уроки SourceMod (SourcePawn) Скриптинга » Создание Меню (CreatePanel, CreateMenu)
  • Страница 2 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск: