/// <summary> /// 解析分段的字符串 /// </summary> /// <param name="manyTimeDmage"></param> /// <returns></returns> private static List <ManyTimeDmageItem> ParseItems(int id, string manyTimeDmage) { List <ManyTimeDmageItem> manyTimeDmageItemsList = new List <ManyTimeDmageItem>(); string[] fields = manyTimeDmage.Split('|'); for (int i = 0; i < fields.Length; i++) { string[] fields2 = fields[i].Split(','); if (fields2.Length != 2) { LogManager.WriteLog(LogTypes.Error, string.Format("解析技能项的多段伤害配置时,个数配置错误, ID={0}", id)); continue; } ManyTimeDmageItem manyTimeDmageItem = new ManyTimeDmageItem() { InjuredSeconds = Global.SafeConvertToInt32(fields2[0]), InjuredPercent = Global.SafeConvertToDouble(fields2[1]), manyRangeIndex = i, }; manyTimeDmageItemsList.Add(manyTimeDmageItem); } return(manyTimeDmageItemsList); }
/// <summary> /// 获取可以执行的项 /// </summary> /// <returns></returns> public ManyTimeDmageMagicItem GetCanExecItemsEx(out ManyTimeDmageItem subItem) { ManyTimeDmageMagicItem magicItem = null; subItem = null; long ticks = TimeUtil.NowEx(); lock (mutex) { List <ManyTimeDmageMagicItem> removeList = null; foreach (var item in execItemDict) { if (ticks > item.execTicks) { magicItem = item; subItem = magicItem.Get(); if (!magicItem.Next()) { if (null == removeList) { removeList = new List <ManyTimeDmageMagicItem>(); } removeList.Add(item); } break; } } if (null != removeList) { foreach (var item in removeList) { execItemDict.Remove(item); } } } return(magicItem); }