Exemple #1
0
 private void OnAppServerRegistered(AckResponseCode responseCode, BaseAckMessage message)
 {
     if (responseCode == AckResponseCode.Success)
     {
         UpdateMapUsers(CentralAppServerRegister, UpdateUserCharacterMessage.UpdateType.Add);
     }
 }
        private void OnRequestedDeleteCharacter(AckResponseCode responseCode, BaseAckMessage message)
        {
            ResponseDeleteCharacterMessage castedMessage = (ResponseDeleteCharacterMessage)message;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                string errorMessage = string.Empty;
                switch (castedMessage.error)
                {
                case ResponseDeleteCharacterMessage.Error.NotLoggedin:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_NOT_LOGGED_IN.ToString());
                    break;
                }
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UITextKeys.UI_LABEL_ERROR.ToString()), errorMessage);
                break;

            case AckResponseCode.Timeout:
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UITextKeys.UI_LABEL_ERROR.ToString()), LanguageManager.GetText(UITextKeys.UI_ERROR_CONNECTION_TIMEOUT.ToString()));
                break;

            default:
                // Reload characters
                LoadCharacters();
                break;
            }
        }
Exemple #3
0
        protected void HandleResponseUserLogout(LiteNetLibMessageHandler messageHandler)
        {
            TransportHandler transportHandler = messageHandler.transportHandler;
            BaseAckMessage   message          = messageHandler.ReadMessage <BaseAckMessage>();

            transportHandler.TriggerAck(message.ackId, message.responseCode, message);
        }
Exemple #4
0
        private void OnLoadCharacters(AckResponseCode responseCode, BaseAckMessage message)
        {
            var castedMessage = (ResponseCharactersMessage)message;

            SelectionManager.Clear();
            // Unenabled buttons
            buttonStart.gameObject.SetActive(false);
            buttonDelete.gameObject.SetActive(false);
            // Remove all models
            characterModelContainer.RemoveChildren();
            CharacterModels.Clear();

            var selectableCharacters = new List <PlayerCharacterData>();

            switch (responseCode)
            {
            case AckResponseCode.Error:
                var errorMessage = string.Empty;
                switch (castedMessage.error)
                {
                case ResponseCharactersMessage.Error.NotLoggedin:
                    errorMessage = "User not logged in";
                    break;
                }
                UISceneGlobal.Singleton.ShowMessageDialog("Cannot Load Characters", errorMessage);
                break;

            case AckResponseCode.Timeout:
                UISceneGlobal.Singleton.ShowMessageDialog("Cannot Load Characters", "Connection timeout");
                break;

            default:
                selectableCharacters = castedMessage.characters;
                break;
            }

            // Show list of created characters
            for (var i = selectableCharacters.Count - 1; i >= 0; --i)
            {
                var selectableCharacter = selectableCharacters[i];
                if (selectableCharacter == null || !GameInstance.PlayerCharacters.ContainsKey(selectableCharacter.DataId))
                {
                    selectableCharacters.RemoveAt(i);
                }
            }
            selectableCharacters.Sort(new PlayerCharacterDataLastUpdateComparer().Desc());
            CacheList.Generate(selectableCharacters, (index, character, ui) =>
            {
                var uiCharacter  = ui.GetComponent <UICharacter>();
                uiCharacter.Data = character;
                // Select trigger when add first entry so deactivate all models is okay beacause first model will active
                var characterModel            = character.InstantiateModel(characterModelContainer);
                CharacterModels[character.Id] = characterModel;
                characterModel.gameObject.SetActive(false);
                characterModel.SetEquipWeapons(character.EquipWeapons);
                characterModel.SetEquipItems(character.EquipItems);
                SelectionManager.Add(uiCharacter);
            });
        }
        protected void OnRequestSpawnMap(AckResponseCode responseCode, BaseAckMessage messageData)
        {
            var castedMessage = messageData as ResponseSpawnMapMessage;

            if (LogInfo)
            {
                Debug.Log("Spawn Map Ack Id: " + messageData.ackId + "  Status: " + responseCode + " Error: " + castedMessage.error);
            }
        }
Exemple #6
0
 private void OnValidateAccessToken(AckResponseCode responseCode, BaseAckMessage messageData)
 {
     if (responseCode == AckResponseCode.Success)
     {
         if (onValidateAccessTokenSuccess != null)
         {
             onValidateAccessTokenSuccess.Invoke();
         }
     }
 }
 public void OnAppServerRegistered(AckResponseCode responseCode, BaseAckMessage message)
 {
     if (responseCode == AckResponseCode.Success)
     {
         IsRegisteredToCentralServer = true;
     }
     if (onAppServerRegistered != null)
     {
         onAppServerRegistered(responseCode, message);
     }
 }
Exemple #8
0
        protected virtual void HandleRequestCashPackageInfo(LiteNetLibMessageHandler messageHandler)
        {
            long           connectionId = messageHandler.connectionId;
            BaseAckMessage message      = messageHandler.ReadMessage <BaseAckMessage>();
            ResponseCashPackageInfoMessage responseMessage = new ResponseCashPackageInfoMessage();

            responseMessage.ackId        = message.ackId;
            responseMessage.responseCode = AckResponseCode.Error;
            responseMessage.error        = ResponseCashPackageInfoMessage.Error.NotAvailable;
            ServerSendPacket(connectionId, DeliveryMethod.ReliableOrdered, MsgTypes.CashPackageInfo, responseMessage);
        }
Exemple #9
0
        private void OnRequestUserLogout(AckResponseCode responseCode, BaseAckMessage messageData, AckMessageCallback callback)
        {
            if (callback != null)
            {
                callback(responseCode, messageData);
            }

            UserId            = string.Empty;
            AccessToken       = string.Empty;
            SelectCharacterId = string.Empty;
        }
Exemple #10
0
 private void OnAppServerRegistered(AckResponseCode responseCode, BaseAckMessage message)
 {
     if (responseCode == AckResponseCode.Success)
     {
         if (spawningMaps == null || spawningMaps.Count == 0)
         {
             spawningMaps = new List <BaseMapInfo>();
             spawningMaps.AddRange(GameInstance.MapInfos.Values);
         }
         SpawnMaps(spawningMaps).Forget();
     }
 }
Exemple #11
0
        public void OnLogin(AckResponseCode responseCode, BaseAckMessage message)
        {
            LoggingIn = false;
            string storingUsername = string.Empty;
            string storingPassword = string.Empty;

            if (responseCode == AckResponseCode.Timeout)
            {
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UITextKeys.UI_LABEL_ERROR.ToString()), LanguageManager.GetText(UITextKeys.UI_ERROR_CONNECTION_TIMEOUT.ToString()));
                if (onLoginFail != null)
                {
                    onLoginFail.Invoke();
                }
                return;
            }
            ResponseUserLoginMessage castedMessage = message as ResponseUserLoginMessage;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                string errorMessage = string.Empty;
                switch (castedMessage.error)
                {
                case ResponseUserLoginMessage.Error.AlreadyLogin:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_ALREADY_LOGGED_IN.ToString());
                    break;

                case ResponseUserLoginMessage.Error.InvalidUsernameOrPassword:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_INVALID_USERNAME_OR_PASSWORD.ToString());
                    break;
                }
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UITextKeys.UI_LABEL_ERROR.ToString()), errorMessage);
                if (onLoginFail != null)
                {
                    onLoginFail.Invoke();
                }
                break;

            default:
                if (toggleAutoLogin != null && toggleAutoLogin.isOn)
                {
                    // Store password
                    PlayerPrefs.SetString(keyPassword, storingPassword);
                    PlayerPrefs.Save();
                }
                if (onLoginSuccess != null)
                {
                    onLoginSuccess.Invoke();
                }
                break;
            }
        }
        private void ResponseCashPackageInfo(AckResponseCode responseCode, BaseAckMessage message)
        {
            ResponseCashPackageInfoMessage castedMessage = (ResponseCashPackageInfoMessage)message;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UILocaleKeys.UI_LABEL_ERROR.ToString()), LanguageManager.GetText(UILocaleKeys.UI_ERROR_CANNOT_GET_CASH_PACKAGE_INFO.ToString()));
                break;

            case AckResponseCode.Timeout:
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UILocaleKeys.UI_LABEL_ERROR.ToString()), LanguageManager.GetText(UILocaleKeys.UI_ERROR_CONNECTION_TIMEOUT.ToString()));
                break;

            default:
                if (uiTextCash != null)
                {
                    uiTextCash.text = string.Format(
                        LanguageManager.GetText(formatKeyCash),
                        castedMessage.cash.ToString("N0"));
                }

                List <CashPackage> cashPackages = new List <CashPackage>();
                foreach (int cashPackageId in castedMessage.cashPackageIds)
                {
                    CashPackage cashPackage;
                    if (GameInstance.CashPackages.TryGetValue(cashPackageId, out cashPackage))
                    {
                        cashPackages.Add(cashPackage);
                    }
                }

                int selectedIdx = CacheCashPackageSelectionManager.SelectedUI != null?CacheCashPackageSelectionManager.IndexOf(CacheCashPackageSelectionManager.SelectedUI) : -1;

                CacheCashPackageSelectionManager.DeselectSelectedUI();
                CacheCashPackageSelectionManager.Clear();

                CacheCashPackageList.Generate(cashPackages, (index, cashShopItem, ui) =>
                {
                    UICashPackage uiCashPackage  = ui.GetComponent <UICashPackage>();
                    uiCashPackage.uiCashPackages = this;
                    uiCashPackage.Data           = cashShopItem;
                    uiCashPackage.Show();
                    CacheCashPackageSelectionManager.Add(uiCashPackage);
                    if (selectedIdx == index)
                    {
                        uiCashPackage.OnClickSelect();
                    }
                });
                break;
            }
        }
