Exemple #1
0
 public void AddSuitData(uint userID, uint baseID, ClientSuitData data)
 {
     if (data.suitBaseID == 5001)
     {
         Log.LogGroup("ZDY", "suitstate is " + data.suitState);
     }
     if (m_dicSuitData.ContainsKey(userID))
     {
         Dictionary <uint, ClientSuitData> dic = m_dicSuitData[userID];
         if (dic.ContainsKey(baseID))
         {
             dic[baseID] = data;
         }
         else
         {
             dic.Add(baseID, data);
         }
     }
     else
     {
         Dictionary <uint, ClientSuitData> dic = new Dictionary <uint, ClientSuitData>();
         dic.Add(baseID, data);
         m_dicSuitData.Add(userID, dic);
     }
 }
Exemple #2
0
 public void SetSuitData(ClientSuitData data)
 {
     m_suitData = data;
     ResetInfoGrid(m_suitData.suitBaseID != 0);
     table.SuitDataBase database = GameTableManager.Instance.GetTableItem <table.SuitDataBase>(m_suitData.suitBaseID, 1);
     if (database != null)
     {
         SetIcon(true, database.icon);
         SetBindMask(false);
         SetTimeLimitMask(false);
     }
 }
Exemple #3
0
    public ClientSuitData GetSuitData(uint baseID)
    {
        uint userID = MainPlayerHelper.GetPlayerID();

        if (m_dicSuitData.ContainsKey(userID))
        {
            Dictionary <uint, ClientSuitData> dic = m_dicSuitData[userID];
            if (dic.ContainsKey(baseID))
            {
                ClientSuitData sd = dic[baseID];
                return(sd);
            }
        }
        return(new ClientSuitData());
    }
Exemple #4
0
    /// <summary>
    /// 显示时装
    /// </summary>
    /// <param name="lstSuit"></param>
    private void OnShowSuit(List <GameCmd.SuitData> lstSuit)
    {
        ClientSuitData suitdata = new ClientSuitData();

        foreach (var suitGrid in m_dicSuitGrid)
        {
            for (int i = 0; i < lstSuit.Count; ++i)
            {
                if (lstSuit[i].suit_type == suitGrid.Key)
                {
                    suitdata.suitBaseID = lstSuit[i].baseid;
                }
            }
            suitGrid.Value.SetSuitData(suitdata);
            suitdata.suitBaseID = 0;
        }
    }
Exemple #5
0
    public void SetSuitDataOnChangePos()
    {
        List <ClientSuitData> list = GetSortListData();

        if (list != null)
        {
            if (list.Count > 0)
            {
                ClientSuitData cd = list[0];
                SuitDataBase   db = GameTableManager.Instance.GetTableItem <SuitDataBase>(cd.suitBaseID, 1);
                if (db != null)
                {
                    CurSuitDataBase = db;
                }
            }
        }
    }
Exemple #6
0
    void onClick_Unlock_queding_Btn(GameObject caster)
    {
        if (CurDataBase != null)
        {
            ClientSuitData sst = DataManager.Manager <SuitDataManager>().GetSuitData(CurDataBase.base_id);
            if (sst.suitState == SuitState.HasBuy)
            {
                if (sst.leftTime == 0)
                {
                    string tips = string.Format("{0}{1}{2}", CommonData.GetLocalString("您已经拥有永久时装"), CurDataBase.name, CommonData.GetLocalString(",是否仍确定使用?"));
                    TipsManager.Instance.ShowTipWindow(TipWindowType.CancelOk, tips, () => {
                        stOpSuitPropertyUserCmd_C cmd = new stOpSuitPropertyUserCmd_C();
                        cmd.type = m_opType;

                        uint suitID = (CurDataBase.base_id << 16);
                        suitID     += m_nDayCount;
                        cmd.suit_id = suitID;
                        NetService.Instance.Send(cmd);
                    });
                }
                else
                {
                    stOpSuitPropertyUserCmd_C cmd = new stOpSuitPropertyUserCmd_C();
                    cmd.type = m_opType;

                    uint suitID = (CurDataBase.base_id << 16);
                    suitID     += m_nDayCount;
                    cmd.suit_id = suitID;
                    NetService.Instance.Send(cmd);
                }
            }
            else
            {
                stOpSuitPropertyUserCmd_C cmd = new stOpSuitPropertyUserCmd_C();
                cmd.type = m_opType;

                uint suitID = (CurDataBase.base_id << 16);
                suitID     += m_nDayCount;
                cmd.suit_id = suitID;
                NetService.Instance.Send(cmd);
            }
        }

        HideSelf();
    }
