Beispiel #1
0
        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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        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);
        }