Exemple #13
0
        private void OnRequestSelectCharacter(AckResponseCode responseCode, BaseAckMessage messageData, string characterId, AckMessageCallback callback)
        {
            if (callback != null)
            {
                callback.Invoke(responseCode, messageData);
            }

            SelectCharacterId = string.Empty;
            if (messageData.responseCode == AckResponseCode.Success)
            {
                SelectCharacterId = characterId;
            }
        }
Exemple #14
0
        public void OnRegister(AckResponseCode responseCode, BaseAckMessage message)
        {
            Registering = false;
            if (responseCode == AckResponseCode.Timeout)
            {
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UITextKeys.UI_LABEL_ERROR.ToString()), LanguageManager.GetText(UITextKeys.UI_ERROR_CONNECTION_TIMEOUT.ToString()));
                if (onRegisterFail != null)
                {
                    onRegisterFail.Invoke();
                }
                return;
            }
            ResponseUserRegisterMessage castedMessage = message as ResponseUserRegisterMessage;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                string errorMessage = string.Empty;
                switch (castedMessage.error)
                {
                case ResponseUserRegisterMessage.Error.TooShortUsername:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_USERNAME_TOO_SHORT.ToString());
                    break;

                case ResponseUserRegisterMessage.Error.TooLongUsername:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_USERNAME_TOO_LONG.ToString());
                    break;

                case ResponseUserRegisterMessage.Error.TooShortPassword:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_PASSWORD_TOO_SHORT.ToString());
                    break;

                case ResponseUserRegisterMessage.Error.UsernameAlreadyExisted:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_USERNAME_EXISTED.ToString());
                    break;
                }
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UITextKeys.UI_LABEL_ERROR.ToString()), errorMessage);
                if (onRegisterFail != null)
                {
                    onRegisterFail.Invoke();
                }
                break;

            default:
                if (onRegisterSuccess != null)
                {
                    onRegisterSuccess.Invoke();
                }
                break;
            }
        }
Exemple #15
0
        private void ResponseCashShopInfo(AckResponseCode responseCode, BaseAckMessage message)
        {
            var castedMessage = (ResponseCashShopInfoMessage)message;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                UISceneGlobal.Singleton.ShowMessageDialog("Error", "Cannot retrieve cash shop info");
                break;

            case AckResponseCode.Timeout:
                UISceneGlobal.Singleton.ShowMessageDialog("Error", "Connection timeout");
                break;

            default:
                if (uiTextCash != null)
                {
                    uiTextCash.text = string.Format(cashFormat, castedMessage.cash.ToString("N0"));
                }
                var cashShopItems = new List <CashShopItem>();
                foreach (var cashShopItemId in castedMessage.cashShopItemIds)
                {
                    CashShopItem cashShopItem;
                    if (GameInstance.CashShopItems.TryGetValue(cashShopItemId, out cashShopItem))
                    {
                        cashShopItems.Add(cashShopItem);
                    }
                }

                var selectedIdx = SelectionManager.SelectedUI != null?SelectionManager.IndexOf(SelectionManager.SelectedUI) : -1;

                SelectionManager.DeselectSelectedUI();
                SelectionManager.Clear();

                CacheList.Generate(cashShopItems, (index, cashShopItem, ui) =>
                {
                    var uiCashShopItem        = ui.GetComponent <UICashShopItem>();
                    uiCashShopItem.uiCashShop = this;
                    uiCashShopItem.Data       = cashShopItem;
                    uiCashShopItem.Show();
                    SelectionManager.Add(uiCashShopItem);
                    if (selectedIdx == index)
                    {
                        uiCashShopItem.OnClickSelect();
                    }
                });
                break;
            }
        }
Exemple #16
0
        public void OnRegister(AckResponseCode responseCode, BaseAckMessage message)
        {
            ResponseUserRegisterMessage castedMessage = (ResponseUserRegisterMessage)message;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                string errorMessage = string.Empty;
                switch (castedMessage.error)
                {
                case ResponseUserRegisterMessage.Error.TooShortUsername:
                    errorMessage = "Username is too short";
                    break;

                case ResponseUserRegisterMessage.Error.TooLongUsername:
                    errorMessage = "Username is too long";
                    break;

                case ResponseUserRegisterMessage.Error.TooShortPassword:
                    errorMessage = "Password is too short";
                    break;

                case ResponseUserRegisterMessage.Error.UsernameAlreadyExisted:
                    errorMessage = "Username is already existed";
                    break;
                }
                UISceneGlobal.Singleton.ShowMessageDialog("Cannot Register", errorMessage);
                if (onRegisterFail != null)
                {
                    onRegisterFail.Invoke();
                }
                break;

            case AckResponseCode.Timeout:
                UISceneGlobal.Singleton.ShowMessageDialog("Cannot Register", "Connection timeout");
                if (onRegisterFail != null)
                {
                    onRegisterFail.Invoke();
                }
                break;

            default:
                if (onRegisterSuccess != null)
                {
                    onRegisterSuccess.Invoke();
                }
                break;
            }
        }
Exemple #17
0
        private void OnRequestSelectCharacter(AckResponseCode responseCode, BaseAckMessage messageData, string characterId, AckMessageCallback callback)
        {
            if (callback != null)
            {
                callback(responseCode, messageData);
            }

            SelectCharacterId = string.Empty;
            ResponseSelectCharacterMessage castedMessage = messageData as ResponseSelectCharacterMessage;

            if (castedMessage.responseCode == AckResponseCode.Success)
            {
                SelectCharacterId = characterId;
            }
        }
Exemple #18
0
 private void OnAppServerRegistered(AckResponseCode responseCode, BaseAckMessage message)
 {
     if (responseCode == AckResponseCode.Success)
     {
         if (spawningMaps == null || spawningMaps.Count == 0)
         {
             spawningMaps = new List <MapInfo>();
             spawningMaps.AddRange(GameInstance.MapInfos.Values);
         }
         foreach (MapInfo map in spawningMaps)
         {
             SpawnMap(map.Id, true);
         }
     }
 }
Exemple #19
0
        private void OnRequestValidateAccessToken(AckResponseCode responseCode, BaseAckMessage messageData, AckMessageCallback callback)
        {
            if (callback != null)
            {
                callback.Invoke(responseCode, messageData);
            }

            UserId      = string.Empty;
            AccessToken = string.Empty;
            if (messageData.responseCode == AckResponseCode.Success)
            {
                ResponseValidateAccessTokenMessage castedMessage = messageData as ResponseValidateAccessTokenMessage;
                UserId      = castedMessage.userId;
                AccessToken = castedMessage.accessToken;
            }
        }
Exemple #20
0
        protected void OnRequestSpawnMap(AckResponseCode responseCode, BaseAckMessage messageData)
        {
            ResponseSpawnMapMessage castedMessage = messageData as ResponseSpawnMapMessage;

            if (LogInfo)
            {
                Logging.Log(LogTag, "Spawn Map Ack Id: " + messageData.ackId + "  Status: " + responseCode + " Error: " + castedMessage.error);
            }
            // Forward responses to map server transport handler
            KeyValuePair <TransportHandler, uint> requestSpawnMapHandler;

            if (requestSpawnMapHandlers.TryGetValue(castedMessage.ackId, out requestSpawnMapHandler))
            {
                requestSpawnMapHandler.Key.ReadResponse(requestSpawnMapHandler.Value, castedMessage.responseCode, castedMessage);
            }
        }
Exemple #21
0
        private void OnRequestedCreateCharacter(AckResponseCode responseCode, BaseAckMessage message)
        {
            if (responseCode == AckResponseCode.Timeout)
            {
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UITextKeys.UI_LABEL_ERROR.ToString()), LanguageManager.GetText(UITextKeys.UI_ERROR_CONNECTION_TIMEOUT.ToString()));
                return;
            }
            ResponseCreateCharacterMessage castedMessage = message as ResponseCreateCharacterMessage;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                string errorMessage = string.Empty;
                switch (castedMessage.error)
                {
                case ResponseCreateCharacterMessage.Error.NotLoggedin:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_NOT_LOGGED_IN.ToString());
                    break;

                case ResponseCreateCharacterMessage.Error.InvalidData:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_INVALID_DATA.ToString());
                    break;

                case ResponseCreateCharacterMessage.Error.TooShortCharacterName:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_CHARACTER_NAME_TOO_SHORT.ToString());
                    break;

                case ResponseCreateCharacterMessage.Error.TooLongCharacterName:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_CHARACTER_NAME_TOO_LONG.ToString());
                    break;

                case ResponseCreateCharacterMessage.Error.CharacterNameAlreadyExisted:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_CHARACTER_NAME_EXISTED.ToString());
                    break;
                }
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UITextKeys.UI_LABEL_ERROR.ToString()), errorMessage);
                break;

            default:
                if (eventOnCreateCharacter != null)
                {
                    eventOnCreateCharacter.Invoke();
                }
                break;
            }
        }
Exemple #22
0
        private void OnRequestedCreateCharacter(AckResponseCode responseCode, BaseAckMessage message)
        {
            ResponseCreateCharacterMessage castedMessage = (ResponseCreateCharacterMessage)message;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                string errorMessage = string.Empty;
                switch (castedMessage.error)
                {
                case ResponseCreateCharacterMessage.Error.NotLoggedin:
                    errorMessage = "User not logged in";
                    break;

                case ResponseCreateCharacterMessage.Error.InvalidData:
                    errorMessage = "Invalid data";
                    break;

                case ResponseCreateCharacterMessage.Error.TooShortCharacterName:
                    errorMessage = "Character name is too short";
                    break;

                case ResponseCreateCharacterMessage.Error.TooLongCharacterName:
                    errorMessage = "Character name is too long";
                    break;

                case ResponseCreateCharacterMessage.Error.CharacterNameAlreadyExisted:
                    errorMessage = "Character name is already existed";
                    break;
                }
                UISceneGlobal.Singleton.ShowMessageDialog("Cannot Create Characters", errorMessage);
                break;

            case AckResponseCode.Timeout:
                UISceneGlobal.Singleton.ShowMessageDialog("Cannot Create Characters", "Connection timeout");
                break;

            default:
                if (eventOnCreateCharacter != null)
                {
                    eventOnCreateCharacter.Invoke();
                }
                break;
            }
        }
        private void ResponseCashPackageBuyValidation(AckResponseCode responseCode, BaseAckMessage message)
        {
            var castedMessage = (ResponseCashPackageBuyValidationMessage)message;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                var errorMessage = string.Empty;
                switch (castedMessage.error)
                {
                case ResponseCashPackageBuyValidationMessage.Error.UserNotFound:
                    errorMessage = "User not found";
                    break;

                case ResponseCashPackageBuyValidationMessage.Error.PackageNotFound:
                    errorMessage = "Package not found";
                    break;

                case ResponseCashPackageBuyValidationMessage.Error.Invalid:
                    errorMessage = "Invalid";
                    break;
                }
                PurchaseResult(false, errorMessage);
                break;

            case AckResponseCode.Timeout:
                UISceneGlobal.Singleton.ShowMessageDialog("Error", "Connection timeout");
                PurchaseResult(false, "Connection timeout");
                break;

            default:
                CashPackage package;
                if (CashPackages.TryGetValue(castedMessage.dataId, out package))
                {
                    StoreController.ConfirmPendingPurchase(package.ProductData);
                    PurchaseResult(true);
                }
                else
                {
                    PurchaseResult(false, "Package not found");
                }
                break;
            }
        }
Exemple #24
0
        private void OnRequestUserLogin(AckResponseCode responseCode, BaseAckMessage messageData, AckMessageCallback callback)
        {
            if (callback != null)
            {
                callback(responseCode, messageData);
            }

            UserId            = string.Empty;
            AccessToken       = string.Empty;
            SelectCharacterId = string.Empty;
            ResponseUserLoginMessage castedMessage = messageData as ResponseUserLoginMessage;

            if (castedMessage.responseCode == AckResponseCode.Success)
            {
                UserId            = castedMessage.userId;
                AccessToken       = castedMessage.accessToken;
                SelectCharacterId = string.Empty;
            }
        }
Exemple #25
0
        private IEnumerator HandleRequestUserLogoutRoutine(LiteNetLibMessageHandler messageHandler)
        {
            long                connectionId = messageHandler.connectionId;
            BaseAckMessage      message      = messageHandler.ReadMessage <BaseAckMessage>();
            CentralUserPeerInfo userPeerInfo;

            if (userPeers.TryGetValue(connectionId, out userPeerInfo))
            {
                userPeersByUserId.Remove(userPeerInfo.userId);
                userPeers.Remove(connectionId);
                UpdateAccessTokenJob updateAccessTokenJob = new UpdateAccessTokenJob(Database, userPeerInfo.userId, string.Empty);
                updateAccessTokenJob.Start();
                yield return(StartCoroutine(updateAccessTokenJob.WaitFor()));
            }
            BaseAckMessage responseMessage = new BaseAckMessage();

            responseMessage.ackId        = message.ackId;
            responseMessage.responseCode = AckResponseCode.Success;
            ServerSendPacket(connectionId, DeliveryMethod.ReliableOrdered, MMOMessageTypes.ResponseUserLogout, responseMessage);
        }
        public void OnLogin(AckResponseCode responseCode, BaseAckMessage message)
        {
            ResponseUserLoginMessage castedMessage = (ResponseUserLoginMessage)message;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                string errorMessage = string.Empty;
                switch (castedMessage.error)
                {
                case ResponseUserLoginMessage.Error.AlreadyLogin:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_ALREADY_LOGGED_IN.ToString());
                    break;

                case ResponseUserLoginMessage.Error.InvalidUsernameOrPassword:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_INVALID_USERNAME_OR_PASSWORD.ToString());
                    break;
                }
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UITextKeys.UI_LABEL_ERROR.ToString()), errorMessage);
                if (onLoginFail != null)
                {
                    onLoginFail.Invoke();
                }
                break;

            case AckResponseCode.Timeout:
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UITextKeys.UI_LABEL_ERROR.ToString()), LanguageManager.GetText(UITextKeys.UI_ERROR_CONNECTION_TIMEOUT.ToString()));
                if (onLoginFail != null)
                {
                    onLoginFail.Invoke();
                }
                break;

            default:
                if (onLoginSuccess != null)
                {
                    onLoginSuccess.Invoke();
                }
                break;
            }
        }
        public void OnLogin(AckResponseCode responseCode, BaseAckMessage message)
        {
            var castedMessage = (ResponseUserLoginMessage)message;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                var errorMessage = string.Empty;
                switch (castedMessage.error)
                {
                case ResponseUserLoginMessage.Error.AlreadyLogin:
                    errorMessage = "User already logged in";
                    break;

                case ResponseUserLoginMessage.Error.InvalidUsernameOrPassword:
                    errorMessage = "Invalid username or password";
                    break;
                }
                UISceneGlobal.Singleton.ShowMessageDialog("Cannot Login", errorMessage);
                if (onLoginFail != null)
                {
                    onLoginFail.Invoke();
                }
                break;

            case AckResponseCode.Timeout:
                UISceneGlobal.Singleton.ShowMessageDialog("Cannot Login", "Connection timeout");
                if (onLoginFail != null)
                {
                    onLoginFail.Invoke();
                }
                break;

            default:
                if (onLoginSuccess != null)
                {
                    onLoginSuccess.Invoke();
                }
                break;
            }
        }
