HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <hamsandwich>
  4. #include <zombieplague>
  5. #include <xs>
  6.  
  7. new g_norecoil[33]
  8. new Float: cl_pushangle[33][3]
  9. new g_itemid_norecoil, g_maxplayers
  10.  
  11. const WEAPONS_BITSUM = (1<<CSW_KNIFE|1<<CSW_HEGRENADE|1<<CSW_FLASHBANG|1<<CSW_SMOKEGRENADE|1<<CSW_C4)
  12.  
  13. public plugin_init()
  14. {
  15. register_plugin("[ZP] Extra Item: No Recoil", "0.1.0", "CarsonMotion")
  16.  
  17. g_itemid_norecoil = zp_register_extra_item("No Recoil (Egy korre)", 15, ZP_TEAM_HUMAN)
  18.  
  19. new weapon_name[24]
  20. for (new i = 1; i <= 30; i++)
  21. {
  22. if (!(WEAPONS_BITSUM & 1 << i) && get_weaponname(i, weapon_name, 23))
  23. {
  24. RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "fw_Weapon_PrimaryAttack_Pre")
  25. RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "fw_Weapon_PrimaryAttack_Post", 1)
  26. }
  27. }
  28.  
  29. register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
  30.  
  31. g_maxplayers = get_maxplayers()
  32. }
  33.  
  34. public zp_extra_item_selected(player, itemid)
  35. {
  36. if (itemid == g_itemid_norecoil)
  37. {
  38. g_norecoil[player] = true
  39. client_print(player, print_chat, "[ZP] Megvetted a No Recoilt a fegyveredhez!")
  40. }
  41. }
  42.  
  43. public zp_user_infected_post(id)
  44. g_norecoil[id] = false
  45.  
  46. public client_connect(id)
  47. g_norecoil[id] = false
  48.  
  49. public event_round_start()
  50. for (new id = 1; id <= g_maxplayers; id++)
  51. g_norecoil[id] = false
  52.  
  53. public fw_Weapon_PrimaryAttack_Pre(entity)
  54. {
  55. new id = pev(entity, pev_owner)
  56.  
  57. if (g_norecoil[id])
  58. {
  59. pev(id, pev_punchangle, cl_pushangle[id])
  60. return HAM_IGNORED;
  61. }
  62. return HAM_IGNORED;
  63. }
  64.  
  65. public fw_Weapon_PrimaryAttack_Post(entity)
  66. {
  67. new id = pev(entity, pev_owner)
  68.  
  69. if (g_norecoil[id])
  70. {
  71. new Float: push[3]
  72. pev(id, pev_punchangle, push)
  73. xs_vec_sub(push, cl_pushangle[id], push)
  74. xs_vec_mul_scalar(push, 0.0, push)
  75. xs_vec_add(push, cl_pushangle[id], push)
  76. set_pev(id, pev_punchangle, push)
  77. return HAM_IGNORED;
  78. }
  79. return HAM_IGNORED;
  80. }
  81. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  82. *{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0\\ deflang1033{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
  83. */
  84.