Была та же проблема, я сделал так: занес объекты в массив, с их свойствами, установил SOLID_BBOX, далее get_user_aiming() (в моем случае был trace), после получения ID объекта, восстановил свойства объектов так, как было. SOLID_BBOX -> get_user_aiming() -> set_task(func) -> func{ SOLID_TRIGGER }
Могу и ошибаться, но get_user_aiming() работает с игроками, им не получишь ID объекта, можно использовать
- Код: Выделить всё
public Get_Aimming(id){
static Float: start[3], Float: ofs[3], Float: angle[3], i
pev(id, pev_origin, start)
pev(id, pev_view_ofs, ofs)
pev(id, pev_v_angle, angle)
engfunc(EngFunc_MakeVectors, angle)
global_get(glb_v_forward, angle)
for(i = 0; i < 3; i++)
{
start[i] += ofs[i]
}
for(i = 0; i < 3; i++)
{
angle[i] *= 9999.0;
angle[i] += start[i];
}
engfunc(EngFunc_TraceLine, start, angle, DONT_IGNORE_MONSTERS, id, 0)
return get_tr2(0, TR_pHit)
}