HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. /*
  4. clientcommands: cmd description
  5. startrage start rage if enough points
  6.  
  7. cvars: cvar default description
  8. rage 1 enables/disables bloodrage
  9. rage_hp 200 health
  10. rage_ap 200 armor
  11. rage_speed 350 speed you get when in rage
  12. rage_minpoints 8 points to reach rage
  13. rage_time_multiplier 5 time in rage = rage_min_time * points
  14. */
  15. #include <amxmodx>
  16. #include <amxmisc>
  17. #include <fun>
  18.  
  19. new killPoints[ 32 ]
  20. new onRage[ 32 ]
  21. new rage_hp, rage_ap, rage_speed, rage_minpoints, rage, rage_time_multiplier
  22. new redScreen
  23.  
  24. public plugin_init() {
  25. register_plugin("Bloodrage", "b1.02", "psYko.joe")
  26. register_event("DeathMsg", "countKills", "a")
  27. register_event("RoundTime", "roundStart", "bc")
  28. register_event("SendAudio", "roundStart", "a", "1=0")
  29. register_event("CurWeapon","checkSpeed","b")
  30. register_clcmd("startrage","startRage")
  31.  
  32. rage = register_cvar("rage", "1")
  33. rage_hp = register_cvar("rage_hp", "200")
  34. rage_ap = register_cvar("rage_ap", "200")
  35. rage_speed = register_cvar("rage_speed", "350")
  36. rage_minpoints = register_cvar("rage_minpoints", "6")
  37. rage_time_multiplier = register_cvar("rage_time_multiplier", "5" )
  38. redScreen = get_user_msgid("ScreenFade")
  39.  
  40. return PLUGIN_CONTINUE
  41. }
  42. public roundStart() {
  43. if( get_pcvar_num(rage) == 0 )
  44. return PLUGIN_HANDLED
  45. for ( new i = 0; i < 32; i++ ) {
  46. if( onRage[i] == 1 )
  47. endRage(i)
  48. }
  49. return PLUGIN_HANDLED
  50. }
  51. public client_putinserver(id) {
  52. if( get_pcvar_num(rage) == 0 )
  53. return PLUGIN_HANDLED
  54. killPoints[id] = 0
  55. return PLUGIN_CONTINUE
  56. }
  57. public client_disconnect(id) {
  58. if( get_pcvar_num(rage) == 0 )
  59. return PLUGIN_HANDLED
  60. killPoints[id] = 0
  61. return PLUGIN_CONTINUE
  62. }
  63. public countKills() {
  64. if( get_pcvar_num(rage) == 0 )
  65. return PLUGIN_HANDLED
  66. new killer = read_data(1)
  67. new victim = read_data(2)
  68. new headshot = read_data(3)
  69. new weapon[32]
  70. read_data(4, weapon, 31)
  71.  
  72. killPoints[ killer ]++
  73. if( headshot )
  74. killPoints[ killer ]++
  75. if( equal( weapon, "knife" ) )
  76. killPoints[ killer ]++
  77. killPoints[ victim ] = 0
  78. if( onRage[ victim ] == 1 )
  79. endRage(victim)
  80. client_print(victim, print_chat, " 0 / %d ", get_pcvar_num(rage_minpoints) )
  81.  
  82. if( onRage[killer] == 0 ) {
  83. client_print(killer, print_chat, " %d / %d ", killPoints[killer], get_pcvar_num(rage_minpoints) )
  84. if( killPoints[ killer ] >= get_pcvar_num(rage_minpoints) )
  85. client_print(killer, print_chat, " Ve'rszomj 100%" )
  86. }
  87. return PLUGIN_CONTINUE
  88. }
  89. public checkSpeed (id) {
  90. if( onRage[id] == 0 )
  91. return PLUGIN_HANDLED
  92. set_user_maxspeed(id , get_pcvar_float( rage_speed ) )
  93. return PLUGIN_CONTINUE
  94. }
  95. public startRage (id) {
  96. if( ( get_pcvar_num(rage) == 0 ) || (killPoints[id] < get_pcvar_num(rage_minpoints)) || (onRage[id] == 1) )
  97. return PLUGIN_HANDLED
  98. set_user_health(id, get_pcvar_num(rage_hp) )
  99. set_user_armor(id, get_pcvar_num(rage_ap) )
  100. set_user_maxspeed(id , get_pcvar_float(rage_speed) )
  101. onRage[id] = 1
  102.  
  103. message_begin(MSG_ONE_UNRELIABLE,redScreen,{0,0,0},id);
  104. write_short(5000);
  105. write_short(5000);
  106. write_short(4);
  107. write_byte(180);
  108. write_byte(0);
  109. write_byte(0);
  110. write_byte(110);
  111. message_end()
  112. set_user_rendering(id,kRenderFxGlowShell,190,0,0,kRenderNormal,25)
  113.  
  114. new playerName[33]
  115. get_user_name(id, playerName, 32)
  116. set_hudmessage(255, 0, 42, -1.0, 0.5, 0, 6.0, 10.0)
  117. show_hudmessage(0, "%s most tombol!!!", playerName )
  118.  
  119. set_task(float(killPoints[id]) * get_pcvar_float( rage_time_multiplier ),"endRage",id,"",0,"a",1)
  120.  
  121. return PLUGIN_HANDLED
  122. }
  123. public endRage (id) {
  124. if( onRage[id] == 0 )
  125. return PLUGIN_HANDLED
  126.  
  127. onRage[id] = 0
  128. killPoints[id] = 0
  129.  
  130. if( get_user_health(id) > 100)
  131. set_user_health(id, 100)
  132. if( get_user_armor(id) > 100)
  133. set_user_armor(id, 100)
  134. set_user_maxspeed(id, 250.0)
  135.  
  136. message_begin(MSG_ONE_UNRELIABLE,redScreen,{0,0,0},id);
  137. write_short(3000);
  138. write_short(3000);
  139. write_short(0);
  140. write_byte(190);
  141. write_byte(0);
  142. write_byte(0);
  143. write_byte(115);
  144. message_end()
  145. set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
  146.  
  147. return PLUGIN_HANDLED
  148. }
  149. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  150. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  151. */
  152.