Exemplo n.º 1
0
        static void Main(string[] args)
        {
            ConfigFileManager.CreateConfigFile(RequesterApplication.GameServer);
            ConfigFileManager.LoadConfigFile(RequesterApplication.GameServer);

            Console.WriteLine("OpenBound Game Server");
            Console.WriteLine("----------------------\n");

            Console.WriteLine("----------------------");
            Console.WriteLine($"Game Server ({NetworkObjectParameters.GameServerInformation.ServerConsoleName}) has started and is listening for Clients.");
            Console.WriteLine("----------------------\n");

            Console.WriteLine("----------------------");
            Console.WriteLine("This server is meant to handle all the current rooms and matches, it's max capacity defines how many players can access it.");
            Console.WriteLine("This server must register all matchs and results on the database");
            Console.WriteLine("----------------------\n");

            Console.WriteLine("----------------------");
            Console.WriteLine("Server Responsabilities:");
            Console.WriteLine("Lobby Server - Register and update its current status to LobbyServer.");
            Console.WriteLine("Game Client  - Synchronize its objects to all connected clients");
            Console.WriteLine("----------------------\n");

            Console.WriteLine("----------------------");
            Console.WriteLine("Operation Log:");
            Console.WriteLine("----------------------\n");

            GameServerObjects.serverServiceProvider = new ServerServiceProvider(
                NetworkObjectParameters.GameServerInformation.ServerPort,
                NetworkObjectParameters.GameServerBufferSize,
                GameServiceHUB,
                onDisconnect: OnDisconnect);

            GameServerObjects.serverServiceProvider.StartOperation();

            GameServerObjects.lobbyServerCSP = new ClientServiceProvider(
                NetworkObjectParameters.LobbyServerInformation.ServerLocalAddress,
                NetworkObjectParameters.LobbyServerInformation.ServerPort,
                NetworkObjectParameters.LobbyServerBufferSize,
                LobbyServiceConsumerAction);

            GameServerObjects.lobbyServerCSP.StartOperation();

            GameServerObjects.lobbyServerCSP.RequestQueue.Enqueue(NetworkObjectParameters.GameServerRegisterRequest, NetworkObjectParameters.GameServerInformation);
        }
Exemplo n.º 2
0
        private void DeleteSDKEntryFromConfigFile(SDK sdk)
        {
            string filePath = ConfigFileManager.GetConfigurationFilePath();

            XmlDocument doc = ConfigFileManager.LoadConfigFile(filePath);

            foreach (XmlNode node in doc.DocumentElement.FirstChild.ChildNodes)
            {
                //It is necessary an unique id for serves in the XML file.
                var sdkNode = SDK.GetSDKFromXmlNode(node);
                if (sdk.Path == sdkNode.Path)
                {
                    doc.DocumentElement.FirstChild.RemoveChild(node);
                    doc.Save(filePath);
                    break;
                }
            }
        }
        private void DeleteDeviceEntryFromConfigFile(Device device)
        {
            string filePath = ConfigFileManager.GetConfigurationFilePath();

            XmlDocument doc = ConfigFileManager.LoadConfigFile(filePath);

            foreach (XmlNode node in doc.DocumentElement.ChildNodes[1].ChildNodes)
            {
                //It is necessary an unique id for serves in the XML file.
                var deviceNode = Device.GetDeviceFromXmlNode(node);
                if (device.IPAddress == deviceNode.IPAddress)
                {
                    doc.DocumentElement.ChildNodes[1].RemoveChild(node);
                    doc.Save(filePath);
                    break;
                }
            }
        }
Exemplo n.º 4
0
        public static void Initialize(string[] args)
        {
            ConfigFileManager.CreateConfigFile(RequesterApplication.Launcher);
            ConfigFileManager.LoadConfigFile(RequesterApplication.Launcher);

            GameClientSettingsInformation = ConfigFileManager.ReadClientInformation();

            if (args.Length >= 2)
            {
                //Game has been patched
                string previousVersion = args[0];
                string currentVersion  = args[1];

                GameClientSettingsInformation.ClientVersionHistory = ObjectWrapper.DeserializeFile <PatchHistory>(
                    $@"{Directory.GetCurrentDirectory()}\{NetworkObjectParameters.LatestPatchHistoryFilename}");
                GameClientSettingsInformation.ClientVersionHistory.PatchHistoryList.Clear();
            }

            ConfigFileManager.OverwriteGameServerSettings(GameClientSettingsInformation);
        }
