HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2.  
  3. #define PLUGIN "Low health breathe"
  4. #define VERSION "1.0"
  5. #define AUTHOR "balck"
  6.  
  7. new dmgcvar, lowdmgfade;
  8. new bool:low_dmg[33] = false;
  9. new color, r, g, b;
  10.  
  11. public plugin_precache() {
  12. precache_sound("breathe.wav");
  13. }
  14.  
  15. public plugin_init(){
  16. register_plugin(PLUGIN, VERSION, AUTHOR);
  17. register_cvar("lowhealthbreathe", VERSION, FCVAR_SERVER|FCVAR_SPONLY);
  18.  
  19. dmgcvar = register_cvar( "amx_low_dmg", "26" );
  20. lowdmgfade = register_cvar( "amx_low_dmg_sfade", "1" );
  21. color = register_cvar( "amx_low_color", "210 0 0" );
  22.  
  23. register_event("Damage", "event_damage", "be");
  24. register_event("DeathMsg", "event_deathmsg", "a");
  25. register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
  26.  
  27. new colors[16], red[4], green[4], blue[4];
  28. get_pcvar_string( color, colors, sizeof colors - 1 );
  29. parse( colors, red, 3, green, 3, blue, 3 );
  30. r = str_to_num( red );
  31. g = str_to_num( green );
  32. b = str_to_num( blue );
  33. }
  34.  
  35. public event_damage(id){
  36. if(!is_user_connected(id) || is_user_bot(id))
  37. return PLUGIN_HANDLED;
  38.  
  39. if(get_user_health(id) < get_pcvar_num(dmgcvar)){
  40. if(low_dmg[id] == true){
  41. return PLUGIN_HANDLED
  42. }
  43. else{
  44. set_task(1.7, "lowdmg", id, _, _, "b");
  45. low_dmg[id] = true;
  46. }
  47. }
  48. return PLUGIN_CONTINUE;
  49. }
  50.  
  51. public event_deathmsg(){
  52. new id = read_data(2);
  53.  
  54. if(!is_user_connected(id) || is_user_bot(id) || low_dmg[id] == false)
  55. return PLUGIN_HANDLED;
  56.  
  57. remove_task(id);
  58. low_dmg[id] = false;
  59.  
  60. return PLUGIN_CONTINUE;
  61. }
  62.  
  63. public event_new_round(){
  64. new pnum, id, players[32];
  65.  
  66. get_players(players, pnum, "c");
  67.  
  68. for(new i = 0; i < pnum; i++){
  69. id = players[i];
  70.  
  71. if(is_user_connected(id) && low_dmg[id] == true){
  72. remove_task(id);
  73. low_dmg[id] = false;
  74. }
  75. }
  76. }
  77.  
  78. public lowdmg(id){
  79. if( get_user_health( id ) > get_pcvar_num( dmgcvar ) ){
  80. remove_task( id )
  81. low_dmg[ id ] = false
  82. return
  83. }
  84. client_cmd(id, "spk sound/breathe");
  85.  
  86. if(get_pcvar_num(lowdmgfade)){
  87. message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
  88. write_short( 10<<12 ) // fade lasts this long duration
  89. write_short( 10<<16 ) // fade lasts this long hold time
  90. write_short( 1<<0 ) // fade type (in / out)
  91. write_byte( r ) // fade red
  92. write_byte( g ) // fade green
  93. write_byte( b ) // fade blue
  94. write_byte( 210 ) // fade alpha
  95. message_end()
  96. }
  97. }