-atas-
09.09.2011, 16:38
Запрещает вылет на новом самолете для тех кто бросил старый самолет в воздухе, выйдя в меню.
Автор FG28_Kodiak
http://forum.1cpublishing.eu/showpost.php?p=333766&postcount=7
using System;
using maddox.game;
using maddox.game.world;
using System.Collections.Generic;
public class Mission : AMission
{
const int TotalArrestTime = 30; // Time in seconds
public class prisonCell
{
public Player Prisoner { get; set; }
public DateTime JailTime { get; set; }
public bool Removable { get; set; }
}
public List<prisonCell> PrisonCamp = new List<prisonCell>();
public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
{
base.OnPlaceEnter(player, actor, placeIndex);
if (PrisonCamp.Count != 0)
{
foreach (prisonCell pri in PrisonCamp)
{
if (pri.Prisoner == player)
{
TimeSpan ArrestTime = DateTime.Now.Subtract(pri.JailTime);
if (ArrestTime.TotalSeconds < TotalArrestTime)
{
GamePlay.gpLogServer(null, "Player: {0} is under Arrest\n", new object[] { player.Name() });
GamePlay.gpHUDLogCenter(new Player[] { player }, "{0} you are under Arrest!", new object[] { player.Name() });
(actor as AiAircraft).hitNamed(part.NamedDamageTypes.FuelPumpFailure);
}
else
{
pri.Removable = true;
}
}
}
PrisonCamp.RemoveAll(item => item.Removable == true);
}
}
public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex)
{
base.OnPlaceLeave(player, actor, placeIndex);
if ((actor as AiAircraft).IsAirborne())
{
GamePlay.gpLogServer(null, "Player: {0} get a {1} sec. penalty for leaving Airplane in flight\n", new object[] { player.Name(), TotalArrestTime });
prisonCell NewPrisoner = new prisonCell();
NewPrisoner.Prisoner = player;
NewPrisoner.JailTime = DateTime.Now;
PrisonCamp.Add(NewPrisoner);
}
}
}
Автор FG28_Kodiak
http://forum.1cpublishing.eu/showpost.php?p=333766&postcount=7
using System;
using maddox.game;
using maddox.game.world;
using System.Collections.Generic;
public class Mission : AMission
{
const int TotalArrestTime = 30; // Time in seconds
public class prisonCell
{
public Player Prisoner { get; set; }
public DateTime JailTime { get; set; }
public bool Removable { get; set; }
}
public List<prisonCell> PrisonCamp = new List<prisonCell>();
public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
{
base.OnPlaceEnter(player, actor, placeIndex);
if (PrisonCamp.Count != 0)
{
foreach (prisonCell pri in PrisonCamp)
{
if (pri.Prisoner == player)
{
TimeSpan ArrestTime = DateTime.Now.Subtract(pri.JailTime);
if (ArrestTime.TotalSeconds < TotalArrestTime)
{
GamePlay.gpLogServer(null, "Player: {0} is under Arrest\n", new object[] { player.Name() });
GamePlay.gpHUDLogCenter(new Player[] { player }, "{0} you are under Arrest!", new object[] { player.Name() });
(actor as AiAircraft).hitNamed(part.NamedDamageTypes.FuelPumpFailure);
}
else
{
pri.Removable = true;
}
}
}
PrisonCamp.RemoveAll(item => item.Removable == true);
}
}
public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex)
{
base.OnPlaceLeave(player, actor, placeIndex);
if ((actor as AiAircraft).IsAirborne())
{
GamePlay.gpLogServer(null, "Player: {0} get a {1} sec. penalty for leaving Airplane in flight\n", new object[] { player.Name(), TotalArrestTime });
prisonCell NewPrisoner = new prisonCell();
NewPrisoner.Prisoner = player;
NewPrisoner.JailTime = DateTime.Now;
PrisonCamp.Add(NewPrisoner);
}
}
}