示例#1
0
    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();
    }
示例#2
0
    /// <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();
    }
示例#3
0
    //===================================================================================
    //
    // 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();
    }
示例#4
0
    /// <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();
    }
示例#5
0
    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));
        }
    }
示例#6
0
    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();
    }
示例#7
0
    /// <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();
    }
示例#8
0
    /// <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();
    }
示例#9
0
    /// <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);
    }
示例#10
0
    /// <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();
    }
示例#11
0
    /// <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();
    }