Beispiel #1
0
        public override void BuildPacket()
        {
            var cacheSetItem = new ConfigCacheSet <ItemBaseInfo>();

            PushIntoStack(_cityInfoList.Count);
            foreach (var city in _cityInfoList)
            {
                List <PlotInfo> plotList = _cacheSetPlot.FindAll(s => s.CityID == city.CityID && s.PlotType == plotType);

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(plotList.Count);
                foreach (PlotInfo item in plotList)
                {
                    UserPlotInfo userPlot   = UserPlotHelper.GetUserPlotInfo(ContextUser.UserID, item.PlotID);
                    int          isKill     = PlotHelper.IsKill(ContextUser.UserID, item.PlotID, cityID) ? 1 : 0;
                    DataStruct   dsItemPlot = new DataStruct();
                    dsItemPlot.PushIntoStack(item.PlotID);
                    dsItemPlot.PushIntoStack(item.PlotSeqNo.ToShort());
                    dsItemPlot.PushIntoStack(item.PlotName.ToNotNullString());
                    dsItemPlot.PushIntoStack(item.BossHeadID.ToNotNullString());
                    dsItemPlot.PushIntoStack(GetPlotStatus(userPlot, plotType));
                    dsItemPlot.PushIntoStack(userPlot == null ? 1 : (int)userPlot.StarScore);
                    dsItemPlot.PushIntoStack(isKill);
                    dsItemPlot.PushIntoStack(item.HonourNum);
                    dsItemPlot.PushIntoStack(item.GameCoin);
                    dsItemPlot.PushIntoStack(item.PlotDesc);
                    dsItemPlot.PushIntoStack(item.PlotLv);
                    dsItemPlot.PushIntoStack(ConfigEnvSet.GetInt("Plot.BattleEnergyNum"));
                    dsItemPlot.PushIntoStack(PlotHelper.GetPlotChallengeNum(UserId.ToString(), item.PlotID));
                    dsItemPlot.PushIntoStack(item.ChallengeNum);
                    dsItemPlot.PushIntoStack(userPlot == null ? 0 : userPlot.PlotNum);
                    dsItem.PushIntoStack(dsItemPlot);
                    var itemArray = item.ItemRank.Split(',');
                    dsItemPlot.PushIntoStack(itemArray.Length);
                    foreach (var s in itemArray)
                    {
                        var        sArray     = s.Split('=');
                        var        itemInfo   = cacheSetItem.FindKey(sArray.Length > 0 ? sArray[0].ToInt() : 0);
                        DataStruct dsItemInfo = new DataStruct();
                        dsItemInfo.PushIntoStack(itemInfo != null ? itemInfo.ItemName : string.Empty);
                        dsItemInfo.PushIntoStack(sArray.Length > 1 ? sArray[1].ToInt() : 0);
                        dsItemPlot.PushIntoStack(dsItemInfo);
                    }
                }

                dsItem.PushIntoStack(city.CityID);
                dsItem.PushIntoStack(city.CityName.ToNotNullString());

                PushIntoStack(dsItem);
            }
            PushIntoStack(resetNum);
            PushIntoStack(_backpackType);
        }
Beispiel #2
0
        public override void BuildPacket()
        {
            var cacheSetItemEqu = new ConfigCacheSet<ItemEquAttrInfo>();
            PushIntoStack(_userItemArray.Count);
            foreach (UserItemInfo item in _userItemArray)
            {
                ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(item.ItemID);
                var general = new GameDataCacheSet<UserGeneral>().FindKey(Uid, item.GeneralID);
                var itemEquList = cacheSetItemEqu.FindAll(e => e.ItemID.Equals(item.ItemID));
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(item.UserItemID.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(item.ItemLv);
                dsItem.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.QualityType);
                dsItem.PushIntoStack(general != null ? general.GeneralName : string.Empty);
                PushIntoStack(dsItem);
                dsItem.PushIntoStack(itemEquList.Count);
                foreach (var itemEquAttrInfo in itemEquList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(itemEquAttrInfo.AttributeID.ToInt());
                    int strengNum = 0;
                    strengNum = MathUtils.Addition(itemEquAttrInfo.BaseNum, (itemEquAttrInfo.IncreaseNum * item.ItemLv), int.MaxValue);
                    //    dsItem1.PushIntoStack(itemEqu.BaseNum);
                    dsItem1.PushIntoStack(strengNum);
                    dsItem.PushIntoStack(dsItem1);
                }

            }
        }
Beispiel #3
0
        public override void BuildPacket()
        {
            var cacheSetItemEqu = new ConfigCacheSet <ItemEquAttrInfo>();

            PushIntoStack(_userItemArray.Count);
            foreach (UserItemInfo item in _userItemArray)
            {
                ItemBaseInfo itemInfo    = new ConfigCacheSet <ItemBaseInfo>().FindKey(item.ItemID);
                var          general     = new GameDataCacheSet <UserGeneral>().FindKey(Uid, item.GeneralID);
                var          itemEquList = cacheSetItemEqu.FindAll(e => e.ItemID.Equals(item.ItemID));
                DataStruct   dsItem      = new DataStruct();
                dsItem.PushIntoStack(item.UserItemID.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(item.ItemLv);
                dsItem.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.QualityType);
                dsItem.PushIntoStack(general != null ? general.GeneralName : string.Empty);
                PushIntoStack(dsItem);
                dsItem.PushIntoStack(itemEquList.Count);
                foreach (var itemEquAttrInfo in itemEquList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(itemEquAttrInfo.AttributeID.ToInt());
                    int strengNum = 0;
                    strengNum = MathUtils.Addition(itemEquAttrInfo.BaseNum, (itemEquAttrInfo.IncreaseNum * item.ItemLv), int.MaxValue);
                    //    dsItem1.PushIntoStack(itemEqu.BaseNum);
                    dsItem1.PushIntoStack(strengNum);
                    dsItem.PushIntoStack(dsItem1);
                }
            }
        }
Beispiel #4
0
        /// <summary>
        /// 选取题目
        /// </summary>
        /// <param name="count">取的数量</param>
        /// <param name="ignore">忽略的</param>
        /// <returns></returns>
        public override List <T> Extract(int count, Predicate <T> ignore)
        {
            var list     = CacheSet.FindAll(m => !ignore(m));
            var tempList = RandomUtils.GetRandomArray(list.ToArray(), count);

            return(new List <T>(tempList));
        }
Beispiel #5
0
        /// <summary>
        /// 圣吉塔战役
        /// </summary>
        /// <param name="plotNpcID"></param>
        /// <param name="difficultNum"></param>
        public MonsterQueue(int plotNpcID, double difficultNum)
        {
            var sjtEmbattleList = new ConfigCacheSet<SJTPlotEmbattleInfo>().FindAll();
            sjtEmbattleList = sjtEmbattleList.FindAll(m => m.PlotNpcID == plotNpcID);
            foreach (SJTPlotEmbattleInfo embattle in sjtEmbattleList)
            {
                int index = embattle.GridSeqNo - 1;

                IGeneral general = Create(embattle, difficultNum);
                if (general != null)
                {
                    SetQueue(index, general);
                }
            }
            this.PriorityNum = 0;
        }
Beispiel #6
0
        /// <summary>
        /// 圣吉塔战役
        /// </summary>
        /// <param name="plotNpcID"></param>
        /// <param name="difficultNum"></param>
        public MonsterQueue(int plotNpcID, double difficultNum)
        {
            var sjtEmbattleList = new ConfigCacheSet <SJTPlotEmbattleInfo>().FindAll();

            sjtEmbattleList = sjtEmbattleList.FindAll(m => m.PlotNpcID == plotNpcID);
            foreach (SJTPlotEmbattleInfo embattle in sjtEmbattleList)
            {
                int index = embattle.GridSeqNo - 1;

                IGeneral general = Create(embattle, difficultNum);
                if (general != null)
                {
                    SetQueue(index, general);
                }
            }
            this.PriorityNum = 0;
        }
Beispiel #7
0
        /// <summary>
        /// 默认玩家注册获得背包格子数
        /// </summary>
        /// <param name="userId"></param>
        public static void AddUserPack(string userId)
        {
            var userPack = _cacheSetUserPack.FindKey(userId);

            var backpackList = _cacheSetBackpack.FindAll();

            backpackList.ForEach(backpack =>
            {
                if (userPack == null)
                {
                    userPack              = new UserPack(userId.ToInt());
                    userPack.CreateDate   = DateTime.Now;
                    var packType          = new PackType();
                    packType.BackpackType = backpack.BackpackType;
                    packType.OpenNum      = 0;
                    packType.Position     = backpack.DefaultNum;
                    userPack.PackTypeList.Add(packType);
                    _cacheSetUserPack.Add(userPack, userId.ToInt());
                }
                else
                {
                    var packType = userPack.PackTypeList != null
                                                                ? userPack.PackTypeList.Find(
                        s => s.BackpackType == backpack.BackpackType)
                                                                : null;
                    if (packType == null)
                    {
                        packType = new PackType();
                        packType.BackpackType = backpack.BackpackType;
                        packType.OpenNum      = 0;
                        packType.Position     = backpack.DefaultNum;
                        userPack.PackTypeList.Add(packType);
                    }
                    else
                    {
                        packType.BackpackType = backpack.BackpackType;
                        packType.OpenNum      = 0;
                        packType.Position     = backpack.DefaultNum;
                    }
                }
            });
        }
