Quote:
Originally Posted by FG28_Kodiak
äh yes you can destroy it. So it vanished from Map. Or destroy the new created planes instantly or block the planes via Player.PlaceLeave.
|
thx Kodiak for your answer....but unfortunately i am way too stupid regarding scripting to make any use of this by myself, as you probably already noticed a while ago...
vanishing from the map, would be a fancy solution for this i think, coupled with a message that the opposite team won. but i guesss i would need your help for that...
Edit:
i would like to have this function included in my already excisting script:
HTML Code:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using maddox.game;
using maddox.game.world;
public class Mission : AMission
{
Stopwatch MissionTimer = new Stopwatch();
public override void OnBattleStarted()
{
base.OnBattleStarted();
MissionTimer.Start();
MissionNumberListener = -1;
}
public override void OnActorCreated(int missionNumber, string shortName, AiActor actor)
{
base.OnActorCreated(missionNumber, shortName, actor);
if (actor is AiAircraft)
{
switch ((actor as AiAircraft).InternalTypeName())
{
case "bob:Aircraft.He-111P-2":
case "bob:Aircraft.BlenheimMkIV":
Timeout(3000, () => // Time in Seconds
{
(actor as AiAircraft).Destroy();
});
break;
}
}
}
public override void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft)
{
base.OnAircraftCrashLanded(missionNumber, shortName, aircraft);
if(IsActorDestroyable(aircraft))
aircraft.Destroy();
}
public override void OnAircraftLanded(int missionNumber, string shortName, AiAircraft aircraft)
{
base.OnAircraftLanded(missionNumber, shortName, aircraft);
if (IsActorDestroyable(aircraft))
aircraft.Destroy();
}
private bool IsActorDestroyable(AiActor actor)
{
bool actorDestroyable = true;
//Check if actor is empty (no Player)
if (actor is AiAircraft)
{
if ((actor as AiAircraft).ExistCabin(0))
for (int i = 0; i < (actor as AiAircraft).Places(); i++)
{
if ((actor as AiAircraft).Player(i) != null)
{
actorDestroyable = false;
break;
}
}
}
else if (actor is AiGroundActor)
{
if ((actor as AiGroundActor).ExistCabin(0))
for (int i = 0; i < (actor as AiGroundActor).Places(); i++)
{
if ((actor as AiGroundActor).Player(i) != null)
{
actorDestroyable = false;
break;
}
}
}
return actorDestroyable;
}
// to remove GroundActors after their Task is completed
public override void OnActorTaskCompleted(int missionNumber, string shortName, AiActor actor)
{
base.OnActorTaskCompleted(missionNumber, shortName, actor);
if (actor is AiGroundActor)
if (IsActorDestroyable(actor))
(actor as AiGroundActor).Destroy();
}
public int GetSumAllPlanes()
{
int planeCount = 0;
List<AiAirGroup> allAirgroups = new List<AiAirGroup>();
if (GamePlay.gpAirGroups(1) != null)
allAirgroups.AddRange(GamePlay.gpAirGroups(1));
if (GamePlay.gpAirGroups(2) != null)
allAirgroups.AddRange(GamePlay.gpAirGroups(2));
allAirgroups.ForEach(item =>
{
foreach (AiAircraft ac in item.GetItems())
{
planeCount++;
}
});
return planeCount;
}
public override void OnTickGame()
{
if(MissionTimer.Elapsed.TotalSeconds >= 130 && GetSumAllPlanes() < 30) //Loads a mission every 130s and only if the sum of all planes < 30
{
Random ZufaelligeMission = new Random();
MissionTimer.Restart(); // Sets timer to 0 and start again
switch (ZufaelligeMission.Next(34,35))
{
case 1:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission1.mis");
break;
case 2:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission2.mis");
break;
case 3:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission3.mis");
break;
case 4:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission4.mis");
break;
case 5:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission5.mis");
break;
case 6:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission6.mis");
break;
case 7:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission7.mis");
break;
case 8:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission8.mis");
break;
case 9:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission9.mis");
break;
case 10:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission10.mis");
break;
case 11:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission11.mis");
break;
case 12:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission12.mis");
break;
case 13:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission13.mis");
break;
case 14:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission14.mis");
break;
case 15:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission15.mis");
break;
case 16:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission16.mis");
break;
case 17:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission17.mis");
break;
case 18:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission18.mis");
break;
case 19:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission19.mis");
break;
case 20:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission20.mis");
break;
case 21:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission21.mis");
break;
case 22:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission22.mis");
break;
case 23:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission23.mis");
break;
case 24:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission24.mis");
break;
case 25:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission25.mis");
break;
case 26:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission26.mis");
break;
case 27:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission27.mis");
break;
case 28:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission28.mis");
break;
case 29:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission29.mis");
break;
case 30:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission30.mis");
break;
case 31:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission31.mis");
break;
case 32:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission32.mis");
break;
case 33:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission33.mis");
break;
case 34:
GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission34.mis");
break;
}
}
}
}
and maybe with the function included, that after one side has shot down a certain amount of AI planes(bombers), no bombers will spawn anymore....
i know i somehow ask for much, and if its sounding demanding in a way, i apologize, i can fully understand if you have better things to do