Exemplo n.º 1
0
 protected void RemoveProtocolGameListeners(Core.Communication.Game.ProtocolGame protocolGame)
 {
     protocolGame.onConnectionError.RemoveListener(OnProtocolGameConnectionError);
     protocolGame.onLoginError.RemoveListener(OnProtocolGameLoginError);
     protocolGame.onLoginAdvice.RemoveListener(OnProtocolGameLoginAdvice);
     protocolGame.onLoginWait.RemoveListener(OnProtocolGameLoginWait);
 }
        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();
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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();
        }