Beispiel #8
0
        /// <summary>
        /// 佣兵升级
        /// </summary>
        /// <param name="userGeneral"></param>
        public static void GeneralUp(UserGeneral userGeneral)
        {
            var   cacheSetGeneralEscalate = new ConfigCacheSet <GeneralEscalateInfo>();
            var   GeneralEscalateList     = cacheSetGeneralEscalate.FindAll(s => s.GeneralType == GeneralType.YongBing && s.UpExperience <= userGeneral.CurrExperience);
            short generalLv = userGeneral.GeneralLv;
            GeneralEscalateInfo generalEscalateInfo = new GeneralEscalateInfo();

            GeneralEscalateList.ForEach(item =>
            {
                if (item.GeneralLv > generalLv)
                {
                    generalLv           = item.GeneralLv;
                    generalEscalateInfo = item;
                }
            });
            if (generalLv > userGeneral.GeneralLv)
            {
                userGeneral.GeneralLv = generalLv;

                userGeneral.CurrExperience = MathUtils.Subtraction(userGeneral.CurrExperience, generalEscalateInfo.UpExperience);
            }
        }
Beispiel #9
0
        /// <summary>
        /// 屏蔽敏感词
        /// </summary>
        /// <param name="keyWord"></param>
        /// <returns></returns>
        public static bool GetKeyWordSubstitution(string keyWord)
        {
            keyWord = keyWord.Trim();
            bool IsWord = false;
            ConfigCacheSet<ChatKeyWord> cacheSet = new ConfigCacheSet<ChatKeyWord>();
            List<ChatKeyWord> chatKeyWordArray = cacheSet.FindAll();
            foreach (ChatKeyWord chatKeyWord in chatKeyWordArray)
            {
                if (keyWord.IndexOf(chatKeyWord.KeyWord) >= 0)
                {
                    IsWord = true;
                    break;
                }

            }
            return IsWord;
        }
Beispiel #10
0
        public override bool TakeAction()
        {
            if (magicType == 0)
            {
                userMagicArray = new GameDataCacheSet <UserMagic>().FindAll(ContextUser.UserID).GetPaging(pageIndex, pageSize, out pageCount);
            }
            else
            {
                userMagicArray = new GameDataCacheSet <UserMagic>().FindAll(ContextUser.UserID, m => m.MagicType == magicType).GetPaging(pageIndex, pageSize, out pageCount);
                //List<UserMagic> tempList = new List<UserMagic>(userMagicArray);
                //userMagicArray = tempList.FindAll(m => m.MagicID != new GameUser().UserMagicID);
            }
            userMagicArray.ForEach(obj =>
            {
                obj.IsOpen = true;
            });
            if (magicType == MagicType.MoFaZhen)
            {
                var cacheSetMagic = new ConfigCacheSet <MagicInfo>();
                var magicList     = cacheSetMagic.FindAll(s => s.MagicType == MagicType.MoFaZhen && s.DemandLv > ContextUser.UserLv);

                magicList.ForEach(mgic =>
                {
                    if (userMagicArray.Find(s => s.MagicID == mgic.MagicID) == null)
                    {
                        UserMagic userMagic = new UserMagic();
                        userMagic.IsOpen    = mgic.DemandLv <= ContextUser.UserLv ? true : false;
                        userMagic.MagicID   = mgic.MagicID;
                        userMagic.UserID    = string.Empty;
                        userMagic.MagicLv   = 0;
                        userMagic.MagicType = MagicType.MoFaZhen;
                        userMagic.IsLv      = mgic.DemandLv;
                        userMagicArray.Add(userMagic);
                    }
                });
            }
            pageCount = MathUtils.Subtraction(pageCount, 1, 0);

            //List<UserQueue> userQueueArray = new GameDataCacheSet<UserQueue>().FindAll(ContextUser.UserID, m => m.QueueType == QueueType.MagicStrong);
            //if (userQueueArray.Count > 0 && userQueueArray[0].StrengNum >= 2)
            //{
            //    queueID = userQueueArray[0].QueueID;
            //    coldTime = userQueueArray[0].DoRefresh();
            //}
            userMagicArray.QuickSort((x, y) =>
            {
                if (x == null && y == null)
                {
                    return(0);
                }
                if (x != null && y == null)
                {
                    return(1);
                }
                if (x == null)
                {
                    return(-1);
                }
                return(x.MagicID.CompareTo(y.MagicID));
            });
            ////记录操作日志
            //UserOperationLog userOperationLog = new UserOperationLog();
            //userOperationLog.UserID = ContextUser.UserID;
            //userOperationLog.ActionID = ActionIDDefine.Cst_Action1501;
            //userOperationLog.FunctionID = "魔术列表";
            //userOperationLog.CreateDate = DateTime.Now;
            //userOperationLog.Num = 1;
            //userOperationLog.Append();
            return(true);
        }