Exemple #7
0
    void InitPetRenderObj()
    {
        List <ClientSuitData> petsuitList = m_suitDataManager.GetSortListData();
        int baseID = 0;

        for (int i = 0; i < petsuitList.Count; i++)
        {
            ClientSuitData data = petsuitList[i];
            if (data.suitState == SuitState.Equip)
            {
                baseID = (int)data.suitBaseID;
                break;
            }
        }
        int resID = GetPetResID(baseID);

        CreatePetRenderTexture(resID);
    }
Exemple #8
0
    /// <summary>
    /// 判断当前时装是否是永久
    /// </summary>
    /// <param name="baseID">时装的baseid</param>
    /// <returns></returns>
    public bool IsSuitForever(uint baseID)
    {
        uint userID = MainPlayerHelper.GetPlayerID();

        if (m_dicSuitData.ContainsKey(userID))
        {
            Dictionary <uint, ClientSuitData> dic = m_dicSuitData[userID];
            if (dic.ContainsKey(baseID))
            {
                ClientSuitData sd = dic[baseID];
                if (sd.suitState == SuitState.HasBuy && sd.leftTime == 0)
                {
                    return(true);
                }
            }
        }
        return(false);
    }
Exemple #9
0
    public override void SetGridData(object data)
    {
        base.SetGridData(data);
        if (data != null && data is ClientSuitData)
        {
            m_CurSuitData  = (ClientSuitData)data;
            SuitBaseID     = m_CurSuitData.suitBaseID;
            m_suitDataBase = GameTableManager.Instance.GetTableItem <SuitDataBase>(m_CurSuitData.suitBaseID, 1);
            if (m_suitDataBase == null)
            {
                Engine.Utility.Log.Error("m_suitDataBase is null id is " + m_CurSuitData.suitBaseID);
                return;
            }
            if (null != m_lab_name)
            {
                m_lab_name.text = m_suitDataBase.name;
            }
            if (m_sp_icon != null)
            {
                UIManager.GetTextureAsyn(m_suitDataBase.icon, ref m_iconCASD, () =>
                {
                    if (null != m_sp_icon)
                    {
                        m_sp_icon.mainTexture = null;
                    }
                }, m_sp_icon);
            }
            if (m_CurSuitData.suitState == SuitState.NoBuy)
            {
                SetPrice();
                m_trans_priceContent.gameObject.SetActive(true);
                m_label_countdown.gameObject.SetActive(false);
            }
            else
            {
                m_trans_priceContent.gameObject.SetActive(false);

                m_label_countdown.gameObject.SetActive(true);
                SetCountDown(m_CurSuitData.leftTime);
            }

            ShowActiveSign(m_CurSuitData.suitState);
        }
    }
Exemple #10
0
    List <SuitDataBase> GetPetSuitData()
    {
        List <SuitDataBase>   resultList = new List <SuitDataBase>();
        List <ClientSuitData> sortList   = m_suitDataManager.GetSortListData();

        for (int i = 0; i < sortList.Count; i++)
        {
            ClientSuitData cd = sortList[i];
            SuitDataBase   db = GameTableManager.Instance.GetTableItem <SuitDataBase>(cd.suitBaseID, 1);
            if (db != null)
            {
                if (db.type == (uint)GameCmd.EquipSuitType.Magic_Pet_Type)
                {
                    resultList.Add(db);
                }
            }
        }
        return(resultList);
    }
Exemple #11
0
    public SuitState GetSuitState(uint baseID)
    {
        uint userID = MainPlayerHelper.GetPlayerID();

        if (m_dicSuitData.ContainsKey(userID))
        {
            Dictionary <uint, ClientSuitData> dic = m_dicSuitData[userID];
            if (dic.ContainsKey(baseID))
            {
                ClientSuitData sd = dic[baseID];
                return(sd.suitState);
            }
            else
            {
                return(SuitState.NoBuy);
            }
        }
        else
        {
            return(SuitState.NoBuy);
        }
    }
Exemple #12
0
    void InitShowDic()
    {
        int job = MainPlayerHelper.GetMainPlayerJob();
        List <SuitDataBase>               allList  = GetAllSuitByJob(job);
        List <SuitDataBase>               advList  = allList.FindAll((x) => { return(x.typeMask == 2); });
        List <ClientSuitData>             showList = new List <ClientSuitData>();
        Dictionary <uint, ClientSuitData> showDic  = new Dictionary <uint, ClientSuitData>();
        uint userID = MainPlayerHelper.GetPlayerID();

        for (int i = 0; i < advList.Count; i++)
        {
            uint baseID = advList[i].base_id;
            if (!m_dicSuitData.ContainsKey(userID))
            {
                ClientSuitData cd = new ClientSuitData();
                cd.suitState  = SuitState.Show;
                cd.leftTime   = 0;
                cd.suitBaseID = advList[i].base_id;

                AddSuitData(userID, cd.suitBaseID, cd);
            }
            else
            {
                Dictionary <uint, ClientSuitData> dic = m_dicSuitData[userID];
                if (!dic.ContainsKey(baseID))
                {
                    ClientSuitData cd = new ClientSuitData();
                    cd.suitState  = SuitState.Show;
                    cd.leftTime   = 0;
                    cd.suitBaseID = advList[i].base_id;

                    AddSuitData(userID, cd.suitBaseID, cd);
                }
            }
        }
    }
Exemple #13
0
    public void OnReceiveAllSuitData(stSendAllSuitPropertyUserCmd_S msg)
    {
        IPlayer player = MainPlayerHelper.GetMainPlayer();

        if (player == null)
        {
            Log.Error("收到所有时装数据 但是还没有主角创建");
            return;
        }
        uint userID = player.GetID();
        List <stSuitData> suitList = msg.data;
        string            suitName = "";

        for (int i = 0; i < suitList.Count; i++)
        {
            stSuitData     sd  = suitList[i];
            ClientSuitData csd = new ClientSuitData();
            csd.suitBaseID = sd.base_id;
            csd.leftTime   = sd.time;
            Client.GameEventID eventtype = Client.GameEventID.Unknow;
            if (sd.status == SuitStatus.SuitStatus_Common)
            {
                csd.suitState = SuitState.HasBuy;
                AddSuitData(userID, sd.base_id, csd);
                //直接装备
                if (msg.type == SuitOPType.SuitOPType_Buy || msg.type == SuitOPType.SuitOPType_Renew)
                {
                    stOpSuitPropertyUserCmd_C cmd = new stOpSuitPropertyUserCmd_C();
                    cmd.type = SuitOPType.SuitOPType_Equip;
                    //固定3当装备
                    cmd.suit_id = (sd.base_id << 16) + 3;
                    NetService.Instance.Send(cmd);
                }
            }
            else if (sd.status == SuitStatus.SuitStatus_Equip)
            {
                csd.suitState = SuitState.Equip;
                AddSuitData(userID, sd.base_id, csd);
            }
            else if (sd.status == SuitStatus.SuitStatus_Overdue)
            {
                csd.suitState = SuitState.NoEffect;
                AddSuitData(userID, sd.base_id, csd);
            }
            else if (sd.status == SuitStatus.SuitStatus_Acti)
            {
                csd.suitState = SuitState.Active;
                AddSuitData(userID, sd.base_id, csd);
            }
            else if (sd.status == SuitStatus.SuitStatus_UNActi)
            {
                csd.suitState = SuitState.Show;
                AddSuitData(userID, sd.base_id, csd);
            }
            table.SuitDataBase db = GameTableManager.Instance.GetTableItem <table.SuitDataBase>(sd.base_id, 1);
            if (db != null)
            {
                suitName = db.name;
            }

            Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.UIEVENTFASHIONDATA, sd.base_id);
            //SendChangeBody((int)sd.type, sd.base_id, player);
        }

        ShowTips(msg.type, suitName);
    }
Exemple #14
0
    public List <ClientSuitData> GetSortListData()
    {
        int job = MainPlayerHelper.GetMainPlayerJob();
        List <SuitDataBase> allList = GetAllSuitByJob(job);

        List <ClientSuitData> showList = new List <ClientSuitData>();

        List <ClientSuitData> noEffectList = new List <ClientSuitData>();
        List <ClientSuitData> effectList   = new List <ClientSuitData>();
        List <ClientSuitData> equipList    = new List <ClientSuitData>();

        if (MainPlayerHelper.GetMainPlayer() == null)
        {
            return(null);
        }

        Dictionary <uint, ClientSuitData> myDic = m_dicSuitData[MainPlayerHelper.GetPlayerID()];
        var iter = myDic.GetEnumerator();

        while (iter.MoveNext())
        {
            uint           baseID = iter.Current.Key;
            ClientSuitData data   = iter.Current.Value;
            if (data.suitState == SuitState.NoEffect)
            {
                if (!noEffectList.Contains(data))
                {
                    noEffectList.Add(data);
                }
            }
            else if (data.suitState == SuitState.HasBuy)
            {
                if (!effectList.Contains(data))
                {
                    effectList.Add(data);
                }
            }
            else if (data.suitState == SuitState.Equip)
            {
                if (!equipList.Contains(data))
                {
                    equipList.Add(data);
                }
            }
            else if (data.suitState == SuitState.Show || data.suitState == SuitState.Active)
            {
                if (!showList.Contains(data))
                {
                    showList.Add(data);
                }
            }
        }
        List <ClientSuitData> allClientList = new List <ClientSuitData>();

        allClientList.AddRange(showList);
        allClientList.AddRange(equipList);
        allClientList.AddRange(effectList);
        allClientList.AddRange(noEffectList);
        List <ClientSuitData> noHaveList = new List <ClientSuitData>();

        for (int i = 0; i < allList.Count; i++)
        {
            SuitDataBase db       = allList[i];
            bool         bContain = false;
            for (int j = 0; j < allClientList.Count; j++)
            {
                ClientSuitData sd = allClientList[j];
                if (sd.suitBaseID == db.base_id)
                {
                    bContain = true;
                }
            }
            if (!bContain)
            {
                ClientSuitData cd = new ClientSuitData();
                cd.suitBaseID = db.base_id;
                cd.leftTime   = db.time;
                cd.suitState  = SuitState.NoBuy;
                if (!noHaveList.Contains(cd))
                {
                    noHaveList.Add(cd);
                }
            }
        }
        allClientList.AddRange(noHaveList);
        List <ClientSuitData> sortList = new List <ClientSuitData>();

        for (int i = 0; i < allClientList.Count; i++)
        {
            ClientSuitData cd = allClientList[i];
            SuitDataBase   db = GameTableManager.Instance.GetTableItem <SuitDataBase>(cd.suitBaseID, 1);
            if (db != null)
            {
                if (db.type == (uint)m_curSuitType)
                {
                    sortList.Add(cd);
                }
            }
        }
        return(sortList);
    }