Beta Release
This commit is contained in:
+89
@@ -0,0 +1,89 @@
|
||||
using System;
|
||||
|
||||
namespace MSCO
|
||||
{
|
||||
/// <summary>
|
||||
/// Alle MSCO-Befehle an einer Stelle - genutzt von der eigenen F8-Konsole (ohne "mp" davor)
|
||||
/// und von der MSCLoader-Konsole ("mp ...").
|
||||
/// </summary>
|
||||
public static class Commands
|
||||
{
|
||||
public const string Help =
|
||||
"connect <host[:port]> - join a dedicated server\n" +
|
||||
"disconnect - leave the server / game\n" +
|
||||
"host [port] / join <ip> [port] - LAN test session\n" +
|
||||
"save - save the game (host / singleplayer)\n" +
|
||||
"/admin - admin menu (kick / ban)\n" +
|
||||
"vehicles | rig - debug info about vehicles / player models\n" +
|
||||
"debug - toggle sync debug output\n" +
|
||||
"master [url] - show / change the server list address\n" +
|
||||
"clear - clear this console";
|
||||
|
||||
public static void Execute(string[] args, Action<string> print)
|
||||
{
|
||||
var mp = MultiplayerManager.Instance;
|
||||
if (mp == null) { print("Not ready yet"); return; }
|
||||
if (args.Length == 0) { print(Help); return; }
|
||||
|
||||
int port = MultiplayerManager.DefaultPort;
|
||||
switch (args[0].ToLower())
|
||||
{
|
||||
case "help":
|
||||
case "?":
|
||||
print(Help);
|
||||
break;
|
||||
case "host":
|
||||
if (args.Length > 1) int.TryParse(args[1], out port);
|
||||
mp.Host(port);
|
||||
break;
|
||||
case "join":
|
||||
if (args.Length < 2) { print("join <ip> [port]"); return; }
|
||||
if (args.Length > 2) int.TryParse(args[2], out port);
|
||||
mp.Join(args[1], port);
|
||||
break;
|
||||
case "stop":
|
||||
case "disconnect":
|
||||
case "quit":
|
||||
mp.Disconnect();
|
||||
print("Disconnected.");
|
||||
break;
|
||||
case "connect":
|
||||
{
|
||||
string host;
|
||||
int serverPort;
|
||||
if (args.Length < 2 || !ServerBrowser.TryParseAddress(args[1], out host, out serverPort))
|
||||
{
|
||||
print("connect <host[:port]>");
|
||||
return;
|
||||
}
|
||||
mp.JoinServer(host, serverPort);
|
||||
break;
|
||||
}
|
||||
case "master":
|
||||
if (args.Length > 1) ServerBrowser.MasterUrl = args[1];
|
||||
print("Master server: " + ServerBrowser.MasterUrl);
|
||||
break;
|
||||
case "save":
|
||||
mp.SaveGame();
|
||||
break;
|
||||
case "admin":
|
||||
case "/admin":
|
||||
mp.OpenAdminMenu();
|
||||
break;
|
||||
case "rig":
|
||||
foreach (string line in mp.DescribeRigs()) print(line);
|
||||
break;
|
||||
case "vehicles":
|
||||
foreach (string line in mp.DescribeVehicles()) print(line);
|
||||
break;
|
||||
case "debug":
|
||||
FsmSync.Debug = !FsmSync.Debug;
|
||||
print("Sync debug output " + (FsmSync.Debug ? "ON" : "OFF"));
|
||||
break;
|
||||
default:
|
||||
print("Unknown command '" + args[0] + "' - type 'help'");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user