Quote:
Originally Posted by TheEnlightenedFlorist
If you think AI are starting to pile up in your server, try putting the following code into your OnTickGame() method.
|
Trying to run it (see end of code)
Code:
public override void OnTickGame()
{
if (Time.tickCounter() % 45000 == 9000) // 45000=25 min repeat. 9000=5 min delay.
{
// randomly selects 1 of several submissions excluding the recent one
Random RandomIncident = new Random();
int CurrentMissionSelected;
do
{
CurrentMissionSelected = RandomIncident.Next(1, 4);
}
while (LastMissionLoaded == CurrentMissionSelected);
LastMissionLoaded = CurrentMissionSelected;
switch (CurrentMissionSelected)
{
case 1:
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_air01.mis");
//GamePlay.gpHUDLogCenter("Intel: Enemy activity is expected at E3!");
//600
initTime = 0.0;
Timeout(initTime += 600, () =>
{
GamePlay.gpHUDLogCenter("Attention! Enemy activity is expected at E3!");
});
//600+600
Timeout(initTime += 600, () =>
{
GamePlay.gpHUDLogCenter("Attention! Help is needed at E3/D4!");
});
break;
case 2:
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_sea01.mis");
//GamePlay.gpHUDLogCenter("Intel: Cover your shipping at C4!");
//500
initTime = 0.0;
Timeout(initTime += 450, () =>
{
GamePlay.gpHUDLogCenter("Attention! Cover your shipping at C4!");
});
//500+300
Timeout(initTime += 300, () =>
{
GamePlay.gpHUDLogCenter("Attention! Ships are under attack at C4!");
});
break;
case 3:
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_air02.mis");
//GamePlay.gpHUDLogCenter("Intel: Enemy activity is expected at E2!");
//600
initTime = 0.0;
Timeout(initTime += 600, () =>
{
GamePlay.gpHUDLogCenter("Attention! Enemy activity is expected at E2!");
});
//600+300
Timeout(initTime += 300, () =>
{
GamePlay.gpHUDLogCenter("Attention! All fighters please proceed to E2/D3!");
});
break;
}
}
///////////////////////
//loads small submissions w/o messages
if (Time.tickCounter() % 216000 == 108000) // 216000=120 min repeat. 108000=60 min delay.
{
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_small01.mis");
}
if (Time.tickCounter() % 216000 == 215999) // 216000=120 min repeat. 215999=120 min delay.
{
GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_small02.mis");
}
/////////// Counts AI groups on the server.
if (GamePlay.gpAirGroups(1) != null && GamePlay.gpAirGroups(2) != null)
{
if (Time.tickCounter() % 9000 == 0)
{
int totalAircraft = GamePlay.gpAirGroups(1).Length + GamePlay.gpAirGroups(2).Length;
GamePlay.gpLogServer(new Player[] { GamePlay.gpPlayer() }, totalAircraft.ToString(), null);
GamePlay.gpLogServer(GamePlay.gpRemotePlayers(), totalAircraft.ToString(), null);
}
}
}
Get these errors:
Code:
[13:05:14] Battle starting...[13:05:14] Server: Battle begins!
[13:05:14] ok
[13:05:14] Server to [Server]: 4
[13:05:14]
[13:05:14] =================================================
[13:05:14] System.IndexOutOfRangeException: Индекс находился вне границ массива.
[13:05:14]
[13:05:14] Server stack trace:
[13:05:14] в WLxT1kvtHRQOtMZZl62.DRdThMvpbN33CGywFW7.wXZFyNGvcs2(Player[] , Boolean , String , Object[] )
[13:05:14] в WLxT1kvtHRQOtMZZl62.DRdThMvpbN33CGywFW7.ppDoUYCpY9HF87vxRBGe(Object , Boolean , Object , Object )
[13:05:14] в WLxT1kvtHRQOtMZZl62.DRdThMvpbN33CGywFW7.0AAFyzF3TVd(Player[] , String , Object[] )
[13:05:14] в UXx9sZjCf3yc9i99GpR.69j9o82zIn0dDNk0dpm.LogServer(Player[] , String , Object[] )
[13:05:14] в maddox.game.GameDef.gpLogServer(Player[] to, String format, Object[] args)
[13:05:14] в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
[13:05:14] в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
[13:05:14]
[13:05:14] Exception rethrown at [0]:
[13:05:14] в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
[13:05:14] в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
[13:05:14] в maddox.game.IGamePlay.gpLogServer(Player[] to, String format, Object[] args)
[13:05:14] в Mission.OnTickGame()
[13:05:14] в maddox.game.ABattle.OnTickGame()
[13:05:14] в maddox.game.world.Strategy.OnTickGame()
[13:05:14] в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
[13:05:14] в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
[13:05:14]
[13:05:14] Exception rethrown at [1]:
[13:05:14] в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
[13:05:14] в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
[13:05:14] в maddox.game.IBattle.OnTickGame()
[13:05:14] в maddox.game.GameDef.tickGame()
[13:05:14] в 13yXBRPwF6JbN5OXHZ6.NTKTOgPPsXwbvypIj6k.Z37cRDxFulC()
[13:05:14] в RKuLtykUFmi8DgWf36W.9FOhqSkweWrYgooHcsk.neSF4RIW4t3(Boolean , Boolean )
[13:05:14] =================================================
[13:09:43] Server to [Server]: 4
[13:09:43]
[13:09:43] =================================================
[13:09:43] System.IndexOutOfRangeException: Индекс находился вне границ массива.
[13:09:43]
[13:09:43] Server stack trace:
[13:09:43] в WLxT1kvtHRQOtMZZl62.DRdThMvpbN33CGywFW7.wXZFyNGvcs2(Player[] , Boolean , String , Object[] )
[13:09:43] в WLxT1kvtHRQOtMZZl62.DRdThMvpbN33CGywFW7.ppDoUYCpY9HF87vxRBGe(Object , Boolean , Object , Object )
[13:09:43] в WLxT1kvtHRQOtMZZl62.DRdThMvpbN33CGywFW7.0AAFyzF3TVd(Player[] , String , Object[] )
[13:09:43] в UXx9sZjCf3yc9i99GpR.69j9o82zIn0dDNk0dpm.LogServer(Player[] , String , Object[] )
[13:09:43] в maddox.game.GameDef.gpLogServer(Player[] to, String format, Object[] args)
[13:09:43] в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
[13:09:43] в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
[13:09:43]
[13:09:43] Exception rethrown at [0]:
[13:09:43] в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
[13:09:43] в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
[13:09:43] в maddox.game.IGamePlay.gpLogServer(Player[] to, String format, Object[] args)
[13:09:43] в Mission.OnTickGame()
[13:09:43] в maddox.game.ABattle.OnTickGame()
[13:09:43] в maddox.game.world.Strategy.OnTickGame()
[13:09:43] в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
[13:09:43] в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
[13:09:43]
[13:09:43] Exception rethrown at [1]:
[13:09:43] в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
[13:09:43] в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
[13:09:43] в maddox.game.IBattle.OnTickGame()
[13:09:43] в maddox.game.GameDef.tickGame()
[13:09:43] в 13yXBRPwF6JbN5OXHZ6.NTKTOgPPsXwbvypIj6k.Z37cRDxFulC()
[13:09:43] в RKuLtykUFmi8DgWf36W.9FOhqSkweWrYgooHcsk.neSF4RIW4t3(Boolean , Boolean )
[13:09:43] =================================================
[13:09:44] Loading mission ...
[13:09:44] Server: A new group of 4 Blue aircraft identified as Ju 87 B-2 was reported in sector >,<.
[13:09:44] Server: A new group of 2 Red aircraft identified as Walrus was reported in sector C,<.
[13:09:44] Server: A new group of 4 Red aircraft identified as Blenheim I was reported in sector D,<.
[13:09:44] Server: A group of Blue 3xDo 215 B-1 just appeared in sector E,4.
[13:09:44] Mission loaded. time = 0.180
[13:14:18] Server to [Server]: 8
[13:14:18]
[13:14:18] =================================================
[13:14:18] System.IndexOutOfRangeException: Индекс находился вне границ массива.
[13:14:18]
[13:14:18] Server stack trace:
[13:14:18] в WLxT1kvtHRQOtMZZl62.DRdThMvpbN33CGywFW7.wXZFyNGvcs2(Player[] , Boolean , String , Object[] )
[13:14:18] в WLxT1kvtHRQOtMZZl62.DRdThMvpbN33CGywFW7.ppDoUYCpY9HF87vxRBGe(Object , Boolean , Object , Object )
[13:14:18] в WLxT1kvtHRQOtMZZl62.DRdThMvpbN33CGywFW7.0AAFyzF3TVd(Player[] , String , Object[] )
[13:14:18] в UXx9sZjCf3yc9i99GpR.69j9o82zIn0dDNk0dpm.LogServer(Player[] , String , Object[] )
[13:14:18] в maddox.game.GameDef.gpLogServer(Player[] to, String format, Object[] args)
[13:14:18] в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
[13:14:18] в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
[13:14:18]
[13:14:18] Exception rethrown at [0]:
[13:14:18] в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
[13:14:18] в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
[13:14:18] в maddox.game.IGamePlay.gpLogServer(Player[] to, String format, Object[] args)
[13:14:18] в Mission.OnTickGame()
[13:14:18] в maddox.game.ABattle.OnTickGame()
[13:14:18] в maddox.game.world.Strategy.OnTickGame()
[13:14:18] в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
[13:14:18] в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
[13:14:18]
[13:14:18] Exception rethrown at [1]:
[13:14:18] в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
[13:14:18] в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
[13:14:18] в maddox.game.IBattle.OnTickGame()
[13:14:18] в maddox.game.GameDef.tickGame()
[13:14:18] в 13yXBRPwF6JbN5OXHZ6.NTKTOgPPsXwbvypIj6k.Z37cRDxFulC()
[13:14:18] в RKuLtykUFmi8DgWf36W.9FOhqSkweWrYgooHcsk.neSF4RIW4t3(Boolean , Boolean )
[13:14:18] =================================================
[13:16:54] Server: Bofors murdered the Gunner of a Ju 87 B-2 () (AI).
[13:18:48] Server to [Server]: 9
[13:18:48]
[13:18:48] =================================================
[13:18:48] System.IndexOutOfRangeException: Индекс находился вне границ массива.
[13:18:48]
[13:18:48] Server stack trace:
[13:18:48] в WLxT1kvtHRQOtMZZl62.DRdThMvpbN33CGywFW7.wXZFyNGvcs2(Player[] , Boolean , String , Object[] )
[13:18:48] в WLxT1kvtHRQOtMZZl62.DRdThMvpbN33CGywFW7.ppDoUYCpY9HF87vxRBGe(Object , Boolean , Object , Object )
[13:18:48] в WLxT1kvtHRQOtMZZl62.DRdThMvpbN33CGywFW7.0AAFyzF3TVd(Player[] , String , Object[] )
[13:18:48] в UXx9sZjCf3yc9i99GpR.69j9o82zIn0dDNk0dpm.LogServer(Player[] , String , Object[] )
[13:18:48] в maddox.game.GameDef.gpLogServer(Player[] to, String format, Object[] args)
[13:18:48] в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
[13:18:48] в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
[13:18:48]
[13:18:48] Exception rethrown at [0]:
[13:18:48] в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
[13:18:48] в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
[13:18:48] в maddox.game.IGamePlay.gpLogServer(Player[] to, String format, Object[] args)
[13:18:48] в Mission.OnTickGame()
[13:18:48] в maddox.game.ABattle.OnTickGame()
[13:18:48] в maddox.game.world.Strategy.OnTickGame()
[13:18:48] в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
[13:18:48] в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
[13:18:48]
[13:18:48] Exception rethrown at [1]:
[13:18:48] в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
[13:18:48] в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
[13:18:48] в maddox.game.IBattle.OnTickGame()
[13:18:48] в maddox.game.GameDef.tickGame()
[13:18:48] в 13yXBRPwF6JbN5OXHZ6.NTKTOgPPsXwbvypIj6k.Z37cRDxFulC()
[13:18:48] в RKuLtykUFmi8DgWf36W.9FOhqSkweWrYgooHcsk.neSF4RIW4t3(Boolean , Boolean )
[13:18:48] =================================================
How can it be fixed?
|