// ------------------------------------------------------------------------------- // Show // ------------------------------------------------------------------------------- public void Show() { cancelButton.onClick.SetListener(() => { NetworkManagerMMO.Quit(); }); panel.SetActive(true); }
private void Update_UCE_LogoutTimer() { Player player = Player.localPlayer; if (!player) { return; } if (player.state == "IDLE") { _logoutTimer += cacheTimerInterval; } else { _logoutTimer = 0; UCE_UI_LogoutTimer_Popup.singleton.Hide(); } if (_logoutTimer > logoutKickTime) { NetworkManagerMMO.Quit(); } else if (_logoutTimer > logoutWarningTime) { UCE_UI_LogoutTimer_Popup.singleton.Show(); } }
void Update() { // show while in lobby and while not creating a character if (manager.state == NetworkState.Lobby && !uiCharacterCreation.IsVisible()) { panel.SetActive(true); // characters available message received already? if (manager.charactersAvailableMsg != null) { CharactersAvailableMsg.CharacterPreview[] characters = manager.charactersAvailableMsg.characters; // start button: calls AddPLayer which calls OnServerAddPlayer // -> button sends a request to the server // -> if we press button again while request hasn't finished // then we will get the error: // 'ClientScene::AddPlayer: playerControllerId of 0 already in use.' // which will happen sometimes at low-fps or high-latency // -> internally ClientScene.AddPlayer adds to localPlayers // immediately, so let's check that first startButton.gameObject.SetActive(manager.selection != -1); startButton.onClick.SetListener(() => { // add player CharacterSelectMsg message = new CharacterSelectMsg { index = manager.selection }; ClientScene.AddPlayer(manager.client.connection, message); // clear character selection previews manager.ClearPreviews(); // make sure we can't select twice and call AddPlayer twice panel.SetActive(false); }); // delete button deleteButton.gameObject.SetActive(manager.selection != -1); deleteButton.onClick.SetListener(() => { CharacterDeleteMsg message = new CharacterDeleteMsg { index = manager.selection }; manager.client.Send(CharacterDeleteMsg.MsgId, message); }); // create button createButton.interactable = characters.Length < manager.characterLimit; createButton.onClick.SetListener(() => { panel.SetActive(false); uiCharacterCreation.Show(); }); // quit button quitButton.onClick.SetListener(() => { NetworkManagerMMO.Quit(); }); } } else { panel.SetActive(false); } }
void Update() { if (manager == null) { manager = NetworkManager.singleton as NetworkManagerMMO; } // only show while offline // AND while in handshake since we don't want to show nothing while // trying to login and waiting for the server's response if (manager.state == NetworkState.Offline || manager.state == NetworkState.Handshake) { panel.SetActive(true); // status if (manager.IsConnecting()) { statusText.text = "Connecting..."; } else if (manager.state == NetworkState.Handshake) { statusText.text = "Handshake..."; } else { statusText.text = ""; } // buttons. interactable while network is not active // (using IsConnecting is slightly delayed and would allow multiple clicks) registerButton.interactable = !manager.isNetworkActive; registerButton.onClick.SetListener(() => { uiPopup.Show(registerMessage); }); loginButton.interactable = !manager.isNetworkActive && manager.IsAllowedAccountName(accountInput.text); loginButton.onClick.SetListener(() => { manager.StartClient(); }); hostButton.interactable = Application.platform != RuntimePlatform.WebGLPlayer && !manager.isNetworkActive && manager.IsAllowedAccountName(accountInput.text); hostButton.onClick.SetListener(() => { manager.StartHost(); }); cancelButton.gameObject.SetActive(manager.IsConnecting()); cancelButton.onClick.SetListener(() => { manager.StopClient(); }); dedicatedButton.interactable = Application.platform != RuntimePlatform.WebGLPlayer && !manager.isNetworkActive; dedicatedButton.onClick.SetListener(() => { manager.StartServer(); }); quitButton.onClick.SetListener(() => { NetworkManagerMMO.Quit(); }); // inputs manager.loginAccount = accountInput.text; manager.loginPassword = passwordInput.text; // copy servers to dropdown; copy selected one to networkmanager ip/port. serverDropdown.interactable = !manager.isNetworkActive; serverDropdown.options = manager.serverList.Select( sv => new Dropdown.OptionData(sv.name) ).ToList(); manager.networkAddress = manager.serverList[serverDropdown.value].ip; } else { panel.SetActive(false); } }
public void CmdShutdown() { // validate: only for GMs if (!player.isGameMaster) { return; } NetworkManagerMMO.Quit(); }
void Update() { Player player = Utils.ClientLocalPlayer(); panel.SetActive(player != null); // hide while not in the game world if (!player) { return; } inventoryButton.onClick.SetListener(() => { inventoryPanel.SetActive(!inventoryPanel.activeSelf); }); equipmentButton.onClick.SetListener(() => { equipmentPanel.SetActive(!equipmentPanel.activeSelf); }); skillsButton.onClick.SetListener(() => { skillsPanel.SetActive(!skillsPanel.activeSelf); }); characterInfoButton.onClick.SetListener(() => { characterInfoPanel.SetActive(!characterInfoPanel.activeSelf); }); questsButton.onClick.SetListener(() => { questsPanel.SetActive(!questsPanel.activeSelf); }); craftingButton.onClick.SetListener(() => { craftingPanel.SetActive(!craftingPanel.activeSelf); }); partyButton.onClick.SetListener(() => { partyPanel.SetActive(!partyPanel.activeSelf); }); guildButton.onClick.SetListener(() => { guildPanel.SetActive(!guildPanel.activeSelf); }); itemMallButton.onClick.SetListener(() => { itemMallPanel.SetActive(!itemMallPanel.activeSelf); }); quitButton.onClick.SetListener(() => { NetworkManagerMMO.Quit(); }); // addon system hooks Utils.InvokeMany(typeof(UIShortcuts), this, "Update_"); }
void Update() { Player player = Player.localPlayer; if (player != null) { panel.SetActive(true); inventoryButton.onClick.SetListener(() => { inventoryPanel.SetActive(!inventoryPanel.activeSelf); }); equipmentButton.onClick.SetListener(() => { equipmentPanel.SetActive(!equipmentPanel.activeSelf); }); skillsButton.onClick.SetListener(() => { skillsPanel.SetActive(!skillsPanel.activeSelf); }); characterInfoButton.onClick.SetListener(() => { characterInfoPanel.SetActive(!characterInfoPanel.activeSelf); }); questsButton.onClick.SetListener(() => { questsPanel.SetActive(!questsPanel.activeSelf); }); craftingButton.onClick.SetListener(() => { craftingPanel.SetActive(!craftingPanel.activeSelf); }); partyButton.onClick.SetListener(() => { partyPanel.SetActive(!partyPanel.activeSelf); }); guildButton.onClick.SetListener(() => { guildPanel.SetActive(!guildPanel.activeSelf); }); itemMallButton.onClick.SetListener(() => { itemMallPanel.SetActive(!itemMallPanel.activeSelf); }); quitButton.onClick.SetListener(() => { NetworkManagerMMO.Quit(); }); } else { panel.SetActive(false); } }
void Update() { // only show while offline or trying to connect if (!manager.IsClientConnected()) { panel.SetActive(true); // status statusText.text = manager.IsConnecting() ? "Connecting..." : ""; // buttons. interactable while network is not active // (using IsConnecting is slightly delayed and would allow multiple clicks) registerButton.onClick.SetListener(() => { uiPopup.Show(registerMessage); }); loginButton.interactable = !manager.isNetworkActive && manager.IsAllowedAccountName(accountInput.text); loginButton.onClick.SetListener(() => { manager.StartClient(); }); hostButton.interactable = !manager.isNetworkActive && manager.IsAllowedAccountName(accountInput.text); hostButton.onClick.SetListener(() => { manager.StartHost(); }); cancelButton.gameObject.SetActive(manager.IsConnecting()); cancelButton.onClick.SetListener(() => { manager.StopClient(); }); dedicatedButton.interactable = !manager.isNetworkActive; dedicatedButton.onClick.SetListener(() => { manager.StartServer(); }); quitButton.onClick.SetListener(() => { NetworkManagerMMO.Quit(); }); // inputs manager.loginAccount = accountInput.text; manager.loginPassword = passwordInput.text; // copy servers to dropdown; copy selected one to networkmanager ip/port. serverDropdown.interactable = !manager.isNetworkActive; serverDropdown.options = manager.serverList.Select( sv => new Dropdown.OptionData(sv.name) ).ToList(); manager.networkAddress = manager.serverList[serverDropdown.value].ip; // addon system hooks Utils.InvokeMany(typeof(UILogin), this, "Update_"); } else { panel.SetActive(false); } }
void Update() { Player player = Utils.ClientLocalPlayer(); panel.SetActive(player != null); // hide while not in the game world if (!player) { return; } inventoryButton.onClick.SetListener(() => { inventoryPanel.SetActive(!inventoryPanel.activeSelf); }); equipmentButton.onClick.SetListener(() => { equipmentPanel.SetActive(!equipmentPanel.activeSelf); }); skillsButton.onClick.SetListener(() => { skillsPanel.SetActive(!skillsPanel.activeSelf); }); characterInfoButton.onClick.SetListener(() => { characterInfoPanel.SetActive(!characterInfoPanel.activeSelf); }); questsButton.onClick.SetListener(() => { questsPanel.SetActive(!questsPanel.activeSelf); }); craftingButton.onClick.SetListener(() => { craftingPanel.SetActive(!craftingPanel.activeSelf); }); quitButton.onClick.SetListener(() => { NetworkManagerMMO.Quit(); }); }
private void Update_UCE_LogoutTimer() { Player player = Player.localPlayer; if (!player) { return; } if (player.state == "IDLE") { _logoutTimer += cacheTimerInterval; } else { _logoutTimer = 0; if (UCE_UI_LogoutTimer_Popup.singleton) { UCE_UI_LogoutTimer_Popup.singleton.Hide(); } else { Debug.LogWarning("You forgot to add UCE_UI_LogoutTimer_Popup to your canvas!"); } } if (_logoutTimer > logoutKickTime) { NetworkManagerMMO.Quit(); } else if (_logoutTimer > logoutWarningTime) { UCE_UI_LogoutTimer_Popup.singleton.Show(); } }
void Update() { Player player = Player.localPlayer; if (player != null) { panel.SetActive(true); inventoryButton.onClick.SetListener(() => { inventoryPanel.SetActive(!inventoryPanel.activeSelf); }); equipmentButton.onClick.SetListener(() => { equipmentPanel.SetActive(!equipmentPanel.activeSelf); }); skillsButton.onClick.SetListener(() => { skillsPanel.SetActive(!skillsPanel.activeSelf); }); characterInfoButton.onClick.SetListener(() => { characterInfoPanel.SetActive(!characterInfoPanel.activeSelf); }); questsButton.onClick.SetListener(() => { questsPanel.SetActive(!questsPanel.activeSelf); }); craftingButton.onClick.SetListener(() => { craftingPanel.SetActive(!craftingPanel.activeSelf); }); partyButton.onClick.SetListener(() => { partyPanel.SetActive(!partyPanel.activeSelf); }); guildButton.onClick.SetListener(() => { guildPanel.SetActive(!guildPanel.activeSelf); }); itemMallButton.onClick.SetListener(() => { itemMallPanel.SetActive(!itemMallPanel.activeSelf); }); gameMasterButton.gameObject.SetActive(player.isGameMaster); gameMasterButton.onClick.SetListener(() => { gameMasterPanel.SetActive(!gameMasterPanel.activeSelf); }); // show "(5)Quit" if we can't log out during combat // -> CeilToInt so that 0.1 shows as '1' and not as '0' string quitPrefix = ""; if (player.remainingLogoutTime > 0) { quitPrefix = "(" + Mathf.CeilToInt((float)player.remainingLogoutTime) + ") "; } quitButton.GetComponent <UIShowToolTip>().text = quitPrefix + "Quit"; quitButton.interactable = player.remainingLogoutTime == 0; quitButton.onClick.SetListener(() => { NetworkManagerMMO.Quit(); }); } else { panel.SetActive(false); } }
void Update() { // show while in lobby and while not creating a character if (manager.state == NetworkState.Lobby && !uiCharacterCreation.IsVisible()) { panel.SetActive(true); // characters available message received already? if (manager.charactersAvailableMsg != null) { // instantiate/destroy enough slots CharactersAvailableMsg.CharacterPreview[] characters = manager.charactersAvailableMsg.characters; UIUtils.BalancePrefabs(slotPrefab.gameObject, characters.Length, content); // refresh all List <Player> prefabs = manager.GetPlayerClasses(); for (int i = 0; i < characters.Length; ++i) { Player prefab = prefabs.Find(p => p.name == characters[i].className); UICharacterSelectionSlot slot = content.GetChild(i).GetComponent <UICharacterSelectionSlot>(); // name and icon slot.nameText.text = characters[i].name; slot.image.sprite = prefab.GetComponent <Player>().classIcon; // select button: calls AddPLayer which calls OnServerAddPlayer // -> button sends a request to the server // -> if we press button again while request hasn't finished // then we will get the error: // 'ClientScene::AddPlayer: playerControllerId of 0 already in use.' // which will happen sometimes at low-fps or high-latency // -> internally ClientScene.AddPlayer adds to localPlayers // immediately, so let's check that first slot.selectButton.interactable = ClientScene.localPlayer == null; int icopy = i; // needed for lambdas, otherwise i is Count slot.selectButton.onClick.SetListener(() => { CharacterSelectMsg message = new CharacterSelectMsg { index = icopy }; ClientScene.AddPlayer(manager.client.connection, message); // make sure we can't select twice and call AddPlayer twice panel.SetActive(false); }); // delete button: sends delete message slot.deleteButton.onClick.SetListener(() => { CharacterDeleteMsg message = new CharacterDeleteMsg { index = icopy }; manager.client.Send(CharacterDeleteMsg.MsgId, message); }); } createButton.interactable = characters.Length < manager.characterLimit; createButton.onClick.SetListener(() => { panel.SetActive(false); uiCharacterCreation.Show(); }); quitButton.onClick.SetListener(() => { NetworkManagerMMO.Quit(); }); } } else { panel.SetActive(false); } }
void Update() { // show if connected, not in world, not in charcreation if (manager.IsClientConnected() && !Utils.ClientLocalPlayer() && !uiCharacterCreation.IsVisible()) { panel.SetActive(true); // characters available message received already? if (manager.charactersAvailableMsg != null) { // instantiate/destroy enough slots CharactersAvailableMsg.CharacterPreview[] characters = manager.charactersAvailableMsg.characters; UIUtils.BalancePrefabs(slotPrefab.gameObject, characters.Length, content); // refresh all List <Player> prefabs = manager.GetPlayerClasses(); for (int i = 0; i < characters.Length; ++i) { Player prefab = prefabs.Find(p => p.name == characters[i].className); UICharacterSelectionSlot slot = content.GetChild(i).GetComponent <UICharacterSelectionSlot>(); // name and icon slot.nameText.text = characters[i].name; slot.image.sprite = prefab.GetComponent <Player>().classIcon; // select button: calls AddPLayer which calls OnServerAddPlayer int icopy = i; // needed for lambdas, otherwise i is Count slot.selectButton.onClick.SetListener(() => { CharacterSelectMsg message = new CharacterSelectMsg { index = icopy }; ClientScene.AddPlayer(manager.client.connection, 0, message); // make sure we can't select twice and call AddPlayer twice panel.SetActive(false); }); // delete button: sends delete message slot.deleteButton.onClick.SetListener(() => { CharacterDeleteMsg message = new CharacterDeleteMsg { index = icopy }; manager.client.Send(CharacterDeleteMsg.MsgId, message); }); } createButton.interactable = characters.Length < manager.characterLimit; createButton.onClick.SetListener(() => { panel.SetActive(false); uiCharacterCreation.Show(); }); quitButton.onClick.SetListener(() => { NetworkManagerMMO.Quit(); }); } // addon system hooks Utils.InvokeMany(typeof(UICharacterSelection), this, "Update_"); } else { panel.SetActive(false); } }