View Single Post
  #5  
Old 12-16-2011, 04:35 AM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

@salmo:

Modified:

Code:
    public override void OnAircraftTookOff(int missionNumber, string shortName, AiAircraft aircraft)
    {
        if (m_random.Next(1, 200 + 1) != 67)   // 0.5% chance of takeoff failure
        {
            DoDamage(aircraft);
        }
    }


    private void DoDamage(AiAircraft aircraft)
    {   // Script that triggered an accidental damage to the player plane
        // Author: FG28_Kodiak   Modified by: Salmo
        // Ref: http://forum.1cpublishing.eu/showthread.php?t=22184


        if (aircraft.Player(0) == null) return; // If no human pilot leave

        switch (m_random.Next(1, 7 + 1))
        {
            // ===================================
            // ---- Engine(s) failures ----
            // ===================================
            case 1:
                aircraft.hitNamed(part.NamedDamageTypes.Eng0TotalFailure);
                //sendScreenMessageToPilot(PlayerPlane, "Engine Failure", null);
                //GamePlay.gpHUDLogCenter("Engine Failure");
                break;

            case 2:
                aircraft.hitNamed(part.NamedDamageTypes.Eng0OilSecondariesFire);
                //sendScreenMessageToPilot(aircraft, "Oil is on fire");
                GamePlay.gpHUDLogCenter("Oil is on fire");
                break;

            // ===================================
            // ---- Hydrolicss & cables failures ----
            // ===================================
            case 3:
                if (m_random.Next(1, 2) == 1)
                {
                    aircraft.hitNamed(part.NamedDamageTypes.UndercarriageUpLockFailureL);
                    //sendScreenMessageToPilot(aircraft, "Undercarriage failure");
                    GamePlay.gpHUDLogCenter("Undercarriage failure");
                }
                else
                {
                    aircraft.hitNamed(part.NamedDamageTypes.UndercarriageUpLockFailureR);
                    //sendScreenMessageToPilot(aircraft, "Undercarriage failure");
                    GamePlay.gpHUDLogCenter("Undercarriage failure");
                }
                break;

            case 4:
                aircraft.hitNamed(part.NamedDamageTypes.Eng0ThrottleControlBroken);
                //sendScreenMessageToPilot(aircraft, "Broken throttle cable");
                GamePlay.gpHUDLogCenter("Broken throttle cable");
                break;

            // ===================================
            // ---- Flight surfaces failures ----
            // ===================================
            case 5:
                aircraft.hitNamed(part.NamedDamageTypes.ControlsElevatorDisabled);
                //sendScreenMessageToPilot(aircraft, "Elevator jammed");
                GamePlay.gpHUDLogCenter("Elevator jammed");
                break;

            case 6:
                aircraft.hitNamed(part.NamedDamageTypes.ControlsAileronsDisabled);
                //sendScreenMessageToPilot(aircraft, "Ailerons jammed");
                GamePlay.gpHUDLogCenter("Ailerons jammed");
                break;

            case 7:
                aircraft.hitNamed(part.NamedDamageTypes.ControlsRudderDisabled);
                //sendScreenMessageToPilot(aircraft, "Rudder jammed");
                GamePlay.gpHUDLogCenter("Rudder jammed");
                break;

            default:
                aircraft.hitNamed(part.NamedDamageTypes.Eng0TotalFailure);
                //sendScreenMessageToPilot(aircraft, "Engine Failure");
                GamePlay.gpHUDLogCenter("Engine Failure");
                break;

        }

    }
Reply With Quote