Exemplo n.º 5
0
        static void Main(string[] args)
        {
            ConfigFileManager.CreateConfigFile(RequesterApplication.LobbyServer);
            ConfigFileManager.LoadConfigFile(RequesterApplication.LobbyServer);
            LobbyServerObjects.ServerInformationList = ConfigFileManager.LoadServerlistPlaceholderFile();

            Console.WriteLine("OpenBound Lobby Server");
            Console.WriteLine("----------------------\n");

            Console.WriteLine("----------------------");
            Console.WriteLine($"Lobby Server ({NetworkObjectParameters.LobbyServerInformation.ServerConsoleName}) has started and is listening open for Login Server's requests.");
            Console.WriteLine("----------------------\n");

            Console.WriteLine("----------------------");
            Console.WriteLine($"This server must be to connected to Login Server ({NetworkObjectParameters.LoginServerInformation.ServerConsoleName}) for exchanging UID for each login attempt.");
            Console.WriteLine("Server won't register new login attempts when the LoginServer is offline.");
            Console.WriteLine("This server can be closed and re-opened at any time, but it will drop all players that requests on this sever.");
            Console.WriteLine("----------------------\n");

            Console.WriteLine("----------------------");
            Console.WriteLine("Server Responsabilities:");
            Console.WriteLine("Login Server - Handshake and grant UID to all players that requests login from Login Server");
            Console.WriteLine("Game Server  - Listen, register, and update all Game Server status");
            Console.WriteLine("Game Client  - Feed information about all registered Game Server");
            Console.WriteLine("----------------------\n");

            Console.WriteLine("----------------------");
            Console.WriteLine("Operation Log:");
            Console.WriteLine("----------------------\n");

            LobbyServerObjects.RequestedLoginPlayers     = new List <Player>();
            LobbyServerObjects.ClientServiceProviderList = new List <ClientServiceProvider>();

            ServerServiceProvider serverServiceProvider = new ServerServiceProvider(
                NetworkObjectParameters.LobbyServerInformation.ServerPort,
                NetworkObjectParameters.LoginServerBufferSize,
                LobbyServiceHUB,
                onDisconnect: OnDisconnect);

            serverServiceProvider.StartOperation();
        }
Exemplo n.º 6
0
        static void Main(string[] args)
        {
            ConfigFileManager.CreateConfigFile(RequesterApplication.LoginServer);
            ConfigFileManager.LoadConfigFile(RequesterApplication.LoginServer);

            Console.WriteLine("OpenBound Login Server");
            Console.WriteLine("----------------------\n");

            Console.WriteLine("----------------------");
            Console.WriteLine($"Login Server ({NetworkObjectParameters.LoginServerInformation.ServerConsoleName}) has started listening for players.");
            Console.WriteLine("----------------------\n");

            Console.WriteLine("----------------------");
            Console.WriteLine($"The server must be to connected to Lobby Server ({NetworkObjectParameters.LobbyServerInformation.ServerConsoleName}) for exchanging UID for each user that tries to login.");
            Console.WriteLine("The server won't work when the Lobby Server is offline.");
            Console.WriteLine("----------------------\n");

            Console.WriteLine("----------------------");
            Console.WriteLine("Server Responsabilities:");
            Console.WriteLine("Lobby Server  - Handshake and request UID to all players that requests login");
            Console.WriteLine("Game Launcher - Create and retrive players from database, grants access to login requests");
            Console.WriteLine("----------------------\n");

            Console.WriteLine("----------------------");
            Console.WriteLine("Operation Log:");
            Console.WriteLine("----------------------\n");

            ServerServiceProvider serverServiceProvider = new ServerServiceProvider(
                NetworkObjectParameters.LoginServerInformation.ServerPort,
                NetworkObjectParameters.LoginServerBufferSize,
                LoginServiceHUB);

            serverServiceProvider.StartOperation();

            CreateDatabaseIfNecessary();
        }
