public static List <QiZhenGeItemData> GetRandomQiZhenGeCachingItems(int maxNum) { List <QiZhenGeItemData> qiZhenGeItemDataList = null; lock (QiZhenGeManager.QiZhenMutex) { QiZhenGeManager.InitQiZhenGeCachingItems(); qiZhenGeItemDataList = Global.RandomSortList <QiZhenGeItemData>(QiZhenGeManager.QiZhenGeItemDataList); QiZhenGeManager.QiZhenGeItemDataList = qiZhenGeItemDataList; } List <QiZhenGeItemData> result; if (null == qiZhenGeItemDataList) { result = null; } else { List <QiZhenGeItemData> list = new List <QiZhenGeItemData>(); for (int i = 0; i < maxNum; i++) { int randNum = Global.GetRandomNumber(1, 10001); QiZhenGeItemData qiZhenGeItemData = QiZhenGeManager.PickUpQiZhenGeItemDataByPercent(qiZhenGeItemDataList, randNum); list.Add(qiZhenGeItemData); } result = list; } return(result); }
/// <summary> /// 获取随机的前4个项的字典 /// </summary> public static List <QiZhenGeItemData> GetRandomQiZhenGeCachingItems(int maxNum) { List <QiZhenGeItemData> qiZhenGeItemDataList1 = null; lock (QiZhenMutex) { InitQiZhenGeCachingItems(); qiZhenGeItemDataList1 = Global.RandomSortList <QiZhenGeItemData>(QiZhenGeItemDataList); //将随机过的重新赋值,确保第一个可以出现 QiZhenGeItemDataList = qiZhenGeItemDataList1; } if (null == qiZhenGeItemDataList1) { return(null); } List <QiZhenGeItemData> list = new List <QiZhenGeItemData>(); for (int i = 0; i < maxNum; i++) { int randNum = Global.GetRandomNumber(1, 10001); QiZhenGeItemData qiZhenGeItemData = PickUpQiZhenGeItemDataByPercent(qiZhenGeItemDataList1, randNum); //if (dict.ContainsKey(qiZhenGeItemData.ItemID)) //{ // continue; //} list.Add(qiZhenGeItemData); } return(list); }
private static QiZhenGeItemData PickUpQiZhenGeItemDataByPercent(List <QiZhenGeItemData> qiZhenGeItemDataList, int randPercent) { QiZhenGeItemData qiZhenGeItemData = null; for (int i = 0; i < qiZhenGeItemDataList.Count; i++) { if (randPercent > qiZhenGeItemDataList[i].BaseProbability && randPercent <= qiZhenGeItemDataList[i].BaseProbability + qiZhenGeItemDataList[i].SelfProbability) { qiZhenGeItemData = qiZhenGeItemDataList[i]; break; } } return(qiZhenGeItemData); }