![]() |
#11
|
|||
|
|||
![]()
If you want to destroy aircraft loaded by submissions do not forget to include
Code:
////////////////////////////////////////////////////////////////////////////////////////////////// //Listen to events of every (sub)mission public override void Init(maddox.game.ABattle battle, int missionNumber) { base.Init(battle, missionNumber); MissionNumberListener = -1; //Listen to events of every mission } ////////////////////////////////////////////////////////////////////////////////////////////////// |
#12
|
|||
|
|||
![]() Quote:
|
#13
|
|||
|
|||
![]()
@ Flashman
Just copy and past anywhere you like. You can always check out my recent script in Online Missions go here thread. @all It seems like this script I use does not destroy ships loaded by a submission. Other ground units are destroyed as intended. What can be wrong? IIRC ships belong to AiGroundActor Code:
//Ground objects (except AA Guns) will die after 55 min when counted from their birth public override void OnActorCreated(int missionNumber, string shortName, AiActor actor) { base.OnActorCreated(missionNumber, shortName, actor); //Ground objects (except AA Guns) will die after 55 min when counted from their birth if (actor is AiGroundActor) if ((actor as AiGroundActor).Type() != maddox.game.world.AiGroundActorType.AAGun) Timeout(3300, () => { if (actor != null) { (actor as AiGroundActor).Destroy(); } } ); } Last edited by Ataros; 05-20-2011 at 12:34 PM. |
#14
|
|||
|
|||
![]()
I think you got lucky guys....
(I can only think because I do not undestand the language you write in this thread... ![]() From the Hotfix: Quote:
|
#15
|
|||
|
|||
![]() Quote:
This is what happens in 3-4 hours after starting a mission. https://lh4.googleusercontent.com/_S...5-21_00016.jpg |
#16
|
||||
|
||||
![]()
Somehow game does not see ships as AiGroundActor. Ask naryv about this.
|
#17
|
|||
|
|||
![]()
Looks like the script we are running on Repka and Syndicate is not 100% compatible with multicrew aircraft.
Quote:
Code:
//////////////////////////////////////////////////////////////////////////////////////////////////// // destroys aircraft abandoned by a player. private bool isAiControlledPlane (AiAircraft aircraft) { if (aircraft == null) { return false; } Player [] players = GamePlay.gpRemotePlayers (); foreach (Player p in players) { if (p != null && (p.Place () is AiAircraft) && (p.Place () as AiAircraft) == aircraft) { return false; } } return true; } private void destroyPlane (AiAircraft aircraft) { if (aircraft != null) { aircraft.Destroy (); } } private void explodeFuelTank (AiAircraft aircraft) { if (aircraft != null) { aircraft.hitNamed (part.NamedDamageTypes.FuelTank0Exploded); } } private void destroyAiControlledPlane (AiAircraft aircraft) { if (isAiControlledPlane (aircraft)) { destroyPlane (aircraft); } } private void damageAiControlledPlane (AiActor actor) { if (actor == null || !(actor is AiAircraft)) { return; } AiAircraft aircraft = (actor as AiAircraft); if (!isAiControlledPlane (aircraft)) { return; } if (aircraft == null) { return; } aircraft.hitNamed (part.NamedDamageTypes.ControlsElevatorDisabled); aircraft.hitNamed (part.NamedDamageTypes.ControlsAileronsDisabled); aircraft.hitNamed (part.NamedDamageTypes.ControlsRudderDisabled); aircraft.hitNamed (part.NamedDamageTypes.FuelPumpFailure); int iNumOfEngines = (aircraft.Group() as AiAirGroup).aircraftEnginesNum(); for (int i = 0; i < iNumOfEngines; i++) { aircraft.hitNamed((part.NamedDamageTypes)Enum.Parse(typeof(part.NamedDamageTypes), "Eng" + i.ToString() + "TotalFailure")); } /***Timeout (240, () => {explodeFuelTank (aircraft);} ); * ***/ Timeout (300, () => {destroyPlane (aircraft);} ); } ////////////////////////////////////////// public override void OnPlaceLeave (Player player, AiActor actor, int placeIndex) { base.OnPlaceLeave (player, actor, placeIndex); Timeout (1, () => {damageAiControlledPlane (actor);} ); } public override void OnAircraftCrashLanded (int missionNumber, string shortName, AiAircraft aircraft) { base.OnAircraftCrashLanded (missionNumber, shortName, aircraft); Timeout (300, () => { destroyPlane(aircraft); } ); } public override void OnAircraftLanded (int missionNumber, string shortName, AiAircraft aircraft) { base.OnAircraftLanded(missionNumber, shortName, aircraft); Timeout(300, () => { destroyPlane(aircraft); } ); } ////////////////////////////////////////////////////////////////////////////////////////////////// Last edited by Ataros; 05-25-2011 at 10:46 AM. |
#18
|
||||
|
||||
![]()
Ataros,
are there problems with Ju88 ar He111? I ask because it might be not a despawn problem, but separate bug. If I recall correctly there was (or still is) a problem with Br.20: engines cout out as player switches pilot positions (there are 2 piliots in Br.20). |
#19
|
|||
|
|||
![]()
I did not try it myself yet. Will be able to test only tomorrow.
People report all bombers as far as I understand. This guy flies red side only i.e. Blenheims http://www.sukhoi.ru/forum/showthrea...=1#post1625736 Last edited by Ataros; 05-25-2011 at 11:42 AM. |
#20
|
|||
|
|||
![]() Quote:
|
![]() |
|
|