???
Математика на уровне МГУ

Показано с 1 по 25 из 789

Тема: Вопросы.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #6

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    Цитата Сообщение от adonys Посмотреть сообщение
    Do damage to a random part of a plane (not using the limited Switch construction, which only allows damage to the parts listed in it, therefore a limited number)?
    i'll try answer tomorrow
    I've made something like this:

    Код:
    // Script that triggered an accidental damage to the player plane
    // Autor: adonys
    // version: 1.1
    
    using System;
    using System.IO;
    using System.Collections;
    using System.Collections.Generic;
    using maddox.game;
    using maddox.game.world;
    using maddox.GP;
    
    public class Mission : maddox.game.AMission
    {
        AiAircraft PlayerPlane;
        
        int PlanePartsNr = 117;
        
        private string[] PlanePartsList = new string[] 
        {   "ElecGeneratorFailure",
            "ElecBatteryFailure",
            "ElecPrimaryFailure",
            "ElecSecondaryFailure",
            "ElecMasterCompassFailure",
            "ElecWeaponryFailure",
            "ElecPriNavigationFailure",
            "ElecSecNavigationFailure",
            "ElecTransceiverFailure",
            "ElecIlluminationFailure",
            "HydraulicsPumpFailure",
            "HydraulicsPrimaryHosePerforated",
            "HydraulicsPistonOpened",
            "HydraulicsEmergencyFailure",
            "HydraulicsTankPerforated",
            "PneumaticsCompressorFailure",
            "PneumaticsPrimaryContainerPerforated",
            "PneumaticsSecondaryContainerPerforated",
            "PneumaticsPrimaryHosePerforated",
            "PneumaticsSecondaryHosePerforated",
            "ControlsGenericKickdown",
            "ControlsElevatorDisabled",
            "ControlsAileronsDisabled",
            "ControlsRudderDisabled",
            "LandingFlapsPistonFailure1",
            "LandingFlapsPistonFailure2",
            "LandingFlapsKinematicFailure1",
            "LandingFlapsKinematicFailure2",
            "LandingFlapsDriveFailure",
            "LandingFlapsHosePerforated",
            "AirbrakeHosePerforated",
            "AirbrakeDriveFailure",
            "AirbrakePistonFailure",
            "WheelBrakesFailureL",
            "WheelBrakesFailureR",
            "WheelBrakesTotalFailure",
            "WheelBrakesHosePerforated",
            "UndercarriageShockFailureL",
            "UndercarriageShockFailureR",
            "UndercarriageShockFailureC",
            "UndercarriageUpLockFailureL",
            "UndercarriageUpLockFailureR",
            "UndercarriageUpLockFailureC",
            "UndercarriageDownLockFailureL",
            "UndercarriageDownLockFailureR",
            "UndercarriageDownLockFailureC",
            "UndercarriageKinematicFailureL",
            "UndercarriageKinematicFailureR",
            "UndercarriageKinematicFailureC",
            "UndercarriageHosePerforated",
            "UndercarriageDriveDamaged",
            "Eng0TotalFailure",
            "Eng0TotalSeizure",
            "Eng0IntakeBurnt",
            "Eng0CompressorFailure",
            "Eng0CompressorGovernorFailure",
            "Eng0CompressorSeizure",
            "Eng0IntercoolerBurnt",
            "Eng0CarbFailure",
            "Eng0CarbControlsFailure",
            "Eng0FuelLinePerforated",
            "Eng0FuelPumpFailure",
            "Eng0FuelSecondariesFire",
            "Eng0Magneto0Failure",
            "Eng0Magneto1Failure",
            "Eng0OilPumpFailure",
            "Eng0OilRadiatorPerforated",
            "Eng0OilLineBroken",
            "Eng0OilGasketLeak",
            "Eng0OilSecondariesFire",
            "Eng0OilSecondariesExtinguished",
            "Eng0OilTankPerforated",
            "Eng0WaterPumpFailure",
            "Eng0WaterRadiatorPerforated",
            "Eng0WaterLineBroken",
            "Eng0WaterTankPerforated",
            "Eng0WaterJacketBroken",
            "Eng0CylinderHeadFire",
            "Eng0CylinderHeadExtinguished",
            "Eng0ExhaustHeadFailure",
            "Eng0GovernorFailure",
            "Eng0GovernorSeizure",
            "Eng0ThrottleControlBroken",
            "Eng0PropControlBroken",
            "Eng0TretiaryControlBroken",
            "Eng0PropBlade0Broken",
            "Eng0PropBlade1Broken",
            "Eng0PropBlade2Broken",
            "Eng0PropBlade3Broken",
            "Eng0Plug00Failure",
            "FuelTank0TinyLeak",
            "FuelTank0SmallLeak",
            "FuelTank0LargeLeak",
            "FuelTank0Fire",
            "FuelTank0Exploded",
            "FuelTank0HosePerforated",
            "FuelTank0PumpFailure",
            "Machinegun00Failure",
            "Machinegun00BeltBroken",
            "Machinegun00Jammed",
            "Machinegun00Charged",
            "Machinegun00LineDamaged",
            "CockpitDamageFlag00",
            "CockpitDamageFlag01",
            "CockpitDamageFlag02",
            "CockpitDamageFlag03",
            "CockpitDamageFlag04",
            "CockpitDamageFlag05",
            "CockpitDamageFlag06",
            "CockpitDamageFlag07",
            "CockpitDamageFlag08",
            "CockpitDamageFlag09",
            "CockpitDamageFlag10",
            "CockpitDamageFlag11",
            "CockpitDamageFlag12",
            "CockpitDamageFlag13",
            "CockpitDamageFlag14",
        };
    
        private string[] PlanePartsListText = new string[] 
        {   "ElecGeneratorFailure",
            "ElecBatteryFailure",
            "ElecPrimaryFailure",
            "ElecSecondaryFailure",
            "ElecMasterCompassFailure",
            "ElecWeaponryFailure",
            "ElecPriNavigationFailure",
            "ElecSecNavigationFailure",
            "ElecTransceiverFailure",
            "ElecIlluminationFailure",
            "Hydraulics Pump failure",
            "HydraulicsPrimaryHosePerforated",
            "HydraulicsPistonOpened",
            "HydraulicsEmergencyFailure",
            "HydraulicsTankPerforated",
            "PneumaticsCompressorFailure",
            "PneumaticsPrimaryContainerPerforated",
            "PneumaticsSecondaryContainerPerforated",
            "PneumaticsPrimaryHosePerforated",
            "PneumaticsSecondaryHosePerforated",
            "ControlsGenericKickdown",
            "Elevator disabled",
            "Ailerons disabled",
            "Rudder disabled",
            "LandingFlapsPistonFailure1",
            "LandingFlapsPistonFailure2",
            "LandingFlapsKinematicFailure1",
            "LandingFlapsKinematicFailure2",
            "LandingFlapsDriveFailure",
            "LandingFlapsHosePerforated",
            "AirbrakeHosePerforated",
            "AirbrakeDriveFailure",
            "AirbrakePistonFailure",
            "WheelBrakesFailureL",
            "WheelBrakesFailureR",
            "WheelBrakesTotalFailure",
            "WheelBrakesHosePerforated",
            "UndercarriageShockFailureL",
            "UndercarriageShockFailureR",
            "UndercarriageShockFailureC",
            "UndercarriageUpLockFailureL",
            "UndercarriageUpLockFailureR",
            "UndercarriageUpLockFailureC",
            "Undercarriage Left down-lock mechanism failure",
            "Undercarriage Right down-lock mechanism failure",
            "Undercarriage Central down-lock mechanism failure",
            "UndercarriageKinematicFailureL",
            "UndercarriageKinematicFailureR",
            "UndercarriageKinematicFailureC",
            "UndercarriageHosePerforated",
            "UndercarriageDriveDamaged",
            "Engine Total failure",
            "Eng0TotalSeizure",
            "Eng0IntakeBurnt",
            "Eng0CompressorFailure",
            "Eng0CompressorGovernorFailure",
            "Eng0CompressorSeizure",
            "Eng0IntercoolerBurnt",
            "Eng0CarbFailure",
            "Eng0CarbControlsFailure",
            "Eng0FuelLinePerforated",
            "Eng0FuelPumpFailure",
            "Eng0FuelSecondariesFire",
            "Eng0Magneto0Failure",
            "Eng0Magneto1Failure",
            "Eng0OilPumpFailure",
            "Eng0OilRadiatorPerforated",
            "Eng0OilLineBroken",
            "Eng0OilGasketLeak",
            "Oil is on fire",
            "Eng0OilSecondariesExtinguished",
            "Eng0OilTankPerforated",
            "Eng0WaterPumpFailure",
            "Eng0WaterRadiatorPerforated",
            "Eng0WaterLineBroken",
            "Eng0WaterTankPerforated",
            "Eng0WaterJacketBroken",
            "Eng0CylinderHeadFire",
            "Eng0CylinderHeadExtinguished",
            "Eng0ExhaustHeadFailure",
            "Eng0GovernorFailure",
            "Eng0GovernorSeizure",
            "Eng0ThrottleControlBroken",
            "Eng0PropControlBroken",
            "Eng0TretiaryControlBroken",
            "PropBlade Broken",
            "Eng0PropBlade1Broken",
            "Eng0PropBlade2Broken",
            "Eng0PropBlade3Broken",
            "Engine Plug 0 failure",
            "FuelTank0TinyLeak",
            "FuelTank0SmallLeak",
            "FuelTank0LargeLeak",
            "FuelTank0Fire",
            "FuelTank0Exploded",
            "FuelTank0HosePerforated",
            "FuelTank0PumpFailure",
            "Machinegun00Failure",
            "Machinegun00BeltBroken",
            "Machinegun00Jammed",
            "Machinegun00Charged",
            "Machinegun00LineDamaged",
            "103 CockpitDamageFlag00: gunsight",
            "104 CockpitDamageFlag01: instruments",
            "CockpitDamageFlag02",
            "CockpitDamageFlag03",
            "CockpitDamageFlag04",
            "CockpitDamageFlag05",
            "CockpitDamageFlag06",
            "CockpitDamageFlag07",
            "CockpitDamageFlag08",
            "CockpitDamageFlag09",
            "CockpitDamageFlag10",
            "CockpitDamageFlag11",
            "CockpitDamageFlag12",
            "CockpitDamageFlag13",
            "CockpitDamageFlag14",
        };
    
        public override void OnTrigger(int missionNumber, string shortName, bool active) 
        {
            if (("trigger01".Equals(shortName) && active))
            {
            		//GamePlay.gpHUDLogCenter("Trigger Activated!");
                DoDamage();
            }
            GamePlay.gpGetTrigger(shortName).Enable = false;
        }
    
        private void DoDamage()
        {
            PlayerPlane = (AiAircraft)GamePlay.gpPlayer().Place();              
                
            Random RandomIncident = new Random();
            
            for (int i = 0; i < 3; i++)
            {
    		        int j = (RandomIncident.Next(1,PlanePartsNr) -1);
    		        PlayerPlane.hitNamed ((part.NamedDamageTypes)Enum.Parse(typeof(part.NamedDamageTypes),PlanePartsList[j]));
    		        GamePlay.gpHUDLogCenter(PlanePartsListText[j]);
    		        serverMessage("Failure: "+PlanePartsListText[j]);
          	}
        }
        
        private void serverMessage(string msg)
        {
            Player pl = GamePlay.gpPlayer();
            Player[] players = { pl };
            object[] args = { msg };
            GamePlay.gpLogServer(players, msg, args);
        }
    
        public override void OnAircraftLanded(int missionNumber, string shortName, AiAircraft aircraft)
        {
            GamePlay.gpHUDLogCenter("Excellent, you've managed to land!");
        }
    
        public override void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft) 
        {
            GamePlay.gpHUDLogCenter("You've crash-landed, but you're still alive!");
        }
    
    }
    I've tested it, and it works, but it is still based on a list of airplane parts (and another for failure messages). Can't it be done in a simpler way, like in a MG function hit-random-airplane-part() ?

    Question: How can I verify if an airplane's part was hit, or not?

    Question: how AiAircraft.hitLimb(part.LimbNames.<linmb_name>) and AiAircraft.cutLimb(part.LimbNames.<linmb_name>) are working?

    Question: how can we check an AirGroup AiAircraft Actor's characteristics (altitude, heading, speed, aircraft's type, etc)?

    Request: Also, regarding actor messages, if there's no such a function, to allow custom messages be said by actors (as in SayToGroup), can't such a function be made, please?

    Request: if there's no such function to force a mission's time, can't such a function be made, please?

    Request: regarding the custom campaigns using the AddIn method, not every campaign designer is also a coder, can't a generic .dll be made, loading campaign's paths ( USER_PATH = "$user/mission/tst/campaign/" and PATH = "$home/parts/tst/mission/campaign/") from an easily editable text/xml file? (I for one don't have the Visual Studio 2010 installed on my PC, so I can't compile those)

    Thanks!
    Крайний раз редактировалось adonys; 30.06.2011 в 20:32.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •