Announcement

Collapse
No announcement yet.

JumpPads and setting JumpVelocity

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    JumpPads and setting JumpVelocity

    I've made, using UDE, a BoostRing class for use in maps which is a subclass of UTJumpPad. (though it initially started as a subclass of JumpPad - I made its parent class UTJumpPad to see if it would help at all, which it didn't) It uses the mesh for the bomb gate from Bombing Run and is designed so that when a player goes through the middle (bUseCylinderCollision is True) they are fired towards the next BoostRing in the sequence or to a PathNode. The idea is that unlike normal JumpPads, these can be placed in mid-air and will fire the player more-or-less directly at a target BoostRing/whatever - no parabolic flight, something close to a straight line. That's the theory anyway, but in practise I'm finding that, despite having JumpZModifier set to 0.2 and JumpVelocity set to (Z=200) in the actor's DefaultProperties block, there is a sequence in a map I have where the player will be sent in a very high, slow arc above one ring to the next, up to the end of the sequence. I've even tried setting JumpZModifier of the actors in question to 0.00 but the end result was identical - the player receives a significant boost along the Z axis. Yes, I have done full rebuilds between each attempt, yes I am setting the destination rings as a ForcedPath from the source ring, but I'm not sure what else I may be missing. Does anyone know a reliable way to make UnrealEd set JumpVelocity such that it makes a "pad" launch a player in an approximately straight line towards the target instead of an arc above it. The code for the actor is relatively simple, so I've pasted it below. If anyone has any clues for getting the **** thing to work, I'd be very grateful. Right now I'm thinking of overriding the JumpVelocity set by UnrealEd in the PostBeginPlay of the actor but I can't think of the equation I'd need to use to calculate the JumpVelocity that would be necessary. I'm trying very hard not to make it at all specific but right now I can't even think of a way that would make it map-specific or anything similar. Any help would be appreciated at this point.

    Code:
    class BoostRing extends UTJumpPad
    	placeable;
    
    #exec AUDIO IMPORT FILE="Sound\Zipper1.wav" NAME="Boost" GROUP="JumpPad"
    
    event Touch(Actor Other)
    {
    	if ( (Pawn(Other) == None) || (Other.Physics == PHYS_None) || (Vehicle(Other) != None) )
    		return;
    
    	PendingTouch = Other.PendingTouch;
    	Other.PendingTouch = self;
    }
    
    DefaultProperties
    {
    	DrawType=DT_StaticMesh
    	StaticMesh=StaticMesh'XGame_rc.BombDeliveryMesh'
    	bBlockActors=False
    	bCollideActors=True
    	bCollideWorld=False
    	JumpSound=Sound'Boost'
    	bHidden=False
    	bUseCylinderCollision=True
    	CollisionRadius=65
    	JumpZModifier=0.2
    	JumpVelocity=(Z=200)
    }
    (There used to be a bit more to the code but those sections caused unrelated problems so I removed them)
Working...
X