void Send()
        {
            GameNetworkClient client = GameNetworkClient.Instance;

            if (client == null || client.Status != NetworkConnectionStatuses.Connected)
            {
                return;
            }

            string text = textBoxEnterText.Text.Trim();

            if (string.IsNullOrEmpty(text))
            {
                return;
            }

            client.ChatService.SayToAll(text);

            textBoxEnterText.Text = "";
        }
        private void SayChatMessage()
        {
            string text = chatMessageEditBox.Text.Trim();

            if (string.IsNullOrEmpty(text))
            {
                return;
            }

            GameNetworkServer server = GameNetworkServer.Instance;

            if (server != null)
            {
                server.ChatService.SayToAll(text);
            }
            GameNetworkClient client = GameNetworkClient.Instance;

            if (client != null)
            {
                client.ChatService.SayToAll(text);
            }

            chatMessageEditBox.Text = "";
        }
        ///////////////////////////////////////////

        protected override void OnAttach()
        {
            base.OnAttach();

            //register config fields
            EngineApp.Instance.Config.RegisterClassParameters(GetType());

            //create window
            window = ControlDeclarationManager.Instance.CreateControl(
                "Gui\\MultiplayerLobbyWindow.gui");
            Controls.Add(window);

            MouseCover = true;
            BackColor  = new ColorValue(0, 0, 0, .5f);

            ((Button)window.Controls["Exit"]).Click += Exit_Click;

            buttonStart = (Button)window.Controls["Start"];
            if (GameNetworkServer.Instance != null)
            {
                buttonStart.Click += Start_Click;
            }
            if (GameNetworkClient.Instance != null)
            {
                buttonStart.Enable = false;
            }

            listBoxUsers = (ListBox)window.Controls["Users"];

            editBoxChatMessage             = (EditBox)window.Controls["ChatMessage"];
            editBoxChatMessage.PreKeyDown += editBoxChatMessage_PreKeyDown;

            //comboBoxMaps
            {
                comboBoxMaps = (ComboBox)window.Controls["Maps"];

                if (GameNetworkServer.Instance != null)
                {
                    //procedural map creation
                    comboBoxMaps.Items.Add(new MapItem(exampleOfProceduralMapCreationText, false, false));
                    if (lastMapName == exampleOfProceduralMapCreationText)
                    {
                        comboBoxMaps.SelectedIndex = comboBoxMaps.Items.Count - 1;
                    }

                    string[] mapList = VirtualDirectory.GetFiles("", "*.map",
                                                                 SearchOption.AllDirectories);

                    foreach (string mapName in mapList)
                    {
                        //check for network support
                        bool noMultiplayerSupport = VirtualFile.Exists(
                            string.Format("{0}\\NoNetworkSupport.txt", Path.GetDirectoryName(mapName)));

                        bool recommended = false;
                        //mapName.Contains( "TankDemo" );

                        comboBoxMaps.Items.Add(new MapItem(mapName, recommended, noMultiplayerSupport));
                        if (mapName == lastMapName)
                        {
                            comboBoxMaps.SelectedIndex = comboBoxMaps.Items.Count - 1;
                        }
                    }

                    comboBoxMaps.SelectedIndexChange += comboBoxMaps_SelectedIndexChange;

                    if (comboBoxMaps.Items.Count != 0 && comboBoxMaps.SelectedIndex == -1)
                    {
                        comboBoxMaps.SelectedIndex = 0;
                    }
                }
                else
                {
                    comboBoxMaps.Enable = false;
                }
            }

            //checkBoxAllowToConnectDuringGame
            {
                checkBoxAllowToConnectDuringGame = (CheckBox)window.Controls[
                    "AllowToConnectDuringGame"];

                if (GameNetworkServer.Instance != null)
                {
                    checkBoxAllowToConnectDuringGame.CheckedChange +=
                        checkBoxAllowToConnectDuringGame_CheckedChange;
                }
                else
                {
                    checkBoxAllowToConnectDuringGame.Enable = false;
                }
            }

            //server specific
            GameNetworkServer server = GameNetworkServer.Instance;

            if (server != null)
            {
                //for receive map name
                server.UserManagementService.AddUserEvent += Server_UserManagementService_AddUserEvent;

                //for chat support
                server.ChatService.ReceiveText += Server_ChatService_ReceiveText;
            }

            //client specific
            GameNetworkClient client = GameNetworkClient.Instance;

            if (client != null)
            {
                //for receive map name
                client.CustomMessagesService.ReceiveMessage +=
                    Client_CustomMessagesService_ReceiveMessage;

                //for chat support
                client.ChatService.ReceiveText += Client_ChatService_ReceiveText;

                AddMessage(string.Format("Connected to server: \"{0}\"", client.RemoteServerName));
                foreach (string serviceName in client.ServerConnectedNode.RemoteServices)
                {
                    AddMessage(string.Format("Server service: \"{0}\"", serviceName));
                }
            }

            UpdateControls();
        }
        void UpdateUserList()
        {
            //server
            GameNetworkServer server = GameNetworkServer.Instance;

            if (server != null)
            {
                UserManagementServerNetworkService userService = server.UserManagementService;

                bool shouldUpdate = false;
                if (userService.Users.Count == listBoxUsers.Items.Count)
                {
                    int index = 0;

                    foreach (UserManagementServerNetworkService.UserInfo user in userService.Users)
                    {
                        if (user != listBoxUsers.Items[index])
                        {
                            shouldUpdate = true;
                        }
                        index++;
                    }
                }
                else
                {
                    shouldUpdate = true;
                }

                if (shouldUpdate)
                {
                    //update list box
                    listBoxUsers.Items.Clear();
                    foreach (UserManagementServerNetworkService.UserInfo user in userService.Users)
                    {
                        listBoxUsers.Items.Add(user);
                    }
                }
            }

            //client
            GameNetworkClient client = GameNetworkClient.Instance;

            if (client != null)
            {
                UserManagementClientNetworkService userService = client.UserManagementService;

                bool shouldUpdate = false;
                if (userService.Users.Count == listBoxUsers.Items.Count)
                {
                    int index = 0;

                    foreach (UserManagementClientNetworkService.UserInfo user in userService.Users)
                    {
                        if (user != listBoxUsers.Items[index])
                        {
                            shouldUpdate = true;
                        }
                        index++;
                    }
                }
                else
                {
                    shouldUpdate = true;
                }

                if (shouldUpdate)
                {
                    //update list box
                    listBoxUsers.Items.Clear();
                    foreach (UserManagementClientNetworkService.UserInfo user in userService.Users)
                    {
                        listBoxUsers.Items.Add(user);
                    }
                }
            }
        }
