HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <fakemeta>
  3.  
  4. enum colors { red, green, blue };
  5.  
  6. #define ONLY_HS
  7. #define ADMIN_KILL ADMIN_BAN
  8. const g_SprEffectMinLife = 3;
  9. const g_SprEffectMaxLife = 7;
  10. new g_SprEffectColor[colors] =
  11. {
  12. 20, // r
  13. 20, // g
  14. 20 // b
  15. };
  16. new const g_SprFiles[colors][] =
  17. {
  18. "sprites/red.spr",
  19. "sprites/green.spr",
  20. "sprites/blue.spr"
  21. };
  22.  
  23. #if AMXX_VERSION_NUM < 183
  24. #define message_begin_f(%1,%2,%3,%4) engfunc(EngFunc_MessageBegin, %1, %2, %3, %4)
  25. #define write_coord_f(%1) engfunc(EngFunc_WriteCoord, %1)
  26. #endif
  27. new g_SprEffect[colors];
  28.  
  29. public plugin_precache()
  30. {
  31. for(new i; i < sizeof g_SprFiles; i++)
  32. g_SprEffect[any:i] = precache_model(g_SprFiles[any:i]);
  33. }
  34.  
  35. public plugin_init()
  36. {
  37. register_plugin("Kill Effect", "0.2", "neugomon");
  38. register_event("DeathMsg", "eventDeath", "a");
  39. }
  40.  
  41. public eventDeath()
  42. {
  43. new victim = read_data(2);
  44. if(!is_user_connected(victim))
  45. return;
  46. #if defined ADMIN_KILL
  47. if(~get_user_flags(victim) & ADMIN_KILL)
  48. return;
  49. #endif
  50. #if defined ONLY_HS
  51. if(!read_data(3))
  52. return;
  53. #endif
  54. new Float:fOrigin[3];
  55. pev(victim, pev_origin, fOrigin);
  56.  
  57. UTIL_SendMessage(fOrigin, red, g_SprEffect[red]);
  58. UTIL_SendMessage(fOrigin, green, g_SprEffect[green]);
  59. UTIL_SendMessage(fOrigin, blue, g_SprEffect[blue]);
  60. }
  61.  
  62. UTIL_SendMessage(Float:fOrigin[3], colors:color, sprite)
  63. {
  64. message_begin_f(MSG_BROADCAST, SVC_TEMPENTITY, Float:{0.0, 0.0, 0.0}, 0);
  65. write_byte(TE_SPRITETRAIL);
  66. write_coord_f(fOrigin[0]);
  67. write_coord_f(fOrigin[1]);
  68. write_coord_f(fOrigin[2] + 50.0);
  69. write_coord_f(fOrigin[0]);
  70. write_coord_f(fOrigin[1]);
  71. write_coord_f(fOrigin[2] + 30.0);
  72. write_short(sprite);
  73. write_byte(g_SprEffectColor[color]);
  74. write_byte(random_num(g_SprEffectMinLife, g_SprEffectMaxLife));
  75. write_byte(2);
  76. write_byte(50);
  77. write_byte(10);
  78. message_end();
  79. }
  80.