self.W_BallisticBullet_LeaveSolid_origin = trace_endpos;
- dst = vlen(trace_endpos - self.origin);
+ dst = max(cvar("g_ballistics_mindistance"), vlen(trace_endpos - self.origin));
// E(s) = E0 - constant * s, constant = area of bullet circle * material constant / mass
Es_m = E0_m - constant * dst;
if(Es_m <= 0)
if(--i < 1)
{
dprint("Too many warpzones in sequence, aborting trace.\n");
+ trace_ent = world;
break;
}
tracebox(org, mi, ma, end, nomonsters, forent);
if(trace_ent == wz)
{
dprint("I transformed into the same zone again, wtf, aborting the trace\n");
+ trace_ent = world;
break;
}
wz = trace_ent;
if(--i < 1)
{
dprint("Too many warpzones in sequence, aborting trace.\n");
+ trace_ent = world;
break;
}
tracetoss(e, forent);
if(trace_ent == wz)
{
dprint("I transformed into the same zone again, wtf, aborting the trace\n");
+ trace_ent = world;
break;
}
wz = trace_ent;