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); }
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); } } }
/** 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); } }
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; }