Esempio n. 1
0
    /// <summary>
    /// 新获得称号
    /// </summary>
    public void OnAddNewTitle(stAddTitlePropertyUserCmd_S cmd)
    {
        uint newTitleId = cmd.data.dwID;

        if (this.m_listNewTitleId.Contains(cmd.data.dwID) == false)
        {
            this.m_listNewTitleId.Add(cmd.data.dwID);
        }

        stTitleData titleData = m_listOwnedTitle.Find((data) => { return(data.dwID == cmd.data.dwID ? true : false); });

        if (titleData != null)
        {
            titleData.dwCount = cmd.data.dwCount;
            titleData.dwTime  = cmd.data.dwTime;
        }
        else
        {
            m_listOwnedTitle.Add(new stTitleData {
                dwID = cmd.data.dwID, dwCount = cmd.data.dwCount, dwTime = cmd.data.dwTime
            });
        }

        object param = newTitleId;
        stShowMainPanelRedPoint st = new stShowMainPanelRedPoint()
        {
            modelID   = (int)WarningEnum.TITLE_NEWTITLE,
            direction = (int)WarningDirection.Left,
            bShowRed  = HaveNewTitle(),
        };

        EventEngine.Instance().DispatchEvent((int)GameEventID.MAINPANEL_SHOWREDWARING, st);

        SendToMe(cmd.data.dwID); //系统消息获得称号
    }
Esempio n. 2
0
    /// <summary>
    /// 右侧称呼详细信息
    /// </summary>
    /// <param name="titleId"></param>
    void InitTitleInfoUI()
    {
        m_titleDataBase = GameTableManager.Instance.GetTableItem <TitleDataBase>(this.m_selectTitleId);           //表格中数据
        m_titleData     = TManager.OwnedTitleList.Find((data) => { return(data.dwID == this.m_selectTitleId); }); //服务器下发的数据

        //当前称号详细信息
        if (m_titleDataBase != null)
        {
            //称号UI展示
            InitTitleDisplay(m_titleDataBase);

            //时效
            InitTimelinessUI(m_titleDataBase.timeliness, m_titleData);

            //描述
            m_label_TitleDescription.text = m_titleDataBase.strDesc;

            //永久加成
            CreateForeverAddUI();

            //激活加成
            CreateActivateAddUI();

            //佩戴和激活按钮初始化
            InitWearAndActivateUI();
        }
    }
Esempio n. 3
0
    /// <summary>
    /// 删除称号
    /// </summary>
    public void OnDeleteTitle(stDeleteTitlePropertyUserCmd_CS cmd)
    {
        stTitleData titleData = m_listOwnedTitle.Find((data) => { return(data.dwID == cmd.wdTitleID); });

        if (titleData != null)
        {
            m_listOwnedTitle.Remove(titleData);
        }

        object titleIdData = cmd.wdTitleID;

        EventEngine.Instance().DispatchEvent((int)GameEventID.TITLE_DELETE, titleIdData);//抛出删除的称号
        isDelete = true;
    }
Esempio n. 4
0
    //对称号Id排序
    void OrderTitleIdList(ref List <uint> titleIdList)
    {
        List <uint> copyTitleIdList = new List <uint>();//拷贝数据

        for (int i = 0; i < titleIdList.Count; i++)
        {
            copyTitleIdList.Add(titleIdList[i]);
        }

        titleIdList.Clear();

        stTitleData td1 = m_listOwnedTitle.Find((data) => { return(data.dwID == ActivateTitleId); });// 1、激活

        if (td1 != null && copyTitleIdList.Contains(td1.dwID))
        {
            if (titleIdList.Contains(td1.dwID) == false)
            {
                titleIdList.Add(td1.dwID);
            }
        }

        stTitleData td2 = m_listOwnedTitle.Find((data) => { return(data.dwID == WearTitleId); });    // 2、佩戴

        if (td2 != null && copyTitleIdList.Contains(td2.dwID))
        {
            if (titleIdList.Contains(td2.dwID) == false)
            {
                titleIdList.Add(td2.dwID);
            }
        }

        for (int i = 0; i < m_listOwnedTitle.Count; i++)
        {
            if (m_listOwnedTitle[i].dwID != ActivateTitleId && m_listOwnedTitle[i].dwID != WearTitleId && copyTitleIdList.Contains(m_listOwnedTitle[i].dwID))//3、拥有的
            {
                if (titleIdList.Contains(m_listOwnedTitle[i].dwID) == false)
                {
                    titleIdList.Add(m_listOwnedTitle[i].dwID);
                }
            }
        }

        for (int i = 0; i < copyTitleIdList.Count; i++)  //4、未拥有的
        {
            if (titleIdList.Contains(copyTitleIdList[i]) == false)
            {
                titleIdList.Add(copyTitleIdList[i]);
            }
        }
    }
Esempio n. 5
0
    void UpdateUseTimes(uint titleId)
    {
        if (this.m_selectTitleId == titleId)
        {
            m_titleDataBase = GameTableManager.Instance.GetTableItem <TitleDataBase>(this.m_selectTitleId);           //表格中数据
            m_titleData     = TManager.OwnedTitleList.Find((data) => { return(data.dwID == this.m_selectTitleId); }); //服务器下发的数据

            //当前称号详细信息
            if (m_titleDataBase != null)
            {
                InitTimelinessUI(m_titleDataBase.timeliness, m_titleData);  //时效
            }
        }
    }
Esempio n. 6
0
    /// <summary>
    /// 增加称号使用次数
    /// </summary>
    /// <param name="cmd"></param>
    public void OnGetTitleUseTimes(stSetCountTitlePropertyUserCmd_S cmd)
    {
        stTitleData titleData = m_listOwnedTitle.Find((data) => { return(data.dwID == cmd.wdTitleID); });

        if (titleData != null)
        {
            titleData.dwCount = cmd.dwCount;

            //更新玩家身上称号属性
            CleanMainPlayerTitleProp(titleData);
        }

        object titleIdData = cmd.wdTitleID;

        EventEngine.Instance().DispatchEvent((int)GameEventID.TITLE_USETIMES, titleIdData);//抛出激活的称号
    }
Esempio n. 7
0
    /// <summary>
    /// 更新玩家称号属性
    /// </summary>
    /// <param name="titleData"></param>
    void CleanMainPlayerTitleProp(stTitleData titleData)
    {
        IPlayer mainPlayer = Client.ClientGlobal.Instance().MainPlayer;

        if (mainPlayer != null)
        {
            int mainPlayerTitleId = mainPlayer.GetProp((int)PlayerProp.TitleId);
            //玩家称号使用时间和次数都为0  此时称号ID置0
            if ((uint)mainPlayerTitleId == titleData.dwID)
            {
                if (titleData.dwCount == 0 && titleData.dwTime == 0)
                {
                    mainPlayer.SetProp((int)PlayerProp.TitleId, 0);
                }
            }
        }
    }
Esempio n. 8
0
    /// <summary>
    /// 时效UI1
    /// </summary>
    void InitTimelinessUI(uint timeliness, stTitleData titleData)
    {
        this.m_eTitleTimeliness = (Timeliness)timeliness;
        if (m_eTitleTimeliness == Timeliness.Forever)           //永久
        {
            m_widget_Permanent.gameObject.SetActive(true);      //永久
            m_widget_LimitedTime.gameObject.SetActive(false);   //限时
            m_widget_LimitedNumber.gameObject.SetActive(false); //限次
            m_widget_NumAndTime.gameObject.SetActive(false);    //
        }

        if (m_eTitleTimeliness == Timeliness.TimeLimit)         //限时
        {
            m_widget_Permanent.gameObject.SetActive(false);     //永久
            m_widget_LimitedTime.gameObject.SetActive(true);    //限时
            m_widget_LimitedNumber.gameObject.SetActive(false); //限次
            m_widget_NumAndTime.gameObject.SetActive(false);    //
            if (m_titleData != null)
            {
                m_label_LimitedTimeLbl.text = StringUtil.GetStringBySeconds(m_titleData.dwTime);
            }
            else
            {
                m_label_LimitedTimeLbl.text = "0";
            }
        }

        if (m_eTitleTimeliness == Timeliness.NumLimit)         //限次
        {
            m_widget_Permanent.gameObject.SetActive(false);    //永久
            m_widget_LimitedTime.gameObject.SetActive(false);  //限时
            m_widget_LimitedNumber.gameObject.SetActive(true); //限次
            m_widget_NumAndTime.gameObject.SetActive(false);   //
            if (m_titleData != null)
            {
                m_label_LimitedNumberLbl.text = m_titleData.dwCount.ToString();
            }
            else
            {
                m_label_LimitedNumberLbl.text = "0";
            }
        }

        if (m_eTitleTimeliness == Timeliness.TimeNumLimit)      //限时限次
        {
            m_widget_Permanent.gameObject.SetActive(false);     //永久
            m_widget_LimitedTime.gameObject.SetActive(false);   //限时
            m_widget_LimitedNumber.gameObject.SetActive(false); //限次
            m_widget_NumAndTime.gameObject.SetActive(true);     //限时限次

            if (m_titleData != null)
            {
                m_label_UseNumberLbl.text = m_titleData.dwCount.ToString();
                m_label_UseTimeLbl.text   = StringUtil.GetStringBySeconds(m_titleData.dwTime);
            }
            else
            {
                m_label_UseNumberLbl.text = "0";
                m_label_UseTimeLbl.text   = "0";
            }
        }
    }