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); } } } }
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); } } }
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(); }
// Use this for initialization void Start() { client = new GameNetworkClient(); client.OnConnectedToServer("192.168.0.192", 8809); ConnectConfirm(); }