private static void BuildClientForWindows() { string buildFolder = Path.Combine("Builds", "BasicSpawner", "Client"); BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions { scenes = new[] { "Assets/MasterServerToolkit/Demos/BasicSpawner/Scenes/Client/Client.unity", "Assets/MasterServerToolkit/Demos/BasicSpawner/Scenes/Room/Room.unity" }, locationPathName = Path.Combine(buildFolder, "Client.exe"), target = BuildTarget.StandaloneWindows64, options = BuildOptions.ShowBuiltPlayer | BuildOptions.Development }; BuildReport report = BuildPipeline.BuildPlayer(buildPlayerOptions); BuildSummary summary = report.summary; if (summary.result == BuildResult.Succeeded) { MstProperties properties = new MstProperties(); properties.Add(Mst.Args.Names.StartClientConnection, true); properties.Add(Mst.Args.Names.MasterIp, Mst.Args.MasterIp); properties.Add(Mst.Args.Names.MasterPort, Mst.Args.MasterPort); File.WriteAllText(Path.Combine(buildFolder, "application.cfg"), properties.ToReadableString("\n", "=")); Debug.Log("Client build succeeded: " + (summary.totalSize / 1024) + " kb"); } if (summary.result == BuildResult.Failed) { Debug.Log("Client build failed"); } }
public override string ToString() { var options = new MstProperties(); options.Add("Code", Code.ToString()); options.Add("Message", Message); return(options.ToReadableString()); }
public override string ToString() { MstProperties options = new MstProperties(); options.Add("Username", Username); options.Add("MirrorPeerId", MirrorPeer.connectionId); options.Add("MsfPeerId", MasterPeerId); options.Append(Profile.ToStringsDictionary()); options.Append(CustomOptions); return(options.ToReadableString()); }
public void CreateNewMatch() { Hide(); Mst.Events.Invoke(MstEventKeys.showLoadingInfo, "Starting room... Please wait!"); Logs.Debug("Starting room... Please wait!"); // Spawn options for spawner controller var spawnOptions = new MstProperties(); spawnOptions.Add(MstDictKeys.roomMaxPlayers, MaxConnections); spawnOptions.Add(MstDictKeys.roomName, RoomName); spawnOptions.Add(MstDictKeys.roomPassword, Password); MatchmakingBehaviour.Instance.CreateNewRoom(RegionName, spawnOptions); }
private static void SendRequestSpawn(CommandArg[] args) { var options = new MstProperties(); options.Add(MstDictKeys.roomName, args[0].String.Replace('+', ' ')); if (args.Length > 1) { options.Add(MstDictKeys.roomMaxPlayers, args[1].String); } var customOptions = new MstProperties(); customOptions.Add("-myName", "\"John Adams\""); customOptions.Add("-myAge", 45); customOptions.Add("-msfStartClientConnection", string.Empty); Mst.Client.Spawners.RequestSpawn(options, customOptions, string.Empty, (controller, error) => { if (controller == null) { return; } MstTimer.WaitWhile(() => { return(controller.Status != SpawnStatus.Finalized); }, (isSuccess) => { if (!isSuccess) { Mst.Client.Spawners.AbortSpawn(controller.SpawnTaskId); Logs.Error("You have failed to spawn new room"); } Logs.Info("You have successfully spawned new room"); }, 60f); }); }
private static void BuildSpawnerForWindows() { string buildFolder = Path.Combine("Builds", "BasicSpawner", "Room"); string roomExePath = Path.Combine(Directory.GetCurrentDirectory(), "Builds", "BasicSpawner", "Room", "Room.exe"); BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions { scenes = new[] { "Assets/MasterServerToolkit/Demos/BasicSpawner/Scenes/Spawner/Spawner.unity" }, locationPathName = Path.Combine(buildFolder, "Spawner.exe"), target = BuildTarget.StandaloneWindows64, options = BuildOptions.ShowBuiltPlayer | BuildOptions.EnableHeadlessMode }; BuildReport report = BuildPipeline.BuildPlayer(buildPlayerOptions); BuildSummary summary = report.summary; if (summary.result == BuildResult.Succeeded) { MstProperties properties = new MstProperties(); properties.Add(Mst.Args.Names.StartSpawner, true); properties.Add(Mst.Args.Names.StartClientConnection, true); properties.Add(Mst.Args.Names.MasterIp, Mst.Args.MasterIp); properties.Add(Mst.Args.Names.MasterPort, Mst.Args.MasterPort); properties.Add(Mst.Args.Names.RoomExecutablePath, roomExePath); File.WriteAllText(Path.Combine(buildFolder, "application.cfg"), properties.ToReadableString("\n", "=")); Debug.Log("Spawner build succeeded: " + (summary.totalSize / 1024) + " kb"); } if (summary.result == BuildResult.Failed) { Debug.Log("Spawner build failed"); } }
/// <summary> /// Sends request to master server to start new room process /// </summary> /// <param name="spawnOptions"></param> public virtual void CreateNewRoom(string regionName, MstProperties spawnOptions) { Mst.Events.Invoke(MstEventKeys.showLoadingInfo, "Starting room... Please wait!"); logger.Debug("Starting room... Please wait!"); // Custom options that will be given to room directly var customSpawnOptions = new MstProperties(); customSpawnOptions.Add(Mst.Args.Names.StartClientConnection); Mst.Client.Spawners.RequestSpawn(spawnOptions, customSpawnOptions, regionName, (controller, error) => { if (controller == null) { Mst.Events.Invoke(MstEventKeys.hideLoadingInfo); Mst.Events.Invoke(MstEventKeys.showOkDialogBox, new OkDialogBoxEventMessage(error, null)); return; } Mst.Events.Invoke(MstEventKeys.showLoadingInfo, "Room started. Finalizing... Please wait!"); // Wait for spawning status until it is finished // This status must be send by room MstTimer.WaitWhile(() => { return(controller.Status != SpawnStatus.Finalized); }, (isSuccess) => { Mst.Events.Invoke(MstEventKeys.hideLoadingInfo); if (!isSuccess) { Mst.Client.Spawners.AbortSpawn(controller.SpawnTaskId); logger.Error("Failed spawn new room. Time is up!"); Mst.Events.Invoke(MstEventKeys.showOkDialogBox, new OkDialogBoxEventMessage("Failed spawn new room. Time is up!", null)); OnRoomStartAbortedEvent?.Invoke(); return; } OnRoomStartedEvent?.Invoke(); logger.Info("You have successfully spawned new room"); }, matchCreationTimeout); }); }