Beispiel #11
0
        public override bool TakeAction()
        {
            if (magicType == 0)
            {
                userMagicArray = new GameDataCacheSet<UserMagic>().FindAll(ContextUser.UserID).GetPaging(pageIndex, pageSize, out pageCount);
            }
            else
            {
                userMagicArray = new GameDataCacheSet<UserMagic>().FindAll(ContextUser.UserID, m => m.MagicType == magicType).GetPaging(pageIndex, pageSize, out pageCount);
                //List<UserMagic> tempList = new List<UserMagic>(userMagicArray);
                //userMagicArray = tempList.FindAll(m => m.MagicID != new GameUser().UserMagicID);
            }
            userMagicArray.ForEach(obj =>
            {
                obj.IsOpen = true;
            });
            if (magicType == MagicType.MoFaZhen)
            {
                var cacheSetMagic = new ConfigCacheSet<MagicInfo>();
                var magicList = cacheSetMagic.FindAll(s => s.MagicType == MagicType.MoFaZhen && s.DemandLv > ContextUser.UserLv);

                magicList.ForEach(mgic =>
                {
                    if (userMagicArray.Find(s => s.MagicID == mgic.MagicID) == null)
                    {
                        UserMagic userMagic = new UserMagic();
                        userMagic.IsOpen = mgic.DemandLv <= ContextUser.UserLv ? true : false;
                        userMagic.MagicID = mgic.MagicID;
                        userMagic.UserID = string.Empty;
                        userMagic.MagicLv = 0;
                        userMagic.MagicType = MagicType.MoFaZhen;
                        userMagic.IsLv = mgic.DemandLv;
                        userMagicArray.Add(userMagic);
                    }
                });
            }
            pageCount = MathUtils.Subtraction(pageCount, 1, 0);

            //List<UserQueue> userQueueArray = new GameDataCacheSet<UserQueue>().FindAll(ContextUser.UserID, m => m.QueueType == QueueType.MagicStrong);
            //if (userQueueArray.Count > 0 && userQueueArray[0].StrengNum >= 2)
            //{
            //    queueID = userQueueArray[0].QueueID;
            //    coldTime = userQueueArray[0].DoRefresh();
            //}
            userMagicArray.QuickSort((x, y) =>
            {
                if (x == null && y == null) return 0;
                if (x != null && y == null) return 1;
                if (x == null) return -1;
                return x.MagicID.CompareTo(y.MagicID);
            });
            ////记录操作日志
            //UserOperationLog userOperationLog = new UserOperationLog();
            //userOperationLog.UserID = ContextUser.UserID;
            //userOperationLog.ActionID = ActionIDDefine.Cst_Action1501;
            //userOperationLog.FunctionID = "魔术列表";
            //userOperationLog.CreateDate = DateTime.Now;
            //userOperationLog.Num = 1;
            //userOperationLog.Append();
            return true;
        }
 /// <summary>
 /// ��ȡ�¼�����
 /// </summary>
 /// <param name="parentTaskID"></param>
 /// <returns></returns>
 public static IList<StoryTaskInfo> GetNextTask(int parentTaskID)
 {
     var cacheSet = new ConfigCacheSet<StoryTaskInfo>();
     return cacheSet.FindAll(m => m.PreTaskID.Any(taskId => taskId == parentTaskID));
 }
Beispiel #13
0
        /// <summary>
        /// ��ȡ�¼�����
        /// </summary>
        /// <param name="parentTaskID"></param>
        /// <returns></returns>
        public static IList <StoryTaskInfo> GetNextTask(int parentTaskID)
        {
            var cacheSet = new ConfigCacheSet <StoryTaskInfo>();

            return(cacheSet.FindAll(m => m.PreTaskID.Any(taskId => taskId == parentTaskID)));
        }
Beispiel #14
0
        /// <summary>
        /// 佣兵升级
        /// </summary>
        /// <param name="userGeneral"></param>
        public static void GeneralUp(UserGeneral userGeneral)
        {

            var cacheSetGeneralEscalate = new ConfigCacheSet<GeneralEscalateInfo>();
            var GeneralEscalateList = cacheSetGeneralEscalate.FindAll(s => s.GeneralType == GeneralType.YongBing && s.UpExperience <= userGeneral.CurrExperience);
            short generalLv = userGeneral.GeneralLv;
            GeneralEscalateInfo generalEscalateInfo = new GeneralEscalateInfo();
            GeneralEscalateList.ForEach(item =>
            {
                if (item.GeneralLv > generalLv)
                {
                    generalLv = item.GeneralLv;
                    generalEscalateInfo = item;
                }
            });
            if (generalLv > userGeneral.GeneralLv)
            {
                userGeneral.GeneralLv = generalLv;

                userGeneral.CurrExperience = MathUtils.Subtraction(userGeneral.CurrExperience, generalEscalateInfo.UpExperience);

            }
        }