protected async void InternalEnterGame(string characterName, string worldAddress, string worldName, int worldPort) { bool loaded = await CheckGameAssets(); if (!loaded) { return; } PopupCancel("Connecting", "Connecting to the game world. Please wait."); OpenTibiaUnity.ChatStorage.Reset(); OpenTibiaUnity.ContainerStorage.Reset(); OpenTibiaUnity.CreatureStorage.Reset(); OpenTibiaUnity.SpellStorage.Reset(); OpenTibiaUnity.WorldMapStorage.Reset(); var protocolGame = new Core.Communication.Game.ProtocolGame(); protocolGame.CharacterName = characterName; protocolGame.WorldName = worldName; protocolGame.SessionKey = _playdata.Session.Key; protocolGame.AccountName = _playdata.Session.AccountName; protocolGame.Password = _playdata.Session.Password; protocolGame.Token = _playdata.Session.Token; AddProtocolGameListeners(protocolGame); OpenTibiaUnity.ProtocolGame = protocolGame; new Task(() => protocolGame.Connect(worldAddress, worldPort)).Start(); }
protected async void DoEnterGame(string characterName, string worldAddress, string worldName, int worldPort) { Close(); var gameManager = OpenTibiaUnity.GameManager; if (gameManager.IsLoadingClientAssets) { gameManager.LobbyPanel.gameObject.SetActive(false); gameManager.LoadingAppearancesWindow.gameObject.SetActive(true); while (gameManager.IsLoadingClientAssets) { await Task.Yield(); } gameManager.LobbyPanel.gameObject.SetActive(OpenTibiaUnity.GameManager.ClientVersion >= 1200); gameManager.LoadingAppearancesWindow.gameObject.SetActive(false); if (!gameManager.HasLoadedClientAssets) { var clientVersion = OpenTibiaUnity.GameManager.ClientVersion; var buildVersion = OpenTibiaUnity.GameManager.BuildVersion; PopupMessage("Sorry", string.Format("Couldn't load appearances for version {0}.{1}.", clientVersion / 100f, buildVersion)); return; } } PopupMessage("Connecting", "Connecting to the game world. Please wait.", PopupMenuType.Cancel); OpenTibiaUnity.ChatStorage.Reset(); OpenTibiaUnity.ContainerStorage.Reset(); OpenTibiaUnity.CreatureStorage.Reset(); OpenTibiaUnity.SpellStorage.Reset(); OpenTibiaUnity.WorldMapStorage.Reset(); var protocolGame = new Core.Communication.Game.ProtocolGame(); if (_session != null) { protocolGame.SessionKey = _session.SessionKey; } else { protocolGame.SessionKey = _sessionKey; protocolGame.AccountName = _accountName; protocolGame.Password = _password; protocolGame.Token = _token; } protocolGame.CharacterName = characterName; protocolGame.WorldName = worldName; AddProtocolGameListeners(protocolGame); OpenTibiaUnity.ProtocolGame = protocolGame; new Task(() => protocolGame.Connect(worldAddress, worldPort)).Start(); }
protected async void DoEnterGame(string characterName, string worldAddress, string worldName, int worldPort) { CloseWithoutNotify(); var gameManager = OpenTibiaUnity.GameManager; if (!gameManager.IsLoadingClientAssets && !gameManager.HasLoadedClientAssets) { await gameManager.LoadThingsAsyncAwaitable(gameManager.ClientVersion, gameManager.BuildVersion, gameManager.ClientSpecification); } if (gameManager.IsLoadingClientAssets) { gameManager.LobbyPanel.gameObject.SetActive(false); gameManager.LoadingAppearancesWindow.gameObject.SetActive(true); while (gameManager.IsLoadingClientAssets) { await Task.Yield(); } gameManager.LobbyPanel.gameObject.SetActive(OpenTibiaUnity.GameManager.ClientVersion >= 1200); gameManager.LoadingAppearancesWindow.gameObject.SetActive(false); } if (!gameManager.HasLoadedClientAssets) { var clientVersion = OpenTibiaUnity.GameManager.ClientVersion; var buildVersion = OpenTibiaUnity.GameManager.BuildVersion; string versionLiteral; if (clientVersion >= 1100) { versionLiteral = $"{clientVersion}.{buildVersion}"; } else { versionLiteral = clientVersion.ToString(); } PopupOk("Sorry", string.Format($"Couldn't load appearances for version {versionLiteral}.")); return; } PopupCancel("Connecting", "Connecting to the game world. Please wait."); OpenTibiaUnity.ChatStorage.Reset(); OpenTibiaUnity.ContainerStorage.Reset(); OpenTibiaUnity.CreatureStorage.Reset(); OpenTibiaUnity.SpellStorage.Reset(); OpenTibiaUnity.WorldMapStorage.Reset(); var protocolGame = new Core.Communication.Game.ProtocolGame(); if (_session != null) { protocolGame.SessionKey = _session.SessionKey; } else { protocolGame.SessionKey = _sessionKey; protocolGame.AccountName = _accountName; protocolGame.Password = _password; protocolGame.Token = _token; } protocolGame.CharacterName = characterName; protocolGame.WorldName = worldName; AddProtocolGameListeners(protocolGame); OpenTibiaUnity.ProtocolGame = protocolGame; new Task(() => protocolGame.Connect(worldAddress, worldPort)).Start(); }