RU
RU
UA
EN
PL
ГЛАВНАЯ
УСЛУГИ
ПЛАГИНЫ
КАРТЫ
REBUY
SCANMON
CASSA
SALE
ФОРУМ
МОНИТОР
HELP
КОНТАКТ
Главная
/
Plugins
/
VIP system с золотыми оружиями
Плагин не прошел проверку:
есть такй
Создайте новую запись с устранением ошибок
VIP system с золотыми оружиями
Теги:
Скачать плагины cs
Модели
Вип система с золотыми оружиями внутри. Имеется исходник, все настройки можно сделать самому.
Компилятор: 1.8.2
+ZIP
1660
Команды:
Кваров и команд нет
.sma / .sp
#include
#include
#include
#include
enum _:eVipType { Null = 0, ViP, ViPGold }; enum _:eGoldList{ Knife = 0, Deagle, Awp, Ak47, M4A1 }; #define AutoOpen // закомментируй, если не надо отрывать меню при spawn'e #define BUY_TIME 15 // Сколько секунд можно использовать меню #define VipFlag "t" #define VipFlagGold "m" #define MinRoundToOpenMenu 1 #define AWP_LIMIT 3 #define AK47_LIMIT 3 #define M4A1_LIMIT 3 #define Damage_Awp 1.5 #define Damage_Ak4 1.4 #define Damage_M4A1 1.3 #define Damage_Deagle 1.5 #define DROP_TYPE 2 // 1 - обычный дроп. 2 - удаляется из рук вообще new szGoldV[eGoldList][32] = { "models/gold/v_knife.mdl", "models/gold/v_deagle.mdl", "models/gold/v_awp.mdl", "models/gold/v_ak47.mdl", "models/gold/v_m4a1.mdl" }; new szGoldP[eGoldList][32] = { "models/gold/p_knife.mdl", "models/gold/p_deagle.mdl", "models/gold/p_awp.mdl", "models/gold/p_ak47.mdl", "models/gold/p_m4a1.mdl" }; new szGoldW[eGoldList][32] = { "", "models/gold/w_deagle.mdl", "models/gold/w_awp.mdl", "models/gold/w_ak47.mdl", "models/gold/w_m4a1.mdl" }; enum _:eKeyGold{ _Deagle = 36895, _Awp, _Ak47, _M4A1 }; enum _:eGoldCost{ Cost_Awp = 300, Cost_Ak4 = 300, Cost_M4A1 = 300 }; new iVipFlag[33], bool:bDefuse, iRoundNum; new g_BuyTime; public plugin_init() { register_plugin("[AMXX] ViP Gold", "1.0", "Flymic24"); register_dictionary("vipsystem.txt") register_event("TextMsg", "Event_RoundRestart", "a", "2Game_C", "2Game_w"); register_event("HLTV", "Event_RoundStart", "a", "1=0", "2=0"); register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib"); if(engfunc(EngFunc_FindEntityByString, FM_NULLENT, "classname", "func_bomb_target")) bDefuse = true; RegisterHam(Ham_Spawn, "player", "HamHook_Player_Spawn", true); RegisterHam(Ham_Item_Deploy, "weapon_knife", "HamHook_Knife_Deploy", true); RegisterHam(Ham_Item_Deploy, "weapon_ak47", "HamHook_Item_Deploy", true); RegisterHam(Ham_Item_Deploy, "weapon_awp", "HamHook_Item_Deploy", true); RegisterHam(Ham_Item_Deploy, "weapon_m4a1", "HamHook_Item_Deploy", true); RegisterHam(Ham_Item_Deploy, "weapon_deagle","HamHook_Item_Deploy", true); RegisterHam(Ham_Touch, "weapon_ak47", "HamHook_Item_AttachToPlayer", false); RegisterHam(Ham_Touch, "weapon_m4a1", "HamHook_Item_AttachToPlayer", false); RegisterHam(Ham_Touch, "weapon_awp", "HamHook_Item_AttachToPlayer", false); RegisterHam(Ham_Touch, "weapon_deagle","HamHook_Item_AttachToPlayer", false); RegisterHam(Ham_TraceAttack, "func_breakable", "HamHook_Entity_TraceAttack", false); RegisterHam(Ham_TraceAttack, "hostage_entity", "HamHook_Entity_TraceAttack", false); RegisterHam(Ham_TraceAttack, "info_target", "HamHook_Entity_TraceAttack", false); RegisterHam(Ham_TraceAttack, "player", "HamHook_Entity_TraceAttack", false); register_forward(FM_SetModel, "Fakemeta_SetModel") register_clcmd("say /vipmenu", "WeaponMenu"); register_clcmd("vipmenu", "WeaponMenu"); register_menucmd(register_menuid("Vip Menu"), 1023, "VipHandler"); } public plugin_precache() { for(new i = 0; i < sizeof(szGoldV); i++) if (szGoldV[i][0]) precache_model(szGoldV[i]); for(new i = 0; i < sizeof(szGoldP); i++) if (szGoldP[i][0]) precache_model(szGoldP[i]); for(new i = 0; i < sizeof(szGoldW); i++) if (szGoldW[i][0]) precache_model(szGoldW[i]); } public client_putinserver(iPlayer) { if (GetUserFlags(iPlayer) == Null) return; new szName[32]; get_user_name(iPlayer, szName, charsmax(szName)); UtilChatColor(iPlayer, "На сервер зашёл !gVIP !yклиент !team%s", szName); } public Event_RoundRestart() iRoundNum = 0; public Event_RoundStart() iRoundNum++; public MessageScoreAttrib(iMsgId, iDest, iReceiver) { new iPlayer = get_msg_arg_int(1); if(iVipFlag[iPlayer] > Null && !get_msg_arg_int(2)) set_msg_arg_int(2, ARG_BYTE, (1<<2)); } public HamHook_Knife_Deploy(const iItem) { if (pev_valid(iItem) != 2) return HAM_IGNORED; new iPlayer = get_pdata_cbase(iItem, 41, 4); if(iVipFlag[iPlayer] != ViPGold) return HAM_IGNORED; set_pev(iPlayer, pev_viewmodel2, szGoldV[ Knife ]); set_pev(iPlayer, pev_weaponmodel2, szGoldP[ Knife ]); return HAM_IGNORED; } public HamHook_Item_Deploy(const iItem) { if (pev_valid(iItem) != 2) return HAM_IGNORED; new iIndex = 0; switch(pev(iItem, pev_impulse)) { case _Ak47: iIndex = Ak47; case _Awp: iIndex = Awp; case _M4A1: iIndex = M4A1; case _Deagle: iIndex = Deagle; default: return HAM_IGNORED; } if (iIndex) { new iPlayer = get_pdata_cbase(iItem, 41, 4); set_pev(iPlayer, pev_viewmodel2, szGoldV[ iIndex ]); set_pev(iPlayer, pev_weaponmodel2, szGoldP[ iIndex ]); } return HAM_IGNORED; } public HamHook_Item_AttachToPlayer(const iItem, const iPlayer) { if (!pev_valid(iItem)) return HAM_IGNORED; switch(pev(iItem, pev_impulse)) { case _Deagle.._M4A1: { if (iVipFlag[iPlayer] != ViPGold) return HAM_SUPERCEDE; } default: return HAM_IGNORED; } return HAM_IGNORED; } public HamHook_Entity_TraceAttack(const iEntity, const iAttacker, Float:flDamage) { if (!is_user_alive(iAttacker) || !pev_valid(iEntity)) return HAM_IGNORED; new iItem = get_pdata_cbase(iAttacker, 373, 5); if (!pev_valid(iItem)) return HAM_IGNORED; new Float:iIndex; switch(pev(iItem, pev_impulse)) { case _Ak47: iIndex = Damage_Ak4; case _Awp: iIndex = Damage_Awp; case _M4A1: iIndex = Damage_M4A1; case _Deagle: iIndex = Damage_Deagle; default: return HAM_IGNORED; } if (iIndex) SetHamParamFloat(3, flDamage * iIndex); return HAM_IGNORED; } public HamHook_Player_Spawn(const iPlayer) { if (!is_user_alive(iPlayer) || is_user_bot(iPlayer)) return HAM_IGNORED; if (iVipFlag[iPlayer] <= Null) return HAM_IGNORED; g_BuyTime = get_systime(); #if defined AutoOpen WeaponMenu(iPlayer); #endif give_item_ex2(iPlayer, "weapon_hegrenade", 1); give_item_ex2(iPlayer, "weapon_flashbang", 2); give_item_ex2(iPlayer, "weapon_smokegrenade", 1); if (!user_has_weapon(iPlayer, CSW_DEAGLE)) { give_item_ex2(iPlayer, "weapon_deagle", 35, true, (iVipFlag[iPlayer] == ViPGold) ? _Deagle : Null); } cs_set_user_armor(iPlayer, 100, CS_ARMOR_VESTHELM); if(bDefuse && cs_get_user_team(iPlayer) == CS_TEAM_CT) cs_set_user_defuse(iPlayer, 1); return HAM_IGNORED; } public Fakemeta_SetModel(const iEntity, szModel[]) { if(!pev_valid(iEntity)) return FMRES_IGNORED; new szClassName[32]; pev(iEntity, pev_classname, szClassName, charsmax(szClassName)); if (!equali(szClassName, "weaponbox")) return FMRES_IGNORED; for(new iSlot, iWeapon, iIndex; iSlot < 6; iSlot++) { iWeapon = get_pdata_cbase(iEntity, 34 + iSlot, 4); if (pev_valid(iWeapon)) { switch(pev(iWeapon, pev_impulse)) { case _Ak47: iIndex = Ak47; case _Awp: iIndex = Awp; case _M4A1: iIndex = M4A1; case _Deagle: iIndex = Deagle; } if (iIndex) { engfunc(EngFunc_SetModel, iEntity, szGoldW[iIndex]); return FMRES_SUPERCEDE; } } } return FMRES_IGNORED; } public WeaponMenu(iPlayer) { if (!is_user_alive(iPlayer) || iVipFlag[iPlayer] <= Null) return PLUGIN_HANDLED; if(get_systime() >= (g_BuyTime + BUY_TIME)) return UtilChatColor(iPlayer, "%L",LANG_SERVER,"BuyTime", BUY_TIME); if (iRoundNum < MinRoundToOpenMenu) { UtilChatColor(iPlayer, "%L",LANG_SERVER,"MinRound", MinRoundToOpenMenu - iRoundNum); return PLUGIN_HANDLED; } static szMenu[512], iLen; iLen = formatex(szMenu, charsmax(szMenu), "%L^n^n",LANG_SERVER,"MENUVIP"); iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\w1. %L^n",LANG_SERVER,"MENU_AK47"); iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\w2. %L^n",LANG_SERVER,"MENU_M4A1"); iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\w3. %L^n",LANG_SERVER,"MENU_AWP"); if (iVipFlag[iPlayer] == ViPGold) { if(iRoundNum < AK47_LIMIT) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\w4. %L \d[с %d раунда]^n",LANG_SERVER,"MENU_AK47GOLD", AK47_LIMIT); else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\w4. %L^n",LANG_SERVER,"MENU_AK47GOLD", Cost_Ak4); if(iRoundNum < M4A1_LIMIT) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\w5. %L \d[с %d раунда]^n",LANG_SERVER,"MENU_M4A1GOLD", M4A1_LIMIT); else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\w5. %L^n",LANG_SERVER,"MENU_M4A1GOLD", Cost_M4A1); if(iRoundNum < AWP_LIMIT) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\w6. %L \d[с %d раунда]^n",LANG_SERVER,"MENU_AWPGOLD", AWP_LIMIT); else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\w6. %L^n",LANG_SERVER,"MENU_AWPGOLD", Cost_Awp); } iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y0. \wВыход"); set_pdata_int(iPlayer, 205, 0); show_menu(iPlayer, 1023, szMenu, -1, "Vip Menu"); return PLUGIN_HANDLED; } public VipHandler(iPlayer, iKey) { if (!is_user_alive(iPlayer)) return PLUGIN_HANDLED; new iNewKey = iKey + 1; static szWeaponName[][] = { "", "AK", "M4", "AWP", "Gold AK", "Gold M4", "Gold AWP" }; static szChoosedWP[][] = { "", "weapon_ak47", "weapon_m4a1", "weapon_awp" }; static szChoosedBP[] = { 0, 90, 90, 90, 30 }; static iGoldKey[] = { 0, _Ak47, _M4A1, _Awp }; static iCost[] = { 0, Cost_Ak4, Cost_M4A1, Cost_Awp }; static iRoundLimit[] = { 0, AK47_LIMIT, M4A1_LIMIT, AWP_LIMIT }; switch (iNewKey) { case 1..3: give_item_ex2(iPlayer, szChoosedWP[iNewKey], szChoosedBP[iNewKey], true); case 4..6: { new iMoney = cs_get_user_money(iPlayer); if (iRoundNum < iRoundLimit[iNewKey - 3]) { UtilChatColor(iPlayer, "%L",LANG_SERVER,"WEAPON_ERROR", iRoundLimit[iNewKey - 3]); return PLUGIN_HANDLED; } if (iMoney < iCost[iNewKey - 3] || iVipFlag[iPlayer] != ViPGold) { UtilChatColor(iPlayer, "%L",LANG_SERVER,"COST_ERROR", iCost[iNewKey - 3]); return PLUGIN_HANDLED; } else { give_item_ex2(iPlayer, szChoosedWP[iNewKey - 3], szChoosedBP[iNewKey - 3], true, iGoldKey[iNewKey - 3]); cs_set_user_money(iPlayer, iMoney - iCost[iNewKey - 3]); } } default: return PLUGIN_HANDLED; } UtilChatColor(iPlayer, "%L",LANG_SERVER,"MENUINFO", szWeaponName[iNewKey]); return PLUGIN_HANDLED; } stock give_item_ex2(iPlayer, const szWeaponName[], iAmmo = 0, bool:bDrop = false, iKey = 0) { if (!equal(szWeaponName, "weapon_", 7)) return false; new iWeapon = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, szWeaponName)); if (!pev_valid(iWeapon)) return false; if (bDrop) { new szWeapon[ 32 ], iSlot = ExecuteHamB(Ham_Item_ItemSlot, iWeapon), iItem = get_pdata_cbase(iPlayer, 367 + iSlot, 5); while ((pev_valid(iItem) == 2)) { pev(iItem, pev_classname, szWeapon, charsmax(szWeapon)); switch(DROP_TYPE) { case 1: engclient_cmd(iPlayer, "drop", szWeapon); case 2: ham_strip_weapon(iPlayer, szWeapon); } iItem = get_pdata_cbase(iItem, 42, 4); } } set_pev(iWeapon, pev_spawnflags, pev(iWeapon, pev_spawnflags) | SF_NORESPAWN); if (iKey > 0) set_pev(iWeapon, pev_impulse, iKey); if (iAmmo > 0) cs_set_user_bpammo(iPlayer, get_weaponid(szWeaponName), iAmmo); dllfunc(DLLFunc_Spawn, iWeapon); dllfunc(DLLFunc_Touch, iWeapon, iPlayer); return true; } stock ham_strip_weapon(id, weapon[]) { if(!equal(weapon,"weapon_",7)) return 0 new wId = get_weaponid(weapon) if(!wId) return 0 new wEnt while((wEnt = engfunc(EngFunc_FindEntityByString, wEnt, "classname", weapon)) && pev(wEnt, pev_owner) != id) {} if(!wEnt) return 0 new iTmp if(get_user_weapon(id, iTmp, iTmp) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt) if(!ExecuteHamB(Ham_RemovePlayerItem, id, any:wEnt)) return 0 ExecuteHamB(Ham_Item_Kill, wEnt) set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<
Отправить
Загрузил
popca2424
2022-05-08 17:26:42
0
497
Установить на сервер
Скачать
Нет оплаченых серверов
Купить сервер CS 1.6
Купить сервер CS:GO
Купить сервер CSS v34
Подключить свой VDS к панели
Данная иконка означает, что плагин был проверен администрацией хостинга на тестовом сервере, и проблем с ним не было выявлено. Рекомендуем ставить исключительно проверенные плагины.
Плагин загружен на сервер, но проверка еще не была проведена.
CSHOST.COM.UA 2012-2024 Хостинг игровых серверов