View Single Post
  #41  
Old 04-27-2011, 02:11 PM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

Disable fuel pump doesn't help, the engines wouldn't stop. Fuel pump is only nessesary at altitudes above 2500m.

You are right IsAirborne() can be very usefull in this script.

Corrected Version

Code:
using System;
using maddox.game;
using maddox.game.world;
using System.Collections.Generic;

public class  Mission : AMission
{
	public void _DespawnEmptyPlane(AiActor actor)
	{
					if (actor == null)
						{ return;}

					Player[] Players = GamePlay.gpRemotePlayers();
					
					bool PlaneIsEmpty = true;
					
					foreach (Player i in Players)
					{	
						if ((i.Place() as AiAircraft) == (actor as AiAircraft))
							{ 
								PlaneIsEmpty = false;
								break;
							}
					}
					
					if ((PlaneIsEmpty) && (actor as AiAircraft).IsAirborne())
						{ 
							  
							  (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsElevatorDisabled);
							  (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsAileronsDisabled);
							  (actor as AiAircraft).hitNamed(part.NamedDamageTypes.ControlsRudderDisabled);
							  (actor as AiAircraft).hitNamed(part.NamedDamageTypes.Eng0TotalFailure);
                 //for 2mots
                (actor as AiAircraft).hitNamed(part.NamedDamageTypes.Eng1TotalFailure);
                
						     //then wait 10min
                 Timeout(600.0, () => {	
						         (actor as AiAircraft).Destroy(); 
						     });	
							
					  }
					  else if (PlaneIsEmpty)
					  {
					  	  (actor as AiAircraft).Destroy();
					  }
	}

    public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex)
    {
        base.OnPlaceLeave(player, actor, placeIndex);
         	_DespawnEmptyPlane(actor);
    }
}

Last edited by FG28_Kodiak; 04-27-2011 at 02:37 PM.
Reply With Quote