示例#1
0
    /// <summary>
    /// 길드 추방 패킷 받음(길드장 전용).
    /// </summary>
    public void GuildOrderLeave(_stGuildOrderLeaveAck stAck)
    {
        int iCount = m_GuildDetailInfo.vMembers.Count;

        for (int i = 0; i < iCount; ++i)
        {
            CGuildMember member = m_GuildDetailInfo.vMembers[i];
            if (member == null)
            {
                continue;
            }

            if (member.kCharNo == stAck.kDestCharNo)
            {
                // {플레이어 이름}\n님을 길드에서 추방하였습니다.(스트링 ID : 6287)
                string str = string.Format(StringTableManager.GetData(6287), member.kCharName);
                SystemPopupWindow.Instance.SetSystemPopup(enSystemPopupType.Ok, StringTableManager.GetData(4300), str);

                m_GuildDetailInfo.vMembers.Remove(member);
                break;
            }
        }

        string szLabeltext = string.Format(StringTableManager.GetData(6254), m_GuildDetailInfo.vMembers.Count, m_GuildDetailInfo.kMaxMemberCount);

        m_GuildMemberButton.SetLabel(szLabeltext);

        _MyGuild.GuildOrderLeave(stAck);
        _guildModifyWindow.GuildOrderLeave(stAck);
    }
示例#2
0
    private void SetMyGuildInfo(CGuildDetail guildDetail)
    {
        m_GuildDeleteButton.SetActive(false);
        m_GuildOrderCaptainButton.SetActive(false);    // 길드장 위임버튼.
        m_GuildOrderSubCaptainButton.SetActive(false); // 부길드장 임명버튼.

        m_GuildEmblemSprite.sprite2D = UIResourceMgr.CreateSprite(BUNDLELIST.TEXTURE_ICON_GUILDEMBLEM, string.Format("GuildEmblem{0}", guildDetail.kGuildMark.ToString("D2")));
        m_GuildNameLabel.text        = guildDetail.kGuildName;

        DATA_GUILD_MAIN GuildMainData = CDATA_GUILD_MAIN.Get(guildDetail.kGuildLevel);

        if (GuildMainData != null)
        {
            // string num : 12 -> LV
            m_GuildLevelLabel.text = string.Format("{0} {1}", StringTableManager.GetData(12), GuildMainData.iGuildLv);
        }

        CGuildMember captainInfo = null;
        int          iCount      = guildDetail.vMembers.Count;

        for (int i = 0; i < iCount; ++i)
        {
            CGuildMember memberInfo = guildDetail.vMembers[i];
            if (memberInfo == null)
            {
                continue;
            }

            if (memberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_Captain)
            {
                captainInfo = memberInfo;
            }

            if (memberInfo.kCharNo == UserInfo.Instance.CharNo)
            {
                m_MyMemberInfo                   = memberInfo;
                UserInfo.Instance.GuildKey       = guildDetail.kGuildKey;
                UserInfo.Instance.GuildName      = guildDetail.kGuildName;
                UserInfo.Instance.CharGuildState = m_MyMemberInfo.kMemberState;
            }
        }

        if (captainInfo != null)
        {
            m_GuildCaptainLabel.text = captainInfo.kCharName;
        }

        SetJoinMethodButton(guildDetail.kJoinMethod);
        SetNoticeOrDescButton(enNoticeAndDesc.Notice);     // 공지사항이 디폴트.

        if (m_MyMemberInfo != null)
        {
            if (m_MyMemberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_Captain)
            {
                m_GuildDeleteButton.SetActive(true);
                m_GuildOrderCaptainButton.SetActive(true);
                m_GuildOrderSubCaptainButton.SetActive(true);
            }
        }
    }
示例#3
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();
    }
示例#4
0
    /// <summary>
    /// 길드장 위임 패킷 받음.
    /// </summary>
    /// <param name="stAck"></param>
    public void GuildOrderCaptain(_stGuildOrderCaptainAck stAck)
    {
        // 길드관리 창이 꺼지면 관리창에서 바뀐 정보를 다시 받는다.
        //_guildModifyWindow.CloseUI();
        UIControlManager.instance.RemoveWindow(enUIType.GUILDMODIFY);

        m_GuildDelegationPopupWindow.CloseUI();

        _vGuildMembers vGuildMembers = m_GuildDetailInfo.vMembers;

        for (int i = 0; i < vGuildMembers.Count; ++i)
        {
            CGuildMember member = vGuildMembers[i];
            if (member == null)
            {
                continue;
            }

            // 길드원 정보에서 내 정보 변경.
            if (member.kCharNo == UserInfo.Instance.CharNo)
            {
                member.kMemberState = stAck.kUserMemberState;
            }

            // 위임한 길드원.
            if (member.kCharNo == stAck.kDestCharNo)
            {
                member.kMemberState = _enGuildMemberState.eGuildMemberState_Captain;
            }
        }

        _MyGuild.GuildDetailInfoAck(m_GuildDetailInfo);
    }
