Как сделать можно использовать 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" , "2Game_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://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" , "2Game_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
|
|
| |