Disable singleplayer games by default on dedicated servers
This commit is contained in:
@@ -196,7 +196,7 @@ namespace OpenRA.Network
|
|||||||
public string GameSpeedType = "default";
|
public string GameSpeedType = "default";
|
||||||
public bool AllowVersionMismatch;
|
public bool AllowVersionMismatch;
|
||||||
public string GameUid;
|
public string GameUid;
|
||||||
public bool DisableSingleplayer;
|
public bool EnableSingleplayer;
|
||||||
|
|
||||||
[FieldLoader.Ignore]
|
[FieldLoader.Ignore]
|
||||||
public Dictionary<string, LobbyOptionState> LobbyOptions = new Dictionary<string, LobbyOptionState>();
|
public Dictionary<string, LobbyOptionState> LobbyOptions = new Dictionary<string, LobbyOptionState>();
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ namespace OpenRA.Server
|
|||||||
RandomSeed = randomSeed,
|
RandomSeed = randomSeed,
|
||||||
Map = settings.Map,
|
Map = settings.Map,
|
||||||
ServerName = settings.Name,
|
ServerName = settings.Name,
|
||||||
DisableSingleplayer = settings.DisableSinglePlayer,
|
EnableSingleplayer = settings.EnableSingleplayer || !dedicated,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -394,8 +394,8 @@ namespace OpenRA.Server
|
|||||||
if (!LobbyInfo.IsSinglePlayer && Map.DefinesUnsafeCustomRules)
|
if (!LobbyInfo.IsSinglePlayer && Map.DefinesUnsafeCustomRules)
|
||||||
SendOrderTo(newConn, "Message", "This map contains custom rules. Game experience may change.");
|
SendOrderTo(newConn, "Message", "This map contains custom rules. Game experience may change.");
|
||||||
|
|
||||||
if (Settings.DisableSinglePlayer)
|
if (!LobbyInfo.GlobalSettings.EnableSingleplayer)
|
||||||
SendOrderTo(newConn, "Message", "Singleplayer games have been disabled on this server.");
|
SendOrderTo(newConn, "Message", "This server requires at least two human players to start a match.");
|
||||||
else if (Map.Players.Players.Where(p => p.Value.Playable).All(p => !p.Value.AllowBots))
|
else if (Map.Players.Players.Where(p => p.Value.Playable).All(p => !p.Value.AllowBots))
|
||||||
SendOrderTo(newConn, "Message", "Bots have been disabled on this map.");
|
SendOrderTo(newConn, "Message", "Bots have been disabled on this map.");
|
||||||
|
|
||||||
|
|||||||
@@ -76,8 +76,8 @@ namespace OpenRA
|
|||||||
[Desc("Value in milliseconds when to terminate the game. Needs to be at least 10000 (10 s) to enable the timer.")]
|
[Desc("Value in milliseconds when to terminate the game. Needs to be at least 10000 (10 s) to enable the timer.")]
|
||||||
public int TimeOut = 0;
|
public int TimeOut = 0;
|
||||||
|
|
||||||
[Desc("Disallow games where only one player plays with bots.")]
|
[Desc("For dedicated servers only, controls whether a game can be started with just one human player in the lobby.")]
|
||||||
public bool DisableSinglePlayer = false;
|
public bool EnableSingleplayer = false;
|
||||||
|
|
||||||
[Desc("Query map information from the Resource Center if they are not available locally.")]
|
[Desc("Query map information from the Resource Center if they are not available locally.")]
|
||||||
public bool QueryMapRepository = true;
|
public bool QueryMapRepository = true;
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ namespace OpenRA.Mods.Common.Server
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Does server have only one player?
|
// Does server have only one player?
|
||||||
if (server.Settings.DisableSinglePlayer && playerClients.Count() == 1)
|
if (!server.LobbyInfo.GlobalSettings.EnableSingleplayer && playerClients.Count() == 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
server.StartGame();
|
server.StartGame();
|
||||||
@@ -122,10 +122,10 @@ namespace OpenRA.Mods.Common.Server
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (server.Settings.DisableSinglePlayer &&
|
if (!server.LobbyInfo.GlobalSettings.EnableSingleplayer &&
|
||||||
server.LobbyInfo.Clients.Where(c => c.Bot == null && c.Slot != null).Count() == 1)
|
server.LobbyInfo.Clients.Where(c => c.Bot == null && c.Slot != null).Count() == 1)
|
||||||
{
|
{
|
||||||
server.SendOrderTo(conn, "Message", "Unable to start the game until another player joins.");
|
server.SendOrderTo(conn, "Message", "This server requires at least two human players to start match.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -401,8 +401,8 @@ namespace OpenRA.Mods.Common.Server
|
|||||||
if (server.Map.DefinesUnsafeCustomRules)
|
if (server.Map.DefinesUnsafeCustomRules)
|
||||||
server.SendMessage("This map contains custom rules. Game experience may change.");
|
server.SendMessage("This map contains custom rules. Game experience may change.");
|
||||||
|
|
||||||
if (server.Settings.DisableSinglePlayer)
|
if (!server.LobbyInfo.GlobalSettings.EnableSingleplayer)
|
||||||
server.SendMessage("Singleplayer games have been disabled on this server.");
|
server.SendMessage("This server requires at least two human players to start match.");
|
||||||
else if (server.Map.Players.Players.Where(p => p.Value.Playable).All(p => !p.Value.AllowBots))
|
else if (server.Map.Players.Players.Where(p => p.Value.Playable).All(p => !p.Value.AllowBots))
|
||||||
server.SendMessage("Bots have been disabled on this map.");
|
server.SendMessage("Bots have been disabled on this map.");
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -317,7 +317,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
{
|
{
|
||||||
startGameButton.IsDisabled = () => configurationDisabled() || Map.Status != MapStatus.Available ||
|
startGameButton.IsDisabled = () => configurationDisabled() || Map.Status != MapStatus.Available ||
|
||||||
orderManager.LobbyInfo.Slots.Any(sl => sl.Value.Required && orderManager.LobbyInfo.ClientInSlot(sl.Key) == null) ||
|
orderManager.LobbyInfo.Slots.Any(sl => sl.Value.Required && orderManager.LobbyInfo.ClientInSlot(sl.Key) == null) ||
|
||||||
(orderManager.LobbyInfo.GlobalSettings.DisableSingleplayer && orderManager.LobbyInfo.IsSinglePlayer);
|
(!orderManager.LobbyInfo.GlobalSettings.EnableSingleplayer && orderManager.LobbyInfo.IsSinglePlayer);
|
||||||
|
|
||||||
startGameButton.OnClick = () =>
|
startGameButton.OnClick = () =>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ set ListenPort=1234
|
|||||||
set ExternalPort=1234
|
set ExternalPort=1234
|
||||||
set AdvertiseOnline=True
|
set AdvertiseOnline=True
|
||||||
set AllowPortForward=False
|
set AllowPortForward=False
|
||||||
set DisableSinglePlayer=True
|
set EnableSingleplayer=False
|
||||||
set Password=""
|
set Password=""
|
||||||
|
|
||||||
:loop
|
:loop
|
||||||
|
|
||||||
OpenRA.Server.exe Game.Mod=%Mod% Server.Name=%Name% Server.ListenPort=%ListenPort% Server.ExternalPort=%ExternalPort% Server.AdvertiseOnline=%AdvertiseOnline% Server.AllowPortForward=%AllowPortForward% Server.DisableSinglePlayer=%DisableSinglePlayer% Server.Password=%Password%
|
OpenRA.Server.exe Game.Mod=%Mod% Server.Name=%Name% Server.ListenPort=%ListenPort% Server.ExternalPort=%ExternalPort% Server.AdvertiseOnline=%AdvertiseOnline% Server.AllowPortForward=%AllowPortForward% Server.EnableSingleplayer=%EnableSingleplayer% Server.Password=%Password%
|
||||||
|
|
||||||
goto loop
|
goto loop
|
||||||
@@ -12,12 +12,12 @@ ListenPort="${ListenPort:-"1234"}"
|
|||||||
ExternalPort="${ExternalPort:-"1234"}"
|
ExternalPort="${ExternalPort:-"1234"}"
|
||||||
AdvertiseOnline="${AdvertiseOnline:-"True"}"
|
AdvertiseOnline="${AdvertiseOnline:-"True"}"
|
||||||
AllowPortForward="${AllowPortForward:-"False"}"
|
AllowPortForward="${AllowPortForward:-"False"}"
|
||||||
DisableSinglePlayer="${DisableSinglePlayer:-"True"}"
|
EnableSingleplayer="${EnableSingleplayer:-"False"}"
|
||||||
Password="${Password:-""}"
|
Password="${Password:-""}"
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
mono --debug OpenRA.Server.exe Game.Mod=$Mod \
|
mono --debug OpenRA.Server.exe Game.Mod=$Mod \
|
||||||
Server.Name="$Name" Server.ListenPort=$ListenPort Server.ExternalPort=$ExternalPort \
|
Server.Name="$Name" Server.ListenPort=$ListenPort Server.ExternalPort=$ExternalPort \
|
||||||
Server.AdvertiseOnline=$AdvertiseOnline Server.AllowPortForward=$AllowPortForward \
|
Server.AdvertiseOnline=$AdvertiseOnline Server.AllowPortForward=$AllowPortForward \
|
||||||
Server.DisableSinglePlayer=$DisableSinglePlayer Server.Password=$Password
|
Server.EnableSingleplayer=$EnableSingleplayer Server.Password=$Password
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user