Cogito, ergo sum

Legacy:Vehicles Pre2004/TakeDamage

From Unreal Wiki, The Unreal Engine Documentation Site

Jump to: navigation, search

Don't kill the driver!

The TakeDamage can be changed so that if the vehicle is destroyed, the driver doesn't die, but takes a lot of damage. This is useful for smaller vehicles like bikes.

function TakeDamage(int Damage, Pawn instigatedBy, Vector hitlocation, 
                                                Vector momentum, class<DamageType> damageType)
{
        Local Pawn OldDriver; //The driver that just exited
 
        // Avoid damage healing the car!
        if(Damage < 0)
                return;
 
        if(damageType == class'DamTypeSuperShockBeam')
                Health -= 100; // Instagib doesn't work on vehicles
        else
                Health -= 0.5 * Damage; // Weapons do less damage
 
        // The vehicle is dead!
        if(Health <= 0)
        {
                if ( Controller != None )
                {
                        OldDriver = Driver;
                        KDriverLeave(True); // Get the player out (forced)
                        //Let the driver take a lot of damage
                        OldDriver.TakeDamage(120, instigatedBy, hitlocation, momentum, damageType);
                }
                Destroy(); // Destroy the vehicle itself (see Destroyed)
        }
        KAddImpulse(momentum, hitlocation);
}
Personal tools