public void SetMyGuildMember(ulong kGuildKey, _vGuildMembers vMembers) { Clear(); int iCount = vMembers.Count; for (int i = 0; i < iCount; ++i) { CGuildMember memberInfo = vMembers[i]; if (memberInfo == null) { continue; } if (memberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_None || memberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_Request) { continue; } GuildInformationItem memberItem = UIResourceMgr.CreatePrefab <GuildInformationItem>(BUNDLELIST.PREFABS_UI_GUILD, m_GuildMemberGrid.transform, "GuildInformationItem"); memberItem.Init(enGuildInfo_WindowType.MyGuild, kGuildKey, memberInfo); m_MemberList.Add(memberItem); } SortMemberList(); }
/// <summary> /// 생성한 길드멤버 리스트를 정렬한다. /// </summary> private void SortMemberList() { // 정렬변경 -> 1. 멤버상태(길드장->부길드장->길드원으로 정렬) -> 2. 오늘 로그인했나 -> 3. 기여도 m_MemberList = m_MemberList.OrderBy((data) => data.MemberInfo.kMemberState) .ThenByDescending((data) => UtilFunc.TodayLogon(data.MemberInfo.kLastLogonTime.GetDateTime())) .ThenByDescending((data) => data.MemberInfo.kUserTributeExp).ToList(); int iCount = m_MemberList.Count; for (int i = 0; i < iCount; ++i) { GuildInformationItem member = m_MemberList[i]; if (member == null) { continue; } member.name = i.ToString(); } m_GuildMemberGrid.sorting = UIGrid.Sorting.Custom; m_GuildMemberGrid.onCustomSort = UtilFunc.SortByNumber; //m_GuildMemberGrid.sorting = UIGrid.Sorting.Alphabetic; m_GuildMemberGrid.Reposition(); m_GuildMemberScrollView.ResetPosition(); }
//=================================================================================== // // Method // //=================================================================================== public void SetDelegationMember(enGuildInfo_WindowType type, CGuildDetail kGuildDetailInfo) { Clear(); m_GuildDetailInfo = kGuildDetailInfo; _vGuildMembers vGuildMembers = m_GuildDetailInfo.vMembers; if (type == enGuildInfo_WindowType.GuildCaptain_Delegation) // 길드장 위임이면. { m_TitleLabel.text = StringTableManager.GetData(6294); for (int i = 0; i < vGuildMembers.Count; ++i) { CGuildMember member = vGuildMembers[i]; if (member == null) { continue; } if (member.kMemberState == _enGuildMemberState.eGuildMemberState_AbleSubCaptain || member.kMemberState == _enGuildMemberState.eGuildMemberState_AbleMember) { GuildInformationItem memberItem = UIResourceMgr.CreatePrefab <GuildInformationItem>(BUNDLELIST.PREFABS_UI_GUILD, m_GuildMemberGrid.transform, "GuildInformationItem"); memberItem.Init(type, m_GuildDetailInfo.kGuildKey, member); m_DelegationMemberList.Add(memberItem); } } } else if (type == enGuildInfo_WindowType.GuildSubCaptain_Appointment) // 부길드장 임명이면. { m_TitleLabel.text = StringTableManager.GetData(6298); for (int i = 0; i < vGuildMembers.Count; ++i) { CGuildMember member = vGuildMembers[i]; if (member == null) { continue; } if (member.kMemberState == _enGuildMemberState.eGuildMemberState_AbleMember) { GuildInformationItem memberItem = UIResourceMgr.CreatePrefab <GuildInformationItem>(BUNDLELIST.PREFABS_UI_GUILD, m_GuildMemberGrid.transform, "GuildInformationItem"); memberItem.Init(type, m_GuildDetailInfo.kGuildKey, member); m_DelegationMemberList.Add(memberItem); } } } if (m_DelegationMemberList.Count < 1) // 조건에 해당하는 길드원이 없으면. { _DelegationMemberEmptyLabel.gameObject.SetActive(true); } else { _DelegationMemberEmptyLabel.gameObject.SetActive(false); } m_GuildMemberGrid.Reposition(); m_GuildMemberScrollView.ResetPosition(); }
/// <summary> /// 길드 가입요청 수락& 거절 패킷 받음. /// </summary> public void GuildJoinRequestAnswer(_stGuildJoinRequestAnswerAck stAck, CGuildMember member, CGuildDetail GuildDetailInfo) { bool isJoinRequest = false; for (int i = 0; i < m_MemberList.Count;) { GuildInformationItem infoItem = m_MemberList[i]; if (infoItem.MemberInfo.kCharNo == stAck.kDestCharNo) { DestroyImmediate(infoItem.gameObject); m_MemberList.Remove(infoItem); } else { ++i; if (infoItem.MemberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_Request) { isJoinRequest = true; } } } m_GuildMemberButton.SetEvent(isJoinRequest); if (isJoinRequest == false) { UserInfo.Instance.otherNew.GuildAlram = _enGuildAlram.eGuildNewMark_None; } if (stAck.kAnswer == _enGuildJoinRequestAnswer.eGuildJoinRequestAnswer_YES) { // 수락이면 길드원으로 다시 생성. GuildInformationItem memberItem = UIResourceMgr.CreatePrefab <GuildInformationItem>(BUNDLELIST.PREFABS_UI_GUILD, m_GuildMemberGrid.transform, "GuildInformationItem"); memberItem.Init(enGuildInfo_WindowType.GuildModify, stAck.kGuildKey, member); m_MemberList.Add(memberItem); } else if (stAck.kAnswer == _enGuildJoinRequestAnswer.eGuildJoinRequestAnswer_NO) { // 거절이면 삭제된 데이터 대입. m_GuildDetailInfo = GuildDetailInfo; } string szLabeltext = string.Format(StringTableManager.GetData(6254), GuildDetailInfo.kCurrMemberCount, GuildDetailInfo.kMaxMemberCount); m_GuildMemberButton.SetLabel(szLabeltext); SortMemberList(); }
public void SetMyGuildMember(ulong kGuildKey, _vGuildMembers vMembers) { Clear(); int iRequestCount = 0; int iCount = vMembers.Count; for (int i = 0; i < iCount; ++i) { CGuildMember memberInfo = vMembers[i]; if (memberInfo == null) { continue; } if (memberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_None) { continue; } if (memberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_Request) { iRequestCount++; } // 길드요청이 테이블값 이상이면 데이터가 존재해도 UI를 추가하지 않는다. if (iRequestCount > m_iGuildWaitingCount && memberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_Request) { continue; } GuildInformationItem memberItem = UIResourceMgr.CreatePrefab <GuildInformationItem>(BUNDLELIST.PREFABS_UI_GUILD, m_GuildMemberGrid.transform, "GuildInformationItem"); memberItem.Init(enGuildInfo_WindowType.GuildModify, kGuildKey, memberInfo); m_MemberList.Add(memberItem); } SortMemberList(); // 길드요청이 테이블값 이상이면 팝업띄움. if (iRequestCount > m_iGuildWaitingCount) { // 4300 알림. 6277 길드 가입 신청 대기 인원이 10명 이상입니다. \n 더 이상 길드 가입 신청을 받을 수 없습니다. SystemPopupWindow.Instance.SetSystemPopup(enSystemPopupType.Ok, StringTableManager.GetData(4300), StringTableManager.GetData(6277)); } }
public override void Clear() { int iCount = m_MemberList.Count; for (int i = 0; i < iCount; ++i) { GuildInformationItem infoItem = m_MemberList[i]; if (infoItem == null) { continue; } DestroyImmediate(infoItem.gameObject); } m_MemberList.Clear(); }
/// <summary> /// 길드 추방 패킷 받음(길드장 전용). /// </summary> public void GuildOrderLeave(_stGuildOrderLeaveAck stAck) { string strCharName = string.Empty; int iCount = m_MemberList.Count; for (int i = 0; i < iCount; ++i) { GuildInformationItem member = m_MemberList[i]; if (member == null) { continue; } if (member.MemberInfo.kCharNo == stAck.kDestCharNo) { strCharName = member.MemberInfo.kCharName; DestroyImmediate(member.gameObject); m_MemberList.Remove(member); break; } } _vGuildMembers vGuildMembers = m_GuildDetailInfo.vMembers; for (int i = 0; i < vGuildMembers.Count; ++i) { CGuildMember member = vGuildMembers[i]; if (member == null) { continue; } if (member.kCharNo == stAck.kDestCharNo) { vGuildMembers.Remove(member); break; } } m_GuildMemberGrid.Reposition(); m_GuildMemberScrollView.ResetPosition(); }
/// <summary> /// 길드 추방 패킷 받음(길드장 전용). /// </summary> public void GuildOrderLeave(_stGuildOrderLeaveAck stAck) { int iCount = m_MemberList.Count; for (int i = 0; i < iCount; ++i) { GuildInformationItem member = m_MemberList[i]; if (member == null) { continue; } if (member.MemberInfo.kCharNo == stAck.kDestCharNo) { DestroyImmediate(member.gameObject); m_MemberList.Remove(member); break; } } _vGuildMembers vGuildMembers = m_GuildDetailInfo.vMembers; for (int i = 0; i < vGuildMembers.Count; ++i) { CGuildMember member = vGuildMembers[i]; if (member == null) { continue; } if (member.kCharNo == stAck.kDestCharNo) { vGuildMembers.Remove(member); break; } } string szLabeltext = string.Format(StringTableManager.GetData(6254), m_GuildDetailInfo.vMembers.Count, m_GuildDetailInfo.kMaxMemberCount); m_GuildMemberButton.SetLabel(szLabeltext); m_GuildMemberGrid.Reposition(); m_GuildMemberScrollView.ResetPosition(); }
/// <summary> /// 길드 관리 자유가입&승인가입 변경 패킷 받음. /// 길드 관리 공지사항&소개글 변경 패킷 받음. /// </summary> /// <param name="stAck"></param> public void GuildChangeDescAndJoinMethod(_stGuildChangeDescAck stAck) { m_GuildDetailInfo.kGuildNotice = stAck.kGuildNotice; m_GuildDetailInfo.kGuildDesc = stAck.kGuildDesc; m_GuildDetailInfo.kJoinMethod = stAck.kJoinMethod; // 가입형태가 변경되었으면 new 를 꺼준다. if (_originGuildJoinMethod != stAck.kJoinMethod) { UserInfo.Instance.otherNew.GuildAlram = _enGuildAlram.eGuildNewMark_None; } _originGuildJoinMethod = stAck.kJoinMethod; // 승인가입에서 자유가입으로 변경이 되면. if (stAck.kJoinMethod == _enGuildJoinMethod.eGuildJoinMethod_Free) { for (int i = 0; i < m_MemberList.Count;) { GuildInformationItem infoItem = m_MemberList[i]; if (infoItem == null) { ++i; continue; } // 길드가 자유가입 형태로 변경됐으니 승인가입 형태일때 지원했던 유저들을 삭제. if (infoItem.MemberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_Request) { DestroyImmediate(infoItem.gameObject); m_MemberList.Remove(infoItem); } else { ++i; } } } SortMemberList(); SetJoinMethodButton(m_GuildDetailInfo.kJoinMethod); SetNoticeOrDescButton(m_NoticeAndDescType); }
/// <summary> /// 길드 가입요청 수락& 거절 패킷 받음. /// </summary> public void GuildJoinRequestAnswer(_stGuildJoinRequestAnswerAck stAck, CGuildMember member, CGuildDetail GuildDetailInfo) { int iCount = m_MemberList.Count; for (int i = 0; i < iCount; ++i) { GuildInformationItem infoItem = m_MemberList[i]; if (infoItem == null) { continue; } if (infoItem.MemberInfo.kCharNo == stAck.kDestCharNo) { DestroyImmediate(infoItem.gameObject); m_MemberList.Remove(infoItem); break; } } if (stAck.kAnswer == _enGuildJoinRequestAnswer.eGuildJoinRequestAnswer_YES) { // 수락이면 길드원으로 다시 생성. GuildInformationItem memberItem = UIResourceMgr.CreatePrefab <GuildInformationItem>(BUNDLELIST.PREFABS_UI_GUILD, m_GuildMemberGrid.transform, "GuildInformationItem"); memberItem.Init(enGuildInfo_WindowType.GuildModify, stAck.kGuildKey, member); m_MemberList.Add(memberItem); } else if (stAck.kAnswer == _enGuildJoinRequestAnswer.eGuildJoinRequestAnswer_NO) { // 거절이면 삭제된 데이터 대입. m_GuildDetailInfo = GuildDetailInfo; } // 6587 {0} / {1} 명 m_TodayAttendanceCountLabel.text = string.Format(StringTableManager.GetData(6587), GuildDetailInfo.kAttendanceCount, GuildDetailInfo.kCurrMemberCount); SortMemberList(); }
/// <summary> /// 생성한 길드멤버 리스트를 정렬한다. /// </summary> private void SortMemberList() { // 정렬변경 -> 1. 멤버상태(길드장->부길드장->길드원으로 정렬) -> 2. 오늘 로그인했나 -> 3. 기여도 m_MemberList = m_MemberList.OrderBy((data) => data.MemberInfo.kMemberState) .ThenByDescending((data) => UtilFunc.TodayLogon(data.MemberInfo.kLastLogonTime.GetDateTime())) .ThenByDescending((data) => data.MemberInfo.kUserTributeExp).ToList(); int iCount = m_MemberList.Count; for (int i = 0; i < iCount; ++i) { GuildInformationItem member = m_MemberList[i]; if (member == null) { continue; } member.name = i.ToString(); } ResetPosition(); }