Example #5
0
 public ConnectionInstance(IPEndPoint endPoint)
 {
     Client = GameNetworkClient.Connect(endPoint);
 }
        protected override void OnRender()
        {
            base.OnRender();

            bool thisUserIsMovingPiece = false;

            //render borders for moving pieces by users
            foreach (Entity entity in Map.Instance.Children)
            {
                JigsawPuzzlePiece piece = entity as JigsawPuzzlePiece;

                if (piece != null)
                {
                    //server
                    if (EntitySystemWorld.Instance.IsServer())
                    {
                        if (piece.Server_MovingByUser != null)
                        {
                            GameNetworkServer server = GameNetworkServer.Instance;
                            if (server.UserManagementService.ServerUser == piece.Server_MovingByUser)
                            {
                                thisUserIsMovingPiece = true;
                            }
                            RenderPieceSelectionBorder(piece, true);
                        }
                    }

                    //client
                    if (EntitySystemWorld.Instance.IsClientOnly())
                    {
                        if (piece.Client_MovingByUser != null)
                        {
                            GameNetworkClient client = GameNetworkClient.Instance;
                            if (client.UserManagementService.ThisUser == piece.Client_MovingByUser)
                            {
                                thisUserIsMovingPiece = true;
                            }
                            RenderPieceSelectionBorder(piece, true);
                        }
                    }

                    //single mode
                    if (EntitySystemWorld.Instance.IsSingle())
                    {
                        if (piece.ServerOrSingle_Moving)
                        {
                            thisUserIsMovingPiece = true;
                            RenderPieceSelectionBorder(piece, true);
                        }
                    }
                }
            }

            //render border for mouse over piece
            if (!thisUserIsMovingPiece)
            {
                JigsawPuzzlePiece piece = GetPieceByCursor();
                if (piece != null)
                {
                    RenderPieceSelectionBorder(piece, false);
                }
            }
        }
