bool CheckUserState()
        {
            UXUserController users = UXUserController.Instance;
            int connectedUser      = 0;

            for (int i = 0; i < users.GetCount(); i++)
            {
                UXUser user = (UXUser)users.GetAt(i);

                UXUser.LobbyState userState = user.GetLobbyState();

                if (userState == UXUser.LobbyState.Ready)
                {
                    connectedUser++;
                }
                else if (userState == UXUser.LobbyState.Wait)
                {
                    return(false);
                }
            }

            if (connectedUser >= autoStartMinimumUser)             //왜 너랑?
            {
                return(true);
            }

            return(false);
        }
Example #2
0
    void OnUserLobbyStateChanged(int userIndex, UXUser.LobbyState state)
    {
        UXLog.SetLogMessage("OnUserLobbyStateChanged > userIndex : " + userIndex + ", state : " + state + " == 9");
        Debug.Log("OnUserLobbyStateChanged > userIndex : " + userIndex + ", state : " + state + " == 9");

        if (state == UXUser.LobbyState.Ready)
        {
            Camera.main.GetComponent <AudioSource>().PlayOneShot(numberOnSound);
        }
    }
        void OnLobbyStateChanged(int idx, UXUser.LobbyState state)
        {
            if (OnUserLobbyStateChanged != null)
            {
                OnUserLobbyStateChanged(idx, state);
            }

            bool isAllReady = true;

            UXUserController users = UXUserController.Instance;
            int connectedUser      = 0;

            for (int i = 0; i < users.GetCount(); i++)
            {
                UXUser user = (UXUser)users.GetAt(i);

                UXUser.LobbyState userState = user.GetLobbyState();

                if (userState == UXUser.LobbyState.Ready)
                {
                    connectedUser++;
                }
                else if (userState == UXUser.LobbyState.Wait)
                {
                    isAllReady = false;
                    break;
                }
            }
            SendUpdateReadyCount(connectedUser, users.GetCount());

            if (/*autoStartStarted == true &&*/ isAllReady == false)
            {
                autoStartCount   = 0;
                autoStartStarted = false;
                isStartSended    = false;
                //if (startGameTimer != null) {
                //	startGameTimer.Dispose();
                //}

                //OnAutoStartFailed();
            }
            if (isAllReady == true && autoStartStarted == false)
            {
                if (isAutoStart == true && connectedUser >= autoStartMinimumUser)
                {
                    autoStartCount   = 0;
                    autoStartStarted = true;
                    isStartSended    = false;
                    ClearTimer();
                    startGameTimer = new System.Threading.Timer(CountAutoStart, null, 1000, 1000);
                }
            }
        }
Example #4
0
        /** Set player's lobby state
         *      @param state lobby state
         *      @see UXUser.LobbyState
         */
        public void SetPlayerState(UXUser.LobbyState state)
        {
            UXPlayerController player = UXPlayerController.Instance;

            player.SetLobbyState(state);

            string stateString = "";

            if (state == UXUser.LobbyState.Ready)
            {
                stateString = "ready";
            }
            else
            {
                stateString = "wait";
            }

            string sendString = "{\"cmd\":\"change_lobby_state\",\"u_code\":\"" + player.GetCode() + "\",\"l_code\":\"" + room.RoomNumber + "\",\"state\":\"" + stateString + "\"}" + UXConnectController.DATA_DELIMITER; //<-?

            Send(sendString);                                                                                                                                                                                             //{"cmd":change_lobby_state","u_code":player.GetCode()","l_code":"GetRoomNumber()","state":stateString"}232
        }
        void ProcessReceivedMessage(string data)
        {
            if (string.IsNullOrEmpty(data) == true || data.Length <= 0)               //data가 없는 경우는 ㅂㅂ
            {
                return;
            }

            var    N       = JSON.Parse(data);
            string command = N["cmd"];

            if (command == "join_result")
            {
                int result = N ["ack"].AsInt;
                if (result != UXRoomConnect.ACK_RESULT_OK)
                {
                    int errCode = ProcessConnectError(result);

                    if (OnJoinFailed != null)
                    {
                        OnJoinFailed(errCode);
                    }
                    return;
                }

                isJoined     = true;
                isHostJoined = true;


                JSONArray users = (JSONArray)N ["user_list"];


                if (users.Count > 0)
                {
                    List <UXUser> list = ParseUserList((JSONArray)users);
                    for (int i = 0; i < list.Count; i++)
                    {
                        UXUser u = list [i];
                        u.SetConnected(true);                           //isConnected = ture;로
                        //u.GetProfileFromServer (); //host면 x ,pad면 name, image url (정보가져오기)
                    }

                    UXUserController.Instance.CopyList(list);
                }

                if (OnJoinSucceeded != null)
                {
                    OnJoinSucceeded(isHostJoined);
                }
            }
            else if (command == "change_lobby_state_result")
            {
                int    code        = N ["u_code"].AsInt;
                string stateString = N ["state"];

                Debug.Log(code);

                int userIndex           = GetUserIndexFromCode(code);
                UXUser.LobbyState state = UXUser.LobbyState.Wait;

                if (stateString == "ready")
                {
                    state = UXUser.LobbyState.Ready;
                }

                UXUser userObj = (UXUser)UXUserController.Instance.GetAt(userIndex);
                userObj.SetLobbyState(state);

                OnLobbyStateChanged(userIndex, state);
            }
            else if (command == "report_network_state_result")                 //이것들도 안쓰이겠찌이

            {
                int    count     = N ["count"].AsInt;
                string temp      = N ["time"];
                float  totalTime = float.Parse(temp);

                int code      = N ["u_code"].AsInt;
                int userIndex = GetUserIndexFromCode(code);

                UXUser userObj = (UXUser)UXUserController.Instance.GetAt(userIndex);
                float  time    = totalTime / ((float)count * 10000000.0f);
                userObj.SetNetworkSpeed(time);

                if (OnUserNetworkReported != null)
                {
                    OnUserNetworkReported(userIndex, count, time);
                }
            }
            else if (command == "premium_user_result")
            {
                int code = N ["u_code"].AsInt;
                UXUserController userList = UXUserController.Instance;
                for (int i = 0; i < userList.GetCount(); i++)
                {
                    UXUser user = (UXUser)userList.GetAt(i);
                    if (user.GetCode() == code)
                    {
                        user.IsPremium = true;
                        break;
                    }
                }

                if (OnJoinPremiumUser != null)
                {
                    OnJoinPremiumUser();
                }
            }
            else if (command == "user_del")
            {
                int code = N ["u_code"].AsInt;
                UXUserController userList = UXUserController.Instance;
                UXUser           user     = userList.GetUserByCode(code);
                if (user.IsPremium)
                {
                    if (OnLeavePremiumUser != null)
                    {
                        OnLeavePremiumUser();
                    }
                }
                base.ProcessReceivedMessage(data);
            }
            else
            {
                base.ProcessReceivedMessage(data);
            }
        }
Example #6
0
 void OnUserLobbyStateChanged(int userIndex, UXUser.LobbyState state)
 {
 }
 /** Change user's lobby state
  *      @param state lobby state
  *      @see UXUser.LobbyState
  */
 public void SetLobbyState(UXUser.LobbyState state)
 {
     lobbyState = state;
 }