示例#5
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();
    }
示例#6
0
    /// <summary>
    /// 길드 가입요청 수락& 거절 패킷 받음.
    /// </summary>
    public void GuildJoinRequestAnswer(_stGuildJoinRequestAnswerAck stAck)
    {
        // 가입요청이 수락되면 내 길드에 길드원으로 넣고
        // 길드관리에도 길드원으로 변경.
        // 길드원수 갱신.

        string       str        = string.Empty;
        CGuildMember DestMember = null;

        for (int i = 0; i < m_GuildDetailInfo.vMembers.Count;)
        {
            CGuildMember member = m_GuildDetailInfo.vMembers[i];
            if (member == null)
            {
                continue;
            }

            if (member.kCharNo == stAck.kDestCharNo)
            {
                if (stAck.kAnswer == _enGuildJoinRequestAnswer.eGuildJoinRequestAnswer_YES)
                {
                    // {플레이어 이름}\n님이 길드에 가입되었습니다.(스트링 ID : 6283)
                    str = string.Format(StringTableManager.GetData(6283), member.kCharName);

                    if (member.kMemberState != _enGuildMemberState.eGuildMemberState_Member)
                    {
                        member.kMemberState = _enGuildMemberState.eGuildMemberState_Member;
                        DestMember          = member;
                        m_GuildDetailInfo.kCurrMemberCount++;
                    }
                }
                else if (stAck.kAnswer == _enGuildJoinRequestAnswer.eGuildJoinRequestAnswer_NO)
                {
                    //  {플레이어 이름}\n님의 길드 가입을 거절하였습니다.(스트링 ID : 6279)
                    str = string.Format(StringTableManager.GetData(6279), member.kCharName);
                    m_GuildDetailInfo.vMembers.Remove(member);
                    //m_GuildDetailInfo.kCurrMemberCount--;
                    continue;
                }
                //break;
            }

            ++i;
        }

        // 6254 길드원 ({0} / {1})
        string szLabeltext = string.Format(StringTableManager.GetData(6254), m_GuildDetailInfo.kCurrMemberCount, m_GuildDetailInfo.kMaxMemberCount);

        m_GuildMemberButton.SetLabel(szLabeltext);

        _MyGuild.GuildJoinRequestAnswer(stAck, DestMember, m_GuildDetailInfo);
        _guildModifyWindow.GuildJoinRequestAnswer(stAck, DestMember, m_GuildDetailInfo);

        SystemPopupWindow.Instance.SetSystemPopup(enSystemPopupType.Ok, StringTableManager.GetData(4300), str);
    }
示例#7
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();
    }
示例#8
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));
        }
    }
示例#9
0
    private void SetOtherGuildInfo(CGuildDetail kGuildDetailInfo)
    {
        m_GuildMarkSprite.sprite2D = UIResourceMgr.CreateSprite(BUNDLELIST.TEXTURE_ICON_GUILDEMBLEM, string.Format("GuildEmblem{0}", m_GuildDetailInfo.kGuildMark.ToString("D2")));
        m_GuildNameLabel.text      = m_GuildDetailInfo.kGuildName;

        DATA_GUILD_MAIN GuildMainData = CDATA_GUILD_MAIN.Get(m_GuildDetailInfo.kGuildLevel);

        if (GuildMainData != null)
        {
            // string num : 12 -> LV
            m_GuildLevelLabel.text = string.Format("{0} {1}", StringTableManager.GetData(12), GuildMainData.iGuildLv);
        }

        CGuildMember captainInfo = null;
        int          iCount      = m_GuildDetailInfo.vMembers.Count;

        for (int i = 0; i < iCount; ++i)
        {
            CGuildMember memberInfo = m_GuildDetailInfo.vMembers[i];
            if (memberInfo == null)
            {
                continue;
            }

            if (memberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_Captain)
            {
                captainInfo = memberInfo;
            }
        }

        if (captainInfo != null)
        {
            m_GuildCaptainLabel.text = captainInfo.kCharName;
        }

        if (m_GuildDetailInfo.kJoinMethod == _enGuildJoinMethod.eGuildJoinMethod_Free)
        {
            m_GuildJoinMethodLabel.text = StringTableManager.GetData(6233);
        }
        else if (m_GuildDetailInfo.kJoinMethod == _enGuildJoinMethod.eGuildJoinMethod_Approval)
        {
            m_GuildJoinMethodLabel.text = StringTableManager.GetData(6239);
        }

        m_GuildDescLabel.text = m_GuildDetailInfo.kGuildDesc;
    }
