So another Script, Player Plane Memory function.

actual its a early 'alpha'
it's shows the playername after shootdown, even if the enemy player leaved the plane via esc or bailed out.
then a short message will shown playername1 shoot down by playername2.
the message is only shown if a human shoot down a human, the others are in work.
Knows anybody how to disable the gamemessages in chat or override them?
I actually hoped we get this possibility with the beta patch, so we can change the game messages against our own messages, but i don't find anything. But i look deeper in it
Code:
using System;
using maddox.game;
using maddox.game.world;
using System.Collections.Generic;
public class Mission : AMission
{
public class AirplanePlayerName
{
public AiAircraft PlayerAirplane{ get; set; }
public string PilotName { get; set; }
public bool Removable { get; set; }
}
public List<AirplanePlayerName> UsedAirplanes = new List<AirplanePlayerName>();
public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
{
base.OnPlaceEnter(player, actor, placeIndex);
// Player enter Aircraft as Pilot
if (actor != null && (actor is AiAircraft) && placeIndex == 0)
{
foreach (AirplanePlayerName actplane in UsedAirplanes)
{
if (actplane.PlayerAirplane == (actor as AiAircraft)) // plane is already in list
{
actplane.PilotName = player.Name(); // change the pilot name
return;
}
}
AirplanePlayerName NewAircraft = new AirplanePlayerName();
NewAircraft.PilotName = player.Name();
NewAircraft.PlayerAirplane = (actor as AiAircraft);
UsedAirplanes.Add(NewAircraft);
}
}
public override void OnActorDead(int missionNumber, string shortName, AiActor actor, System.Collections.Generic.List<DamagerScore> damages)
{
base.OnActorDead(missionNumber, shortName, actor, damages);
if (actor is AiAircraft)
{
foreach (DamagerScore ds in damages)
{
if (ds.initiator.Player != null && (actor as AiAircraft).InternalTypeName() != null)
{
foreach (AirplanePlayerName actPlane in UsedAirplanes)
{
if (actPlane.PlayerAirplane == (actor as AiAircraft) && !actPlane.Removable)
{
Timeout(1.0, () =>
{
GamePlay.gpLogServer(null, "\n\n===> Player: {0} was shoot down by {1} <===\n\n", new object[] { actPlane.PilotName, ds.initiator.Player.Name() });
});
actPlane.Removable = true;
}
}
}
}
}
UsedAirplanes.RemoveAll(item => item.Removable == true);
}
public override void OnActorDestroyed(int missionNumber, string shortName, maddox.game.world.AiActor actor)
{
base.OnActorDestroyed(missionNumber, shortName, actor);
if (actor is AiAircraft)
{
foreach (AirplanePlayerName actPlane in UsedAirplanes)
{
if (actPlane.PlayerAirplane == (actor as AiAircraft))
{
actPlane.Removable = true;
}
}
}
UsedAirplanes.RemoveAll(item => item.Removable == true);
}
}