Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <cstrike>
- #include <fakemeta>
- #include <csgomod>
- #define PLUGIN "CS:GO Buy Menu"
- #define VERSION "1.1"
- #define AUTHOR "O'Zone"
- #define CSW_NIGHTVISION 0
- #define CSW_DEFUSEKIT 2
- #define CSW_SHIELD 33
- new const weaponCommands[][] = { "nvgs", "p228", "defuser", "scout", "hegren", "", "mac10", "aug", "sgren",
- "elites", "fn57", "ump45", "sg550", "galil", "famas", "usp", "glock", "awp", "mp5", "", "m4a1", "tmp",
- "g3sg1", "flash", "deagle", "sg552", "ak47", "", "p90", "vest", "vesthelm", "shield"
- };
- new cvarBuyTime, Float:roundStartTime, mapBuyBlock;
- public plugin_init()
- {
- register_plugin(PLUGIN, VERSION, AUTHOR);
- cvarBuyTime = get_cvar_pointer("mp_buytime")
- register_clcmd("buy" , "clcmd_buy");
- register_clcmd("shop" , "clcmd_buy");
- register_clcmd("client_buy_open" , "clcmd_client_buy_open");
- register_clcmd("buyequip" , "clcmd_buyequip");
- register_logevent("round_start", 2, "1=Round_Start");
- register_event("HLTV", "round_start", "a", "1=0", "2=0");
- register_forward(FM_KeyValue, "key_value", true);
- }
- public key_value(ent, keyValueId)
- {
- if (pev_valid(ent)) {
- new className[32], keyName[32], keyValue[32];
- get_kvd(keyValueId, KV_ClassName, className, charsmax(className));
- get_kvd(keyValueId, KV_KeyName, keyName, charsmax(keyName));
- get_kvd(keyValueId, KV_Value, keyValue, charsmax(keyValue));
- if (equali(className, "info_map_parameters") && equali(keyName, "buying")) {
- if (str_to_num(keyValue) != 0) mapBuyBlock = str_to_num(keyValue);
- }
- }
- return FMRES_IGNORED;
- }
- public round_start()
- roundStartTime = get_gametime();
- public clcmd_client_buy_open(id)
- {
- if (csgo_get_menu(id)) return PLUGIN_CONTINUE;
- static msgBuyClose;
- if (!msgBuyClose) msgBuyClose = get_user_msgid( "BuyClose");
- message_begin(MSG_ONE, msgBuyClose, _, id),
- message_end();
- clcmd_buy(id);
- return PLUGIN_HANDLED;
- }
- public clcmd_buy(id)
- {
- if (csgo_get_menu(id)) return PLUGIN_CONTINUE;
- if (!can_buy(id)) return PLUGIN_HANDLED;
- new menu = menu_create("\yBuy Item", "clcmd_buy_handle");
- menu_additem(menu, "\wHandgun");
- // menu_additem(menu, "\wShotgun");
- menu_additem(menu, "\wSub-Machine Gun");
- menu_additem(menu, "\wRifle");
- menu_additem(menu, "\wMachine Gun^n");
- menu_additem(menu, "\wPrimary weapon ammo");
- menu_additem(menu, "\wSecondary weapon ammo^n");
- menu_additem(menu, "\wEquipment");
- menu_addblank(menu);
- menu_additem(menu, "\wExit");
- menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");
- menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER);
- menu_setprop(menu, MPROP_PERPAGE, 0);
- menu_display(id, menu);
- return PLUGIN_HANDLED;
- }
- public clcmd_buy_handle(id, menu, item)
- {
- if (!is_user_connected(id)) return PLUGIN_HANDLED;
- if (item > 7) {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- switch(item) {
- case 0: clcmd_handgun(id);
- // case 1: clcmd_shotgun(id);
- case 1: clcmd_submachinegun(id);
- case 2: clcmd_rifle(id);
- case 3: clcmd_machinegun(id);
- case 4: engclient_cmd(id, "primammo");
- case 5: engclient_cmd(id, "secammo");
- case 6: clcmd_equipment(id);
- }
- return PLUGIN_HANDLED;
- }
- public clcmd_buyequip(id)
- {
- if (csgo_get_menu(id)) return PLUGIN_CONTINUE;
- if (!can_buy(id)) return PLUGIN_HANDLED;
- clcmd_equipment(id);
- return PLUGIN_HANDLED;
- }
- public clcmd_handgun(id)
- {
- if (!can_buy(id)) return PLUGIN_HANDLED;
- new itemData[3], skin, menu = menu_create("\yBuy Handgun $ Cost \rSkin\y^n(Secondary weapon)", "clcmd_buy_weapon_handle");
- num_to_str(CSW_GLOCK18, itemData, charsmax(itemData));
- menu_additem(menu, "\w9X19mm Sidearm \y400", itemData);
- num_to_str(CSW_USP, itemData, charsmax(itemData));
- menu_additem(menu, "\wK&M .45 Tactical ^t\y500", itemData);
- num_to_str(CSW_P228, itemData, charsmax(itemData));
- menu_additem(menu, "\w228 Compact \y600", itemData);
- num_to_str(CSW_DEAGLE, itemData, charsmax(itemData));
- menu_additem(menu, "\wNight Hawk .50C \y650", itemData);
- if (cs_get_user_team(id) == CS_TEAM_T) {
- num_to_str(CSW_ELITE, itemData, charsmax(itemData));
- menu_additem(menu, "\w.40 Dual Elites \y800", itemData);
- } else {
- num_to_str(CSW_FIVESEVEN, itemData, charsmax(itemData));
- menu_additem(menu, "\wES Five-Seven \y750", itemData);
- }
- menu_setprop(menu, MPROP_EXITNAME, "Exit");
- menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");
- menu_display(id, menu);
- return PLUGIN_HANDLED;
- }
- public clcmd_shotgun(id)
- {
- if (!can_buy(id)) return PLUGIN_HANDLED;
- new menuData[128], skinName[64], itemData[3], skin, menu = menu_create("\yBuy Shotgun $ Cost \rSkin\y^n(Primary weapon)", "clcmd_buy_weapon_handle");
- num_to_str(CSW_M3, itemData, charsmax(itemData));
- menu_additem(menu, "\wLeone 12 Gauge Super \y1700", itemData);
- num_to_str(CSW_XM1014, itemData, charsmax(itemData));
- menu_additem(menu, "\wLeone YG1265 Auto Shotgun ^t\y3000", itemData);
- menu_setprop(menu, MPROP_EXITNAME, "Exit");
- menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");
- menu_display(id, menu);
- return PLUGIN_HANDLED;
- }
- public clcmd_submachinegun(id)
- {
- if (!can_buy(id)) return PLUGIN_HANDLED;
- new menuData[128], skinName[64], itemData[3], skin, menu = menu_create("\yBuy Sub-Machine Gun $ Cost \rSkin\y^n(Primary weapon)", "clcmd_buy_weapon_handle");
- if (cs_get_user_team(id) == CS_TEAM_T) {
- num_to_str(CSW_MAC10, itemData, charsmax(itemData));
- menu_additem(menu, "\wIngram MAC-10 ^t\y1400", itemData);
- } else {
- num_to_str(CSW_TMP, itemData, charsmax(itemData));
- menu_additem(menu, "\wSchmidt Machine Pistol ^t\y1250", itemData);
- }
- num_to_str(CSW_MP5NAVY, itemData, charsmax(itemData));
- menu_additem(menu, "\wK&M Sub-Machine Gun \y1500", itemData);
- num_to_str(CSW_UMP45, itemData, charsmax(itemData));
- menu_additem(menu, "\wK&M UMP45 \y1700", itemData);
- num_to_str(CSW_P90, itemData, charsmax(itemData));
- menu_additem(menu, "\wES C90 ^t\y2350", itemData);
- menu_setprop(menu, MPROP_EXITNAME, "Exit");
- menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");
- menu_display(id, menu);
- return PLUGIN_HANDLED;
- }
- public clcmd_rifle(id)
- {
- if (!can_buy(id)) return PLUGIN_HANDLED;
- new itemData[3], skin, menu = menu_create("\yBuy Rifle $ Cost \rSkin\y^n(Primary weapon)", "clcmd_buy_weapon_handle");
- if (cs_get_user_team(id) == CS_TEAM_T) {
- num_to_str(CSW_GALIL, itemData, charsmax(itemData));
- menu_additem(menu, "\wIDF Defender \y2000", itemData);
- num_to_str(CSW_AK47, itemData, charsmax(itemData));
- menu_additem(menu, "\wCV-47 ^t\y2500", itemData);
- num_to_str(CSW_SCOUT, itemData, charsmax(itemData));
- menu_additem(menu, "\wSchmidt Scout \y2750", itemData);
- num_to_str(CSW_SG552, itemData, charsmax(itemData));
- menu_additem(menu, "\wKrieg 552 Commando \y3500", itemData);
- num_to_str(CSW_AWP, itemData, charsmax(itemData));
- menu_additem(menu, "\wMagnum Sniper Rifle \y4750", itemData);
- num_to_str(CSW_G3SG1, itemData, charsmax(itemData));
- menu_additem(menu, "\wD3/AU-1 Semi-Auto Sniper Rifle \y5000", itemData);
- } else {
- num_to_str(CSW_FAMAS, itemData, charsmax(itemData));
- menu_additem(menu, "\wClarion 5.56 ^t\y2250", itemData);
- num_to_str(CSW_SCOUT, itemData, charsmax(itemData));
- menu_additem(menu, "\wSchmidt Scout ^t\y2750", itemData);
- num_to_str(CSW_M4A1, itemData, charsmax(itemData));
- menu_additem(menu, "\wMaveric M4A1 Carabine \y3100", itemData);
- num_to_str(CSW_AUG, itemData, charsmax(itemData));
- menu_additem(menu, "\wBullpup \y3500", itemData);
- num_to_str(CSW_SG550, itemData, charsmax(itemData));
- menu_additem(menu, "\wKrieg 550 Commando ^t\y4200", itemData);
- num_to_str(CSW_AWP, itemData, charsmax(itemData));
- menu_additem(menu, "\wMagnum Sniper Rifle ^t\y4750", itemData);
- }
- menu_setprop(menu, MPROP_EXITNAME, "Exit");
- menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");
- menu_display(id, menu);
- return PLUGIN_HANDLED;
- }
- public clcmd_machinegun(id)
- {
- if (!can_buy(id)) return PLUGIN_HANDLED;
- new itemData[3], skin, menu = menu_create("\yBuy Machine Gun $ Cost \rSkin\y^n(Primary weapon)", "clcmd_buy_weapon_handle");
- num_to_str(CSW_M249, itemData, charsmax(itemData));
- menu_additem(menu, "\wES M249 Para \y5750", itemData);
- menu_setprop(menu, MPROP_EXITNAME, "Exit");
- menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");
- menu_display(id, menu);
- return PLUGIN_HANDLED;
- }
- public clcmd_equipment(id)
- {
- if (!can_buy(id)) return PLUGIN_HANDLED;
- new itemData[3], menu = menu_create("\yBuy Equipment $ Cost", "clcmd_buy_weapon_handle");
- num_to_str(CSW_VEST, itemData, charsmax(itemData));
- menu_additem(menu, "\wKevlar Vest \y650", itemData);
- num_to_str(CSW_VESTHELM, itemData, charsmax(itemData));
- menu_additem(menu, "\wKevlar Vest & Helmet \y1000", itemData);
- num_to_str(CSW_FLASHBANG, itemData, charsmax(itemData));
- menu_additem(menu, "\wFlashbang \y200", itemData);
- num_to_str(CSW_HEGRENADE, itemData, charsmax(itemData));
- menu_additem(menu, "\wHE Grenade ^t^t\y300", itemData);
- num_to_str(CSW_SMOKEGRENADE, itemData, charsmax(itemData));
- menu_additem(menu, "\wSmoke Grenade \y300", itemData);
- num_to_str(CSW_NIGHTVISION, itemData, charsmax(itemData));
- menu_additem(menu, "\wNightVision Goggles ^t\y1250", itemData);
- if (cs_get_user_team(id) == CS_TEAM_CT) {
- num_to_str(CSW_DEFUSEKIT, itemData, charsmax(itemData));
- menu_additem(menu, "\wDefuse Kit ^t\y200", itemData);
- }
- if(cs_get_user_team(id) == CS_TEAM_CT) {
- num_to_str(CSW_SHIELD, itemData, charsmax(itemData));
- menu_additem(menu, "\wTactical Shield \y2200", itemData);
- }
- if (cs_get_user_team(id) == CS_TEAM_CT) {
- menu_addblank(menu);
- menu_additem(menu, "\wExit");
- menu_setprop(menu, MPROP_PERPAGE, 0);
- menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER);
- } else {
- menu_setprop(menu, MPROP_EXITNAME, "Exit");
- }
- menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");
- menu_display(id, menu);
- return PLUGIN_HANDLED;
- }
- public clcmd_buy_weapon_handle(id, menu, item)
- {
- if (!is_user_connected(id)) return PLUGIN_HANDLED;
- if (item == MENU_EXIT || item == 9) {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- new itemData[3], itemAccess, itemCallback;
- menu_item_getinfo(menu, item, itemAccess, itemData, charsmax(itemData), _, _, itemCallback);
- cmd_execute(id, weaponCommands[str_to_num(itemData)]);
- return PLUGIN_HANDLED;
- }
- stock can_buy(id)
- {
- if (!is_user_alive(id) || !cs_get_user_buyzone(id)) return false;
- new Float:buyTime;
- if (get_pcvar_float(cvarBuyTime) != -1.0 && !(get_gametime() < roundStartTime + (buyTime = get_pcvar_float(cvarBuyTime) * 60.0))) {
- new buyTimeText[8];
- num_to_str(floatround(buyTime), buyTimeText, charsmax(buyTimeText));
- message_begin(MSG_ONE, get_user_msgid("TextMsg"), .player = id);
- write_byte(print_center);
- write_string("#Cant_buy");
- write_string(buyTimeText);
- message_end();
- return false;
- }
- if ((mapBuyBlock == 1 && cs_get_user_team(id) == CS_TEAM_CT) || (mapBuyBlock == 2 && cs_get_user_team(id) == CS_TEAM_T) || mapBuyBlock == 3) {
- message_begin(MSG_ONE, get_user_msgid("TextMsg"), .player = id);
- write_byte(print_center);
- if (cs_get_user_team(id) == CS_TEAM_T) write_string("#Cstrike_TitlesTXT_Terrorist_cant_buy");
- else if (cs_get_user_team(id) == CS_TEAM_CT) write_string("#Cstrike_TitlesTXT_CT_cant_buy");
- message_end();
- return false;
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement