Beispiel #1
0
 private void OnClickSendMsg(GameObject targetObject)
 {
     StoreGame.SaveString(StoreGame.EType.SEND_FRIEND_MESSAGE, mUser.username);
     ProfileView.Instance.CheckWhenStart();
     //ProfileView profile = ProfileView.Instance.C;
     GameObject.Destroy(gameObject);
 }
    void OnAfterJoinRoom(JoinRoomEvent e)
    {
        if (cbSavePass.value)
        {
            if (IsClickButtonLogin)
            {
                StoreGame.SaveString(StoreGame.EType.SAVE_USERNAME, lableUsername.value);
                StoreGame.SaveString(StoreGame.EType.SAVE_PASSWORD, lablePassword.value);
            }
        }
        //else
        //{
        //    StoreGame.Remove(StoreGame.EType.SAVE_ACCESSTOKEN);
        //    StoreGame.Remove(StoreGame.EType.SAVE_USERNAME);
        //    StoreGame.SaveString(StoreGame.EType.SAVE_PASSWORD, lablePassword.text);
        //}
        //OK Next Scene

        if (GameManager.Instance.selectedLobby.gameId != 0)
        {
            return;
        }
        WaitingView.Hide();
        NotificationView.Instance.HideMessageView();
        GameManager.LoadScene(ESceneName.HallSceen);
    }
Beispiel #3
0
    /// <summary>
    /// Lưu tin nhắn hệ thống vào cache của game
    /// </summary>
    /// <param name="_params">Danh sách các tin mới</param>
    public static void SaveCache(params Hashtable[] _params)
    {
        if (_params != null && _params.Length > 0)
        {
            foreach (Hashtable hash in _params)
            {
                Messages mess = new Messages(hash);
                if (GameManager.Instance.ListMessageSystem.Contains(mess) == false)
                {
                    GameManager.Instance.ListMessageSystem.Add(new Messages(hash));
                }
            }
        }

        GameManager.Instance.ListMessageSystem.Sort((x, y) => x.time_sent.CompareTo(y.time_sent));
        List <Messages> messageSystem = GameManager.Instance.ListMessageSystem;

        ArrayList cache = new ArrayList();

        foreach (Messages mess in messageSystem)
        {
            cache.Add(mess.ParseToHashtable);
        }

        StoreGame.SaveString(StoreGame.EType.CACHE_MESSAGE_SYSTEM, JSON.JsonEncode(cache));
    }
    IEnumerator DoRequest_AllHelp()
    {
        string reRequest = null;

        ServerWeb.StartThreadHttp(ServerWeb.URL_GETINFO_HELP, new object[] { "game_id", (int)GameManager.GAME, ServerWeb.PARAM_PARTNER_ID, GameSettings.Instance.ParnerCodeIdentifier }, delegate(bool isDone, WWW response, IDictionary json)
        {
            if (isDone)
            {
                if (string.IsNullOrEmpty(response.error))
                {
                    reRequest = "0";
                    if (json["code"].ToString() == "1")
                    {
                        string strSaveRule = JSON.JsonEncode(json["help"]);
                        StoreGame.SaveString(StoreGame.EType.CACHE_HELP, strSaveRule);
                        GameManager.Instance.StartCoroutine(onProcessGetInfoRule(strSaveRule, false));
                    }
                }
                else
                {
                    reRequest = "1";
                }
            }
        });
        while (string.IsNullOrEmpty(reRequest))
        {
            yield return(new WaitForEndOfFrame());
        }
        if (reRequest == "1")
        {
            yield return(new WaitForSeconds(2f));

            GameManager.Instance.StartCoroutine(DoRequest_AllHelp());
        }
    }
    void EnterLogin()
    {
        btLogin.StopImpact(1f);

        if (!string.IsNullOrEmpty(GameManager.Setting.IsMustUpdate))
        {
            Common.MustUpdateGame();
            return;
        }

        if (!Common.IsRelease)
        {
            string testUsername = "******";
            string testPassword = "******";

#if UNITY_STANDALONE_WIN
            testUsername = "******";
#elif UNITY_ANDROID
            testUsername = "******";
#else
            testUsername = "******";
#endif
            if (Application.isEditor)
            {
                testUsername = "******";
                testPassword = "******";
            }

            if (string.IsNullOrEmpty(lableUsername.value) && string.IsNullOrEmpty(lablePassword.value))
            {
                lableUsername.value = testUsername;
                lablePassword.value = testPassword;
            }
        }

        if (string.IsNullOrEmpty(lableUsername.value))
        {
            NotificationView.ShowMessage("Tên truy cập không được phép để trống");
            return;
        }
        if (string.IsNullOrEmpty(lablePassword.value))
        {
            NotificationView.ShowMessage("Mật khẩu không được phép để trống.");
            return;
        }

        IsClickButtonLogin = true;
        GameManager.Instance.userNameLogin = lableUsername.value;
        GameManager.Instance.passwordLogin = lablePassword.value;
        GameManager.Server.DoLogin();

        if (!Common.IsRelease)
        {
            StoreGame.SaveString(StoreGame.EType.SAVE_SERVER, CServer.HOST_NAME);
        }
    }
Beispiel #6
0
    string GetAccessToken(IDictionary json)
    {
        string accessToken = json["accessToken"].ToString();

        if (isSaveAccessToken)
        {
            StoreGame.SaveString(StoreGame.EType.SAVE_ACCESSTOKEN, accessToken);
        }
        return(accessToken);
    }
Beispiel #7
0
    public static void SaveDeviceWhenJoinGame()
    {
        string str = "";

        if (StoreGame.Contains(StoreGame.EType.PLAY_THE_SAME_DEVICE))
        {
            str = StoreGame.LoadString(StoreGame.EType.PLAY_THE_SAME_DEVICE) + DATA_ROW;
        }
        str += GameManager.Instance.mInfo.username + DATA_SAPCE + GameManager.Instance.selectedLobby.gameId;

        Debug.LogWarning("IsCanJoinGameplay SAVED: " + str);

        StoreGame.SaveString(StoreGame.EType.PLAY_THE_SAME_DEVICE, str);
        StoreGame.Save();
    }
Beispiel #8
0
    public static void ClearCache()
    {
        if (!Application.isWebPlayer)
        {
            return;
        }

        if (GameManager.CurrentScene == ESceneName.GameplayChan)
        {
            return;
        }

        if (StoreGame.Contains(StoreGame.EType.PLAY_THE_SAME_DEVICE))
        {
            string   newValue = "";
            string[] arrays   = StoreGame.LoadString(StoreGame.EType.PLAY_THE_SAME_DEVICE).Split(DATA_ROW.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

            Debug.LogWarning(StoreGame.LoadString(StoreGame.EType.PLAY_THE_SAME_DEVICE) + "\n" + arrays.Length);

            foreach (string str in arrays)
            {
                string[] arr = str.Split(DATA_SAPCE.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                if (arr[0] == GameManager.Instance.mInfo.username)
                {
                    Debug.LogWarning("IsCanJoinGameplay Remove: " + str);
                    continue;
                }
                newValue += str + DATA_ROW;
            }

            if (newValue != StoreGame.LoadString(StoreGame.EType.PLAY_THE_SAME_DEVICE))
            {
                if (string.IsNullOrEmpty(newValue))
                {
                    StoreGame.Remove(StoreGame.EType.PLAY_THE_SAME_DEVICE);
                }
                else
                {
                    StoreGame.SaveString(StoreGame.EType.PLAY_THE_SAME_DEVICE, newValue);
                }
                StoreGame.Save();
            }
        }
    }
    public ApplicationStart()
    {
        #region CLEAR CACHE WITH OLD VERSION
        if (!StoreGame.Contains(StoreGame.EType.VERSION) || (StoreGame.LoadString(StoreGame.EType.VERSION) != GameSettings.CurrentVersion))
        {
            StoreGame.ClearCache();
            StoreGame.SaveString(StoreGame.EType.VERSION, GameSettings.CurrentVersion);
        }
        #endregion

        #region KIỂM TRA CẤU HÌNH CÁC CONFIGURATION CỦA SERVER
        GameManager.Instance.StartCoroutine(DoRequestAllConfiguration("Kiểm tra kết nối đến server"));
        #endregion

        #region KIỂM TRA THÔNG TIN HỖ TRỢ (1)
        if (!StoreGame.Contains(StoreGame.EType.CACHE_HELP))
        {
            GameManager.Instance.StartCoroutine(DoRequest_AllHelp());
        }
        else
        {
            GameManager.Instance.StartCoroutine(onProcessGetInfoRule(StoreGame.LoadString(StoreGame.EType.CACHE_HELP), true));
        }
        #endregion

        #region KIỂM TRA THÔNG TIN ĐIỀU KHOẢN SỬ DỤNG (1)
        //if (!StoreGame.Contains(StoreGame.EType.CACHE_POLICY))
        //    GameManager.Instance.StartCoroutine(DoRequest_Policy());
        //else
        //    GameManager.Instance.StartCoroutine(onProcessGetInfoRule(StoreGame.LoadString(StoreGame.EType.CACHE_POLICY), true));
        #endregion

        #region REQUEST CHECK VERSION
        GameManager.Instance.StartCoroutine(DoRequestVersion());
        #endregion

        #region REQUEST GET ADS
        GameManager.Instance.StartCoroutine(DoRequestAds());
        #endregion

        #region REQUEST RECHARGE
        GameManager.Instance.StartCoroutine(DoRequestRecharge());
        #endregion
    }
    IEnumerator _LoginInWebPlayer()
    {
        Debug.Log("===> Call Login web");
        string accessToken = "";

        while (cookie.Length == 0)
        {
            yield return(new WaitForEndOfFrame());
        }
        Debug.Log("===> End Call Login web cookie:" + cookie);
        string[] array = cookie.Split(';');

        Array.ForEach(array, c => { if (c.Contains("accessToken"))
                                    {
                                        accessToken = c;
                                    }
                      });

        if (accessToken.Length > 0)
        {
            while (string.IsNullOrEmpty(CServer.HOST_NAME))
            {
                yield return(new WaitForEndOfFrame());
            }
            string[] arrayAccessToken = accessToken.Split('=');
            hasAccessToken = true;

            GameManager.Server.DoLogin(arrayAccessToken[1], GameManager.Instance.deviceToken);
            if (cbSavePass.value)
            {
                StoreGame.SaveString(StoreGame.EType.SAVE_ACCESSTOKEN, arrayAccessToken[1]);
            }
        }
        else
        {
            //NotificationView.ShowConfirm("Lỗi", "Bạn chưa đăng nhập vào hệ thống , vui lòng vào trang chủ đăng nhập sau đó quay lại chơi game", delegate() { Application.OpenURL(ServerWeb.URL_BASE); }, delegate() { Application.OpenURL(ServerWeb.URL_BASE); });
        }
    }
Beispiel #11
0
    /// <summary>
    /// Sự kiện xảy ra khi bạn logout ứng dụng
    /// </summary>
    public void DoLogOut()
    {
        StoreGame.Remove(StoreGame.EType.DEBUG_LOG);                            //REMOVE DEBUG_LOG
        StoreGame.SaveString(StoreGame.EType.BOOL_SEND_LOG_TO_SERVER, "false"); //REMOVE DEBUG_LOG
        WaitingView.Hide();
        if (Application.loadedLevelName == ESceneName.LoginScreen.ToString())
        {
            Disconnect(); return;
        }
        //DoLeaveCurrentRoom();
        LogOutRequest logOutRequest = new LogOutRequest();

        DoRequest(logOutRequest);
        #region BUILD WEB ESIMO COMMENT VAO KHI BUILD CHO FACEBOOK
#if UNITY_WEBPLAYER
        switch (GameSettings.Instance.TypeBuildFor)
        {
        case GameSettings.EBuildType.esimo:
        case GameSettings.EBuildType.web_esimo:
            Application.ExternalEval("window.location = \"/site/logout\"");
            break;
        }
#endif
        #endregion
        StoreGame.Remove(StoreGame.EType.SAVE_USERNAME);
        StoreGame.Remove(StoreGame.EType.SAVE_PASSWORD);
        StoreGame.Remove(StoreGame.EType.SAVE_ACCESSTOKEN);
        if (es.Engine.Connected)
        {
            es.Engine.Close();
        }
        if ((FB.IsLoggedIn || !string.IsNullOrEmpty(FB.AccessToken)) && !Application.isWebPlayer)
        {
            FB.Logout();
        }
        Disconnect();
        GameManager.LoadScene(ESceneName.LoginScreen);
    }
Beispiel #12
0
 private void OnClickButtonMessage(GameObject targetObject)
 {
     StoreGame.SaveString(StoreGame.EType.SEND_FRIEND_MESSAGE, "");
     ProfileView.Instance.CheckWhenStart();
 }
    void PluginMessageOnProcess(string command, string action, EsObject PluginMessageParameters)
    {
        if (command == Fields.RESPONSE.LOGIN_RESPONSE)
        {
            Debug.Log("OnLoginResponse " + PluginMessageParameters);
            Debug.Log("Đã nhận được thông tin server");
            EsObject esoResponce = PluginMessageParameters;

            if (esoResponce.getBoolean("loginResult"))
            {
                if (esoResponce.variableExists("gifts"))
                {
                    EsObject[] esoGifts = esoResponce.getEsObjectArray("gifts");
                    int        index    = Array.FindIndex(esoGifts, eI => eI.getBoolean("currentDate") == true);
                    if (esoGifts.Length > 0)
                    {
                        for (int i = 0; i < esoGifts.Length; i++)
                        {
                            Announcement ann = new Announcement(esoGifts[i]);
                            ann.index       = i;
                            ann.description = "Ngày " + (i + 1);
                            if (i < index)
                            {
                                ann.receivered = true;
                            }
                            GameManager.Instance.ListAnnouncement.Add(ann);
                        }
                    }
                }
                if (esoResponce.variableExists("countUnReadMessage"))
                {
                    GameManager.Server.totalMesseageCount = esoResponce.getInteger("countUnReadMessage");
                }

                GameManager.Setting.BroadcastMessage = esoResponce.getString("broadCastMessage");
                //GameManager.Instance.channelRoom = new RoomInfo(esoResponce.getEsObject("firstRoomToJoin"));
                GameManager.Instance.hallRoom = new RoomInfo(esoResponce.getEsObject("firstRoomToJoin"));
                GameManager.Instance.mInfo    = new User(esoResponce.getEsObject("userInfo"));

                if (esoResponce.variableExists("ceo_chan"))
                {
                    Common.RULE_CHIP_COMPARE_BETTING = esoResponce.getInteger("ceo_chan");
                }
                if (esoResponce.variableExists("pingRequire"))
                {
                    GameManager.Setting.IsPingRequire = esoResponce.getBoolean("pingRequire");
                }



                if (esoResponce.variableExists("gameRoom"))
                {
                    ((LobbyChan)GameManager.Instance.selectedLobby).SetDataJoinLobby(esoResponce.getEsObject("gameRoom"));
                    GameManager.Instance.selectedChannel.SetDataRoom(esoResponce.getEsObject("gameRoom").getEsObject("gameDetails").getEsObject("parent"));
                    GameManager.Instance.currentRoom = new RoomInfo(GameManager.Instance.hallRoom.zoneId, GameManager.Instance.hallRoom.roomId);
                    GameManager.Server.DoJoinGame(((LobbyChan)GameManager.Instance.selectedLobby).config.password);
                    GameManager.LoadScene(ESceneName.GameplayChan);
                    return;
                }

                ServerWeb.StartThread(ServerWeb.URL_REQUEST_USER, new object[] { "username", GameManager.Instance.mInfo.username }, delegate(bool isDone, WWW res, IDictionary json)
                {
                });
                GameManager.Instance.mInfo.password = lablePassword.value;
                GameManager.Server.DoJoinRoom(GameManager.Instance.hallRoom.zoneId, GameManager.Instance.hallRoom.roomId);
#if UNITY_WEBPLAYER
                if (!hasAccessToken)
                {
                    Application.ExternalEval("ajaxLoginUnity(\"" + GameManager.Instance.userNameLogin + "\", \"" + GameManager.Instance.passwordLogin + "\");");
                }
#endif
                if (!cbSavePass.value)
                {
                    StoreGame.Remove(StoreGame.EType.SAVE_USERNAME);
                    StoreGame.Remove(StoreGame.EType.SAVE_PASSWORD);
                    StoreGame.Remove(StoreGame.EType.SAVE_ACCESSTOKEN);
                    GameManager.Instance.userNameLogin = GameManager.Instance.passwordLogin = GameManager.Instance.accessToken = "";
                }
                else
                {
                    StoreGame.SaveString(StoreGame.EType.SAVE_USERNAME, GameManager.Instance.userNameLogin);
                    StoreGame.SaveString(StoreGame.EType.SAVE_PASSWORD, GameManager.Instance.passwordLogin);
                    StoreGame.SaveString(StoreGame.EType.SAVE_ACCESSTOKEN, GameManager.Instance.accessToken);
                }
            }
            else
            {
                Debug.Log("Login false");
                IsClickButtonLogin = false;
                StoreGame.Remove(StoreGame.EType.SAVE_USERNAME);
                StoreGame.Remove(StoreGame.EType.SAVE_PASSWORD);
                StoreGame.Remove(StoreGame.EType.SAVE_ACCESSTOKEN);
                GameManager.Instance.userNameLogin = GameManager.Instance.passwordLogin = GameManager.Instance.accessToken = "";

                string message = "Thông tin đăng nhập không hợp lệ. Yêu cầu nhập lại thông tin truy cập.";
                if (!string.IsNullOrEmpty(esoResponce.getString("reason")))
                {
                    message = esoResponce.getString("reason");
                }
                NotificationView.ShowMessage(message);
            }
        }

        WaitingView.Instance.Close();
    }
Beispiel #14
0
    void ProcessGeneral(string command, string action, EsObject eso)
    {
        if (command == Fields.RESPONSE.CREATE_GAME)
        {
            #region CREATE_GAME
            if (eso.getBoolean("successful"))
            {
                GameManager.Instance.selectedLobby.SetDataJoinLobby(eso);
            }
            else
            {
                NotificationView.ShowMessage("Lỗi! Tạo bàn chơi không thành công.", 3f);
            }
            #endregion
        }
        else if (command == "joinGame")
        {
            #region JOIN GAME
            if (EventLoadSence != null)
            {
                EventLoadSence();
            }
            GameManager.Instance.selectedLobby.SetDataJoinLobby(eso);
            WaitingView.Hide();
            PlaySameDevice.SaveDeviceWhenJoinGame();
            #endregion
        }
        else if (command == "removeFriend")
        {
            #region REMOVE FRIEND
            EsObject obj = eso.getEsObject("user");

            User pendingUser = GameManager.Instance.mInfo.pendingBuddies.Find(user => user.username == (obj.variableExists("username") ? obj.getString("username") : obj.getString(Fields.PLAYER.USERNAME)));
            if (pendingUser != null)
            {
                GameManager.Instance.mInfo.pendingBuddies.Remove(pendingUser);

                if (EventFriendPendingChanged != null)
                {
                    EventFriendPendingChanged(pendingUser, true);
                }
            }
            else
            {
                pendingUser = GameManager.Instance.mInfo.buddies.Find(user => user.username == (obj.variableExists("username") ? obj.getString("username") : obj.getString(Fields.PLAYER.USERNAME)));
                GameManager.Instance.mInfo.buddies.Remove(pendingUser);

                if (EventFriendChanged != null)
                {
                    EventFriendChanged(pendingUser, true);
                }
            }
            #endregion
        }
        else if (command == "acceptFriendRequest")
        {
            #region ACCEPT FRIEND REQUEST
            EsObject obj  = eso.getEsObject("user");
            User     user = new User(obj);

            if (GameManager.Instance.mInfo.requestBuddies.Find(u => u.username == user.username) != null)
            {
                GameManager.Instance.mInfo.requestBuddies.Remove(GameManager.Instance.mInfo.requestBuddies.Find(u => u.username == user.username));
            }

            if (GameManager.Instance.mInfo.buddies.Find(u => u.username == user.username) == null)
            {
                User pendingUser = GameManager.Instance.mInfo.pendingBuddies.Find(u => u.username == user.username);
                if (pendingUser != null)
                {
                    GameManager.Instance.mInfo.pendingBuddies.Remove(pendingUser);
                }

                GameManager.Instance.mInfo.buddies.Add(user);
                if (EventFriendChanged != null)
                {
                    EventFriendChanged(user, false);
                }
            }
            #endregion
        }
        else if (command == "friendRequest")
        {
            #region FRIEND REQUEST
            EsObject obj  = eso.getEsObject("user");
            User     user = new User(obj);
            GameManager.Instance.mInfo.pendingBuddies.Add(user);

            if (EventFriendPendingChanged != null)
            {
                EventFriendPendingChanged(user, false);
            }
            #endregion
        }
        else if (command == "inComingMessage")
        {
            #region INCOME MESSAGE
            Messages message = new Messages(eso.getEsObject("message"));
            GameManager.Instance.mInfo.messages.Add(message);

            RegisterEventMessageChanged(message, false);
            #endregion
        }
        else if (command == "outGoingMessage")
        {
            #region OUT GOING MESSAGE
            Messages mess = new Messages();
            mess.SetDataOutGoing(eso);
            GameManager.Instance.mInfo.messages.Add(mess);
            RegisterEventMessageChanged(mess, true);
            #endregion
        }
        else if (command == "systemMessage")
        {
            #region SYSTEM MESSAGE
            Messages message = new Messages(eso.getEsObject("message"));

            message.sender        = 0;
            message.read          = false;
            message.receiver      = GameManager.Instance.mInfo.id;
            message.receiver_name = GameManager.Instance.mInfo.username;

            MessageSystemCache.SaveCache(new Hashtable[] { message.ParseToHashtable });

            if (message.type != 0)
            {
                ServerMessagesView.MessageServer(message.content);
            }
            else
            {
                RegisterEventMessageChanged(message, false);
            }
            #endregion
        }
        else if (command == "invitePlayGame")
        {
            #region INVITE PLAY GAME
            string actionInvited = "joinGame";
            if (eso.variableExists("action"))
            {
                actionInvited = eso.getString("action");
            }

            if (actionInvited == "createGame")
            {
                NotificationView.ShowConfirm("Xác nhận", "Bạn có muốn tạo phòng mới hay không?",
                                             delegate()
                {
                    GameManager.Server.DoRequestPlugin(Utility.SetEsObject(Fields.RESPONSE.CREATE_GAME,
                                                                           new object[] { "config", createRoom() }));
                }, delegate()
                {
                    GameManager.Server.DoRequestCommand("abortInvitation");
                });
            }
            else
            {
                #region INVITE PLAYER
                string userName = eso.getString(Fields.PLAYER.USERNAME);
                int    gameId   = eso.getInteger("gameId");
                string password = eso.variableExists("password") ? eso.getString("password") : "";
                if (password.Length == 0 && eso.variableExists("config"))
                {
                    EsObject esoConfig = eso.getEsObject("config");
                    if (esoConfig.variableExists("password"))
                    {
                        password = esoConfig.getString("password");
                    }
                }
                int roomId    = eso.getInteger("roomId");
                int zoneId    = eso.getInteger("zoneId");
                int gameIndex = eso.getInteger("gameIndex");

                if (GameManager.CurrentScene == ESceneName.LobbyChan || GameManager.CurrentScene == ESceneName.LobbyPhom || GameManager.CurrentScene == ESceneName.LobbyTLMN)
                {
                    string contentMsg = "Bạn nhận được một lời mời chơi!";
                    if (userName.Length > 0)
                    {
                        contentMsg = "\"" + Utility.Convert.ToTitleCase(userName) +
                                     "\" gửi bạn một lời mời tham gia vào bàn chơi số " + gameIndex + ".\n\n";
                    }
                    NotificationView.ShowConfirm("Mời chơi",
                                                 contentMsg,
                                                 delegate()
                    {
                        //GameManager.Instance.selectedLobby = GameManager.CurrentScene == ESceneName.LobbyChan ? new LobbyChan(zoneId, roomId, gameId) : GameManager.CurrentScene == ESceneName.LobbyPhom ? new LobbyPhom(zoneId, roomId, gameId) : new LobbyTLMN(zoneId, roomId, gameId);
                        if (GameManager.CurrentScene == ESceneName.LobbyPhom)
                        {
                            GameManager.Instance.selectedLobby = new LobbyPhom(zoneId, roomId, gameId);
                        }
                        else if (GameManager.CurrentScene == ESceneName.LobbyChan)
                        {
                            GameManager.Instance.selectedLobby = new LobbyChan(zoneId, roomId, gameId);
                        }
                        else
                        {
                            GameManager.Instance.selectedLobby = new LobbyTLMN(zoneId, roomId, gameId);
                        }
                        GameManager.Server.DoJoinGame(password);
                    }, delegate()
                    {
                        GameManager.Server.DoRequestCommand("abortInvitation");
                    });
                }
                #endregion
            }
            #endregion
        }
        else if (command == "updateUserInfo")
        {
            #region CẬP NHẬT THÔNG TIN USERS
            if (eso.variableExists("userName") && eso.getString("userName") == GameManager.Instance.mInfo.username)
            {
                if (eso.variableExists("field"))
                {
                    string field = eso.getString("field");

                    if (field == "money")
                    {
                        string moneyType = "";
                        if (eso.variableExists("moneyType"))
                        {
                            moneyType = eso.getString("moneyType");
                        }
                        if (moneyType != "" && moneyType == "chip")
                        {
                            long.TryParse(eso.getString("value"), out GameManager.Instance.mInfo.chip);
                        }
                        else if (moneyType != "" && moneyType == "gold")
                        {
                            long.TryParse(eso.getString("value"), out GameManager.Instance.mInfo.gold);
                        }
                    }
                    else if (field == "experience")
                    {
                        GameManager.Instance.mInfo.SetDataUser(eso.getEsObject("userInfo"));
                    }

                    if (EventUpdateUserInfo != null)
                    {
                        EventUpdateUserInfo();
                    }
                }
            }
            else if (eso.variableExists("userName") && eso.getString("userName") != GameManager.Instance.mInfo.username)
            {
                if (GameManager.CurrentScene == ESceneName.GameplayChan && eso.variableExists("field"))
                {
                    string field = eso.getString("field");
                    if (field == "experience")
                    {
                        if (GameModelChan.GetPlayer(eso.getString("userName")) != null)
                        {
                            GameModelChan.GetPlayer(eso.getString("userName")).SetDataUser(eso.getEsObject("userInfo"));
                        }
                    }
                }
            }
            #endregion
        }
        else if (command == "updateConfigClient")
        {
            #region CẬP NHẬT THÔNG TIN CONFIG
            if (eso.variableExists("config"))
            {
                IDictionary obj  = (IDictionary)JSON.JsonDecode(eso.getString("config"));
                string      type = obj[Fields.CONFIGCLIENT.KEY_TYPE_REAL_TIME].ToString();
                switch (type)
                {
                case Fields.CONFIGCLIENT.VALUE_ADS:
                    Announcement announce = new Announcement(
                        Convert.ToInt32(obj["index"]),
                        obj["description"].ToString(),
                        obj["scenes"].ToString() == "lobby"
                                ? Announcement.Scene.lobby
                                : obj["scenes"].ToString() == "login"
                                ? Announcement.Scene.login
                                : Announcement.Scene.announce,
                        obj["url"].ToString(),
                        obj["image"].ToString(),
                        obj["type"].ToString() == "Ads" ? Announcement.Type.Advertisement : Announcement.Type.Event
                        );
                    GameManager.Instance.ListAnnouncement.Remove(GameManager.Instance.ListAnnouncement.Find(ads => ads.show == announce.show && ads.type == Announcement.Type.Advertisement));
                    GameManager.Instance.ListAnnouncement.Add(announce);
                    if (EventAdsChanged != null)
                    {
                        EventAdsChanged(obj);
                    }
                    break;

                case Fields.CONFIGCLIENT.VALUE_HELP:
                    StoreGame.Remove(StoreGame.EType.CACHE_HELP);
                    GameManager.Instance.ListHelp.Clear();
                    StoreGame.SaveString(StoreGame.EType.CACHE_HELP, JSON.JsonEncode(obj[Fields.RESPONSE.PHP_RESPONSE_ITEMS]));
                    ArrayList list = (ArrayList)obj[Fields.RESPONSE.PHP_RESPONSE_ITEMS];
                    foreach (Hashtable item in list)
                    {
                        GameManager.Instance.ListHelp.Add(item);
                    }
                    if (EventHelpChanged != null)
                    {
                        EventHelpChanged(obj);
                    }
                    break;

                case Fields.CONFIGCLIENT.VALUE_CONFIG_CLIENT:
                    ArrayList items = (ArrayList)obj[Fields.RESPONSE.PHP_RESPONSE_ITEMS];
                    foreach (Hashtable item in items)
                    {
                        GameManager.Setting.Platform.AddOrUpdatePlatformConfig(item);
                    }
                    if (GameManager.Setting.Platform.GetConfigByType(PlatformType.url_ping) != null)
                    {
                        ServerWeb.URL_PING = GameManager.Setting.Platform.GetConfigByType(PlatformType.url_ping).Value;
                    }
                    if (EventConfigClientChanged != null)
                    {
                        EventConfigClientChanged(obj);
                    }
                    break;
                }
            }
            #endregion
        }
        else if (command == Fields.RESPONSE.DAYLY_GIFT)
        {
            #region Thông tin trả về khi nhận quà tặng
            //AnnouncementView.Instance.Close();
            if (eso.variableExists("textNotification"))
            {
                if (GameObject.Find("__Announcement") != null)
                {
                    AnnouncementView.Instance.SetCenterOnNextCurrentDay();
                }
                GameManager.Instance.FunctionDelay(delegate()
                {
                    string text = eso.getString("textNotification");
                    NotificationView.ShowMessage(text);
                }, 1f);
                GameManager.Instance.ListAnnouncement.RemoveAll(a => a.show == Announcement.Scene.announce && a.type == Announcement.Type.Gift);
            }
            #endregion
        }
        else if (command == Fields.RESPONSE.GET_MESSAGE)
        {
            #region LẤY THÔNG TIN TIN NHẮN TỪ SERVER
            WaitingView.Hide();
            //disable total count khi chưa load messeage
            this.totalMesseageCount = -1;
            if (eso.variableExists("messages"))
            {
                EsObject[] array = eso.getEsObjectArray("messages");
                System.Array.ForEach <EsObject>(array, o => { GameManager.Instance.mInfo.messages.Add(new Messages(o)); });

                List <Messages> systemMessage = GameManager.Instance.mInfo.messages.FindAll(m => m.sender == 0);
                GameManager.Instance.ListMessageSystem.Clear();
                while (systemMessage.Count > 0)
                {
                    GameManager.Instance.ListMessageSystem.Add(systemMessage[0]);
                    GameManager.Instance.mInfo.messages.Remove(systemMessage[0]);
                    systemMessage.RemoveAt(0);
                }
                if (EventGetMessageCallBack != null)
                {
                    EventGetMessageCallBack();
                }
            }
            #endregion
        }
        else if (command == Fields.RESPONSE.GET_BUDDIES)
        {
            #region LẤY THÔNG TIN DANH SÁCH BẠN BÈ
            WaitingView.Hide();
            GameManager.Instance.mInfo.SetDataUser(eso);
            if (EventGetBuddiesCallBack != null)
            {
                EventGetBuddiesCallBack();
            }
            #endregion
        }
        else if (command == "getLevel")
        {
            if (eso.variableExists("level"))
            {
                GameManager.Instance.mInfo.level = eso.getInteger("level");
            }
            if (eso.variableExists("experience"))
            {
                GameManager.Instance.mInfo.experience = eso.getInteger("experience");
            }
            if (eso.variableExists("expMinCurrentLevel"))
            {
                GameManager.Instance.mInfo.expMinCurrentLevel = eso.getInteger("expMinCurrentLevel");
            }
            if (eso.variableExists("expMinNextLevel"))
            {
                GameManager.Instance.mInfo.expMinNextLevel = eso.getInteger("expMinNextLevel");
            }
        }
    }