Exemple #28
0
        private void OnRequestedSelectCharacter(AckResponseCode responseCode, BaseAckMessage message)
        {
            if (responseCode == AckResponseCode.Timeout)
            {
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UITextKeys.UI_LABEL_ERROR.ToString()), LanguageManager.GetText(UITextKeys.UI_ERROR_CONNECTION_TIMEOUT.ToString()));
                return;
            }
            ResponseSelectCharacterMessage castedMessage = message as ResponseSelectCharacterMessage;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                string errorMessage = string.Empty;
                switch (castedMessage.error)
                {
                case ResponseSelectCharacterMessage.Error.NotLoggedin:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_NOT_LOGGED_IN.ToString());
                    break;

                case ResponseSelectCharacterMessage.Error.AlreadySelectCharacter:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_ALREADY_SELECT_CHARACTER.ToString());
                    break;

                case ResponseSelectCharacterMessage.Error.InvalidCharacterData:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_INVALID_CHARACTER_DATA.ToString());
                    break;

                case ResponseSelectCharacterMessage.Error.MapNotReady:
                    errorMessage = LanguageManager.GetText(UITextKeys.UI_ERROR_MAP_SERVER_NOT_READY.ToString());
                    break;
                }
                UISceneGlobal.Singleton.ShowMessageDialog(LanguageManager.GetText(UITextKeys.UI_LABEL_ERROR.ToString()), errorMessage);
                break;

            default:
                MMOClientInstance.Singleton.StartMapClient(castedMessage.sceneName, castedMessage.networkAddress, castedMessage.networkPort);
                break;
            }
        }
Exemple #29
0
 private void OnAppServerRegistered(AckResponseCode responseCode, BaseAckMessage message)
 {
     if (responseCode == AckResponseCode.Success)
     {
         if (spawningScenes == null || spawningScenes.Count == 0)
         {
             spawningScenes = new List <UnityScene>();
             List <string> sceneNames = GameInstance.Singleton.GetGameScenes();
             foreach (string sceneName in sceneNames)
             {
                 spawningScenes.Add(new UnityScene()
                 {
                     SceneName = sceneName
                 });
             }
         }
         foreach (UnityScene scene in spawningScenes)
         {
             SpawnMap(scene, true);
         }
     }
 }
Exemple #30
0
        private async UniTaskVoid HandleRequestUserLogoutRoutine(LiteNetLibMessageHandler messageHandler)
        {
            long                connectionId = messageHandler.connectionId;
            BaseAckMessage      message      = messageHandler.ReadMessage <BaseAckMessage>();
            CentralUserPeerInfo userPeerInfo;

            if (userPeers.TryGetValue(connectionId, out userPeerInfo))
            {
                userPeersByUserId.Remove(userPeerInfo.userId);
                userPeers.Remove(connectionId);
                await DbServiceClient.UpdateAccessTokenAsync(new UpdateAccessTokenReq()
                {
                    UserId      = userPeerInfo.userId,
                    AccessToken = string.Empty
                });
            }
            BaseAckMessage responseMessage = new BaseAckMessage();

            responseMessage.ackId        = message.ackId;
            responseMessage.responseCode = AckResponseCode.Success;
            ServerSendResponse(connectionId, MMOMessageTypes.ResponseUserLogout, responseMessage);
        }