Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Как сделать можно использовать 3 раза за 1 раунд?
Andre
Дата: Суббота, 26.05.2012, 14:34 | Сообщение # 1
офлайн

  • Сообщения: 25
  • Награды: 0
  • Замечания:
 
Дорогие участники сайта http://perfect-soft.su

Я знаю что есть такая тема ТУТ.
Ну все же там нету ответа

Как сделать чтобы 1 пункт в меню можно было использовать 1 рас в раунд, а другой 2 раза за раунд.

Исходника у меня нету может вы что нибудь подскажите...
С меня +1 и подарок

Заранее Спасибо.
 
SMaster
Дата: Суббота, 26.05.2012, 16:42 | Сообщение # 2
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
Раз нет исходника сделал пример.
Думаю в нем все ясно.
Установи на сервер плагин и по примеру сделай так же в своем.
Команда вызова меню menutest

Code

#include amxmodx
#define PLUGIN "TetstPlugin"
#define VERSION "1"
#define AUTHOR "CSSB"

new hMenuTest;

#define NUM_SLOTS 3 //Всего слотов в меню
#define MAX_PLAYERS 33
new bIsBuyItem[MAX_PLAYERS][NUM_SLOTS]; //Счетчик покупок для каждого предмета

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR);
   register_clcmd("menutest", "show_test_menu" );
     
   hMenuTest = menu_create("Тест Меню", "TestMenu" );
   menu_additem(hMenuTest, "1 slot", "1", 0);
   menu_additem(hMenuTest, "2 slot", "2", 0);
   menu_additem(hMenuTest, "3 slot", "3", 0);

   menu_setprop(hMenuTest, MPROP_EXIT, MEXIT_ALL);   
     
   register_event( "TextMsg", "evGameRestart"    , "a"    , "2&#Game_will_restart_in" );
   register_event( "HLTV"    , "evNewRound"    , "a"    , "1=0"    ,   "2=0"    );   
}

//Новый раунд
public evNewRound()
{
   for (new i = 0; i < MAX_PLAYERS; i++ )
   {
    //Обнуляем счетчик выбора слотов меню
    for (new iItem = 0; iItem < NUM_SLOTS; iItem++ )
     bIsBuyItem[i][iItem] = 0;
   }

}
//Рестарт раунда
public evGameRestart()
{
   for (new i = 0; i < MAX_PLAYERS; i++ )
   {
    //Обнуляем счетчик выбора слотов меню
    for (new iItem = 0; iItem < NUM_SLOTS; iItem++ )
     bIsBuyItem[i][iItem] = 0;
   }
}

public show_test_menu(id)
{
   menu_display(id, hMenuTest, 0);

   return PLUGIN_HANDLED;
}
public TestMenu(id, menu, item)
{
   if (item == MENU_EXIT)
    return PLUGIN_HANDLED

   new s_Data[6], s_Name[64], i_Access, i_Callback
   menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
   new i_Key = str_to_num(s_Data)

   switch(i_Key)
   {

    case 1:
    {
     if (bIsBuyItem[id][0] == 1)//Проверяем количество покупок из 1 слота
     {
      client_print(id,print_chat, "За раунд покупать можно 1 раз!" );
     }
     else
     {
      client_print(id,print_chat, "Покупка удачна!" );
      bIsBuyItem[id][0]++;
     }
    }
    case 2:
    {
     if (bIsBuyItem[id][1] == 2)//Проверяем количество покупок из 2 слота
     {
      client_print(id,print_chat, "За раунд покупать можно 2 раза!" );
     }
     else
     {
      client_print(id,print_chat, "Покупка удачна!" );
      bIsBuyItem[id][1]++;
     }
    }
    case 3:
    {
     if (bIsBuyItem[id][2] == 3)//Проверяем количество покупок из 3 слота
     {
      client_print(id,print_chat, "За раунд покупать можно 3 раза!" );
     }
     else
     {
      client_print(id,print_chat, "Покупка удачна!" );
      bIsBuyItem[id][2]++;
     }
    }
}
     
   return PLUGIN_HANDLED;

}
Прикрепления: TestMenu.rar (4.8 Kb)


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
493284988936
Дата: Понедельник, 07.01.2013, 20:30 | Сообщение # 3
офлайн

  • Сообщения: 73
  • Награды: 2
  • Замечания:
 
Цитата (SMaster)
Раз нет исходника сделал пример.
Думаю в нем все ясно.
Установи на сервер плагин и по примеру сделай так же в своем.
Команда вызова меню menutest
#include amxmodx
#define PLUGIN "TetstPlugin"
#define VERSION "1"
#define AUTHOR "CSSB"

new hMenuTest;

#define NUM_SLOTS 3 //Всего слотов в меню
#define MAX_PLAYERS 33
new bIsBuyItem[MAX_PLAYERS][NUM_SLOTS]; //Счетчик покупок для каждого предмета

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("menutest", "show_test_menu" );

hMenuTest = menu_create("Тест Меню", "TestMenu" );
menu_additem(hMenuTest, "1 slot", "1", 0);
menu_additem(hMenuTest, "2 slot", "2", 0);
menu_additem(hMenuTest, "3 slot", "3", 0);

menu_setprop(hMenuTest, MPROP_EXIT, MEXIT_ALL);

register_event( "TextMsg", "evGameRestart" , "a" , "2&#Game_will_restart_in" );
register_event( "HLTV" , "evNewRound" , "a" , "1=0" , "2=0" );
}

//Новый раунд
public evNewRound()
{
for (new i = 0; i < MAX_PLAYERS; i++ )
{
//Обнуляем счетчик выбора слотов меню
for (new iItem = 0; iItem < NUM_SLOTS; iItem++ )
bIsBuyItem[i][iItem] = 0;
}

}
//Рестарт раунда
public evGameRestart()
{
for (new i = 0; i < MAX_PLAYERS; i++ )
{
//Обнуляем счетчик выбора слотов меню
for (new iItem = 0; iItem < NUM_SLOTS; iItem++ )
bIsBuyItem[i][iItem] = 0;
}
}

public show_test_menu(id)
{
menu_display(id, hMenuTest, 0);

return PLUGIN_HANDLED;
}
public TestMenu(id, menu, item)
{
if (item == MENU_EXIT)
return PLUGIN_HANDLED

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Key = str_to_num(s_Data)

switch(i_Key)
{

case 1:
{
if (bIsBuyItem[id][0] == 1)//Проверяем количество покупок из 1 слота
{
client_print(id,print_chat, "За раунд покупать можно 1 раз!" );
}
else
{
client_print(id,print_chat, "Покупка удачна!" );
bIsBuyItem[id][0]++;
}
}
case 2:
{
if (bIsBuyItem[id][1] == 2)//Проверяем количество покупок из 2 слота
{
client_print(id,print_chat, "За раунд покупать можно 2 раза!" );
}
else
{
client_print(id,print_chat, "Покупка удачна!" );
bIsBuyItem[id][1]++;
}
}
case 3:
{
if (bIsBuyItem[id][2] == 3)//Проверяем количество покупок из 3 слота
{
client_print(id,print_chat, "За раунд покупать можно 3 раза!" );
}
else
{
client_print(id,print_chat, "Покупка удачна!" );
bIsBuyItem[id][2]++;
}
}
}

return PLUGIN_HANDLED;

}

О_О можно и поменьше)))))


Сёрф сборка http://perfect-soft.su/forum/14-1998-1
Skype: swimup-pro
 
  • Страница 1 из 1
  • 1
Поиск: