САНЕК9055 Дата: Вторник, 05.02.2013, 21:49 | Сообщение # 1
Сообщения: 132
Награды: 1
Замечания:
Как сделать флаг ,для доступа к менюшке?
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <engine> #include <fun> #include <hamsandwich> #include <colorchat> #define PLUGIN "[JB]Med sestra" #define VERSION "1.0" #define AUTHOR "Nixon" new Round1[33] new Round2[33] new Round3[33] new Round4[33] new Round5[33] new Round6[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Spawn, "player", "Spawn_player", 1) register_logevent("round_start", 2, "0=World triggered", "1=Round_Start") //register_concmd("say /vip","vip",ADMIN_LEVEL_G," - My test command for admin") register_clcmd("say /vip", "vip") } public Spawn_player(id) { set_rendering(id,kRenderFxNone,255,255,255,kRenderNormal,16) } public round_start() { for(new id = 0; id < 33; id++) { if(Round1 [id]> 0) { Round1 [id]-= 1 } if(Round2 [id]> 0) { Round2 [id]-= 1 } if(Round3 [id]> 0) { Round3 [id]-= 1 } if(Round4 [id]> 0) { Round4 [id]-= 1 } if(Round5 [id]> 0) { Round5 [id]-= 1 } if(Round6 [id]> 0) { Round6 [id]-= 1 } } } public vip(id) { if(id != get_user_flags(id) & ADMIN_LEVEL_G) { vip_handled(id) return PLUGIN_HANDLED } ColorChat(id, RED, "[VIP]^x01 Это меню только для ^x04VIP") return PLUGIN_CONTINUE } public vip_handled(id) { static menu[500] formatex(menu, 499, "\rМ\yеню \rВ\yипа:") new i_Menu = menu_create(menu, "vip_sub") if(Round1 [id]== 0) { formatex(menu, charsmax(menu), "Взять \r120 \dброни и хп \r[\y1 \rраз в раунд]") menu_additem(i_Menu, menu, "1") } else { formatex(menu, charsmax(menu), "\dВзять 120 брони и хп [закончилось]") menu_additem(i_Menu, menu, "1") } if(Round2 [id]== 0) { formatex(menu, charsmax(menu), "Взять \r2000$ \r[\y1 \rраз в раунд]") menu_additem(i_Menu, menu, "2") } else { formatex(menu, charsmax(menu), "\dВзять 2000$ [закончилось]") menu_additem(i_Menu, menu, "2") } if(Round3 [id]== 0) { formatex(menu, charsmax(menu), "Воскреснуть \r[\y1 \rраз в \y3 \rраунда]") menu_additem(i_Menu, menu, "3") } else { formatex(menu, charsmax(menu), "\dВоскреснуть [осталось %d раунд(а)]", Round3[id]) menu_additem(i_Menu, menu, "3") } if(Round4 [id]== 0) { formatex(menu, charsmax(menu), "Гравитация \r[\y1 \rраз в раунд]") menu_additem(i_Menu, menu, "4") } else { formatex(menu, charsmax(menu), "\dГравитация [закончилось]") menu_additem(i_Menu, menu, "4") } menu_setprop(i_Menu, MPROP_NEXTNAME, "Вперёд") menu_setprop(i_Menu, MPROP_BACKNAME, "Назад") menu_setprop(i_Menu, MPROP_EXITNAME, "Выход") menu_display(id, i_Menu, 0) return PLUGIN_HANDLED } public vip_sub(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new name[32] get_user_name(id, name, 31) 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(Round1 [id]== 0) { Round1 [id]= 1 set_user_health(id, 120) set_user_armor(id, 120) ColorChat(0, GREEN, "[VIP]^x03 %s ^x01взял^x04 150 ARMOR, HP", name) vip(id) } else if(Round1 [id]> 0) { ColorChat(id, RED, "[VIP]^x01 Подождите %d раунда", Round1[id]) } } case 2: { if(Round2 [id]== 0) { Round2 [id]= 3 cs_set_user_money(id, 2000) ColorChat(0, GREEN, "[VIP]^x03 %s ^x01взял^x04 2000$", name) vip(id) } else if(Round2 [id]> 0) { ColorChat(id, RED, "[VIP]^x01 Подождите %d раунда", Round2[id]) } } case 3: { if(Round3 [id]== 0) { Round3 [id]= 3 ExecuteHamB(Ham_CS_RoundRespawn,id) ColorChat(0, GREEN, "[VIP]^x03 %s ^x04возродился", name) vip(id) } else if(Round3 [id]> 0) { ColorChat(id, RED, "[VIP]^x01 Подождите %d раунда", Round3[id]) } } case 4: { if(Round4 [id]== 0) { Round4 [id]= 1 set_user_gravity(id, 0.4) ColorChat(0, GREEN, "[VIP]^x03 %s ^x01взял^x04 гравитацию", name) vip(id) } else if(Round4 [id]> 0) { ColorChat(id, RED, "[VIP]^x01 Подождите %d раунда", Round4[id]) } } } menu_destroy(menu) return PLUGIN_HANDLED } public player_spawn(id) { // Сперва необходимо создать переменную для меню, с которой мы будем взаимодействовать в дальнейшем new i_Menu = menu_create("\rВыберите кого возродить:", "player_spawn_sub") // Необходимые переменные, которые понадобятся нам при выводе меню из игроков new s_Players[32], i_Num, i_Player // Переменные для хранения информации об игроках new s_Name[32], s_Player[10] // Получаем массив игроков get_players(s_Players, i_Num) // Цикл по всем игрокам for (new i; i < i_Num; i++) { // Сохраняем текущего игрока в i_Player i_Player = s_Players [i]// Получаем имя и ID игрока get_user_name(i_Player, s_Name, charsmax(s_Name)) num_to_str(i_Player, s_Player, charsmax(s_Player)) // Добавляем опцию по данному игроку menu_additem(i_Menu, s_Name, s_Player, 0) } menu_setprop(i_Menu, MPROP_EXITNAME, "Выход") menu_display(id, i_Menu, 0) return PLUGIN_HANDLED } public player_spawn_sub(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) 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) // Получаем ID игрока, который был выбран в меню new i_Player = str_to_num(s_Data) new name[32] get_user_name(id, name, charsmax(name)) new vname[32] get_user_name(i_Player, vname, charsmax(vname)) if(!is_user_alive(i_Player)) { ColorChat(0, GREEN, "[VIP]^x03 %s,^x01 возродил^x03 %s", name, vname) ExecuteHamB(Ham_CS_RoundRespawn,i_Player) } else { ColorChat(id, RED, "[VIP]^x01 Данный игрок жив!") player_spawn(id) } menu_destroy(menu) return PLUGIN_HANDLED }
САНЕК9055 Дата: Вторник, 05.02.2013, 23:04 | Сообщение # 6
Сообщения: 132
Награды: 1
Замечания:
Contra63 , Цитата (Contra63 )
public vip_menu_2(id) { if(get_user_flags(id) & VIP_ACCESS){ твой код } ColorChat(id, GREEN, "%s %L",g_Client, LANG_PLAYER,"ONLY_VIP"); return PLUGIN_HANDLED }
те } ColorChat(id, GREEN, "%s %L",g_Client, LANG_PLAYER,"ONLY_VIP"); return PLUGIN_HANDLED } заменить на public vip_menu_2(id) { if(get_user_flags(id) & VIP_ACCESS){ ?
САНЕК9055 Дата: Среда, 06.02.2013, 00:12 | Сообщение # 10
Сообщения: 132
Награды: 1
Замечания:
Т.Е. заменить public vip(id) { if(id != get_user_flags(id) & ADMIN_LEVEL_G) { vip_handled(id) return PLUGIN_HANDLED } ColorChat(id, RED, "[VIP]^x01 Это меню только для ^x04VIP") return PLUGIN_CONTINUE } на public vip_menu_2(id) { if(get_user_flags(id) & VIP_ACCESS){ твой код } ColorChat(id, GREEN, "%s %L",g_Client, LANG_PLAYER,"ONLY_VIP"); return PLUGIN_HANDLED }??