Example #1
0
        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");
            }
        }
Example #2
0
        public override string ToString()
        {
            var options = new MstProperties();

            options.Add("Code", Code.ToString());
            options.Add("Message", Message);

            return(options.ToReadableString());
        }
Example #3
0
        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());
        }
Example #4
0
        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);
        }
Example #5
0
        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);
            });
        }
Example #6
0
        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");
            }
        }
Example #7
0
        /// <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);
            });
        }