示例#10
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();
    }
示例#11
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();
    }
示例#12
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();
    }
示例#13
0
    /// <summary>
    /// 부길드장 임명 패킷 받음.
    /// </summary>
    /// <param name="stAck"></param>
    public void GuildOrderSubCaptain(_stGuildOrderSubCaptainAck stAck)
    {
        CGuildMember member = null;
        int          iCount = m_GuildDetailInfo.vMembers.Count;

        for (int i = 0; i < iCount; ++i)
        {
            member = m_GuildDetailInfo.vMembers[i];
            if (member == null)
            {
                continue;
            }

            if (member.kCharNo == stAck.kDestCharNo)
            {
                member.kMemberState = stAck.kDestChangeState;
                break;
            }
        }

        if (member.kMemberState == _enGuildMemberState.eGuildMemberState_SubCaptain)
        {
            // {길드원 이름}\n님을 부길드장으로 임명하였습니다. (스트링 ID : 6300)
            string str = string.Format(StringTableManager.GetData(6300), member.kCharName);
            SystemPopupWindow.Instance.SetSystemPopup(enSystemPopupType.Ok, StringTableManager.GetData(4300), str);
        }
        else if (member.kMemberState == _enGuildMemberState.eGuildMemberState_AbleMember)
        {
            // {플레이어 이름}\n님이 부길드장에서 해임되었습니다.(스트링 ID : 6303)
            string str = string.Format(StringTableManager.GetData(6303), member.kCharName);
            SystemPopupWindow.Instance.SetSystemPopup(enSystemPopupType.Ok, StringTableManager.GetData(4300), str);
        }

        _MyGuild.SetMyGuildMember(m_GuildDetailInfo.kGuildKey, m_GuildDetailInfo.vMembers);
        _guildModifyWindow.SetMyGuildMember(m_GuildDetailInfo.kGuildKey, m_GuildDetailInfo.vMembers);
        m_GuildDelegationPopupWindow.SetDelegationMember(enGuildInfo_WindowType.GuildSubCaptain_Appointment, m_GuildDetailInfo);
    }
示例#14
0
    private void GuildDelete(enSystemMessageFlag state)
    {
        if (state == enSystemMessageFlag.NO)
        {
            return;
        }

        int iGuldMemberCount = 0;
        int iCount           = m_GuildDetailInfo.vMembers.Count;

        for (int i = 0; i < iCount; ++i)
        {
            CGuildMember member = m_GuildDetailInfo.vMembers[i];
            if (member == null)
            {
                continue;
            }

            if (member.kMemberState == _enGuildMemberState.eGuildMemberState_Member || member.kMemberState == _enGuildMemberState.eGuildMemberState_AbleMember ||
                member.kMemberState == _enGuildMemberState.eGuildMemberState_SubCaptain || member.kMemberState == _enGuildMemberState.eGuildMemberState_AbleSubCaptain)
            {
                iGuldMemberCount++;
            }
        }

        if (iGuldMemberCount > 0)
        {
            StartCoroutine(IeGuildDeletePopup());
            return;
        }

        _stGuildDeleteReq stGuildDeleteReq = new _stGuildDeleteReq();

        stGuildDeleteReq.kGuildKey = m_GuildDetailInfo.kGuildKey;

        CNetManager.Instance.SendPacket(CNetManager.Instance.GuildProxy.GuildDelete, stGuildDeleteReq, typeof(_stGuildDeleteAck));
    }
