At least I was able to reproduce that effect on every (?) swjumppad: face to its destination and walk/run in in a way, that your speed is close to 0 when touching its collision cylinder. Then the swjumppad calculates the correct velocity vector to the target, applies that to the Pawn, the Pawn has the assigned velocity (verified by debugging output), but the Y component of that velocity seems to be ignored from the engine that is doing the movement finally: the pawn (me^^) moves along X and Z axis only, but not along Y axis.
Even if I skip the part of calculation the velocity vector that leads to the target and assign a constant vector to Pawn's velocity, the Y component is sometimes ignored and sometimes not:
Code: Select all
simulated function vector CalcVelocity( Pawn Other ) {
[...]
// commented the next line out:
// Other.Velocity = vel;
// and added this instead:
Other.Velocity = vect(-115,-1677, 1034);
[...]
}
simulated event PostTouch( Actor Other ) {
P = Pawn(Other);
[...]
CalcVelocity( P );
[...]
}
Are there conditions under that a direct assignment to Pawn.Velocity does not work or work only partially?