server can now direct lag

This commit is contained in:
Chris Forbes
2009-12-02 19:40:50 +13:00
parent 074ab5675e
commit 2553a1cdb2
3 changed files with 35 additions and 1 deletions

View File

@@ -280,6 +280,22 @@ namespace OpenRA.Server
DispatchOrders(null, 0,
new ServerOrder(conn.PlayerIndex, "SetName", newName).Serialize());
}
if (so.Data.StartsWith("/lag "))
{
int lag;
if (!int.TryParse(so.Data.Substring(5), out lag))
{
Console.WriteLine("Invalid order lag: {0}",
so.Data.Substring(5));
return;
}
Console.WriteLine("Order lag is now {0} frames.", lag);
DispatchOrders(null, 0,
new ServerOrder(0, "SetLag", lag.ToString()).Serialize());
}
break;
}
}

View File

@@ -13,7 +13,7 @@ namespace OpenRa.Game
List<OrderSource> sources;
int frameNumber = 0;
const int FramesAhead = 3;
public int FramesAhead = 3;
public bool GameStarted { get { return frameNumber != 0; } }
public bool IsNetplay { get { return sources.OfType<NetworkOrderSource>().Any(); } }

View File

@@ -119,6 +119,24 @@ namespace OpenRa.Game
order.Player.PlayerName = order.TargetString;
break;
}
case "SetLag":
{
int lag = int.Parse(order.TargetString);
if (Game.orderManager.GameStarted)
{
Game.chat.AddLine(Pair.New("Server",
string.Format("Failed to change lag to {0} frames",
lag)));
return;
}
Game.orderManager.FramesAhead = lag;
Game.chat.AddLine(Pair.New("Server",
string.Format("Order lag is now {0} frames.",
lag)));
break;
}
case "StartGame":
{
Game.chat.AddLine(Pair.New("Server:", "The game has started."));