示例#15
0
    /// <summary>
    /// 무료, 고급, 최고급 공물버튼 눌렀을때 받는 패킷.
    /// </summary>
    /// <param name="stAck"></param>
    public void RecvGuildAttendance(_stGuildAttendanceAck stAck)
    {
        if (_GuildGoddnessConfirmPopupWindow == null)
        {
            _GuildGoddnessConfirmPopupWindow = UIResourceMgr.CreatePrefab <GuildGoddnessConfirm>(BUNDLELIST.PREFABS_UI_GUILD, transform, "GuildGoddnessConfirm");
            _GuildGoddnessConfirmPopupWindow.Init(stAck, _MyGuild);
        }

        _GuildGoddnessConfirmPopupWindow.OpenUI();

        int iCount = m_GuildDetailInfo.vMembers.Count;

        for (int i = 0; i < iCount; ++i)
        {
            CGuildMember member = m_GuildDetailInfo.vMembers[i];
            if (member == null)
            {
                continue;
            }

            if (member.kCharNo == UserInfo.Instance.CharNo)
            {
                member.kBuffKind       = stAck.kGuildTributeKind;
                member.kUserTributeExp = stAck.kResultUserTirbuteExp;
                break;
            }
        }

        m_GuildDetailInfo.kAttendanceCount = stAck.kResultAttendanceCount;
        m_GuildDetailInfo.kGuildExp        = stAck.kResultGuildTributeExp;
        m_GuildDetailInfo.kGuildLevel      = stAck.kResultGuildLevel;

        GuildDetailInfoAck(m_GuildDetailInfo);

        SetAttendenceReward(stAck.kRecvGuildAttendanceKey);
    }
