/// <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); }
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); }