Exemplo n.º 7
0
        internal static void InitializeObjects()
        {
            ConfigFileManager.CreateConfigFile(RequesterApplication.Launcher);
            ConfigFileManager.LoadConfigFile(RequesterApplication.Launcher);

            Parameter.Initialize(new LauncherInformation(
                                     LauncherOperationStatus.AuthConfirmed,
                                     ConfigFileManager.ReadClientInformation(),
                                     GameInformation.Instance.PlayerInformation = new Player()
            {
                ID       = 0,
                Gender   = Gender.Female,
                Nickname = "Winged",
                //SelectedItemTypeList,
            }));

            GameInformation.Instance.PlayerInformation.SelectedItemTypeList.Add(ItemType.PowerUp);
            GameInformation.Instance.PlayerInformation.SelectedItemTypeList.Add(ItemType.PowerUp);
            GameInformation.Instance.PlayerInformation.SelectedItemTypeList.Add(ItemType.BungeShot);
            GameInformation.Instance.PlayerInformation.SelectedItemTypeList.Add(ItemType.BungeShot);
            GameInformation.Instance.PlayerInformation.SelectedItemTypeList.Add(ItemType.Blood);
            GameInformation.Instance.PlayerInformation.SelectedItemTypeList.Add(ItemType.Blood);

            #region Sync Mobile List
            List <Player> pList = new List <Player>()
            {
                new Player()
                {
                    Gender           = Gender.Female,
                    Email            = "*****@*****.**",
                    ID               = 0,
                    Nickname         = "Wicked",
                    Password         = "******",
                    PlayerRank       = PlayerRank.Staff4,
                    PlayerRoomStatus = PlayerRoomStatus.Ready,
                    PrimaryMobile    = MobileType.Ice,
                    SecondaryMobile  = MobileType.Knight,
                    PlayerTeam       = PlayerTeam.Red,
                    Guild            = new Guild()
                    {
                        GuildMembers = new List <Player>(), ID = 1, Name = "Zica", Tag = "zicamasters"
                    },
                    PlayerStatus  = PlayerStatus.Normal,
                    SecurityToken = new SecurityToken()
                    {
                        DateTime = DateTime.Now, Token = "123123123", UnifiedSecurityToken = "123123123"
                    },
                    Attribute = new int[] { 1, 1, 1, 1, 1, 1, 1, 1 },
                },
                new Player()
                {
                    Gender           = Gender.Male,
                    Email            = "*****@*****.**",
                    ID               = 1,
                    Nickname         = "Zicoman",
                    Password         = "******",
                    PlayerRank       = PlayerRank.Dragon1,
                    PlayerRoomStatus = PlayerRoomStatus.Ready,
                    PrimaryMobile    = MobileType.Lightning,
                    SecondaryMobile  = MobileType.Knight,
                    PlayerTeam       = PlayerTeam.Blue,
                    Guild            = new Guild()
                    {
                        GuildMembers = new List <Player>(), ID = 1, Name = "Zica", Tag = "zicamasters"
                    },
                    PlayerStatus  = PlayerStatus.Normal,
                    SecurityToken = new SecurityToken()
                    {
                        DateTime = DateTime.Now, Token = "123123123", UnifiedSecurityToken = "123123123"
                    }
                },
                new Player()
                {
                    Email            = "*****@*****.**",
                    ID               = 2,
                    Nickname         = "Big String  To Test The Box Size Calc",
                    Password         = "******",
                    PlayerRank       = PlayerRank.Axe1,
                    PlayerRoomStatus = PlayerRoomStatus.Ready,
                    PrimaryMobile    = MobileType.Knight,
                    SecondaryMobile  = MobileType.Knight,
                    PlayerTeam       = PlayerTeam.Red,
                    Guild            = new Guild()
                    {
                        GuildMembers = new List <Player>(), ID = 1, Name = "Zica", Tag = "zicamasters"
                    },
                    PlayerStatus  = PlayerStatus.Normal,
                    SecurityToken = new SecurityToken()
                    {
                        DateTime = DateTime.Now, Token = "123123123", UnifiedSecurityToken = "123123123"
                    }
                },
                new Player()
                {
                    Email            = "*****@*****.**",
                    ID               = 3,
                    Nickname         = "Wicko",
                    Password         = "******",
                    PlayerRank       = PlayerRank.GM,
                    PlayerRoomStatus = PlayerRoomStatus.Ready,
                    PrimaryMobile    = MobileType.Dragon,
                    SecondaryMobile  = MobileType.Knight,
                    PlayerTeam       = PlayerTeam.Blue,
                    Guild            = new Guild()
                    {
                        GuildMembers = new List <Player>(), ID = 1, Name = "Zica", Tag = "zicamasters"
                    },
                    PlayerStatus  = PlayerStatus.Normal,
                    SecurityToken = new SecurityToken()
                    {
                        DateTime = DateTime.Now, Token = "123123123", UnifiedSecurityToken = "123123123"
                    }
                },
                new Player()
                {
                    Email            = "*****@*****.**",
                    ID               = 4,
                    Nickname         = "WickoWicko",
                    Password         = "******",
                    PlayerRank       = PlayerRank.DGoldenAxe2,
                    PlayerRoomStatus = PlayerRoomStatus.Ready,
                    PrimaryMobile    = MobileType.Dragon,
                    SecondaryMobile  = MobileType.Knight,
                    PlayerTeam       = PlayerTeam.Blue,
                    Guild            = new Guild()
                    {
                        GuildMembers = new List <Player>(), ID = 1, Name = "Zica", Tag = "zicamasters"
                    },
                    PlayerStatus  = PlayerStatus.Normal,
                    SecurityToken = new SecurityToken()
                    {
                        DateTime = DateTime.Now, Token = "123123123", UnifiedSecurityToken = "123123123"
                    }
                },
                new Player()
                {
                    Email            = "*****@*****.**",
                    ID               = 5,
                    Nickname         = "Ordinary World",
                    Password         = "******",
                    PlayerRank       = PlayerRank.Chick,
                    PlayerRoomStatus = PlayerRoomStatus.Ready,
                    PrimaryMobile    = MobileType.Turtle,
                    SecondaryMobile  = MobileType.Knight,
                    PlayerTeam       = PlayerTeam.Blue,
                    Guild            = new Guild()
                    {
                        GuildMembers = new List <Player>(), ID = 1, Name = "Zica", Tag = "zicamasters"
                    },
                    PlayerStatus  = PlayerStatus.Normal,
                    SecurityToken = new SecurityToken()
                    {
                        DateTime = DateTime.Now, Token = "123123123", UnifiedSecurityToken = "123123123"
                    }
                },
                new Player()
                {
                    Email            = "*****@*****.**",
                    ID               = 6,
                    Nickname         = "KonoDioDa",
                    Password         = "******",
                    PlayerRank       = PlayerRank.Champion1,
                    PlayerRoomStatus = PlayerRoomStatus.Ready,
                    PrimaryMobile    = MobileType.Dragon,
                    SecondaryMobile  = MobileType.Knight,
                    PlayerTeam       = PlayerTeam.Red,
                    Guild            = new Guild()
                    {
                        GuildMembers = new List <Player>(), ID = 1, Name = "Zica", Tag = "zicamasters"
                    },
                    PlayerStatus  = PlayerStatus.Normal,
                    SecurityToken = new SecurityToken()
                    {
                        DateTime = DateTime.Now, Token = "123123123", UnifiedSecurityToken = "123123123"
                    }
                },
                new Player()
                {
                    Gender           = Gender.Female,
                    Email            = "*****@*****.**",
                    ID               = 7,
                    Nickname         = "JosephJoestar",
                    Password         = "******",
                    PlayerRank       = PlayerRank.Axe1,
                    PlayerRoomStatus = PlayerRoomStatus.Ready,
                    PrimaryMobile    = MobileType.RaonLauncher,
                    SecondaryMobile  = MobileType.Knight,
                    PlayerTeam       = PlayerTeam.Red,
                    Guild            = new Guild()
                    {
                        GuildMembers = new List <Player>(), ID = 1, Name = "Zica", Tag = "zicamasters"
                    },
                    PlayerStatus  = PlayerStatus.Normal,
                    SecurityToken = new SecurityToken()
                    {
                        DateTime = DateTime.Now, Token = "123123123", UnifiedSecurityToken = "123123123"
                    }
                }
            };

            sMobList = new List <SyncMobile>();

            sMobList.Add(new SyncMobile()
            {
                CrosshairAngle = 10,
                Delay          = 500,
                //Facing = Facing.Left,
                MobileMetadata           = MobileMetadata.BuildMobileMetadata(pList[0], MobileType.Lightning),
                Owner                    = pList[0],
                Position                 = new int[] { 340, 100 },
                SelectedShotType         = ShotType.SS,
                SynchronizableActionList = new List <SynchronizableAction>()
                {
                    SynchronizableAction.LeftMovement, SynchronizableAction.ChargingShot
                }
            });

            sMobList.Add(new SyncMobile()
            {
                CrosshairAngle = 10,
                Delay          = 500,
                //Facing = Facing.Left,
                MobileMetadata           = MobileMetadata.BuildMobileMetadata(pList[1], MobileType.Knight),
                Owner                    = pList[1],
                Position                 = new int[] { 1, 0 },
                SelectedShotType         = ShotType.SS,
                SynchronizableActionList = new List <SynchronizableAction>()
                {
                    SynchronizableAction.LeftMovement, SynchronizableAction.ChargingShot
                }
            });

            sMobList.Add(new SyncMobile()
            {
                CrosshairAngle = 10,
                Delay          = 500,
                //Facing = Facing.Left,
                MobileMetadata           = MobileMetadata.BuildMobileMetadata(pList[2], MobileType.Knight),
                Owner                    = pList[2],
                Position                 = new int[] { 1, 0 },
                SelectedShotType         = ShotType.SS,
                SynchronizableActionList = new List <SynchronizableAction>()
                {
                    SynchronizableAction.LeftMovement, SynchronizableAction.ChargingShot
                }
            });

            sMobList.Add(new SyncMobile()
            {
                CrosshairAngle = 10,
                Delay          = 500,
                //Facing = Facing.Left,
                MobileMetadata           = MobileMetadata.BuildMobileMetadata(pList[3], MobileType.Knight),
                Owner                    = pList[3],
                Position                 = new int[] { 1, 0 },
                SelectedShotType         = ShotType.SS,
                SynchronizableActionList = new List <SynchronizableAction>()
                {
                    SynchronizableAction.LeftMovement, SynchronizableAction.ChargingShot
                }
            });

            sMobList.Add(new SyncMobile()
            {
                CrosshairAngle = 10,
                Delay          = 500,
                //Facing = Facing.Left,
                MobileMetadata           = MobileMetadata.BuildMobileMetadata(pList[4], MobileType.Knight),
                Owner                    = pList[4],
                Position                 = new int[] { 1, 0 },
                SelectedShotType         = ShotType.SS,
                SynchronizableActionList = new List <SynchronizableAction>()
                {
                    SynchronizableAction.LeftMovement, SynchronizableAction.ChargingShot
                }
            });

            sMobList.Add(new SyncMobile()
            {
                CrosshairAngle = 10,
                Delay          = 500,
                //Facing = Facing.Left,
                MobileMetadata           = MobileMetadata.BuildMobileMetadata(pList[5], MobileType.Knight),
                Owner                    = pList[5],
                Position                 = new int[] { 1, 0 },
                SelectedShotType         = ShotType.SS,
                SynchronizableActionList = new List <SynchronizableAction>()
                {
                    SynchronizableAction.LeftMovement, SynchronizableAction.ChargingShot
                }
            });

            sMobList.Add(new SyncMobile()
            {
                CrosshairAngle = 10,
                Delay          = 500,
                //Facing = Facing.Left,
                MobileMetadata           = MobileMetadata.BuildMobileMetadata(pList[6], MobileType.Knight),
                Owner                    = pList[6],
                Position                 = new int[] { 1, 0 },
                SelectedShotType         = ShotType.SS,
                SynchronizableActionList = new List <SynchronizableAction>()
                {
                    SynchronizableAction.LeftMovement, SynchronizableAction.ChargingShot
                }
            });

            sMobList.Add(new SyncMobile()
            {
                CrosshairAngle = 10,
                Delay          = 500,
                //Facing = Facing.Left,
                MobileMetadata           = MobileMetadata.BuildMobileMetadata(pList[7], MobileType.Knight),
                Owner                    = pList[7],
                Position                 = new int[] { 1, 0 },
                SelectedShotType         = ShotType.SS,
                SynchronizableActionList = new List <SynchronizableAction>()
                {
                    SynchronizableAction.LeftMovement, SynchronizableAction.ChargingShot
                }
            });
            #endregion

            //delayboard = new Delayboard(mobList, new Vector2(0, 0) /* Parameter.ScreenCenter */);

            GameInformation.Instance.RoomMetadata = new RoomMetadata(GameMode.Score, TurnsToSuddenDeath.Turn40, MatchSuddenDeathType.DoubleDeath, RoomSize.FourVsFour, sMobList[0].Owner, 1, "123", "123")
            {
                SpawnPositions = new Dictionary <int, int[]>()
                {
                    { 0, new int[] { 1150, 700 } },
                    { 1, new int[] { 300, 700 } }, { 2, new int[] { 700, 700 } },
                    { 3, new int[] { 400, 700 } }, { 4, new int[] { 800, 700 } },
                    { 5, new int[] { 500, 700 } }, { 6, new int[] { 900, 700 } },
                    { 7, new int[] { 600, 700 } }, { 8, new int[] { 1000, 700 } },
                },
                TeamA = new List <Player>()
                {
                    sMobList[0].Owner, sMobList[1].Owner, sMobList[2].Owner, sMobList[3].Owner
                },
                TeamB = new List <Player>()
                {
                    sMobList[4].Owner, sMobList[5].Owner, sMobList[6].Owner, sMobList[7].Owner
                },
            };
            GameInformation.Instance.RoomMetadata.Map = Map.GetMap(GameMapType.B, GameMap.Metamine);
        }
Exemplo n.º 8
0
 public static void Initialize()
 {
     ConfigFileManager.CreateConfigFile(RequesterApplication.Launcher);
     ConfigFileManager.LoadConfigFile(RequesterApplication.Launcher);
     GameClientSettingsInformation = ConfigFileManager.ReadClientInformation();
 }