GOLD Weapon, права |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
! | В разделе запрещено создавать темы связанные с раскруткой игровых серверов |
|
GOLD Weapon, права |
LogCat |
16.1.2019, 12:30
Сообщение
|
|
Люди Что нужно выставить что-бы випка была доступна всем..не только админам?
ADMIN_LEVEL_H |
|
|
ddsyarik |
16.1.2019, 12:35
Сообщение
|
Люди Что нужно выставить что-бы випка была доступна всем..не только админам? ADMIN_LEVEL_H Флаг есть такой Z Забудь о PROCESSCMD #cs-developer
|
|
|
|
Tiproni |
16.1.2019, 12:40
Сообщение
|
|
addons\amxmodx\configs\amxx.cfg
amx_default_access "t" |
|
|
adva |
16.1.2019, 12:41
Сообщение
|
|
ADMIN_ALL
|
|
|
Tiproni |
16.1.2019, 12:43
Сообщение
|
|
А если хочешь чтобы именно голд оружие было доступно всем, то поменяй проверку на флаг "ADMIN_USER"
|
|
|
LogCat |
16.1.2019, 12:59
Сообщение
|
|
А если хочешь чтобы именно голд оружие было доступно всем, то поменяй проверку на флаг "ADMIN_USER" всё помогло) спасиб как сделать что бы автоматом выводилсь меню? Cкрытый текст // Автор плагина: Leo_[BH] ( #include <amxmodx> #include <fakemeta> #include <hamsandwich> #include <fun> #include <cstrike> #include <fakemeta_util> #define is_valid_player(%1) (1 <= %1 <= 32) // // // // // // // // // // MODEL new GoldModels[8][64] = { "models/gold_s/v_deagle.mdl", "models/gold_s/p_deagle.mdl", // 0-1 "models/gold_s/v_awp.mdl", "models/gold_s/p_awp.mdl", // 2-3 "models/gold_black/v_ak47.mdl", "models/gold_black/p_ak47.mdl", // 4-5 "models/gold_black/v_m4a1.mdl", "models/gold_black/p_m4a1.mdl" } // 6-7 public plugin_precache() { for (new num = 0; num < 8; num++) { precache_model(GoldModels[num]); } } // // // // // // // // // // // // // // // // // // // // new round new pistols[6] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_DEAGLE, CSW_USP, CSW_GLOCK18} new primary[18] = {CSW_SCOUT, CSW_XM1014, CSW_MAC10, CSW_AUG, CSW_UMP45, CSW_SG550, CSW_GALIL, CSW_FAMAS, CSW_AWP, CSW_MP5NAVY, CSW_M249, CSW_M3, CSW_M4A1, CSW_TMP, CSW_G3SG1, CSW_SG552, CSW_AK47, CSW_P90} new bool:has_gold_m4a1[33], bool:has_gold_ak47[33], bool:has_gold_awp[33], bool:has_gold_deagle[33] // // // // // // // // // // public plugin_init() { register_plugin("Gold VIP Menu", "1.0", "Leo_[BH]") register_event("TextMsg", "event_game_restart", "a", "2=#Game_will_restart_in") register_event("TextMsg", "event_game_restart", "a", "2=#Game_Commencing") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_event("WeapPickup","checkModel","b","1=19") register_event("CurWeapon","checkWeapon","be","1=1") register_event("DeathMsg", "Death", "a") register_clcmd("vipmenu", "cmd_vip_menu") register_clcmd("say vipmenu", "cmd_vip_menu") register_clcmd("say /vipmenu", "cmd_vip_menu") register_clcmd("say_team vipmenu", "cmd_vip_menu") register_clcmd("say_team /vipmenu", "cmd_vip_menu") } public event_round_start() { round++ } public event_game_restart() { round = 0 } // // // // // // // // // // MODEL public checkModel(id) { new WeaponID = read_data(2) switch(WeaponID) { case CSW_M4A1: { if(has_gold_m4a1[id]) { set_pev(id, pev_viewmodel2, GoldModels[6]) set_pev(id, pev_weaponmodel2, GoldModels[7]) } } case CSW_AK47: { if(has_gold_ak47[id]) { set_pev(id, pev_viewmodel2, GoldModels[4]) set_pev(id, pev_weaponmodel2, GoldModels[5]) } } case CSW_AWP: { if(has_gold_awp[id]) { set_pev(id, pev_viewmodel2, GoldModels[2]) set_pev(id, pev_weaponmodel2, GoldModels[3]) } } case CSW_DEAGLE: { if(has_gold_deagle[id]) { set_pev(id, pev_viewmodel2, GoldModels[0]) set_pev(id, pev_weaponmodel2, GoldModels[1]) } } } return PLUGIN_CONTINUE } public checkWeapon(id) { checkModel(id) } public Death() { new id = read_data(2) has_gold_m4a1[id] = false has_gold_ak47[id] = false has_gold_awp[id] = false has_gold_deagle[id] = false } public client_connect(id) { has_gold_m4a1[id] = false has_gold_ak47[id] = false has_gold_awp[id] = false has_gold_deagle[id] = false } // // // // // // // // // // MENU public cmd_vip_menu(id) { if(get_user_flags(id) & ADMIN_USER) { vip_weaponmenu(id) } } public vip_weaponmenu(id) { if(round < 1) { client_print(id, print_chat, "С 3-ого раунда!") return PLUGIN_HANDLED; } new menu = menu_create("\yЗолотая \rОружейка", "handler_weaponmenu") menu_additem(menu, "\wM4A1", "1") menu_additem(menu, "\wAK47", "2") menu_additem(menu, "\wAWP", "3") menu_additem(menu, "\wDEAGLE", "4") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id,menu,0) return PLUGIN_HANDLED; } public handler_weaponmenu(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } if(!is_user_alive(id)) { return PLUGIN_HANDLED } new data[6], iName[64], access, callback menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback) new key = str_to_num(data) switch(key) { case 1: { remove_primary(id) give_item(id, "weapon_m4a1") cs_set_user_bpammo(id, CSW_M4A1, 120) has_gold_m4a1[id] = true } case 2: { remove_primary(id) give_item(id, "weapon_ak47") cs_set_user_bpammo(id, CSW_AK47, 120) has_gold_ak47[id] = true } case 3: { remove_primary(id) give_item(id, "weapon_awp") cs_set_user_bpammo(id, CSW_AWP, 45) has_gold_awp[id] = true } case 4: { give_item(id, "weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 80) has_gold_deagle[id] = true } } return PLUGIN_HANDLED } // // // // // // // // // // remove primary remove_primary(id) { for(new i = 0; i < 18; i++) { fm_strip_user_gun(id, primary[i]) } } public remove_secondary(id) { for(new i = 0; i < 6; i++) { fm_strip_user_gun(id, pistols[i]) } } // // // // // // // // // // // // // // // // // // // // /// /// /////////////////////////////////////////////////////////// // /// // Автор плагина - Leo_[BH] /// // Делаю, пишу плагины на заказ! /// // // // Skype: bcnl_leon /// // /// // Мой Магазин плагинов: /// // // /// /////////////////////////////////////////////////////////// /// /// // // // // // // // // // // // // // // // // // // // / |
|
|
LogCat |
16.1.2019, 13:34
Сообщение
|
|
как сделать что бы автоматом выводилсь меню?
Cкрытый текст // Автор плагина: Leo_[BH] ( #include <amxmodx> #include <fakemeta> #include <hamsandwich> #include <fun> #include <cstrike> #include <fakemeta_util> #define is_valid_player(%1) (1 <= %1 <= 32) // // // // // // // // // // MODEL new GoldModels[8][64] = { "models/gold_s/v_deagle.mdl", "models/gold_s/p_deagle.mdl", // 0-1 "models/gold_s/v_awp.mdl", "models/gold_s/p_awp.mdl", // 2-3 "models/gold_black/v_ak47.mdl", "models/gold_black/p_ak47.mdl", // 4-5 "models/gold_black/v_m4a1.mdl", "models/gold_black/p_m4a1.mdl" } // 6-7 public plugin_precache() { for (new num = 0; num < 8; num++) { precache_model(GoldModels[num]); } } // // // // // // // // // // // // // // // // // // // // new round new pistols[6] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_DEAGLE, CSW_USP, CSW_GLOCK18} new primary[18] = {CSW_SCOUT, CSW_XM1014, CSW_MAC10, CSW_AUG, CSW_UMP45, CSW_SG550, CSW_GALIL, CSW_FAMAS, CSW_AWP, CSW_MP5NAVY, CSW_M249, CSW_M3, CSW_M4A1, CSW_TMP, CSW_G3SG1, CSW_SG552, CSW_AK47, CSW_P90} new bool:has_gold_m4a1[33], bool:has_gold_ak47[33], bool:has_gold_awp[33], bool:has_gold_deagle[33] // // // // // // // // // // public plugin_init() { register_plugin("Gold VIP Menu", "1.0", "Leo_[BH]") register_event("TextMsg", "event_game_restart", "a", "2=#Game_will_restart_in") register_event("TextMsg", "event_game_restart", "a", "2=#Game_Commencing") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_event("WeapPickup","checkModel","b","1=19") register_event("CurWeapon","checkWeapon","be","1=1") register_event("DeathMsg", "Death", "a") register_clcmd("vipmenu", "cmd_vip_menu") register_clcmd("say vipmenu", "cmd_vip_menu") register_clcmd("say /vipmenu", "cmd_vip_menu") register_clcmd("say_team vipmenu", "cmd_vip_menu") register_clcmd("say_team /vipmenu", "cmd_vip_menu") } public event_round_start() { round++ } public event_game_restart() { round = 0 } // // // // // // // // // // MODEL public checkModel(id) { new WeaponID = read_data(2) switch(WeaponID) { case CSW_M4A1: { if(has_gold_m4a1[id]) { set_pev(id, pev_viewmodel2, GoldModels[6]) set_pev(id, pev_weaponmodel2, GoldModels[7]) } } case CSW_AK47: { if(has_gold_ak47[id]) { set_pev(id, pev_viewmodel2, GoldModels[4]) set_pev(id, pev_weaponmodel2, GoldModels[5]) } } case CSW_AWP: { if(has_gold_awp[id]) { set_pev(id, pev_viewmodel2, GoldModels[2]) set_pev(id, pev_weaponmodel2, GoldModels[3]) } } case CSW_DEAGLE: { if(has_gold_deagle[id]) { set_pev(id, pev_viewmodel2, GoldModels[0]) set_pev(id, pev_weaponmodel2, GoldModels[1]) } } } return PLUGIN_CONTINUE } public checkWeapon(id) { checkModel(id) } public Death() { new id = read_data(2) has_gold_m4a1[id] = false has_gold_ak47[id] = false has_gold_awp[id] = false has_gold_deagle[id] = false } public client_connect(id) { has_gold_m4a1[id] = false has_gold_ak47[id] = false has_gold_awp[id] = false has_gold_deagle[id] = false } // // // // // // // // // // MENU public cmd_vip_menu(id) { if(get_user_flags(id) & ADMIN_USER) { vip_weaponmenu(id) } } public vip_weaponmenu(id) { if(round < 1) { client_print(id, print_chat, "С 3-ого раунда!") return PLUGIN_HANDLED; } new menu = menu_create("\yЗолотая \rОружейка", "handler_weaponmenu") menu_additem(menu, "\wM4A1", "1") menu_additem(menu, "\wAK47", "2") menu_additem(menu, "\wAWP", "3") menu_additem(menu, "\wDEAGLE", "4") menu_setprop(menu, MPROP_EXITNAME, "Выход") menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id,menu,0) return PLUGIN_HANDLED; } public handler_weaponmenu(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } if(!is_user_alive(id)) { return PLUGIN_HANDLED } new data[6], iName[64], access, callback menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback) new key = str_to_num(data) switch(key) { case 1: { remove_primary(id) give_item(id, "weapon_m4a1") cs_set_user_bpammo(id, CSW_M4A1, 120) has_gold_m4a1[id] = true } case 2: { remove_primary(id) give_item(id, "weapon_ak47") cs_set_user_bpammo(id, CSW_AK47, 120) has_gold_ak47[id] = true } case 3: { remove_primary(id) give_item(id, "weapon_awp") cs_set_user_bpammo(id, CSW_AWP, 45) has_gold_awp[id] = true } case 4: { give_item(id, "weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 80) has_gold_deagle[id] = true } } return PLUGIN_HANDLED } // // // // // // // // // // remove primary remove_primary(id) { for(new i = 0; i < 18; i++) { fm_strip_user_gun(id, primary[i]) } } public remove_secondary(id) { for(new i = 0; i < 6; i++) { fm_strip_user_gun(id, pistols[i]) } } // // // // // // // // // // // // // // // // // // // // /// /// /////////////////////////////////////////////////////////// // /// // Автор плагина - Leo_[BH] /// // Делаю, пишу плагины на заказ! /// // // // Skype: bcnl_leon /// // /// // Мой Магазин плагинов: /// // // /// /////////////////////////////////////////////////////////// /// /// // // // // // // // // // // // // // // // // // // // / |
|
|
DimkaZst |
17.1.2019, 8:54
Сообщение
|
|
LogCat, я не много фигею с людей , сделайте мне то , сделайте мне это !
зачем держите сервер если не можете элементарные вещи сделать ?! почитайте внимательно и вы увидите Цитата // Автор плагина: Leo_[BH] ( Может быть к нему обратиться?!
Отредактировал: DimkaZst, - 17.1.2019, 8:54
|
Поблагодарили 2 раз
|
|
TaTaR |
17.1.2019, 9:42
Сообщение
|
|
там вроде выставляются флаги
|
|
|
DimkaZst |
17.1.2019, 21:11
Сообщение
|
|
ему надо что бы автоматически меню открывалось .
Лично меня и большинство моих игроков , когда держал сервер , очень бесило что меню автоматически появлялось =) Есть же плагин для вывода информации в чат. Вот пример на память что бы не еб*ть мозги не себе не людям ! !n[!gChatBot!n] !tЧто бы открыть меню !nзабиндите кнопку в консоле !gbind !nВаша кнопка !gvipmenu Элементарно ватсон !
Отредактировал: DimkaZst, - 17.1.2019, 21:11
|
|
|
eat1k |
17.1.2019, 21:32
Сообщение
|
|
|
Tiproni |
17.1.2019, 23:34
Сообщение
|
|
|
Поблагодарили 1 раз
|
|
eat1k |
17.1.2019, 23:49
Сообщение
|
|
|
Tiproni |
18.1.2019, 0:07
Сообщение
|
|
Ты прав, но надо учитывать то, что некоторые владельцы прописывают z флаг (до кучи ко всему)
|
|
|
DimkaZst |
18.1.2019, 5:34
Сообщение
|
|
Ты прав, но надо учитывать то, что некоторые владельцы прописывают z флаг (до кучи ко всему) Что то в первые слышу , что дефолтный флаг прописывают до кучи. выше написали хочешь выдать всем права VIP и не парить себе мозг , есть такой файл amxx.cfg ( вообще он самый полезный файлик =) |
|
|
google.bsk |
1.8.2019, 11:40
Сообщение
|
Помогите изменить в исходнике плагина параметры:
1) Запретить подбирать золотое оружие простым игрокам 2) Показать где там в исходнике изменять урон от золотого оружия. В дальнейшем самостоятельно тестировать буду amxx_vip_gold.sma #include <amxmodx> #include <cstrike> #include <hamsandwich> #include <fakemeta_util> enum _:eVipType { Null = 0, ViP, ViPGold }; enum _:eGoldList{ Knife = 0, Deagle, Awp, Ak47, M4A1 }; #define VipFlag "b" #define VipFlagGold "t" #define MinRoundToOpenMenu 1 #define AWP_LIMIT 10 #define AK47_LIMIT 7 #define M4A1_LIMIT 5 #define Damage_Awp 1.1 #define Damage_Ak4 1.2 #define Damage_M4A1 1.2 #define Damage_Deagle 2.0 #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 = 200, Cost_M4A1 = 100 }; new iVipFlag[33], bool:bDefuse, iRoundNum; public plugin_init() { register_plugin("[AMXX] ViP Gold", "1.0", "Flymic24"); register_event("TextMsg", "Event_RoundRestart", "a", "2&#Game_C", "2&#Game_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(0, "На сервер зашёл !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; 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 (iRoundNum < MinRoundToOpenMenu) { UtilChatColor(iPlayer, "!g[!yViP!g] !yМеню не доступно. Жди ещё !team%i !yраунд", MinRoundToOpenMenu - iRoundNum); return PLUGIN_HANDLED; } static szMenu[512], iLen; iLen = formatex(szMenu, charsmax(szMenu), "\r[\yVIP\r] \wWeaponMenu^n^n"); iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y1. \wВзять AK47^n"); iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y2. \wВзять M4A1^n"); iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y3. \wВзять AWP^n"); if (iVipFlag[iPlayer] == ViPGold) { if(iRoundNum < AK47_LIMIT) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y4. \dВзять AK47 Gold \r[c %d раунда]^n", AK47_LIMIT); else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y4. \wВзять AK47 Gold \y(\r%i$\y)^n", Cost_Ak4); if(iRoundNum < M4A1_LIMIT) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y5. \dВзять M4A1 Gold \r[c %d раунда]^n", M4A1_LIMIT); else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y5. \wВзять M4A1 Gold \y(\r%i$\y)^n", Cost_M4A1); if(iRoundNum < AWP_LIMIT) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y6. \dВзять AWP Gold \r[c %d раунда]^n", AWP_LIMIT); else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y6. \wВзять AWP Gold \y(\r%i$\y)^n", 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, "!g[!yViP!g] !yДоступно только с !g%i !yраунда", iRoundLimit[iNewKey - 3]); return PLUGIN_HANDLED; } if (iMoney < iCost[iNewKey - 3] || iVipFlag[iPlayer] != ViPGold) { UtilChatColor(iPlayer, "!g[!yViP!g] !yНе достаточно денег: !team%i!g$", 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, "!g[!yViP!g] !yВы получили: !g[!team%s!g]", 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<<wId)) return 1 } stock GetUserFlags(const iPlayer) { if (!is_user_connected(iPlayer)) return -1; new iFlags = get_user_flags(iPlayer); new iReturnBit; if (iFlags & read_flags(VipFlagGold)) { iVipFlag[iPlayer] = ViPGold; iReturnBit = ViPGold; } else if (iFlags & read_flags(VipFlag)) { iVipFlag[iPlayer] = ViP; iReturnBit = ViP; } else { iVipFlag[iPlayer] = Null; iReturnBit = Null; } return iReturnBit; } stock UtilChatColor(const iPlayer, const szInput[], any:...) { new iCount = 1, szPlayers[32]; static szMessage[191]; vformat(szMessage, charsmax(szMessage), szInput, 3); replace_all(szMessage, charsmax(szMessage), "!g", "^4"); // Green Color replace_all(szMessage, charsmax(szMessage), "!y", "^1"); // Default Color replace_all(szMessage, charsmax(szMessage), "!team", "^3"); // Team Color static g_SayText; if (!g_SayText) g_SayText = get_user_msgid("SayText"); if(iPlayer) szPlayers[0] = iPlayer; else get_players(szPlayers, iCount, "ch"); { for(new i = 0; i < iCount; i++) { if(!is_user_connected(szPlayers[i])) continue; message_begin(MSG_ONE_UNRELIABLE, g_SayText, _, szPlayers[i]); write_byte(szPlayers[i]); write_string(szMessage); message_end(); } } } |
|
|
|
pacumka |
1.8.2019, 12:08
Сообщение
|
урон
#define Damage_Awp 1.1 #define Damage_Ak4 1.2 #define Damage_M4A1 1.2 #define Damage_Deagle 2.0 |
|
|
|
mOdest |
1.8.2019, 16:59
Сообщение
|
|
|
|
|
google.bsk |
1.8.2019, 18:26
Сообщение
|
|
|
mOdest |
1.8.2019, 19:03
Сообщение
|
|
|
|
|