RU
RU
UA
EN
PL
ГЛАВНАЯ
УСЛУГИ
ПЛАГИНЫ
КАРТЫ
REBUY
SCANMON
CASSA
SALE
ФОРУМ
МОНИТОР
HELP
КОНТАКТ
Главная
/
Plugins
/
weaponmenu
Плагин не прошел проверку:
никакой информации
Создайте новую запись с устранением ошибок
weaponmenu
Теги:
Скачать плагины cs
Остальные
Вип меню для сервера
Компилятор: 1.8.2
1163
Команды:
/vipmenu-меню вип
.sma / .sp
#include
#include
#include
#include
#include
#if AMXX_VERSION_NUM < 183 #include
#endif // #### Конфигурационные defines #### #define VIP_ACCESS ADMIN_LEVEL_H // Флаг доступа VIP (по дефолту флаг "t" ADMIN_LEVEL_H) #define CHATTAG "^1[^4CSHAPPY^1]" // Префикс перед сообщениями || ^1 - желтый ^3 - цвет команды ^4 - зеленый #define VIPROUND 3 // C какого раунда можно открыть вип меню #define AWPM249RND 4 // С какого раунда доступны AWP и пулемет #define ADDHP_HS 10 // Кол-во HP за убийство в голову #define ADDHP 0 // Кол-во HP за убийство в тело #define MAXHP 120 // Максимальное количество HP #define AUTOVIPMENU 1 // Автоматически открывать в начале рануда Вип меню (выключено по дефолту) #define VIPAUTODEAGLE 1 // В начале каждого раунда давать Дигл #define VIPAUTOGRENADE 1 // Давать в начале каждого раунда гранаты #define VIPTAB 1 // Показывать статус VIP в таблице на tab #define AWP_TEAM 2 // макс авп на тиму #define AWP_BLOCK 10 // если игроков меньше этого значения то блокировать покупку авп // Модельки добавлены CSHAPPY #define MODEL_WP // модельки Оружия. закоментить если не нужны #if defined MODEL_WP new MODEL_DGL[] = "models/cshappy/v_deagle.mdl" new MODEL_M4A1[] = "models/cshappy/v_m4a1.mdl" new MODEL_AK47[] = "models/cshappy/v_ak47.mdl" new MODEL_AWP[] = "models/cshappy/v_awp.mdl" new bool:gold_deagle[33] = false; new bool:gold_m4a1[33] = false; new bool:gold_ak47[33] = false; new bool:gold_awp[33] = false; #endif // #### Конфигурационные defines #### #define is_user_vip(%0) (get_user_flags(%0) & VIP_ACCESS) new g_roundCount; new bool:iUseWeapon[33], bool:bDefuse, bool:g_iBlockBonus; new const PRIMARY_WEAPONS_BITSUM = (1<
0"); register_event("HLTV","eRoundStart","a","1=0","2=0"); #if defined VIPTAB if(!engfunc(EngFunc_FindEntityByString,FM_NULLENT,"classname","func_vip_safetyzone")) register_message(get_user_msgid("ScoreAttrib"),"MessageScoreAttrib"); #endif if(engfunc(EngFunc_FindEntityByString,FM_NULLENT,"classname","func_bomb_target")) bDefuse = true; RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1); register_clcmd("say /vipmenu", "CmdMenu"); register_clcmd("vipmenu", "CmdMenu"); register_clcmd("say", "hook_say"); register_clcmd("say_team", "hook_say"); register_menucmd(register_menuid("Vip Menu"), MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4, "handler"); new iMap_Name[32], iMap_Prefix[][] = { "awp_", "aim_", "35hp", "fy_" }; get_mapname(iMap_Name, charsmax(iMap_Name)) for(new i; i < sizeof iMap_Prefix; i++) { if(containi(iMap_Name, iMap_Prefix[i]) != -1) g_iBlockBonus = true } g_iHudSyncMsg = CreateHudSyncObj(); } #if defined MODEL_WP public plugin_precache(){ precache_model(MODEL_DGL) precache_model(MODEL_M4A1) precache_model(MODEL_AK47) precache_model(MODEL_AWP) } #endif public eRestart() g_roundCount = 0; public eRoundStart() { g_roundCount++; arrayset(iUseWeapon, false, 33); } public eventDamage(id) { static attID; attID = get_user_attacker(id); if(is_user_connected(attID) && iUserVip[attID]) { set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1); ShowSyncHudMsg(attID, g_iHudSyncMsg, "%i^n", read_data(2)); } } #if defined MODEL_WP public FixModel(id){ if(is_user_alive(id)){ if(is_user_vip(id)){ new weaponID = read_data(2) if(weaponID == CSW_DEAGLE && gold_deagle[id]){ set_pev(id, pev_viewmodel2, MODEL_DGL) } if(weaponID == CSW_AK47 && gold_ak47[id]){ set_pev(id, pev_viewmodel2, MODEL_AK47) } if(weaponID == CSW_M4A1 && gold_m4a1[id]){ set_pev(id, pev_viewmodel2, MODEL_M4A1) } if(weaponID == CSW_AWP && gold_awp[id]){ set_pev(id, pev_viewmodel2, MODEL_AWP) } else{ return PLUGIN_CONTINUE } } } return PLUGIN_CONTINUE } #endif public eventDeathMsg() { static killerID; killerID = read_data(1); static VictimID; VictimID = read_data(2); if(iUserVip[killerID]) { static killer_HP, addHP; killer_HP = get_user_health(killerID); addHP = ((read_data(3) == 1)) ? ADDHP_HS : ADDHP; fm_set_user_health(killerID, ((killer_HP += addHP) > MAXHP)? MAXHP : killer_HP); set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1); ShowSyncHudMsg(killerID, g_iHudSyncMsg, "Добавлено +%d HP", addHP); #if defined MODEL_WP gold_deagle[VictimID] = false; gold_m4a1[VictimID] = false; gold_ak47[VictimID] = false; gold_awp[VictimID] = false; #endif } } public Player_Spawn(id) { if(g_iBlockBonus || !is_user_alive(id)) return 0; if(is_user_vip(id)) iUserVip[id] = true; else return iUserVip[id] = false; #if defined VIPAUTOGRENADE fm_give_item(id, "weapon_hegrenade"); fm_give_item(id, "weapon_flashbang"); cs_set_user_bpammo(id, CSW_FLASHBANG, 2); #endif #if defined VIPAUTODEAGLE give_item_ex(id,"weapon_deagle",35,1) cs_set_user_bpammo(id, CSW_DEAGLE, 35); #endif cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM); if(bDefuse && cs_get_user_team(id) == CS_TEAM_CT) cs_set_user_defuse(id, 1); #if defined AUTOVIPMENU return CmdMenu(id); #else return 0; #endif } public hook_say(id) { static szMsg[128]; read_args(szMsg, 127); remove_quotes(szMsg); if(szMsg[0] != '/') return 0; static const szChoosedWP[][] = { "/ak47", "/m4a1", "/deagle", "/awp"}; for(new a; a < sizeof szChoosedWP; a++) { if(!strcmp(szMsg, szChoosedWP[a])) { if(!is_allow_use(id)) break; if(a > 2 && g_roundCount < AWPM249RND) return client_print_color(id, 0, "%s ^3Данное оружие доступно только с^4 [ %d ] ^3раунда!", CHATTAG, AWPM249RND); return handler(id, a); } } return 0; } public CmdMenu(id) { if(!is_allow_use(id)) return 0; static szMenu[512], iLen, iKey; iKey = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3; iLen = formatex(szMenu, 511, "\wМеню-\yVIP^n^n\r1. \wВзять \yRED AK-47^n\r2. \wВзять \yRED M4-A1^n\r3. \wВзять \yRED Deagle^n"); new max_pl = get_playersnum() //узнаем сколько игроков всего if(max_pl < AWP_BLOCK) iLen += formatex(szMenu[iLen], 511 - iLen, "\r4. \wВзять \yRED AWP \r[мало игроков. Необходимо %d]^n^n", AWP_BLOCK); else{ if(g_roundCount > AWPM249RND){ if(awp_team(id) >= AWP_TEAM) iLen += formatex(szMenu[iLen], 511 - iLen, "\r4. \wВзять \rRED AWP \r[В команде уже %d AWP]^n^n", AWP_TEAM); else{ //если еще можно взять iKey |= MENU_KEY_4; iLen += formatex(szMenu[iLen], 511 - iLen, "\r4. \wВзять \rRED AWP^n^n"); } }else{ iLen += formatex(szMenu[iLen], 511 - iLen, "\r4. \wВзять \rRED AWP \r[c %d раунда]^n^n", AWPM249RND); } } formatex(szMenu[iLen], 511 - iLen, "\r0. \wВыход"); set_pdata_int(id, 205, 0); return show_menu(id, iKey, szMenu, -1, "Vip Menu"); } public handler(id, iKey) { if(iKey > 4 || iUseWeapon[id]) return 0; static const szChoosedBP[] = { 90, 90, 30, 30}; static const szChoosedWP[][] = { "weapon_ak47", "weapon_m4a1", "weapon_deagle", "weapon_awp" }; iUseWeapon[id] = true; return give_item_ex(id, szChoosedWP[iKey], szChoosedBP[iKey], 1); } stock give_item_ex(id,currWeaponName[],ammoAmount,dropFlag=0) { static weaponsList[32], weaponName[32], weaponsNum, currWeaponID; currWeaponID = get_weaponid(currWeaponName); if(dropFlag) { weaponsNum = 0; get_user_weapons(id,weaponsList,weaponsNum); for (new i;i < weaponsNum;i++) { if(((1 << currWeaponID) & PRIMARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & PRIMARY_WEAPONS_BITSUM) | ((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & SECONDARY_WEAPONS_BITSUM)) { get_weaponname(weaponsList[i],weaponName,charsmax(weaponName)); engclient_cmd(id,"drop",weaponName); } } } if(awp_team(id) >= AWP_TEAM && equali(currWeaponName, "weapon_awp")) client_print_color(id, 0, "Авп недоступно или достигнут лимит"); else{ fm_give_item(id,currWeaponName); cs_set_user_bpammo(id,currWeaponID,ammoAmount); #if defined MODEL_WP if(equali(currWeaponName, "weapon_deagle")) gold_deagle[id] = true; if(equali(currWeaponName, "weapon_m4a1")) gold_m4a1[id] = true; if(equali(currWeaponName, "weapon_ak47")) gold_ak47[id] = true; if(equali(currWeaponName, "weapon_awp")) gold_awp[id] = true; #endif return 1; } return 0; } bool:is_allow_use(id) { if(!iUserVip[id]) { client_print_color(id, 0, "%s ^3Только ^4[VIP] ^3может пользоваться этой командой!", CHATTAG); return false; } if(!is_user_alive(id)) { client_print_color(id, 0, "%s ^3Для использования данной команды вы должны быть живы!", CHATTAG); return false; } if(!g_roundCount) { client_print_color(id, 0, "%s ^3Разминочный раунд. ^4Запрещено ^3пользоваться командой!", CHATTAG); return false; } if(iUseWeapon[id]) { client_print_color(id, 0, "%s ^3Вы ^4уже брали ^3оружие в этом раунде!", CHATTAG); return false; } if(g_roundCount < VIPROUND) { client_print_color(id, 0, "%s ^3Оружия доступны только с^4 [ %d ] ^3раунда!", CHATTAG, VIPROUND); return false; } return true; } #if defined VIPTAB public MessageScoreAttrib(iMsgId, iDest, iReceiver) { if(is_user_vip(get_msg_arg_int(1)) && !get_msg_arg_int(2)) set_msg_arg_int(2, ARG_BYTE, 4); } #endif stock awp_team(id){ new awp_te = 0; // переменные для хранения данных об авп в команде new awp_ct = 0; // new max_pl = get_playersnum(); //узнаем сколько игроков всего for(new i = 1; i < max_pl; i++){ //проверяем сколько авп в каждой команде new CsTeams:player_team player_team = cs_get_user_team(id) if(user_has_weapon(i, CSW_AWP) == 1){ if (player_team == CS_TEAM_T) awp_te++ if (player_team == CS_TEAM_CT) awp_ct++ } } if (cs_get_user_team(id) == CS_TEAM_T) // вернет количество авп для террористов return awp_te; if (cs_get_user_team(id) == CS_TEAM_CT) // вернет количество авп для контров return awp_ct; return 0 }
Отправить
Загрузил
SuPleX
2019-01-28 12:47:00
0
86
Установить на сервер
Скачать
Нет оплаченых серверов
Купить сервер CS 1.6
Купить сервер CS:GO
Купить сервер CSS v34
Подключить свой VDS к панели
Данная иконка означает, что плагин был проверен администрацией хостинга на тестовом сервере, и проблем с ним не было выявлено. Рекомендуем ставить исключительно проверенные плагины.
Плагин загружен на сервер, но проверка еще не была проведена.
CSHOST.COM.UA 2012-2026 Хостинг игровых серверов