Редактирование vip_weapon.sma, Помогите отредактировать меню плагина |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Редактирование vip_weapon.sma, Помогите отредактировать меню плагина |
SivAnOl
|
29.11.2014, 1:20
Сообщение
|
![]() |
Здравствуйте!
Дело в том, что каждый раз выскакивает меню с выбором оружия. Если нажать 0 (выход), все равно дает оружие (или рандомно или M4A1). Нужно сделать нормальный выход по 0 и всё. Кому как удобнее, вот код или сам файл
vip_weapon.sma ( 17,17 килобайт )
Кол-во скачиваний: 18Исходник Код #include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <cstrike> #include <fun> #include <fakemeta_util> #pragma tabsize 0 #define PLUGIN "VIP" #define VERSION "3.8" #define AUTHOR "Extreem and vinipux" #define VIP_FLAG ADMIN_LEVEL_A static const COLOR[] = "^x04" //green static const CONTACT[] = "" new maxplayers new gmsgSayText new vipsOnline new g_awp_active //Menu Items new p_Menu_Enable, p_Give_AK47, p_Give_M4A1, p_Give_AWP new bool:HasC4[33] new pistols[6] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_GALIL, CSW_USP, CSW_GLOCK18}; new automaton[18] = {CSW_P90,CSW_AK47,CSW_SG552,CSW_G3SG1,CSW_TMP,CSW_M4A1,CSW_M3,CSW_M249,CSW_MP5NA VY,CSW_AWP,CSW_FAMAS,CSW_SG550,CSW_UMP45,CSW_AUG,CSW_MAC10,CSW_XM1014,CSW_SCOUT, C SW_P228}; new INT_rounds = 0 new timer[33], cvar_menuoff //Start Items new p_Start_Deagle, p_Start_He, p_Start_Flash, p_Start_Smoke, round_number, g_maxplayers, p_Plugin_Exist, p_Plugin_Exist_Time public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /vip", "vipinfo") register_clcmd("say /vipka", "vipinfo") register_clcmd("say /wantvip", "vipinfo") register_clcmd("say /adminka", "vipinfo") register_dictionary("viplang.txt") new configsDir[64] get_configsdir(configsDir, 63) register_event("CurWeapon", "event_CurWeapon", "be", "1=1") register_clcmd("awp","HandleCmd") register_event("HLTV", "EVENT__round_start", "a", "1=0", "2=0") p_Menu_Enable = register_cvar("menu_enable", "1") p_Give_AK47 = register_cvar("menu_ak47", "1") p_Give_M4A1 = register_cvar("menu_m4a1", "1") p_Give_AWP = register_cvar("menu_awp", "1") p_Start_Deagle = register_cvar("start_deagle", "1") p_Start_He = register_cvar("start_hegrenade", "1") p_Start_Flash = register_cvar("start_flash", "2") p_Start_Smoke = register_cvar("start_smokegrenade","1") p_Plugin_Exist = register_cvar("plugin_exist", "1") p_Plugin_Exist_Time = register_cvar("plugin_exist_time", "180.0") vipsOnline = register_cvar("show_vips", "1") RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1); register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_event("TextMsg", "event_game_restart", "a", "2=#Game_Commencing", "2=#Game_will_restart_in") g_maxplayers=get_maxplayers() maxplayers = get_maxplayers() register_clcmd("say", "handle_say") register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER) gmsgSayText = get_user_msgid("SayText") cvar_menuoff = register_cvar("menuoff", "3") g_awp_active = register_cvar("awp_active", "1") } stock ChatColor(const id,const input[],any:...) { new count = 1,players[32] static msg[191] vformat(msg,190,input,3) replace_all(msg,190,"!g","^4") replace_all(msg,190,"!y","^1") replace_all(msg,190,"!team","^3") replace_all(msg, 190,"!team2","^0") if(id)players[0] = id;else get_players(players,count,"ch") { for (new i = 0;i < count;i++) { if(is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("SayText"),_,players[i]) write_byte(players[i]) write_string(msg) message_end() } } } } public EVENT__round_start() { INT_rounds++ } public HandleCmd(id){ if (get_pcvar_num(g_awp_active) == 1) return PLUGIN_CONTINUE if(!(get_user_flags(id) & VIP_FLAG)) return PLUGIN_CONTINUE client_print(id, print_center, "%L", LANG_SERVER, "AWP_ONLY_FOR_VIP") return PLUGIN_HANDLED } public event_CurWeapon(id){ if (get_pcvar_num(g_awp_active) == 1){ if(read_data(2) == CSW_AWP){ if(!(get_user_flags(id) & VIP_FLAG)){ client_print(id, print_center, "%L", LANG_SERVER, "AWP_ONLY_FOR_VIP") client_cmd(id, "drop") } } } return PLUGIN_HANDLED } public mymenu(id){ if(is_user_alive(id)) { timer[id] = get_pcvar_num(cvar_menuoff) set_task(1.0, "destroy_menu", id, _, _, "b") new MyMenu=menu_create("Выбери оружие ^n ^n","vipMenu"); new MyMenuFun=menu_makecallback("mcbMyMenu"); new m4a1[150] formatex(m4a1, sizeof m4a1 - 1, "%L", id, "MENU_M4A1") menu_additem(MyMenu,m4a1,"0",0,MyMenuFun); new ak47[150] formatex(ak47, sizeof ak47 - 1, "%L", id, "MENU_AK47") menu_additem(MyMenu,ak47 ,"1",0,MyMenuFun); new awp[150] formatex(awp, sizeof awp - 1, "%L", id, "MENU_AWP") menu_additem(MyMenu,awp,"2",0,MyMenuFun); if(get_user_flags(id) & VIP_FLAG){ menu_display(id, MyMenu,0); } } else{ ChatColor(id,"%L",LANG_SERVER,"NOT_VIP") } return PLUGIN_HANDLED; } public destroy_menu(id) { if (timer[id]) { new text_timer[64] formatex(text_timer, charsmax(text_timer), "У вас %d секунд что бы выбрать!", timer[id]); if (timer[id] > 10) set_hudmessage(255, 255, 255, 0.02, 0.42, 0, 0.0, 1.0, 1.0, 1.0) else if (timer[id] > 5) set_hudmessage(255, 255, 0, 0.02, 0.42, 0, 0.0, 1.0, 1.0, 1.0) else set_hudmessage(255, 0, 0, 0.02, 0.42, 1, 0.0, 1.0, 1.0, 1.0) show_hudmessage(id, text_timer) --timer[id] } else { remove_task(id) show_menu(id, 0, "^n", 1) // Убераем меню } } public vipMenu(id, menu, item) { new data[7], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); new key = str_to_num(data); switch(key) { case 0:{ // Проверяем на все пистолеты for (new i = 0; i < 6; i++) { // Если у игрока есть пистолет с заданным индексом // забираем пистолет и выходим из цикла if (fm_strip_user_gun(id, pistols[i])) { break; } } // Проверяем на все автоматы for (new i = 0; i < 18; i++) { // Если у игрока есть пистолет с заданным индексом // забираем пистолет и выходим из цикла if (fm_strip_user_gun(id, automaton[i])) { break; } } if (user_has_weapon(id, CSW_C4)){ HasC4[id] = true; } else{ HasC4[id] = false; } give_item(id, "weapon_m4a1") cs_set_user_bpammo(id, CSW_M4A1, 90) give_item(id,"weapon_knife") if(get_pcvar_num(p_Start_He) == 1){ give_item(id,"weapon_hegrenade") } if(get_pcvar_num(p_Start_Flash) == 1){ give_item(id, "weapon_flashbang"); } else if(get_pcvar_num(p_Start_Flash) == 2){ give_item(id, "weapon_flashbang"); give_item(id, "weapon_flashbang"); } if(get_pcvar_num(p_Start_Smoke) == 1){ give_item(id, "weapon_smokegrenade"); } if(get_pcvar_num(p_Start_Deagle) == 1){ give_item(id,"weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35) } else if(cs_get_user_team(id) == CS_TEAM_CT){ give_item(id, "weapon_usp") cs_set_user_bpammo(id, CSW_USP, 24) } else if (cs_get_user_team(id) == CS_TEAM_T){ give_item(id, "weapon_glock18") cs_set_user_bpammo(id, CSW_GLOCK18, 40) } give_item(id, "weapon_smokegrenade"); give_item(id, "item_assaultsuit"); give_item(id, "item_thighpack"); if (HasC4[id]){ give_item(id, "weapon_c4"); cs_set_user_plant( id ); } ChatColor(id,"%L",LANG_SERVER,"GET_WEAPON_M4A1") remove_task(id) show_menu(id, 0, "^n", 1) // Убераем меню } case 1: { for (new i = 0; i < 6; i++) { // Если у игрока есть пистолет с заданным индексом // забираем пистолет и выходим из цикла if (fm_strip_user_gun(id, pistols[i])) { break; } } // Проверяем на все автоматы for (new i = 0; i < 18; i++) { // Если у игрока есть пистолет с заданным индексом // забираем пистолет и выходим из цикла if (fm_strip_user_gun(id, automaton[i])) { break; } } if (user_has_weapon(id, CSW_C4)){ HasC4[id] = true; } else{ HasC4[id] = false; } give_item(id, "weapon_ak47") cs_set_user_bpammo(id, CSW_AK47, 90) give_item(id,"weapon_knife") if(get_pcvar_num(p_Start_He) == 1){ give_item(id,"weapon_hegrenade") } if(get_pcvar_num(p_Start_Flash) == 1){ give_item(id, "weapon_flashbang"); } else if(get_pcvar_num(p_Start_Flash) == 2){ give_item(id, "weapon_flashbang"); give_item(id, "weapon_flashbang"); } if(get_pcvar_num(p_Start_Smoke) == 1){ give_item(id, "weapon_smokegrenade"); } if(get_pcvar_num(p_Start_Deagle) == 1){ give_item(id,"weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35) } else if(cs_get_user_team(id) == CS_TEAM_CT){ give_item(id, "weapon_usp") cs_set_user_bpammo(id, CSW_USP, 24) } else if (cs_get_user_team(id) == CS_TEAM_T){ give_item(id, "weapon_glock18") cs_set_user_bpammo(id, CSW_GLOCK18, 40) } give_item(id, "weapon_smokegrenade"); give_item(id, "item_assaultsuit"); give_item(id, "item_thighpack"); if (HasC4[id]){ give_item(id, "weapon_c4"); cs_set_user_plant( id ); } ChatColor(id,"%L",LANG_SERVER,"GET_WEAPON_AK47") remove_task(id) show_menu(id, 0, "^n", 1) // Убераем меню } case 2:{ if(round_number >= 3) { for (new i = 0; i < 6; i++) { // Если у игрока есть пистолет с заданным индексом // забираем пистолет и выходим из цикла if (fm_strip_user_gun(id, pistols[i])) { break; } } // Проверяем на все автоматы for (new i = 0; i < 18; i++) { // Если у игрока есть пистолет с заданным индексом // забираем пистолет и выходим из цикла if (fm_strip_user_gun(id, automaton[i])) { break; } } if (user_has_weapon(id, CSW_C4)){ HasC4[id] = true; } else{ HasC4[id] = false; } give_item(id, "weapon_awp") cs_set_user_bpammo(id, CSW_AWP, 30) give_item(id,"weapon_knife") if(get_pcvar_num(p_Start_He) == 1){ give_item(id,"weapon_hegrenade") } if(get_pcvar_num(p_Start_Flash) == 1){ give_item(id, "weapon_flashbang"); } else if(get_pcvar_num(p_Start_Flash) == 2){ give_item(id, "weapon_flashbang"); give_item(id, "weapon_flashbang"); } if(get_pcvar_num(p_Start_Smoke) == 1){ give_item(id, "weapon_smokegrenade"); } if(get_pcvar_num(p_Start_Deagle) == 1){ give_item(id,"weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35) } else if(cs_get_user_team(id) == CS_TEAM_CT){ give_item(id, "weapon_usp") cs_set_user_bpammo(id, CSW_USP, 24) } else if (cs_get_user_team(id) == CS_TEAM_T){ give_item(id, "weapon_glock18") cs_set_user_bpammo(id, CSW_GLOCK18, 40) } give_item(id, "weapon_smokegrenade"); give_item(id, "item_assaultsuit"); give_item(id, "item_thighpack") if (HasC4[id]){ give_item(id, "weapon_c4"); cs_set_user_plant( id ); } ChatColor(id,"%L",LANG_SERVER,"GET_WEAPON_AWP") remove_task(id) show_menu(id, 0, "^n", 1) // Убераем меню } } } } public mcbMyMenu(id, menu, item){ if(item==0){ if(get_pcvar_num(p_Give_M4A1) != 1){ return ITEM_DISABLED; } } if(item==1){ if(get_pcvar_num(p_Give_AK47) != 1){ return ITEM_DISABLED; } } if(item==2){ if(get_pcvar_num(p_Give_AWP) != 1){ return ITEM_DISABLED; } } return ITEM_ENABLED; } public event_round_start() { if(get_pcvar_num(p_Menu_Enable) == 1){ round_number++ if (round_number>1) { for (new id=1;id<=g_maxplayers;id++) { if (!is_user_connected(id)||is_user_bot(id)) continue if(get_user_flags(id) & VIP_FLAG){ if(cs_get_user_team(id) == CS_TEAM_CT || CS_TEAM_T){ set_task(0.1, "mymenu", id, _, _, "a", 1) } } } } } } public event_game_restart() { round_number=0 } public fwHamPlayerSpawnPost(id) if(get_user_flags(id) & VIP_FLAG) { { for (new i = 0; i < 6; i++) { // Если у игрока есть пистолет с заданным индексом // забираем пистолет и выходим из цикла if (fm_strip_user_gun(id, pistols[i])) { break; } } } if(is_user_connected(id) && get_user_flags(id) & VIP_FLAG) { give_item(id,"weapon_knife") if(get_pcvar_num(p_Start_Deagle) == 1){ give_item(id,"weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35) } else if(cs_get_user_team(id) == CS_TEAM_CT){ give_item(id, "weapon_usp") cs_set_user_bpammo(id, CSW_USP, 24) } else if (cs_get_user_team(id) == CS_TEAM_T){ give_item(id, "weapon_glock18") cs_set_user_bpammo(id, CSW_GLOCK18, 40) } if(get_pcvar_num(p_Start_He) == 1){ give_item(id, "weapon_hegrenade") } if(get_pcvar_num(p_Start_Flash) == 1){ give_item(id, "weapon_flashbang") } else if(get_pcvar_num(p_Start_Flash) == 2){ give_item(id, "weapon_flashbang") give_item(id, "weapon_flashbang") } if(get_pcvar_num(p_Start_Smoke) == 1){ give_item(id, "weapon_smokegrenade") } } } public vipinfo(id){ show_motd(id, "admin.html") } public client_authorized(id) { if(get_pcvar_num(p_Plugin_Exist) == 1){ set_task(get_pcvar_float(p_Plugin_Exist_Time), "vipInfoMessage", id, _, _, "b") } } public vipInfoMessage(id) { if(!is_user_admin(id)) ChatColor(id,"%L",LANG_SERVER,"INFO_VIP_PLUGIN_EXIST") } public handle_say(id) { new said[192] read_args(said,192) if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/admin") != -1 ) set_task(0.1,"print_adminlist",id) return PLUGIN_CONTINUE } public print_adminlist(user) { if(get_pcvar_num(vipsOnline) == 1){ new adminnames[33][32] new message[256] new contactinfo[256], contact[112] new id, count, x, len for(id = 1; id <= maxplayers; id++) if(is_user_connected(id)) if(get_user_flags(id) & VIP_FLAG) get_user_name(id, adminnames[count++], 31) len = format(message, 255, "%s Админы онлайн: ",COLOR) if(count > 0) { for(x = 0; x < count; x++) { len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"") if(len > 96 ) { print_message(user, message) len = format(message, 255, "%s ",COLOR) } } print_message(user, message) } else { len += format(message[len], 255-len, "%L", LANG_SERVER,"NO_VIPS_ONLLINE") print_message(user, message) } get_cvar_string("amx_contactinfo", contact, 63) if(contact[0]) { format(contactinfo, 111, "%s Связь с главным админом -- %s", COLOR, contact) print_message(user, contactinfo) } } } print_message(id, msg[]) { message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id) write_byte(id) write_string(msg) message_end() } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ ansicpg1251\\ deff0\\ deflang1049{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par } */
Отредактировал: SivAnOl, - 29.11.2014, 1:34
|
|
|
|
SivAnOl
|
29.11.2014, 23:49
Сообщение
|
![]() |
Если нет возможности переделать, покажите хотя бы как убрать оттуда 0 (выход) вообще?
|
|
|
|
SivAnOl
|
30.11.2014, 14:00
Сообщение
|
![]() |
Извините за наглость, но с автопоявлением никак не сделать?
|
|
|
|
MiXa
|
30.11.2014, 14:01
Сообщение
|
|
|
SivAnOl, если хотите то сделаю
![]() Допомога з встановлення / налаштування / оновлення за $ :>>> Сервери \ Моди \ Плагіни \ Модулі
|
Поблагодарили 1 раз
|
|
SivAnOl
|
30.11.2014, 14:05
Сообщение
|
![]() |
Если Вас не затруднит, конечно, буду благодарен
|
|
|
|
SivAnOl
|
30.11.2014, 15:46
Сообщение
|
![]() |
MiXa, не против, если ссылку на решение на Ваш пост скину в тему этого плагина?
|
|
|
|
MiXa
|
30.11.2014, 15:50
Сообщение
|
|
|
SivAnOl, нет, не против )
![]() Допомога з встановлення / налаштування / оновлення за $ :>>> Сервери \ Моди \ Плагіни \ Модулі
|
Поблагодарили 1 раз
|
|
![]() ![]() |