diff --git a/mp/src/game/server/triggers.cpp b/mp/src/game/server/triggers.cpp index 1e317567..a0ce33c9 100644 --- a/mp/src/game/server/triggers.cpp +++ b/mp/src/game/server/triggers.cpp @@ -2414,6 +2414,18 @@ void CTriggerTeleport::Touch( CBaseEntity *pOther ) { // make origin adjustments in case the teleportee is a player. (origin in center, not at feet) tmp.z -= pOther->WorldAlignMins().z; + + // force velocity to target direction + Vector vecVelIn = pOther->GetAbsVelocity(); + QAngle vecVelInDir = QAngle(0, 0, 0); + VectorAngles(vecVelIn, vecVelInDir); + QAngle vecDirOut = pentTarget->GetAbsAngles(); + //vecVelInDir.z = 0; + //vecVelInDir.x, vecVelInDir.y = 0; + //vecDirOut.x, vecDirOut.y = 0; + Vector vecVelOut = Vector(0, 0, 0); + VectorRotate(vecVelIn, vecDirOut-vecVelInDir, vecVelOut); + pOther->SetAbsVelocity(vecVelOut); } //