HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <reapi>
  3.  
  4. new ItemID:g_iRestrictWeapons[] =
  5. // Раскомментируйте, что нужно заблокировать.
  6. // ITEM_NONE НЕ ТРОГАТЬ!!!
  7. {
  8. ITEM_SHIELDGUN,
  9. // ITEM_P228,
  10. // ITEM_GLOCK,
  11. // ITEM_SCOUT,
  12. // ITEM_HEGRENADE,
  13. // ITEM_XM1014,
  14. // ITEM_C4,
  15. // ITEM_MAC10,
  16. // ITEM_AUG,
  17. // ITEM_SMOKEGRENADE,
  18. // ITEM_ELITE,
  19. // ITEM_FIVESEVEN,
  20. // ITEM_UMP45,
  21. ITEM_SG550,
  22. // ITEM_GALIL,
  23. // ITEM_FAMAS,
  24. // ITEM_USP,
  25. // ITEM_GLOCK18,
  26. // ITEM_AWP,
  27. // ITEM_MP5N,
  28. // ITEM_M249,
  29. // ITEM_M3,
  30. // ITEM_M4A1,
  31. // ITEM_TMP,
  32. ITEM_G3SG1,
  33. // ITEM_FLASHBANG,
  34. // ITEM_DEAGLE,
  35. // ITEM_SG552,
  36. // ITEM_AK47,
  37. // ITEM_KNIFE,
  38. // ITEM_P90,
  39.  
  40. // don't touch it
  41. ITEM_NONE
  42. };
  43.  
  44. new ItemID:g_iRestrictItems[] =
  45. // Раскомментируйте, что нужно заблокировать.
  46. // ITEM_NONE НЕ ТРОГАТЬ!!!
  47. {
  48. // ITEM_NVG,
  49. // ITEM_DEFUSEKIT,
  50. // ITEM_KEVLAR,
  51. // ITEM_ASSAULT,
  52. // ITEM_LONGJUMP,
  53. // ITEM_HEALTHKIT,
  54. // ITEM_ANTIDOTE,
  55. // ITEM_SECURITY,
  56. // ITEM_BATTERY,
  57. // ITEM_SUIT,
  58.  
  59. // don't touch it
  60. ITEM_NONE
  61. };
  62.  
  63. enum SectionBits
  64. {
  65. SECTION_WEAPONS,
  66. SECTION_ITEMS
  67. };
  68. new g_BitsItemsBlocked[SectionBits];
  69.  
  70. public plugin_init()
  71. {
  72. register_plugin("Weapon Restrict", "1.7", "s1lent");
  73.  
  74. if(g_iRestrictWeapons[0] == ITEM_NONE && g_iRestrictItems[0] == ITEM_NONE)
  75. set_fail_state("Arrays g_iRestrictWeapons & g_iRestrictItems is empty. You noob...");
  76.  
  77. RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "fwdHasRestrictItemPre", false);
  78.  
  79. for(new i; g_iRestrictWeapons[i] != ITEM_NONE; i++)
  80. g_BitsItemsBlocked[SECTION_WEAPONS] |= (1 << any:g_iRestrictWeapons[i]);
  81.  
  82. for(new i; g_iRestrictItems[i] != ITEM_NONE; i++)
  83. g_BitsItemsBlocked[SECTION_ITEMS] |= (1 << any:(g_iRestrictItems[i] % ITEM_NVG));
  84. }
  85.  
  86. public fwdHasRestrictItemPre(const id, const ItemID:item, ItemRestType:type)
  87. {
  88. if((item < ITEM_NVG) ? g_BitsItemsBlocked[SECTION_WEAPONS] & (1 << any:item) :
  89. g_BitsItemsBlocked[SECTION_ITEMS] & (1 << any:(item % ITEM_NVG)))
  90. {
  91. if(type == ITEM_TYPE_BUYING)
  92. client_print(id, print_center, "*** Nem vasarolhato! ***");
  93.  
  94. SetHookChainReturn(ATYPE_INTEGER, 1);
  95. return HC_SUPERCEDE;
  96. }
  97. return HC_CONTINUE;
  98. }