#include <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN "Fegyvermenu"
#define VERSION "1.0"
#define AUTHOR "mforce"
new const PREFIX[] = "ProKillers";
enum _:weapinfo {name[32], weap_name[32], bpammo};
enum _:TEAMS {TE, CT};
new g_Awps[TEAMS], bool:g_Used[33];
new const weapons[][weapinfo] = {
{"M4A1", "weapon_m4a1", 90},
{"AK47", "weapon_ak47", 90},
{"AWP \y[3db csapatonként]", "weapon_awp", 30},
{"M249", "weapon_m249", 200},
{"AUG", "weapon_aug", 90},
{"FAMAS", "weapon_famas", 90},
{"GALIL", "weapon_galil", 90},
{"MP5NAVY", "weapon_mp5navy", 120},
{"XM1014", "weapon_xm1014", 32},
{"M3", "weapon_m3", 32},
{"SCOUT", "weapon_scout", 90},
{"P90", "weapon_p90", 100},
{"TMP", "weapon_tmp", 120},
{"UMP45", "weapon_ump45", 100},
{"MAC10", "weapon_mac10", 100}
};
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
RegisterHam(Ham_Spawn, "player", "spawn_event", 1);
register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0");
register_clcmd("say /fegyo", "fegyvermenu");
register_clcmd("say /fegyomenu", "fegyvermenu");
register_clcmd("say /fegyver", "fegyvermenu");
register_clcmd("say /fegyvermenu", "fegyvermenu");
register_message(get_user_msgid("Money"), "MessageMoney");
register_message(get_user_msgid("HideWeapon"), "MessageHideWeapon");
register_message(get_user_msgid("StatusIcon"), "Message_StatusIcon");
}
public Event_NewRound() {
arrayset(g_Used, false, sizeof(g_Used));
arrayset(g_Awps, 0, sizeof(g_Awps));
}
public spawn_event(id) fegyvermenu(id);
public fegyvermenu(id) {
if (!is_user_alive(id) || g_Used[id]) return;
switch(cs_get_user_team(id)) {
case CS_TEAM_T: {
if(user_has_weapon(id, CSW_C4)) {
strip_user_weapons(id)
give_item(id, "weapon_c4")
cs_set_user_plant(id,1,1)
}
else {
strip_user_weapons(id)
}
}
case CS_TEAM_CT: {
strip_user_weapons(id);
cs_set_user_defuse(id, 1);
}
}
give_item(id, "weapon_knife");
new s_MenuName[128]; formatex(s_MenuName, charsmax(s_MenuName), "\r[%s] \wFegyvermenü", PREFIX);
new menu = menu_create(s_MenuName, "FegyverMenu_mh");
for(new i; i<sizeof(weapons);i++) {
menu_additem(menu, weapons[i][name], "", 0)
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Vissza");
menu_setprop(menu, MPROP_NEXTNAME, "Következő");
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0);
}
public FegyverMenu_mh(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
if (!is_user_alive(id)) return PLUGIN_HANDLED;
if(item == 2) {
switch(cs_get_user_team(id)) {
case CS_TEAM_T: {
if(g_Awps[TE] < 3) g_Awps[TE]++;
else {
ChatColor(id, "^4[%s]^1 Nincs lehetőség több ^3AWP^1 vásárlására a csapatodban", PREFIX)
fegyvermenu(id);
return PLUGIN_HANDLED;
}
}
case CS_TEAM_CT: {
if(g_Awps[CT] < 3) g_Awps[CT]++;
else {
ChatColor(id, "^4[%s]^1 Nincs lehetőség több ^3AWP^1 vásárlására a csapatodban", PREFIX)
fegyvermenu(id);
return PLUGIN_HANDLED;
}
}
}
}
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
give_item(id, weapons[item][weap_name]);
cs_set_user_bpammo(id, get_weaponid(weapons[item][weap_name]), weapons[item][bpammo]);
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
give_item(id, "weapon_smokegrenade");
new fegyonev[32]; formatex(fegyonev, charsmax(fegyonev), "%s", weapons[item][name]);
ChatColor(id, "^4[%s]^1 A(z)^3 %s ^1csomagot választottad.", PREFIX, item == 2 ? "AWP":fegyonev);
g_Used[id] = true;
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public MessageMoney(msgid, dest, id) {
set_pdata_int(id, 115, 0);
set_msg_arg_int(1, ARG_LONG, 0);
}
public MessageHideWeapon(msgid, dest, id) {
set_msg_arg_int(1, ARG_BYTE, get_msg_arg_int(1) | (1<<5));
}
public Message_StatusIcon(iMsgId, iMsgDest, id) {
static szIcon[8];
get_msg_arg_string(2, szIcon, charsmax(szIcon));
if(equal(szIcon, "buyzone")) {
if(get_msg_arg_int(1)) {
set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0));
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
stock ChatColor(const id, const szMessage[], any:...) {
static pnum, players[32], szMsg[190], IdMsg;
vformat(szMsg, charsmax(szMsg), szMessage, 3);
if(!IdMsg) IdMsg = get_user_msgid("SayText");
if(id) {
if(!is_user_connected(id)) return;
players[0] = id;
pnum = 1;
}
else get_players(players, pnum, "ch");
for(new i; i < pnum; i++) {
message_begin(MSG_ONE, IdMsg, .player = players[i]);
write_byte(players[i]);
write_string(szMsg);
message_end();
}
}