Esempio n. 1
0
    /// <summary>
    /// //类型 0-物品本身cd  1-组cd
    /// </summary>
    /// <param name="type"></param>
    /// <param name="baseid"></param>
    /// <param name="cd">sec</param>
    public void SetMedicineCDInfo(uint baseid, List <GameCmd.CDInfo> cdinfos)
    {
        UseItemFinalCD cddata = new UseItemFinalCD();

        cddata.baseid = baseid;
        for (int i = 0; i < cdinfos.Count; i++)
        {
            if (cdinfos[i].type == 0)
            {
                cddata.selfcd = cdinfos[i].cd;
            }
            else if (cdinfos[i].type == 1)
            {
                cddata.groupcd = cdinfos[i].cd;

                table.ItemDataBase itemdata = GameTableManager.Instance.GetTableItem <table.ItemDataBase>(baseid);
                if (itemdata != null)
                {
                    table.EffectFuncDataBase effectdata = GameTableManager.Instance.GetTableItem <table.EffectFuncDataBase>(itemdata.func_id);
                    if (effectdata != null)
                    {
                        cddata.groupid = effectdata.group_id;
                    }
                }
            }
        }
        cddata.startTime = UnityEngine.Time.realtimeSinceStartup;
        m_lstUseItemFinalCD.Add(cddata);
        if (UnityEngine.Application.isEditor)
        {
            //string msg = string.Format("使用物品返回{0} selfcd{1} groupcd{2}  startTime{3}", baseid, cddata.selfcd, cddata.groupcd, cddata.startTime);
            //UnityEngine.Debug.Log(msg);
        }
        //Engine.Utility.Log.LogGroup("ZCX", "使用物品返回{0} cd1{1} cd2{2}", baseid,cddata.selfcd,cddata.groupcd);
    }
Esempio n. 2
0
    bool CanUse(uint baseid)
    {
        //bool canUse = Engine.Utility.EventEngine.Instance().DispatchVote((int)GameVoteEventID.USE_MEDECAL_ITEM, baseid);

        //if (!canUse)
        //{
        //    return false;
        //}

        table.ItemDataBase itemdata = GameTableManager.Instance.GetTableItem <table.ItemDataBase>(baseid);
        if (itemdata != null)
        {
            if (itemdata.useLevel > MainPlayerHelper.GetPlayerLevel())
            {
                return(false);
            }


            table.EffectFuncDataBase effectdata = GameTableManager.Instance.GetTableItem <table.EffectFuncDataBase>(itemdata.func_id);
            if (effectdata != null)
            {
                bool canuse = true;
                for (int i = 0; i < m_lstUseItemFinalCD.Count; i++)
                {
                    if (m_lstUseItemFinalCD[i].groupid == effectdata.group_id)
                    {
                        if (m_lstUseItemFinalCD[i].groupcd > 0)
                        {
                            canuse = false;
                            break;
                        }
                    }

                    if (m_lstUseItemFinalCD[i].baseid == baseid)
                    {
                        if (m_lstUseItemFinalCD[i].selfcd > 0)
                        {
                            canuse = false;
                            break;
                        }
                    }
                }
                return(canuse);
            }
        }
        return(false);
    }