#include #include #include #include new sprite; public plugin_init() { register_plugin("new plugin","0.1","me"); register_forward(FM_PlayerPreThink,"fw_prethink"); } public plugin_precache() { sprite = engfunc(EngFunc_PrecacheModel,"sprites/your_sprite.spr"); } public fw_prethink(id) { if(!pev_valid(id)) return; static Float:origin[3]; get_user_hitpoint(id,origin); message_begin(MSG_BROADCAST,SVC_TEMPENTITY); write_byte(TE_SPRITE) write_coord(floatround(origin[0])) write_coord(floatround(origin[1])) write_coord(floatround(origin[2])) write_short(sprite) write_byte(2) write_byte(50) message_end() } stock get_user_hitpoint(id, Float:hOrigin[3]) { if (!is_user_alive(id)) return 0; new Float:fOrigin[3], Float:fvAngle[3], Float:fvOffset[3], Float:fvOrigin[3], Float:feOrigin[3]; new Float:fTemp[3]; pev(id, pev_origin, fOrigin); pev(id, pev_v_angle, fvAngle); pev(id, pev_view_ofs, fvOffset); xs_vec_add(fOrigin, fvOffset, fvOrigin); engfunc(EngFunc_AngleVectors, fvAngle, feOrigin, fTemp, fTemp); xs_vec_mul_scalar(feOrigin, 9999.9, feOrigin); xs_vec_add(fvOrigin, feOrigin, feOrigin); engfunc(EngFunc_TraceLine, fvOrigin, feOrigin, 0, id); global_get(glb_trace_endpos, hOrigin); return 1; }