- #include < amxmodx > 
- #include < amxmisc > 
- #include < fun > 
- #include < fakemeta > 
- #include < cstrike > 
- #include < hamsandwich > 
-   
- #pragma semicolon       1 
-   
- #define VERSION         "0.0.1" 
-   
- #define Max_Players     32 
-   
- #define OFFSET_PRIMARYWEAPON    116 
- #define OFFSET_C4_SLOT      372 
-   
- #define Weapon_Menu_Name    "\rVálassz fegyvert\w" 
-   
- #define Next_Button     "KövetkezĹ‘" 
- #define Back_Button     "Vissza" 
- #define Exit_Button     "KilĂ©pĂ©s" 
-   
- #define Money_Hud       ( 1 << 5 ) 
-   
- new g_iWPCT; 
- new g_iWPTE; 
-   
- new pCvarMaxCTWps; 
- new pCvarMaxTEWps; 
-   
- new pCvarWPBlock; 
-   
- new pCvarFlash; 
- new pCvarHe; 
- new pCvarSmoke; 
-   
- new pCvarKevlar; 
- new pCvarDefuser; 
-   
- new pCvarPrefix; 
- new pCvarMoney; 
- new pCvarBlockBuy; 
- new pCvarUnAmmo; 
-   
- new const g_szMessages [ ] [ ] =  
- { 
-     "", 
-     "CsapatonkĂ©nt csak kĂ©t ember AWP-zhet!", 
-     "^4[%s] ^1AWP csak 2v2-tĹ‘l használhatĂł!", 
-     "A vásárlás letĂltva!", 
-     "Te már választottál fegyvert!" 
- }; 
-   
- new const g_szWeaponMenuNames [ ] [ ] =  { 
-      
-     "M4A1", 
-     "AK47", 
-     "AWP", 
-     "SCOUT", 
-     "AUG", 
-     "FAMAS", 
-     "GALIL", 
-     "MP5", 
-     "XM1014", 
-     "M3", 
-     "M249" 
- }; 
-   
- new const g_szWeaponsName [ ] [ ] = { 
-      
-     "weapon_m4a1", 
-     "weapon_ak47", 
-     "weapon_awp", 
-     "weapon_scout", 
-     "weapon_aug", 
-     "weapon_famas", 
-     "weapon_galil", 
-     "weapon_mp5navy", 
-     "weapon_xm1014", 
-     "weapon_m3", 
-     "weapon_m249" 
- }; 
-   
- const DoNotReload = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_KNIFE ) | ( 1 << CSW_C4 ) ); 
- new const maxAmmo[ 31 ] = { 
-      
-     0, 
-     52,  
-     0,  
-     90,  
-     1,  
-     32,  
-     1,  
-     100,  
-     90,  
-     1,  
-     120,  
-     100,  
-     100,  
-     90,  
-     90,  
-     90,  
-     100,  
-     120,  
-     30,  
-     120,  
-     200,  
-     32,  
-     90,  
-     120,  
-     90,  
-     2,  
-     35,  
-     90,  
-     90,  
-     0,  
-     100  
- }; 
-   
- new g_szBuyCommands[  ][  ] =  
- { 
-     "usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47",  
-     "galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren", 
-     "sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "12gauge", 
-     "autoshotgun", "smg", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550", 
-     "buyammo1", "buyammo2" 
- }; 
-   
- new const g_szMenuCommands[  ] [  ] =  
- { 
-     "fegyo", 
-     "say fegyo", 
-     "say_team fegyo", 
-      
-     "fegyver", 
-     "say fegyver", 
-     "say_team fegyver", 
-      
-     "say /fegyo", 
-     "say_team /fegyo", 
-      
-     "say /fegyver", 
-     "say_team /fegyver" 
-   
- }; 
-   
- new g_szChatPrefix[ 64 ]; 
- new g_msgHideWeapon; 
- new g_bHasWeapon[ 33 ]; 
-   
- public plugin_init ( ) { 
-      
-     register_plugin( "AWM", VERSION, "#YouCantStopMe" ); 
-     loading_maps(); 
-     RegisterHam( Ham_Spawn, "player", "func_OpenWeaponMenu", 1 ); 
-     pCvarMaxCTWps   = register_cvar( "awm_max_ct_awp",  "2" ); // Ct-nél 2 AWP-s lehet. 
-     pCvarMaxTEWps   = register_cvar( "awm_max_te_awp",  "2" ); // Terroristáknál 2 AWP-s lehet. 
-      
-     pCvarWPBlock    = register_cvar( "awm_allow_wp_player",     "2" ); // Ha mindkét csapatban van 4-4 játékos akkor engedi az AWP-t 
-      
-     pCvarFlash  = register_cvar( "awm_give_flash",  "2" ); // Itt tudod beállítani ,hogy adjon-e füst gránátot. ( 0 = Nem ad ) Alap: 2 Flash gránát 
-     pCvarHe     = register_cvar( "awm_give_he",         "1" ); // Itt tudod beállítani ,hogy adjon-e füst gránátot. ( 0 = Nem ad ) Alap: 1 Robanó gránát 
-     pCvarSmoke  = register_cvar( "awm_give_smoke",  "0" ); // Itt tudod beállítani ,hogy adjon-e füst gránátot. ( 0 = Nem ad ) 
-      
-     pCvarKevlar = register_cvar( "awm_give_kevlar", "2" ); // Itt tudod beállítani ,hogy adjon-e kevlárt. ( 0 = Nem Ad ) Alap: 2 ( Kevlár + Sisak ) 
-     pCvarDefuser    = register_cvar( "awm_give_defuser",    "1" ); // Itt tudod beállítani ,hogy adjon-e defusert. ( 0 = Nem Ad ) 
-      
-     pCvarUnAmmo = register_cvar( "awm_unlimited_ammo",  "1" ); // Itt tudod beállítani ,hogy elfoggyon-e a tár vagy ne. Alap: 1 ( Tehát nem fogy el a tár ) 
-      
-     pCvarBlockBuy   = register_cvar( "awm_block_buy",   "1" ); // Itt tudod beállítani ,hogy tiltsa-e a vásárlást vagy ne. Alap 1 ( Tehát tiltva van ) ( 0 = Nincs tiltva ) 
-     pCvarMoney  = register_cvar( "awm_set_money",   "0" ); // Itt tudod beállítani ,hogy mennyi pénze legyen a játékosoknak. ( 0 = Nincs , eltűnik a hudról is ) Alap: 0 
-     pCvarPrefix     = register_cvar( "awm_prefix",      "divinityZ" ); // Itt tudod beállítani, hogy mi legyen a Fegyvermenü prefix-je. 
-      
-     g_msgHideWeapon = get_user_msgid( "HideWeapon" ); 
-      
-     for( new i = 0; i < sizeof( g_szBuyCommands ); i++ ) 
-         register_clcmd( g_szBuyCommands[ i ], "cmd_BlockBuy" ); 
-      
-     for( new i = 0; i < sizeof( g_szMenuCommands ); i++ ) 
-         register_clcmd( g_szMenuCommands[ i ], "cmd_ShowWeaponMenu" ); 
-      
-     register_event( "ResetHUD", "onResetHUD", "b" ); 
-     register_event( "CurWeapon", "eCurWeapon", "be", "1=1" ); 
-      
-     register_message( g_msgHideWeapon, "msgHideWeapon" ); 
-      
-     register_logevent( "eRoundEnd", 2, "1=Round_End" ); 
- } 
-   
- public loading_maps()  
- {    
-     new fajl[64],linedata[1024],currentmap[64],mapnev[32]; 
-     get_mapname(currentmap,charsmax(currentmap)); 
-     formatex(fajl, charsmax(fajl), "addons/amxmodx/configs/fegyvermenu_tiltas.ini"); 
-   
-     if (!file_exists("addons/amxmodx/configs/fegyvermenu_tiltas.ini")) { 
-         new len,buffer[512]; 
-         len += formatex(buffer[len], charsmax(buffer),";Csak Ărd be azoknak a mapoknak a nevĂ©t amelyiken ne működjön a fegyvermenĂĽ. Pl:^n"); 
-         len += formatex(buffer[len], charsmax(buffer)-len,";^"awp_india^"^n"); 
-      
-         new file = fopen("addons/amxmodx/configs/fegyvermenu_tiltas.ini", "at"); 
-      
-         fprintf(file, buffer); 
-         fclose(file); 
-         return; 
-     } 
-   
-     new file = fopen(fajl, "rt"); 
-   
-     while (file && !feof(file)) { 
-         // Read one line at a time 
-         fgets(file, linedata, charsmax(linedata)); 
-         replace(linedata, charsmax(linedata), "^n", "");//Ăśres sorokat eltĂĽnteti 
-      
-         parse(linedata,mapnev,31); 
-         if(equali(currentmap,mapnev)) { 
-             log_amx("A plugin '%s' mapon nem fut. (configs/fegyvermenu_tiltas.ini)",currentmap); 
-             pause("ad"); 
-             return; 
-         } 
-     } 
-     if (file) fclose(file); 
- } 
-   
- public client_putinserver( iClient ) { 
-      
-     g_bHasWeapon[ iClient ] = false; 
- } 
-   
- public client_disconnect( iClient ) { 
-      
-     g_bHasWeapon[ iClient ] = false; 
- } 
-   
- public cmd_ShowWeaponMenu( iClient ) { 
-     if(!is_user_connected(iClient)) return PLUGIN_HANDLED; 
-      
-     switch( g_bHasWeapon[ iClient ] ) { 
-          
-         case true: { 
-             get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) ); 
-             ColorChat( iClient, "^4[%s]^1 %s" , g_szChatPrefix, g_szMessages[ 4 ] ); 
-              
-             return PLUGIN_HANDLED; 
-         } 
-         case false:     func_OpenWeaponMenu( iClient ); 
-     } 
-     return PLUGIN_HANDLED; 
- } 
-   
- public cmd_BlockBuy( iClient ) { 
-      
-     if( !get_pcvar_num( pCvarBlockBuy ) ) 
-         return PLUGIN_CONTINUE; 
-      
-     get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) ); 
-     ColorChat( iClient,  "^4[%s]^1 %s" , g_szChatPrefix, g_szMessages[ 3 ] ); 
-     return PLUGIN_HANDLED; 
- } 
-   
- public eCurWeapon( iClient ) { 
-      
-     if( get_pcvar_num( pCvarUnAmmo ) ) { 
-          
-         if( is_user_alive( iClient ) ) { 
-              
-             new weapon = read_data( 2 ); 
-             if( !( DoNotReload & ( 1 << weapon ) ) ) { 
-              
-                 cs_set_user_bpammo( iClient, weapon, maxAmmo[ weapon ] ); 
-             } 
-         } 
-     } 
- } 
-   
- public onResetHUD( iClient ) { 
-      
-     if( !get_pcvar_num( pCvarMoney ) ) { 
-          
-         message_begin( MSG_ONE, g_msgHideWeapon, _, iClient ); 
-         write_byte( Money_Hud ); 
-         message_end( ); 
-     } 
- } 
-   
- public msgHideWeapon( ) { 
-      
-     if( !get_pcvar_num( pCvarMoney ) ) { 
-          
-         set_msg_arg_int( 1, ARG_BYTE, get_msg_arg_int( 1 ) | Money_Hud ); 
-     } 
- } 
-   
- public eRoundEnd ( ) { 
-      
-     g_iWPCT = 0; 
-     g_iWPTE = 0; 
- } 
-   
- public func_OpenWeaponMenu ( iClient ) { 
-      
-     if(!is_user_connected(iClient) || !is_user_alive( iClient ) ) 
-         return; 
-          
-     cs_set_user_money( iClient, get_pcvar_num( pCvarMoney ) ); 
-      
-     get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) ); 
-      
-     g_bHasWeapon[ iClient ] = false; 
-      
-     new szMenuTitle[ 121 ]; 
-     new szMenuItem[ 121 ]; 
-      
-     format( szMenuTitle, charsmax( szMenuTitle ), "\r%s", Weapon_Menu_Name ); 
-   
-     StripUserWeapons( iClient ); 
-     new menu = menu_create( szMenuTitle, "func_OpenWeaponMenu_handler" ); 
-      
-     for( new i = 0; i < sizeof( g_szWeaponMenuNames ); i++ ) { 
-          
-         if( i != 2 ) { 
-              
-             format( szMenuItem, charsmax( szMenuItem ), "\r[\y%s\r]", g_szWeaponMenuNames[ i ] ); 
-         } 
-         else { 
-             switch( get_user_team( iClient ) ) 
-             { 
-                 case 1: format( szMenuItem, charsmax( szMenuItem ), "\r[\y%s\r] \r[\dMAX: \y%d\r]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxTEWps ) ); 
-                 case 2: format( szMenuItem, charsmax( szMenuItem ), "\r[\y%s\r] \r[\dMAX: \y%d\r]", g_szWeaponMenuNames[ i ], get_pcvar_num( pCvarMaxCTWps ) ); 
-                 default: continue; 
-             } 
-         } 
-          
-         menu_additem( menu, szMenuItem, _, 0 ); 
-     } 
-      
-     menu_setprop( menu, MPROP_EXIT, MEXIT_ALL ); 
-     menu_setprop( menu, MPROP_BACKNAME, Back_Button ); 
-     menu_setprop( menu, MPROP_NEXTNAME, Next_Button ); 
-     menu_setprop( menu, MPROP_EXITNAME, Exit_Button ); 
-     menu_display( iClient, menu ); 
- } 
-   
- public func_OpenWeaponMenu_handler( iClient, iMenu, iItem ) { 
-      
-     if( iItem == MENU_EXIT ) { 
-          
-         menu_destroy( iMenu ); 
-         return PLUGIN_HANDLED; 
-     } 
-      
-     new data[ 6 ], szName[ 64 ]; 
-     new access, callback; 
-     menu_item_getinfo( iMenu, iItem, access, data, charsmax( data ), szName, charsmax( szName ), callback ); 
-      
-     get_pcvar_string( pCvarPrefix, g_szChatPrefix, charsmax( g_szChatPrefix ) ); 
-      
-     if( iItem != 2 ) { 
-          
-         give_item( iClient, g_szWeaponsName[ iItem ] ); 
-          
-         ColorChat( iClient,  "^4[%s]^1 Te a(z) ^3%s^1 csomagot választottad!", g_szChatPrefix ,g_szWeaponMenuNames[ iItem ] ); 
-     } 
-     else { 
-          
-         new iTeams[ CsTeams ]; 
-         GetPlayerCount( iTeams ); 
-          
-         if( iTeams[ CS_TEAM_T ] < get_pcvar_num( pCvarWPBlock )  
-         || iTeams[ CS_TEAM_CT ] < get_pcvar_num( pCvarWPBlock ) ) { 
-              
-             ColorChat( iClient,  g_szMessages[ 2 ], g_szChatPrefix ); 
-             func_OpenWeaponMenu( iClient ); 
-              
-             return PLUGIN_HANDLED; 
-         } 
-          
-         new CsTeams:userTeam = cs_get_user_team( iClient ); 
-         if( userTeam == CS_TEAM_CT ) { 
-              
-             if( g_iWPCT < get_pcvar_num( pCvarMaxCTWps ) ) { 
-                  
-                 give_item( iClient, g_szWeaponsName[ iItem ] ); 
-                  
-                 ColorChat( iClient, "^4[%s]^1 Te a(z) ^3%s^1 csomagot választottad!", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] ); 
-                 g_iWPCT++; 
-             } 
-             else { 
-                  
-                 client_print( iClient, print_center, g_szMessages[ 1 ] ); 
-                 func_OpenWeaponMenu ( iClient ); 
-                  
-                 return PLUGIN_HANDLED; 
-             } 
-         } 
-          
-         if( userTeam == CS_TEAM_T ) { 
-              
-             if( g_iWPTE < get_pcvar_num( pCvarMaxTEWps ) ) { 
-                  
-                  
-                 give_item( iClient, g_szWeaponsName[ iItem ] ); 
-                  
-                 ColorChat( iClient,  "^4[%s]^1 Te a(z) ^3%s^1 csomagot választottad!", g_szChatPrefix, g_szWeaponMenuNames[ iItem ] ); 
-                 g_iWPTE++; 
-             } 
-             else { 
-                  
-                 client_print( iClient, print_center, g_szMessages[ 1 ] ); 
-                 func_OpenWeaponMenu( iClient ); 
-                  
-                 return PLUGIN_HANDLED; 
-             } 
-         } 
-     } 
-      
-     give_item( iClient, "weapon_knife" ); 
-     give_player_stuff( iClient ); 
-     Pisztolymenu(iClient); 
-          
-     menu_destroy( iMenu ); 
-     return PLUGIN_HANDLED; 
- } 
-          
- public Pisztolymenu(iClient) 
- { 
-     new menu = menu_create("\ddivinityZ^n\rVálassz Pisztolyt:", "Pisztolymenu_handler"); 
-      
-     menu_additem(menu, "\r[\yDeagle\r]", "0", 0); 
-     menu_additem(menu, "\r[\yUsp\r]", "1", 0); 
-     menu_additem(menu, "\r[\yGlock18\r]", "2", 0); 
-     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); 
-     menu_display(iClient, menu, 0); 
- } 
-   
- public Pisztolymenu_handler(iClient, menu, item) 
- { 
-     new command[6], name[64], access, callback; 
-     menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback); 
-   
-     switch(item) { 
-         case 0: { 
-             give_item(iClient, "weapon_deagle"); 
-             cs_set_user_bpammo(iClient, CSW_DEAGLE, 35); 
-             ColorChat( iClient,  "^4[%s]^1 Te a(z) ^3Deagle ^1-t választottad!", g_szChatPrefix); 
-         } 
-         case 1: { 
-             give_item(iClient, "weapon_usp"); 
-             cs_set_user_bpammo(iClient, CSW_USP, 100); 
-             ColorChat( iClient,  "^4[%s]^1 Te a(z) ^3USP ^1-t választottad!", g_szChatPrefix); 
-         } 
-         case 2: { 
-             give_item(iClient, "weapon_glock18"); 
-             cs_set_user_bpammo(iClient, CSW_GLOCK18, 120); 
-             ColorChat( iClient,  "^4[%s]^1 Te a(z) ^3Glock18 ^1-ot választottad!", g_szChatPrefix); 
-         } 
-     } 
-      
-     menu_destroy(menu); 
-     return PLUGIN_HANDLED; 
- } 
- GetPlayerCount( iTeamPlayers[ CsTeams ] ) { 
-      
-     new iPlayers[ 32 ] , iPlayerCount; 
-      
-     get_players( iPlayers , iPlayerCount );  
-      
-     for ( new i = 0 ; i < iPlayerCount ; i++ ) 
-         iTeamPlayers[ cs_get_user_team( iPlayers[ i ] ) ]++; 
- }   
-   
- stock give_player_stuff( iClient ) { 
-      
-     if( get_pcvar_num( pCvarFlash ) ) { 
-          
-         give_item( iClient, "weapon_flashbang" ); 
-         cs_set_user_bpammo( iClient, CSW_FLASHBANG, get_pcvar_num( pCvarFlash ) ); 
-     } 
-      
-     if( get_pcvar_num( pCvarHe ) ) { 
-          
-         give_item( iClient, "weapon_hegrenade" ); 
-         cs_set_user_bpammo( iClient, CSW_HEGRENADE, get_pcvar_num( pCvarHe ) ); 
-     } 
-      
-     if( get_pcvar_num( pCvarSmoke ) ) { 
-          
-         give_item( iClient, "weapon_smokegrenade" ); 
-         cs_set_user_bpammo( iClient, CSW_SMOKEGRENADE, get_pcvar_num( pCvarSmoke ) ); 
-     } 
-      
-     if( get_pcvar_num( pCvarKevlar ) ) { 
-          
-         switch( get_pcvar_num( pCvarKevlar ) ) { 
-              
-             case 1: give_item( iClient, "item_kevlar" ); 
-             case 2: give_item( iClient, "item_assaultsuit" ); 
-             default: return PLUGIN_CONTINUE; 
-         } 
-     } 
-      
-     if( get_pcvar_num( pCvarDefuser ) ) { 
-          
-         give_item( iClient, "item_thighpack" ); 
-     } 
-      
-     if( !get_pcvar_num( pCvarUnAmmo ) ) { 
-          
-         new weapons[ 32 ]; 
-         new weaponsnum; 
-         get_user_weapons( iClient, weapons, weaponsnum ); 
-         for( new i = 0; i < weaponsnum; i++ ) 
-             if( is_user_alive( iClient ) ) 
-                 if( maxAmmo[ weapons[ i ] ] > 0 ) 
-                     cs_set_user_bpammo( iClient, weapons[ i ], maxAmmo[ weapons[ i ] ] ); 
-     } 
-      
-     g_bHasWeapon[ iClient ] = true; 
-     return PLUGIN_CONTINUE; 
- } 
-   
-   
- //Stolen from CSDM Weapon Menu 
- stock StripUserWeapons( iClient ) { 
-      
-     new iC4Ent = get_pdata_cbase( iClient, OFFSET_C4_SLOT ); 
-       
-     if( iC4Ent > 0 ) { 
-          
-         set_pdata_cbase( iClient, OFFSET_C4_SLOT, FM_NULLENT ); 
-     } 
-       
-     strip_user_weapons( iClient ); 
-     set_pdata_int( iClient, OFFSET_PRIMARYWEAPON, 0 ); 
-       
-     if( iC4Ent > 0 )  { 
-          
-         set_pev( iClient, pev_weapons, pev( iClient, pev_weapons ) | ( 1 << CSW_C4 ) ); 
-         set_pdata_cbase( iClient, OFFSET_C4_SLOT, iC4Ent ); 
-          
-         cs_set_user_bpammo( iClient, CSW_C4, 1 ); 
-         cs_set_user_plant( iClient, 1 ); 
-     } 
-      
-     return PLUGIN_HANDLED; 
- } 
-   
- stock ColorChat( iClient, const input[], any:...)  
- {  
-     new count = 1, players[ 32 ]; 
-     static msg[ 191 ]; 
-     vformat( msg, 190, input, 3 ); 
-      
-     replace_all( msg, 190, "^x01" , "^1"); 
-     replace_all( msg, 190, "^x03" , "^3"); 
-     replace_all( msg, 190, "^x04" , "^4");  
-      
-     if ( iClient )  players[ 0 ] = iClient; else get_players( players , count , "ch" ); 
-     {  
-         for ( new i = 0; i < count; i++ )  
-         {  
-             if ( is_user_connected( players[ i ] ) )  
-             {  
-                 message_begin( MSG_ONE_UNRELIABLE , get_user_msgid( "SayText" ), _, players[ i ] ); 
-                 write_byte( players[ i ] );  
-                 write_string( msg );  
-                 message_end(  );  
-             }  
-         }  
-     }  
- }