Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <cstrike>
- #include <fun>
- #include <fakemeta>
- #include <hamsandwich>
- new const PLUGIN[] = "Extended Weapon Menu";
- new const VERSION[] = "1.0";
- new const AUTHOR[] = "mforce";
- new const PREFIX[] = "EWM";
- enum _:weapinfo {name[32], weap_name[32], bpammo};
- enum _:PCVARS {AwpMinPlayers, MaxAwps, BlockMaps, PistolMenu, MaxHeg, MaxFlash, MaxSmoke}
- enum _:TEAMS {TE, CT};
- new g_Cvars[PCVARS], bool:g_AllowAWP, g_Awps[TEAMS], bool:g_Used[33];
- new const weapons[][weapinfo] = {
- {"M4A1", "weapon_m4a1", 90},
- {"AK47", "weapon_ak47", 90},
- {"AWP", "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}
- };
- new const pistols[][weapinfo] = {
- {"GLOCK18", "weapon_glock18", 120},
- {"USP", "weapon_usp", 100},
- {"DEAGLE", "weapon_deagle", 35},
- {"FIVESEVEN", "weapon_fiveseven", 100},
- {"P228", "weapon_p228", 52},
- {"ELITE", "weapon_elite", 120}
- };
- public plugin_init() {
- register_plugin(PLUGIN, VERSION, AUTHOR);
- g_Cvars[AwpMinPlayers] = register_cvar("ewm_awpminplayers", "4")
- g_Cvars[MaxAwps] = register_cvar("ewm_maxawp", "3")
- g_Cvars[BlockMaps] = register_cvar("ewm_blockmaps", "0")
- g_Cvars[PistolMenu] = register_cvar("ewm_pistolmenu", "0")
- g_Cvars[MaxHeg] = register_cvar("ewm_maxheg", "1")
- g_Cvars[MaxFlash] = register_cvar("ewm_maxflash", "2")
- g_Cvars[MaxSmoke] = register_cvar("ewm_maxsmoke", "1")
- RegisterHam(Ham_Spawn, "player", "spawn_event", 1);
- register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0");
- register_clcmd("say /fegyo", "weapmenu");
- register_clcmd("say /fegyomenu", "weapmenu");
- register_clcmd("say /fegyver", "weapmenu");
- register_clcmd("say /fegyvermenu", "weapmenu");
- register_clcmd("say /weap", "weapmenu");
- register_clcmd("say /weapon", "weapmenu");
- register_clcmd("say /weaponmenu", "weapmenu");
- register_clcmd("say /gun", "weapmenu");
- register_clcmd("say /guns", "weapmenu");
- register_message(get_user_msgid("Money"), "MessageMoney");
- register_message(get_user_msgid("HideWeapon"), "MessageHideWeapon");
- register_message(get_user_msgid("StatusIcon"), "Message_StatusIcon");
- }
- public plugin_cfg() {
- if(get_pcvar_num(g_Cvars[BlockMaps]) == 1) read_blockedmaps();
- }
- read_blockedmaps() {
- new sBuffer[256], sFile[64], sData[32], pFile;
- new mapname[32]; get_mapname(mapname, charsmax(mapname));
- get_localinfo("amxx_configsdir", sFile, charsmax(sFile));
- format(sFile, charsmax(sFile), "%s/ewm_blockmaps.ini", sFile);
- pFile = fopen(sFile, "rt");
- if(pFile) {
- while(!feof(pFile)) {
- fgets(pFile, sBuffer, charsmax(sBuffer));
- trim(sBuffer);
- if(sBuffer[0] == ';') continue;
- parse(sBuffer, sData, charsmax(sData));
- if(containi(mapname, sData) != -1) {
- fclose(pFile);
- pause("od");
- }
- }
- fclose(pFile);
- }
- else fprintf(pFile, ";awp_^n;fy_");
- }
- public Event_NewRound() {
- arrayset(g_Used, false, sizeof(g_Used));
- arrayset(g_Awps, 0, sizeof(g_Awps));
- new minplayers = get_pcvar_num(g_Cvars[AwpMinPlayers]);
- g_AllowAWP = (GetPlayers(1) >= minplayers && GetPlayers(2) >= minplayers) ? true : false;
- }
- public spawn_event(id) weapmenu(id);
- public weapmenu(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), "\y[%s] \w%s^nby \r%s", PREFIX, PLUGIN, AUTHOR);
- new menu = menu_create(s_MenuName, "weapmenu_h");
- 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 weapmenu_h(id, menu, item) {
- if(item == MENU_EXIT) {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- new maxwp = get_pcvar_num(g_Cvars[MaxAwps]);
- if(equal(weapons[item][weap_name], "weapon_awp")) {
- if(!g_AllowAWP) {
- new minplay = get_pcvar_num(g_Cvars[AwpMinPlayers])
- ChatColor(id, "^4[%s]^1 Nincs lehetőség ^3AWP^1 vásárlására, mert nincs %iv%i.", PREFIX, minplay, minplay)
- weapmenu(id);
- return PLUGIN_HANDLED;
- }
- else if(maxwp) {
- switch(cs_get_user_team(id)) {
- case CS_TEAM_T: {
- if(g_Awps[TE] < maxwp) 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)
- weapmenu(id);
- return PLUGIN_HANDLED;
- }
- }
- case CS_TEAM_CT: {
- if(g_Awps[CT] < maxwp) 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)
- weapmenu(id);
- return PLUGIN_HANDLED;
- }
- }
- }
- }
- }
- if(get_pcvar_num(g_Cvars[PistolMenu]) == 1) {
- pistolmenu(id);
- }
- else {
- 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_grenades(id);
- ChatColor(id, "^4[%s]^1 A(z)^3 %s ^1csomagot választottad.", PREFIX, weapons[item][name]);
- g_Used[id] = true;
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- public pistolmenu(id) {
- new s_MenuName[128]; formatex(s_MenuName, charsmax(s_MenuName), "\y[%s] \w%s^nby \r%s", PREFIX, PLUGIN, AUTHOR);
- new menu = menu_create(s_MenuName, "pistolmenu_h");
- for(new i; i<sizeof(pistols);i++) {
- menu_additem(menu, pistols[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 pistolmenu_h(id, menu, item) {
- if(item == MENU_EXIT) {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- give_item(id, pistols[item][weap_name]);
- cs_set_user_bpammo(id, get_weaponid(pistols[item][weap_name]), pistols[item][bpammo]);
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- give_grenades(id) {
- new maxheg = get_pcvar_num(g_Cvars[MaxHeg]);
- if(maxheg) {
- give_item(id, "weapon_hegrenade");
- cs_set_user_bpammo(id, CSW_HEGRENADE, maxheg);
- }
- new maxflash = get_pcvar_num(g_Cvars[MaxFlash]);
- if(maxflash) {
- give_item(id, "weapon_flashbang" );
- cs_set_user_bpammo(id, CSW_FLASHBANG, maxflash);
- }
- new maxsmoke = get_pcvar_num(g_Cvars[MaxSmoke]);
- if(maxsmoke) {
- give_item(id, "weapon_smokegrenade" );
- cs_set_user_bpammo(id, CSW_SMOKEGRENADE, maxsmoke);
- }
- }
- GetPlayers(team) {
- new players[32], num;
- get_players(players, num, "ce", team == 1 ? "TERRORIST":"CT")
- return num;
- }
- public MessageMoney(msgid, dest, id) {
- set_pdata_int(id, 115, 0);
- set_msg_arg_int(1, ARG_LONG, 0);
- set_msg_arg_int(2, ARG_BYTE, 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, "c");
- for(new i; i < pnum; i++) {
- message_begin(MSG_ONE, IdMsg, .player = players[i]);
- write_byte(players[i]);
- write_string(szMsg);
- message_end();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement