![]() |
|
|
|
#1
|
|||
|
|||
|
I'm using GamePlay.gpPostMissionLoad(MakeNewStaticSection()) ; to load a new mission section after battle start. The [Stationary] section is constructed by script & contains only stationary objects (not Ai actors). It spawns statics OK. Does anyone have a method by which I can destroy those statics after a period of time? Perhaps by capturing the mission number or storing the static names?
__________________
When one engine fails on a two engine bomber, you will always have enough power left to get to the scene of the crash. Get the latest COD Team Fusion patch info HERE Last edited by salmo; 12-30-2011 at 11:54 AM. |
|
#2
|
|||
|
|||
|
salmo -
I use the OnActorCreated to create a list of actors created. It picks up statics that are Artillery, Ships, AAGuns, etc. It does not pick up static objects like fuel barrels, fire extinguisher, etc. Each actor created is stored in a list that I can go through at mission end to destroy them. Code:
private Dictionary<String, AiActor> allActors = new Dictionary<String, AiActor>();
public override void OnActorCreated(int missionNumber, string shortName, AiActor actor)
{
#region stats
base.OnActorCreated(missionNumber, shortName, actor);
// Add actor to list of all Actors
if (!allActors.ContainsKey(shortName))
allActors.Add(shortName, actor);
try
{
stats.newActor(shortName, actor);
}
catch (Exception ex)
{
System.Console.WriteLine("Stats.OnActorCreated - Exception: " + ex);
}
#endregion
}
public override void OnBattleStoped()
{
#region stats
base.OnBattleStoped();
try
{
stats.battleStopped();
// Loop through list of AiActors and destroy them all
List<string> keys = new List<string>(allActors.Keys);
for (int i = 0; i < keys.Count; i++)
{
AiActor a = allActors[keys[i]];
AiAircraft aircraft = a as AiAircraft;
if (aircraft != null)
{
aircraft.Destroy();
}
else
{
AiGroundActor aiGroundActor = a as AiGroundActor;
if (aiGroundActor != null)
{
aiGroundActor.Destroy();
}
else
{
System.Console.WriteLine("Stats.OnBattleStoped - Unknown Actor (" + a.Name()+") ShortName ("+keys[i]+")");
}
}
}
stats.disconnectStats();
}
catch (Exception ex)
{
System.Console.WriteLine("Stats.OnBattleStoped - Exception: " + ex);
}
#endregion
//add your code here
}
WildWillie |
|
#3
|
|||
|
|||
|
Quote:
I wonder if I should construct an entirely new mession from script; load the mission & trap the mission number for later destroying, rather than try to load just a new [staionary] section into the main mission?
__________________
When one engine fails on a two engine bomber, you will always have enough power left to get to the scene of the crash. Get the latest COD Team Fusion patch info HERE Last edited by salmo; 12-31-2011 at 03:25 AM. |
|
#4
|
|||
|
|||
|
At the moment it's not possible, if i inform correctly this feature will be added in a future Patch by the devs.
|
|
#6
|
|||
|
|||
|
Let enemy tanks to destroy them. I do not know any other method.
It might be though that you can store their POS (location) into a database and then destroy them based on POS. PS. Did not see Kodiak's reply. |
![]() |
|
|