Example #7
0
        protected override void OnAttach()
        {
            window = ControlDeclarationManager.Instance.CreateControl("Gui\\MPAKlobbyWindow.gui");
            Controls.Add(window);

            //positionY = maxout;

            listBox = (ListBox)window.Controls["Servers"];

            ((Button)window.Controls["Quit"]).Click += delegate(Button sender)
            {
                SetShouldDetach();// Back(true);
            };

            //positionY = maxout;

            ((Button)window.Controls["TechLab"]).Click += delegate(Button sender)
            {
                this.OnDetach();
                Controls.Add(new TechLabUnitBuyWindow());
            };

            ((Button)window.Controls["Refresh"]).Click += delegate(Button sender)
            {
                refreshlistbox();
            };

            ((Button)window.Controls["Customize"]).Click += delegate(Button sender)
            {
                this.OnDetach();
                Controls.Add(new TechLabUnitCustomizeWindow());
            };

            //Run button event handler
            ((Button)window.Controls["Run"]).Click += delegate(Button sender)
            {
                if (listBox.SelectedIndex != -1)
                {
                    RunMap(AKSERVERS[listBox.SelectedIndex]);
                }
            };

            createServerPort = window.Controls["Serverport"] as EditBox;
            if (createServerPort != null)
            {
                createServerPort.TextChange += delegate(Control sender)
                {
                    createServerPort.TextChange += createServerPort_TextChange;
                };
                createserverport = int.Parse(createServerPort.Text.Trim());
            }

            PassBox = window.Controls["passwordBox"] as PasswordBox;
            if (PassBox != null)
            {
                PassBox.TextChange += delegate(Control sender)
                {
                    PassBox.TextChange += PassBox_TextChange;
                    if (PassBox.Text.Length > 0)
                    {
                        clientpassword = PassBox.Text.Trim();
                        serverpassword = clientpassword;
                    }
                    else
                    {
                        clientpassword = serverpassword = "";
                    }
                };
            }

            CheckPrivate = window.Controls["chkserverPrivate"] as CheckBox;
            if (CheckPrivate != null)
            {
                CheckPrivate.CheckedChange += delegate(CheckBox sender)
                {
                    if (CheckPrivate.Checked == true)
                    {
                        privateserver = true;
                        SetInfo("Server set to private", false);
                    }
                    else
                    {
                        privateserver = false;
                    }
                };
            }

            EditBox IPtext = window.Controls["DirectConnectionTextBox"] as EditBox;

            ((Button)window.Controls["DirectIPCon"]).Click += delegate(Button sender)
            {
                GameNetworkClient client = new GameNetworkClient(true);
                client.ConnectionStatusChanged += Client_ConnectionStatusChanged;
                string error;
                if (!client.BeginConnect(IPtext.Text.ToString(), int.Parse(createserverport.ToString()), EngineVersionInformation.Version,
                                         Program.username, clientpassword, out error))
                {
                    Log.Error(error);
                    DisposeClient();
                    return;
                }
            };

            ((Button)window.Controls["singlePlayer"]).Click += delegate(Button sender)
            {
                GameEngineApp.Instance.SetNeedMapLoad("Maps\\MainDemo\\Map.map");
            };

            //TextBox ComWelN = window.Controls["ComWelNote"] as TextBox;
            //if (ComWelN != null)
            //{
            //    ComWelN.Text = "Welcome Commander " + MySqlGetUserName();
            //}

            buttonCreateServer        = (Button)window.Controls["CreateServer"];
            buttonCreateServer.Click += CreateServer_Click;

            //refreshlistbox();

            base.OnAttach();
        }
Example #8
0
 // Use this for initialization
 void Start()
 {
     client = new GameNetworkClient();
     client.OnConnectedToServer("192.168.0.192", 8809);
     ConnectConfirm();
 }