示例#16
0
    //===================================================================================
    //
    // Method
    //
    //===================================================================================
    public void Init(enGuildInfo_WindowType type, ulong kGuildKey, CGuildMember member)
    {
        m_DelegationButtonLabel.text = StringTableManager.GetData(6294);     // 6294	길드장 위임
        m_AppointButtonLabel.text    = StringTableManager.GetData(6298);     // 6298	부길드장 임명

        m_BgMeSprite.gameObject.SetActive(false);
        m_CaptainCrown.gameObject.SetActive(false);
        m_SubCaptainCrown.gameObject.SetActive(false);

        m_kGuildKey  = kGuildKey;
        m_MemberInfo = member;

        m_NameLabel.text = m_MemberInfo.kCharName;

        m_LevelLabel.text = string.Format("{0} {1}", StringTableManager.GetData(12), m_MemberInfo.kCharLevel);  // 12번 텍스트 LV

        DATA_VIP VipData = CDATA_VIP.Get(m_MemberInfo.kCharVIPLevel);

        if (VipData != null)
        {
            m_VipRankSprite.spriteName = VipData.szGradeImg;
        }
        m_VipRankLabel.text = string.Format(StringTableManager.GetData(4984), (int)m_MemberInfo.kCharVIPLevel);

        DATA_CREATURE_NEWVER CreatureData = CDATA_CREATURE_NEWVER.Get(m_MemberInfo.kLeaderCreatureID);

        if (CreatureData != null)
        {
            int iCreatureTID = CDATA_CREATURE_NEWVER.Get(m_MemberInfo.kLeaderCreatureID).m_iCreatureTID;
            DATA_CREATURE_NEWVER pCreatureData = UtilFunc.GetCreatureDataByTID(iCreatureTID);
            m_CreatureSprite.sprite2D = UIResourceMgr.CreateSprite(BUNDLELIST.TEXTURE_ICON_CREATUREHEAD, pCreatureData.m_szIcon);
        }

        // 공물형태가 무엇인지?
        {
            // 6856	무료 공물
            _GoddnessTributeFreeLabel.text = StringTableManager.GetData(6856);
            _GoddnessTributeFreeObj.SetActive(false);
            _GoddnessTributeGoodObj.SetActive(false);
            _GoddnessTributeExtraObj.SetActive(false);

            _attendanceReward.state = ButtonState.Off;

            DateTime MemberAttendanceTime = m_MemberInfo.kGuildAttendanceTime.GetDateTime();
            if (MemberAttendanceTime.Date >= TimeManager.Instance.GetServerTime().Date&&
                (m_MemberInfo.kBuffKind != DATA_GUILD_TRIBUTE._enTributeEnum.None && m_MemberInfo.kBuffKind != DATA_GUILD_TRIBUTE._enTributeEnum._enTributeEnum_Max))
            {
                _attendanceReward.state = ButtonState.On;

                DATA_GUILD_TRIBUTE._enTributeEnum GuildBuffKind = m_MemberInfo.kBuffKind;
                DATA_GUILD_TRIBUTE GuildTributeData             = CDATA_GUILD_TRIBUTE.Get(GuildBuffKind);
                if (GuildTributeData == null)
                {
                    return;     // error
                }
                _attendanceReward.SetOnLabel(string.Format(StringTableManager.GetData(8679), GuildTributeData.iKeyAmount));

                int iCount = CDATA_GUILD_MAIN.GetCount();
                for (int i = 0; i < iCount; ++i)
                {
                    DATA_GUILD_MAIN GuildMainData = CDATA_GUILD_MAIN.GetByIndex(i);
                    if (GuildMainData == null)
                    {
                        continue;
                    }

                    if (GuildMainData.enTributeFree == GuildBuffKind)
                    {
                        _GoddnessTributeFreeObj.SetActive(true);
                        break;
                    }
                    else if (GuildMainData.enTributeGood == GuildBuffKind)
                    {
                        _GoddnessTributeGoodObj.SetActive(true);
                        break;
                    }
                    else if (GuildMainData.enTributeExtra == GuildBuffKind)
                    {
                        _GoddnessTributeExtraObj.SetActive(true);
                        break;
                    }
                }
            }
        }

        if (type == enGuildInfo_WindowType.MyGuild)
        {
            _ContributionTitleLabel.gameObject.SetActive(true);
            _ContributionPointLabel.gameObject.SetActive(true);
            _attendanceReward.gameObject.SetActive(true);

            // 6905    기여도
            _ContributionTitleLabel.text = StringTableManager.GetData(6905);
            _ContributionPointLabel.text = m_MemberInfo.kUserTributeExp.ToString();     // 기여도 점수.
        }
        else
        {
            _ContributionTitleLabel.gameObject.SetActive(false);
            _ContributionPointLabel.gameObject.SetActive(false);
            _attendanceReward.gameObject.SetActive(false);
        }

        if (m_MemberInfo.kAccessState == _enGuildMemberAccessState.eAccess_Yes)
        {
            _MemberLogOffObj.SetActive(false);

            // 3473	접속중
            m_LastConnectLabel.text = string.Format(StringTableManager.GetData(3473));
        }
        else
        {
            if (UserInfo.Instance.CharNo == m_MemberInfo.kCharNo)
            {
                _MemberLogOffObj.SetActive(false);

                // 3473	접속중
                m_LastConnectLabel.text = string.Format(StringTableManager.GetData(3473));
            }
            else
            {
                if (m_kGuildKey == UserInfo.Instance.GuildKey)
                {
                    // 내가 속한 길드일때만 길드원의 접속여부를 확인한다.
                    _MemberLogOffObj.SetActive(true);
                }
                else
                {
                    _MemberLogOffObj.SetActive(false);
                }

                System.TimeSpan timeresult = TimeManager.Instance.GetServerTime() - m_MemberInfo.kLastLogonTime.GetDateTime();
                if (timeresult.Days > 0)
                {
                    // 6589    {0} 일 전.
                    m_LastConnectLabel.text = string.Format(StringTableManager.GetData(6589), timeresult.Days);
                }
                else if (timeresult.Hours > 0)
                {
                    // 6590    {0} 시간 전.
                    m_LastConnectLabel.text = string.Format(StringTableManager.GetData(6590), timeresult.Hours);
                }
                else
                {
                    // 6591    {0} 시간 미만.
                    m_LastConnectLabel.text = string.Format(StringTableManager.GetData(6591), "1");
                }
            }
        }

        if (m_MemberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_Captain)
        {
            m_CaptainCrown.gameObject.SetActive(true);
        }
        else if (m_MemberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_SubCaptain || m_MemberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_AbleSubCaptain)
        {
            m_SubCaptainCrown.gameObject.SetActive(true);
        }

        bool IsMine = false;        // 내 캐릭인지

        if (m_MemberInfo.kCharNo == UserInfo.Instance.CharNo)
        {
            m_BgMeSprite.gameObject.SetActive(true);
            IsMine = true;
        }

        SetButton(type, m_MemberInfo.kMemberState, IsMine);
    }
