centerprint(targ, this.message);
}
else
+ {
targ.lastteleporttime = time;
+ targ.lastteleport_origin = targ.origin;
+ }
if (!IS_DEAD(targ))
animdecide_setaction(targ, ANIMACTION_JUMP, true);
.float havocbot_role_timeout;
.float isbot; // true if this client is actually a bot
.float lastteleporttime;
+.vector lastteleport_origin;
.float navigation_hasgoals;
.float nearestwaypointtimeout;
.entity nearestwaypoint;
if(this.lastteleporttime > 0
&& time - this.lastteleporttime < ((this.goalcurrent.wpflags & WAYPOINTFLAG_PERSONAL) ? 2 : 0.15))
{
+ if (this.jumppadcount && !boxesoverlap(this.goalcurrent.absmin, this.goalcurrent.absmax,
+ this.lastteleport_origin + STAT(PL_MIN, this), this.lastteleport_origin + STAT(PL_MAX, this)))
+ {
+ return;
+ }
+
if(this.aistatus & AI_STATUS_WAYPOINT_PERSONAL_GOING)
if(this.goalcurrent.wpflags & WAYPOINTFLAG_PERSONAL && this.goalcurrent.owner==this)
{