HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1.  
  2. #include <amxmodx>
  3. #include <fakemeta>
  4. #include <hamsandwich>
  5.  
  6. #define PLUGIN_NAME "Blood Color"
  7. #define PLUGIN_VERSION "1.0"
  8. #define PLUGIN_AUTHOR "HsK"
  9.  
  10. new g_bloodSpr, cvar_BloodColor;
  11.  
  12. public plugin_init()
  13. {
  14. register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
  15.  
  16. cvar_BloodColor = register_cvar("amx_blood_color","71");
  17.  
  18. RegisterHam(Ham_BloodColor,"player","fw_BloodColor");
  19. RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack");
  20. }
  21.  
  22. public plugin_precache()
  23. {
  24. g_bloodSpr = precache_model("sprites/blood.spr");
  25. }
  26.  
  27. public fw_BloodColor(id)
  28. {
  29. SetHamReturnInteger(get_pcvar_num(cvar_BloodColor));
  30. return HAM_SUPERCEDE;
  31. }
  32.  
  33. public fw_TraceAttack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damage_type)
  34. {
  35. if (victim == attacker) return HAM_IGNORED;
  36.  
  37. if (!is_user_connected(victim) || !is_user_connected(attacker)) return HAM_IGNORED;
  38.  
  39. if (get_tr2(tracehandle, TR_iHitgroup) == HIT_HEAD)
  40. {
  41. set_tr2(tracehandle,TR_vecEndPos,{8192.0, 8192.0, 8192.0});
  42.  
  43. new origin[3]; get_user_origin(victim, origin, 1);
  44. message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
  45. write_byte(101);
  46. write_coord(origin[0]);
  47. write_coord(origin[1]);
  48. write_coord(origin[2]);
  49. write_coord(random_num(-1, 1));
  50. write_coord(random_num(-1, 1));
  51. write_coord(random_num(-1, 0));
  52. write_byte(get_pcvar_num(cvar_BloodColor));
  53. write_byte(random_num(70,80));
  54. message_end();
  55.  
  56. message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
  57. write_byte(115);
  58. write_coord(origin[0]);
  59. write_coord(origin[1]);
  60. write_coord(origin[2]);
  61. write_short(g_bloodSpr);
  62. write_short(g_bloodSpr);
  63. write_byte(get_pcvar_num(cvar_BloodColor));
  64. write_byte(15);
  65. message_end();
  66. }
  67.  
  68. return HAM_IGNORED;
  69. }
  70.  
  71. new Debug;
  72. public client_putinserver(id)
  73. {
  74. if(Debug == 1) return;
  75. new classname[32];
  76. pev(id,pev_classname,classname,31);
  77.  
  78. if(!equal(classname,"player"))
  79. {
  80. Debug=1;
  81. remove_task(id+9950);
  82. set_task(1.0,"_Debug",id+9950);
  83. }
  84. }
  85. public _Debug(taskid)
  86. {
  87. new id = taskid-9950;
  88. RegisterHamFromEntity(Ham_BloodColor, id,"fw_BloodColor");
  89. RegisterHamFromEntity(Ham_TraceAttack, id, "fw_TraceAttack");
  90. }
  91.  
  92.