Code:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#define VIP_FLAG ADMIN_LEVEL_H
enum _:wdata
{
name[32],
w_name[32],
csw_id,
bpammo
}
new primary_weapons[][wdata] =
{
{ "AWP", "weapon_awp", CSW_AWP, 30 },
{ "M4A1", "weapon_m4a1", CSW_M4A1, 90 },
{ "AK47", "weapon_ak47", CSW_AK47, 90 }
// I was too lazy to add all weapons... you can do it by yourself, is not that hard.;-
};
new secondary_weapons[][wdata] =
{
{ "Deagle", "weapon_deagle", CSW_DEAGLE, 35 },
{ "Five-Seven", "weapon_fiveseven", CSW_FIVESEVEN, 100 },
{ "Glock18", "weapon_glock18", CSW_GLOCK18, 100 },
{ "Elite", "weapon_elite", CSW_ELITE, 120 },
{ "USP", "weapon_usp", CSW_USP, 100 },
{ "P228", "weapon_p228", CSW_P228, 52 }
};
new bool:prim_wep_equiped[33], bool:menu_enabled[33], previous_equipment[3][33];
public plugin_init()
{
register_plugin("Equip Menu", "1.0", "KiLLeR ;]]");
// This command will re-enable the menu if someone choice 3rd options. If you wish change the command name.
register_clcmd("say /enable", "clcmd_enable");
register_clcmd("say_team /enable", "clcmd_enable");
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1);
}
public client_putinserver(id)
{
// by default menu is enabled!
menu_enabled[id] = true;
}
public clcmd_enable(id)
{
if(!(get_user_flags(id) & VIP_FLAG))
return PLUGIN_HANDLED;
menu_enabled[id] = true;
client_print(id, print_chat, "You have re-enabled your equpiment menu!");
return PLUGIN_CONTINUE;
}
public fw_PlayerSpawn_Post(id)
{
if(!is_user_alive(id) || is_user_bot(id))
return PLUGIN_HANDLED;
if(!(get_user_flags(id) & VIP_FLAG))
return PLUGIN_HANDLED;
strip_user_weapons(id);
give_item(id, "weapon_knife");
if(menu_enabled[id])
{
prim_wep_equiped[id] = false;
equip_menu(id);
}
else
{
give_previous_weapons(id);
}
return PLUGIN_CONTINUE;
}
public equip_menu(id)
{
new menu = menu_create("Equip Menu", "equip_menu_handler")
menu_additem(menu, "New Weapons", "1")
menu_additem(menu, "Previous Weapons", "2")
menu_additem(menu, "Save and don't show menu again", "3")
menu_display(id, menu);
}
public equip_menu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item)
{
case 0: primary_wep_menu(id);
case 1: give_previous_weapons(id)
case 2:
{
menu_enabled[id] = false;
give_previous_weapons(id);
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public primary_wep_menu(id)
{
new menu = menu_create("\rPrimary Weapon's Menu", "primary_wep_handler");
new item[64], num[4];
for(new i=0; i<sizeof primary_weapons; i++)
{
copy(item, charsmax(item), primary_weapons[i][name]);
num_to_str(i, num, charsmax(num));
menu_additem(menu, item, num);
}
menu_display(id, menu);
return PLUGIN_CONTINUE;
}
public primary_wep_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new item_access, info[6], item_name[64], item_callback;
menu_item_getinfo(menu, item, item_access, info, charsmax(info), item_name, charsmax(item_name), item_callback);
new key = str_to_num(info);
give_item(id, primary_weapons[key][w_name]);
cs_set_user_bpammo(id, primary_weapons[key][csw_id], primary_weapons[key][bpammo]);
if(!prim_wep_equiped[id])
{
prim_wep_equiped[id] = true;
previous_equipment[0][id] = key;
primary_wep_menu(id);
}
else
{
previous_equipment[1][id] = key;
secondary_wep_menu(id);
}
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
secondary_wep_menu(id)
{
new menu = menu_create("\rSecondary Weapon's Menu", "secondary_wep_handler");
new item[64], num[4];
for(new i=0; i<sizeof secondary_weapons; i++)
{
copy(item, charsmax(item), secondary_weapons[i][name]);
num_to_str(i, num, charsmax(num));
menu_additem(menu, item, num);
}
menu_display(id, menu);
return PLUGIN_CONTINUE;
}
public secondary_wep_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new item_access, info[6], item_name[64], item_callback;
menu_item_getinfo(menu, item, item_access, info, charsmax(info), item_name, charsmax(item_name), item_callback);
new key = str_to_num(info);
previous_equipment[2][id] = key;
give_item(id, secondary_weapons[key][w_name]);
cs_set_user_bpammo(id, secondary_weapons[key][csw_id], secondary_weapons[key][bpammo]);
if(cs_get_user_team(id) == CS_TEAM_T)
{
cs_set_user_armor(id, 50, CS_ARMOR_VESTHELM)
}
else
{
give_item(id, "item_thighpack")
}
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
give_previous_weapons(id)
{
give_item(id, primary_weapons[previous_equipment[0][id]][w_name]);
cs_set_user_bpammo(id, primary_weapons[previous_equipment[0][id]][csw_id], primary_weapons[previous_equipment[0][id]][bpammo]);
give_item(id, primary_weapons[previous_equipment[1][id]][w_name]);
cs_set_user_bpammo(id, primary_weapons[previous_equipment[1][id]][csw_id], primary_weapons[previous_equipment[1][id]][bpammo]);
give_item(id, secondary_weapons[previous_equipment[2][id]][w_name]);
cs_set_user_bpammo(id, secondary_weapons[previous_equipment[2][id]][csw_id], secondary_weapons[previous_equipment[2][id]][bpammo]);
if(cs_get_user_team(id) == CS_TEAM_T)
{
cs_set_user_armor(id, 50, CS_ARMOR_VESTHELM)
}
else
{
give_item(id, "item_thighpack")
}
}