Пробовал как-то так но как-то местами, то работает то под каким-то углом/расстоянии не пашет.
- Код: Выделить всё
bool:my_traceline(Float:start_origin[3], Float:end_origin[3], ignore_ent)
{
static Float:tr_fraction_fl, Float:start[3], entity_ignore_id, team_id;
start = start_origin;
entity_ignore_id = ignore_ent;
team_id = player_team[ignore_ent];
while(entity_ignore_id > 0)
{
engfunc(EngFunc_TraceLine, start, end_origin, DONT_IGNORE_MONSTERS, entity_ignore_id, 0);
get_tr2(0, TR_flFraction, tr_fraction_fl);
if(tr_fraction_fl != 1.0)
{
entity_ignore_id = get_tr2(0, TR_pHit);
if(pev_valid(entity_ignore_id))
{
if((0 < entity_ignore_id < 33 && team_id == player_team[entity_ignore_id]))
get_tr2(0, TR_vecEndPos, start);
else
return false;
}
else
return false;
}
else
return true;
}
return false;
}