From Quake Wiki

traceline(vector v1, vector v2, float nomonsters, entity forent)

v1 = start of line

v2 = end of line

nomonster = if TRUE, then see through other monsters, else FALSE.

forent = ignore this entity, it's owner, and it's owned entities. if forent = world, then ignore no entity.

Trace a line of sight, possibly ignoring monsters, and possibly ignoring the entity forent (usually, forent = self). This function is used very often, tracing and shot targeting. Traces are blocked by bounding boxes and exact bsp entities. Returns the results in the global variables:

float trace_allsolid;

 // never used

float trace_startsolid;

 // never used

float trace_fraction;

 // fraction (percent) of the line that was traced, before
 // an obstacle was hit. Equal to 1 if no obstacle were found.

vector trace_endpos;

 // point where line ended or met an obstacle.

vector trace_plane_normal;

 // direction vector of trace (?)

float trace_plane_dist;

 // distance to impact along direction vector (?)

entity trace_ent;

 // entity hit by the line

float trace_inopen;

 // boolean, true if line went through non-water area.

float trace_inwater;

 // boolean, true if line went through water area.