HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include < amxmodx >
  2. #include < engine >
  3. #include < fakemeta >
  4. #include < hamsandwich >
  5. #include < cstrike >
  6. #include < fun >
  7.  
  8. #define MaxWeapon 11
  9.  
  10. new const g_iWeapons[ MaxWeapon ] = { 22, 28, 18, 3, 8, 15, 14, 19, 5, 21, 20 };
  11. new g_sWeapon[ MaxWeapon ][ 16 ], g_sWeaponFull[ MaxWeapon ][ 32 ];
  12. new bool: g_bWeaponMenu[ 33 ], bool: g_bC4;
  13.  
  14. public plugin_init( )
  15. {
  16. register_plugin( "WeaponMenu", "1.0", "Demon" );
  17. register_cvar( "WeaponMenu", "By Demon", FCVAR_SERVER );
  18.  
  19. new sWeapName[ 32 ], sLeft[ 16 ], sRight[ 16 ];
  20.  
  21. for ( new i; i < MaxWeapon; ++i )
  22. {
  23. get_weaponname( g_iWeapons[ i ], sWeapName, 31 );
  24. RegisterHam( Ham_Weapon_Reload, sWeapName, "Reload_Post", 1 );
  25.  
  26. copy( g_sWeaponFull[ i ], 31, sWeapName );
  27.  
  28. strtok( sWeapName, sRight, 15, sLeft, 15, '_' );
  29.  
  30. strtoupper( sLeft );
  31. copy( g_sWeapon[ i ], 15, sLeft );
  32. }
  33. RegisterHam( Ham_Weapon_Reload, "weapon_deagle", "Reload_Post", 1 );
  34. RegisterHam( Ham_Spawn, "player", "PlayerSpawn", 1 );
  35.  
  36. new iEntity = create_entity( "info_map_parameters" );
  37. DispatchKeyValue( iEntity, "buying", "3" );
  38. DispatchSpawn( iEntity );
  39. iEntity = create_entity( "player_weaponstrip" );
  40. DispatchKeyValue( iEntity, "targetname", "stripper" );
  41. DispatchSpawn( iEntity );
  42. iEntity = create_entity( "game_player_equip" );
  43. DispatchKeyValue( iEntity, "weapon_knife" , "1" );
  44. DispatchKeyValue( iEntity, "targetname", "equipment" );
  45. DispatchSpawn( iEntity );
  46. iEntity = create_entity( "multi_manager" );
  47. DispatchKeyValue( iEntity, "equipment" , "0.3" );
  48. DispatchKeyValue( iEntity, "stripper" , "0.2" );
  49. DispatchKeyValue( iEntity, "targetname", "game_playerspawn" );
  50. DispatchKeyValue( iEntity, "spawnflags", "1" );
  51. DispatchSpawn( iEntity );
  52.  
  53. register_event( "HLTV", "eNewRound", "a", "1=0", "2=0" );
  54.  
  55. register_concmd( "say /gun", "cmdWeaponMenu" );
  56. register_concmd( "say /fegyver", "cmdWeaponMenu" );
  57. }
  58.  
  59. public pfn_keyvalue( iEntity )
  60. {
  61. new sClassName[ 20 ], sKeyName[ 16 ], sValue[ 20 ];
  62.  
  63. copy_keyvalue( sClassName, charsmax( sClassName ), sKeyName, charsmax( sKeyName ), sValue, charsmax( sValue ) );
  64.  
  65. if ( equal( sClassName, "info_map_parameters" ) || equal( sClassName, "func_buyzone" ) || equal( sClassName, "game_player_equip" ) || equal( sClassName, "player_weaponstrip" ) )
  66. {
  67. remove_entity( iEntity );
  68. return PLUGIN_HANDLED;
  69. }
  70. else if ( equal( sClassName, "multi_manager" ) && equal( sKeyName, "targetname" ) && equal( sValue, "game_playerspawn" ) )
  71. {
  72. remove_entity( iEntity );
  73. return PLUGIN_HANDLED;
  74. }
  75.  
  76. return PLUGIN_CONTINUE;
  77. }
  78.  
  79. public Reload_Post( iWeapon )
  80. {
  81. static iId; iId = get_pdata_cbase( iWeapon, 41, 4 );
  82. if ( !is_user_connected( iId ) ) return;
  83.  
  84. if ( get_pdata_int( iWeapon, 54, 4 ) || get_pdata_int( iWeapon, 55, 4 ) )
  85. cs_set_user_bpammo( iId, cs_get_weapon_id( iWeapon ), 100 );
  86. }
  87.  
  88. public PlayerSpawn( iId ) { set_task( 0.1, "CheckC4", iId ); }
  89.  
  90. public CheckC4( iId )
  91. {
  92. if ( !g_bC4 ) if ( user_has_weapon( iId, CSW_C4 ) ) set_task( 0.4, "GiveC4", iId );
  93. set_task( 0.33, "WeaponMenu", iId );
  94. }
  95.  
  96. public GiveC4( iId ) { give_item( iId, "weapon_c4" ); cs_set_user_plant( iId, 1, 1 ); g_bC4 = true; }
  97.  
  98. public WeaponMenu( iId )
  99. {
  100. if ( !is_user_alive( iId ) ) return;
  101.  
  102. g_bWeaponMenu[ iId ] = false;
  103.  
  104. static sMenuItem[ 128 ];
  105.  
  106. new iMenu = menu_create( "Fegyvermenu:", "WeaponMenuH" );
  107.  
  108. for ( new i; i < MaxWeapon; ++i )
  109. {
  110. formatex( sMenuItem, 127, "\r[\y%s\r]", g_sWeapon[ i ] );
  111. menu_additem( iMenu, sMenuItem, _, 0 );
  112. }
  113.  
  114. menu_setprop( iMenu, MPROP_EXIT, MEXIT_ALL );
  115. menu_display( iId, iMenu );
  116. }
  117.  
  118. public WeaponMenuH( iId, iMenu, iItem )
  119. {
  120. if( iItem == MENU_EXIT || !is_user_alive( iId ) )
  121. {
  122. menu_destroy( iMenu );
  123. return;
  124. }
  125.  
  126. new sMenuName[ 78 ], sInfo[ 8 ], iKey, iMenuNum;
  127. menu_item_getinfo( iMenu, iItem, iKey, sInfo, charsmax( sInfo ), sMenuName, charsmax( sMenuName ), iMenuNum );
  128.  
  129. give_item( iId, g_sWeaponFull[ iItem ] );
  130. give_item( iId, "weapon_deagle" );
  131. give_item( iId, "weapon_flashbang" );
  132. give_item( iId, "weapon_hegrenade" );
  133. give_item( iId, "weapon_smokegrenade" );
  134. give_item( iId, "item_assaultsuit" );
  135. give_item( iId, "item_thighpack" );
  136.  
  137. cs_set_user_bpammo( iId, g_iWeapons[ iItem ], 100 );
  138. cs_set_user_bpammo( iId, CSW_DEAGLE, 100 );
  139. cs_set_user_bpammo( iId, CSW_FLASHBANG, 2 );
  140.  
  141. client_print( iId, print_chat, "[Fegyvermenu] %s fegyver csomagot valasztottad.", g_sWeapon[ iItem ] );
  142. g_bWeaponMenu[ iId ] = true;
  143. }
  144.  
  145. public eNewRound ( ) { g_bC4 = false; }
  146. public cmdWeaponMenu( iId ) { if ( !g_bWeaponMenu[ iId ] ) WeaponMenu( iId ); }
  147.