Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <hamsandwich>
  4. #include <cstrike>
  5.  
  6. #define PLUGIN "[ZP] Addon: Show Zombie Health"
  7. #define VERSION "1.0"
  8. #define AUTHOR "Dias : BlackCat (bug fix)"
  9.  
  10. new const healthbar_spr[] = "sprites/zb_healthbar.spr"
  11. new g_playerbar[33] , g_isAlive[33]
  12. new g_playerMaxHealth[33]
  13.  
  14. public plugin_init()
  15. {
  16. register_plugin(PLUGIN, VERSION, AUTHOR)
  17.  
  18. RegisterHam(Ham_Spawn, "player", "ham_spawn_post", 1)
  19. register_forward(FM_AddToFullPack, "fm_addtofullpack_post", 1)
  20.  
  21. register_event("ResetHUD", "event_resethud", "be")
  22. register_event("DeathMsg", "event_death", "a")
  23. register_event("Health", "event_health", "be")
  24.  
  25. register_logevent("logevent_round_start", 2, "1=Round_Start")
  26.  
  27. make_healthbar()
  28. }
  29.  
  30. public logevent_round_start()
  31. {
  32. new players[32], num, player
  33. get_players(players, num)
  34. for (new i = 0; i < num; i++)
  35. {
  36. player = players[i]
  37. g_playerMaxHealth[player] = get_user_health(player)
  38. }
  39. }
  40.  
  41. public make_healthbar()
  42. {
  43. static playerBar, allocString
  44. allocString = engfunc(EngFunc_AllocString, "env_sprite")
  45.  
  46. for( new id = 1; id <= get_maxplayers(); id ++ )
  47. {
  48. g_playerMaxHealth[id] = get_user_health(id)
  49. g_playerbar[id] = engfunc(EngFunc_CreateNamedEntity, allocString)
  50. playerBar = g_playerbar[id]
  51.  
  52. if(pev_valid(playerBar))
  53. {
  54. set_pev(playerBar, pev_scale, 0.25)
  55. engfunc(EngFunc_SetModel, playerBar, healthbar_spr)
  56. set_pev(playerBar, pev_effects, pev(playerBar, pev_effects ) | EF_NODRAW)
  57. }
  58. }
  59. }
  60.  
  61. public plugin_precache() engfunc(EngFunc_PrecacheModel, healthbar_spr)
  62.  
  63. public ham_spawn_post(id)
  64. {
  65. g_playerMaxHealth[id] = get_user_health(id)
  66.  
  67. if(cs_get_user_team(id) == CS_TEAM_CT)
  68. set_pev(g_playerbar[id], pev_effects, pev(g_playerbar[id], pev_effects) | EF_NODRAW)
  69.  
  70. if(is_user_alive(id))
  71. {
  72. g_isAlive[id] = 1
  73. }
  74. }
  75.  
  76. public client_disconnect(id)
  77. {
  78. set_pev(g_playerbar[id], pev_effects, pev(g_playerbar[id], pev_effects) | EF_NODRAW)
  79. }
  80.  
  81. public client_putinserver(id)
  82. {
  83. g_playerMaxHealth[id] = get_user_health(id)
  84. }
  85.  
  86. public event_resethud(id)
  87. {
  88. set_pev(g_playerbar[id], pev_effects, pev(g_playerbar[id], pev_effects) | EF_NODRAW)
  89. }
  90.  
  91. public event_death()
  92. {
  93. new id = read_data(2)
  94.  
  95. g_isAlive[id] = 0
  96. set_pev(g_playerbar[id], pev_effects, pev(g_playerbar[id], pev_effects) | EF_NODRAW)
  97. }
  98.  
  99. public event_health(id)
  100. {
  101. g_playerMaxHealth[id] = get_user_health(id)
  102. new hp = get_user_health(id)
  103.  
  104. if(g_playerMaxHealth[id] < hp)
  105. {
  106. g_playerMaxHealth[id] = hp
  107. set_pev(g_playerbar[id], pev_frame, 99.0)
  108. }
  109. else
  110. {
  111. set_pev(g_playerbar[id], pev_frame, 0.0 + (((hp - 1) * 100) / g_playerMaxHealth[id]))
  112. }
  113. }
  114.  
  115. public fm_addtofullpack_post(es, e, user, host, host_flags, player, p_set)
  116. {
  117. if(!player)
  118. return FMRES_IGNORED
  119.  
  120. if(!is_user_alive(host) || !is_user_alive(user))
  121. return FMRES_IGNORED
  122.  
  123. if(cs_get_user_team(user) != CS_TEAM_T)
  124. return FMRES_IGNORED
  125.  
  126. if(host == user)
  127. return FMRES_IGNORED
  128.  
  129. new Float:PlayerOrigin[3]
  130. pev(user, pev_origin, PlayerOrigin)
  131.  
  132. PlayerOrigin[2] += 60.0
  133.  
  134. engfunc(EngFunc_SetOrigin, g_playerbar[user], PlayerOrigin)
  135. set_pev(g_playerbar[user], pev_effects, pev(g_playerbar[user], pev_effects) & ~EF_NODRAW)
  136.  
  137. return FMRES_HANDLED
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement