Ok, I'm trying to use this method instead of using set_user_hitzones because it's supposedly buggy. The problem is whenever I look at someone or whatever, the debug messages and sounds come up and I'm not even firing.
Code:
// My defines
#define ARMOR_OFFSET 112 // Armortype offset
#define ARMOR_DEFAULT 100.0 // Default amount of armor
#define ARMOR_NONE 0
#define ARMOR_NOHELM 1
#define ARMOR_HELM 2
#define HITS_HELM 3
#define HITS_NOHELM 5
// plugin_init
register_forward(FM_TraceLine, "forward_traceline", 1);
public forward_traceline( Float:v1[3], Float:v2[3], noMonsters, id )
{
if( !is_user_connected(id) || !is_user_alive(id) )
return FMRES_IGNORED;
new iVictim = get_tr(TR_pHit);
if( !is_user_connected(iVictim) || !is_user_alive(iVictim) || is_user_bot(iVictim) )
return FMRES_IGNORED;
new iHitPlace = get_tr(TR_iHitgroup);
new iArmor = get_pdata_int(iVictim, ARMOR_OFFSET);
new szUserName[33];
get_user_name(iVictim, szUserName, 32);
switch( iArmor )
{
case ARMOR_NOHELM:
{
if( g_iHits[iVictim] <= HITS_NOHELM )
{
emit_sound(iVictim, CHAN_VOICE, "player/bhit_kevlar-1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
set_tr(TR_iHitgroup, HIT_GENERIC);
client_print(iVictim, 4, "[DEBUG] Your kevlar just took a shot, %s", szUserName);
}
}
case ARMOR_HELM:
{
if( g_iHits[iVictim] <= HITS_HELM )
{
if( iHitPlace == HIT_HEAD )
emit_sound(iVictim, CHAN_VOICE, "player/bhit_helmet-1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
set_tr(TR_iHitgroup, HIT_GENERIC);
client_print(iVictim, 4, "[DEBUG] Your kevlar/helmet just took a shot, %s", szUserName);
}
}
}
return FMRES_IGNORED;
}