HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmod>
  2. #include <csstats>
  3.  
  4. #define PLUGIN "Grenade Enchancer"
  5. #define VERSION "1.3"
  6. #define AUTHOR "anakin_cstrike"
  7.  
  8. new
  9. toggle_plugin,toggle_type,toggle_power,
  10. toggle_flash,toggle_shake,toggle_display,
  11. toggle_trail,trail_color;
  12.  
  13. new g_trail;
  14. new fade,shake;
  15.  
  16. public plugin_init()
  17. {
  18. register_plugin("Grenade Enhancer","1.3","anakin_cstrike");
  19.  
  20. toggle_plugin = register_cvar("grenade_enhancer_active","1");
  21. toggle_flash = register_cvar("grenade_enhancer_screenflash","1");
  22. toggle_display = register_cvar("grenade_enhancer_display","1");
  23. toggle_shake = register_cvar("grenade_enhancer_shake","1");
  24. toggle_type = register_cvar("grenade_enhancer_damagetype","2");
  25. toggle_power = register_cvar("grenade_enhancer_damage","10");
  26. toggle_trail = register_cvar("grenade_enhancer_trail","1");
  27. trail_color = register_cvar("grenade_enhancer_trailcolor","255000000");
  28.  
  29. fade = get_user_msgid("ScreenFade");
  30. shake = get_user_msgid("ScreenShake");
  31. }
  32.  
  33. public plugin_precache()
  34. g_trail = precache_model("sprites/smoke.spr");
  35.  
  36. public damage_info(attacker,victim,damage,wpnindex,hitplace,TA)
  37. {
  38. if(!attacker || !victim || wpnindex != CSW_HEGRENADE || get_cvarptr_num(toggle_plugin) <= 0)
  39. return;
  40.  
  41. new spower = get_cvarptr_num(toggle_power);
  42. if(get_cvarptr_num(toggle_type) > 0)
  43. user_slap(victim,spower,1);
  44. else
  45. user_slap(victim,spower,0);
  46.  
  47.  
  48. if(get_cvarptr_num(toggle_flash) > 0)
  49. {
  50. if(!is_user_bot(victim))
  51. Fade(victim,255,0,0,170);
  52. }
  53.  
  54. if(get_cvarptr_num(toggle_shake) > 0)
  55. {
  56. if(!is_user_bot(victim))
  57. Shake(victim);
  58. }
  59.  
  60. if(get_cvarptr_num(toggle_display) > 0)
  61. {
  62. new sdamage = damage + spower;
  63. set_hudmessage(random(255),random(255),random(255), 0.03, 0.30, 0, 6.0, 12.0);
  64. show_hudmessage(victim, "%i",sdamage);
  65. }
  66. }
  67.  
  68. public grenade_throw(id,gid,wid)
  69. {
  70. if(wid != CSW_HEGRENADE || get_cvarptr_num(toggle_plugin) <= 0 || get_cvarptr_num(toggle_trail) <= 0)
  71. return;
  72.  
  73. new r, g, b,color,colorstring[10];
  74. color = get_cvarptr_string(trail_color,colorstring,charsmax(colorstring));
  75. color = str_to_num(colorstring);
  76. r = clamp(color / 1000000, 0, 255)
  77. color %= 1000000
  78. g = clamp(color / 1000, 0, 255)
  79. b = clamp(color % 1000, 0, 255)
  80.  
  81. Follow(gid,g_trail,10,5,r,g,b,195);
  82. }
  83.  
  84. Follow(entity,index,life,width,red,green,blue,alpha)
  85. {
  86. message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  87. write_byte(TE_BEAMFOLLOW);
  88. write_short(entity);
  89. write_short(index);
  90. write_byte(life);
  91. write_byte(width);
  92. write_byte(red);
  93. write_byte(green);
  94. write_byte(blue);
  95. write_byte(alpha);
  96. message_end();
  97. }
  98.  
  99. Fade(index,red,green,blue,alpha)
  100. {
  101. message_begin(MSG_ONE_UNRELIABLE,fade,{0,0,0},index);
  102. write_short(6<<10);
  103. write_short(5<<10);
  104. write_short(1<<12);
  105. write_byte(red);
  106. write_byte(green);
  107. write_byte(blue);
  108. write_byte(alpha);
  109. message_end();
  110. }
  111.  
  112. Shake(index)
  113. {
  114. message_begin(MSG_ONE_UNRELIABLE,shake,{0,0,0},index);
  115. write_short(1<<13);
  116. write_short(1<<13);
  117. write_short(1<<13);
  118. message_end();
  119. }
  120.