示例#17
0
    private void SetMyGuildInfo(CGuildDetail guildDetail)
    {
        m_GuildLeaveButton.SetActive(false);
        m_GuildModifyButton.SetActive(false);
        m_GuildSubCaptainButtonObj.SetActive(false); // 부길드장이 사용하는 버튼.
        m_CommissionCheckButton.gameObject.SetActive(true);

        // 6587    {0} / {1} 명
        m_TodayAttendanceCountLabel.text = string.Format(StringTableManager.GetData(6587), guildDetail.kAttendanceCount, guildDetail.kCurrMemberCount);

        m_GuildMarkSprite.sprite2D = UIResourceMgr.CreateSprite(BUNDLELIST.TEXTURE_ICON_GUILDEMBLEM, string.Format("GuildEmblem{0}", guildDetail.kGuildMark.ToString("D2")));
        m_GuildNameLabel.text      = guildDetail.kGuildName;

        DATA_GUILD_MAIN GuildMainData = CDATA_GUILD_MAIN.Get(guildDetail.kGuildLevel);

        if (GuildMainData != null)
        {
            // string num : 12 -> LV
            m_GuildLevelLabel.text = string.Format("{0} {1}", StringTableManager.GetData(12), GuildMainData.iGuildLv);

            float GuildExpPercentage = guildDetail.kGuildExp / (float)GuildMainData.iGexp;
            _GuildLevelGageSprite.fillAmount = GuildExpPercentage;
            _GuildLevelGageLabel.text        = string.Format("{0}%", (GuildExpPercentage * 100).ToString("F2"));
        }

        bool         isRequestMember = false;
        CGuildMember captainInfo     = null;
        int          iCount          = guildDetail.vMembers.Count;

        for (int i = 0; i < iCount; ++i)
        {
            CGuildMember memberInfo = guildDetail.vMembers[i];
            if (memberInfo == null)
            {
                continue;
            }

            if (memberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_Captain)
            {
                captainInfo = memberInfo;
            }
            else if (memberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_Request)
            {
                isRequestMember = true;
            }

            if (memberInfo.kCharNo == UserInfo.Instance.CharNo)
            {
                m_MyMemberInfo                   = memberInfo;
                UserInfo.Instance.GuildKey       = guildDetail.kGuildKey;
                UserInfo.Instance.GuildName      = guildDetail.kGuildName;
                UserInfo.Instance.CharGuildState = m_MyMemberInfo.kMemberState;
            }
        }

        if (captainInfo != null)
        {
            m_GuildCaptainLabel.text = captainInfo.kCharName;
        }

        if (guildDetail.kJoinMethod == _enGuildJoinMethod.eGuildJoinMethod_Free)
        {
            m_GuildJoinMethodLabel.text = StringTableManager.GetData(6233);
        }
        else if (guildDetail.kJoinMethod == _enGuildJoinMethod.eGuildJoinMethod_Approval)
        {
            m_GuildJoinMethodLabel.text = StringTableManager.GetData(6239);
        }

        SetJoinMethodButton(guildDetail.kJoinMethod);
        SetNoticeOrDescButton(enNoticeAndDesc.Notice);     // 공지사항이 디폴트.

        if (m_MyMemberInfo != null)
        {
            if (m_MyMemberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_Captain)       // 길드장.
            {
                m_GuildModifyButton.SetActive(true);
                m_CommissionCheckButton.gameObject.SetActive(false);

                if (isRequestMember == true)
                {
                    UserInfo.Instance.otherNew.GuildAlram = _enGuildAlram.eGuildNewMark_NewMember;
                }
            }
            else if (m_MyMemberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_SubCaptain || // 부길드장.
                     m_MyMemberInfo.kMemberState == _enGuildMemberState.eGuildMemberState_AbleSubCaptain)
            {
                m_GuildSubCaptainButtonObj.SetActive(true);
                m_GuildSubCaptainLeaveButton.SetActive(true);
                m_GuildSubCaptainModifyButton.SetActive(true);

                if (isRequestMember == true)
                {
                    UserInfo.Instance.otherNew.GuildAlram = _enGuildAlram.eGuildNewMark_NewMember;
                }
            }
            else                                                                                       // 길드원.
            {
                m_GuildLeaveButton.SetActive(true);

                UserInfo.Instance.otherNew.GuildAlram = _enGuildAlram.eGuildNewMark_None;
            }

            SetCommissionCheckButton(m_MyMemberInfo.kMemberState);
        }
    }