Esempio n. 1
0
        /// <summary>
        /// 法宝加经验,升级
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="experience"></param>
        public static void CheckTrumpEscalate(string userID, int experience)
        {
            UserTrump userTrump = new GameDataCacheSet<UserTrump>().FindKey(userID, TrumpInfo.CurrTrumpID);
            if (userTrump != null)
            {
                userTrump.Experience = MathUtils.Addition(userTrump.Experience, experience);
                while (userTrump.TrumpLv < GameConfigSet.MaxTrumpLv)
                {
                    short upLv = MathUtils.Addition(userTrump.TrumpLv, (short)1, GameConfigSet.MaxTrumpLv.ToShort());
                    TrumpInfo trumpInfo = new ConfigCacheSet<TrumpInfo>().FindKey(TrumpInfo.CurrTrumpID, upLv);
                    if (trumpInfo != null && userTrump.Experience >= trumpInfo.Experience)
                    {
                        userTrump.TrumpLv = MathUtils.Addition(userTrump.TrumpLv, (short)1, GameConfigSet.MaxTrumpLv.ToShort());
                        userTrump.Experience = MathUtils.Subtraction(userTrump.Experience, trumpInfo.Experience);
                        if (trumpInfo.SkillID > 0)
                        {
                            SkillInfo skillInfo = new SkillInfo();
                            skillInfo.AbilityID = trumpInfo.SkillID.ToInt();
                            skillInfo.AbilityLv = 1;
                            userTrump.SkillInfo.Add(skillInfo);
                        }
                    }
                    else
                    {
                        break;
                    }

                }
                if (userTrump.TrumpLv >= GameConfigSet.MaxTrumpLv)
                {
                    userTrump.Experience = 0;
                }
            }
        }
Esempio n. 2
0
        public override bool TakeAction()
        {
            UserDailyRestrain dailyRestrain = new GameDataCacheSet<UserDailyRestrain>().FindKey(ContextUser.UserID);
            if (RankingHelper.IsGainSportsReward(ContextUser.UserID) && dailyRestrain != null && dailyRestrain.UserExtend != null)
            {
                var envSet = ServerEnvSet.Get(ServerEnvKey.JingJiChangReward, "");
                SportsRewardInfo sportsInfo = new ConfigCacheSet<SportsRewardInfo>().FindKey(dailyRestrain.UserExtend.UserRankID);
                {                if (envSet != null && sportsInfo != null)

                    if (envSet.ToDateTime().Date > dailyRestrain.Funtion11.Date && dailyRestrain.UserExtend.UserRankID > 0)
                    {

                        dailyRestrain.Funtion11 = DateTime.Now;
                        dailyRestrain.UserExtend.UserRankID = 0;
                        //dailyRestrain.Update();

                        ContextUser.ObtainNum = MathUtils.Addition(ContextUser.ObtainNum, sportsInfo.RewardObtian, int.MaxValue);
                        ContextUser.GameCoin = MathUtils.Addition(ContextUser.GameCoin, sportsInfo.RewardGoin, int.MaxValue);
                        //ContextUser.Update();
                        UserHelper.Contribution(ContextUser.UserID, sportsInfo.RewardObtian);
                        ErrorInfo = string.Format(LanguageManager.GetLang().St5106_JingJiChangRankReward, sportsInfo.RewardObtian, sportsInfo.RewardGoin);
                    }
                }
            }
            return true;
        }
Esempio n. 3
0
        public override void BuildPacket()
        {
            this.PushIntoStack(magicList.Count);
            foreach (MagicInfo magicInfo in magicList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(magicInfo.MagicID);
                dsItem.PushIntoStack(magicInfo.MagicType.ToInt());
                dsItem.PushIntoStack(magicInfo.MagicName.ToNotNullString());
                dsItem.PushIntoStack(magicInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(magicInfo.MagicDesc.ToNotNullString());

                var magicLvList = new ConfigCacheSet<MagicLvInfo>().FindAll(m => m.MagicID == magicInfo.MagicID);
                dsItem.PushIntoStack(magicLvList.Count);
                foreach (MagicLvInfo magicLv in magicLvList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(magicLv.MagicLv.ToShort());
                    dsItem1.PushIntoStack(magicLv.ExpNum);
                    dsItem1.PushIntoStack(magicLv.ColdTime);
                    dsItem1.PushIntoStack(magicLv.EscalateMinLv.ToShort());
                    dsItem1.PushIntoStack(magicLv.AbilityType.ToShort());
                    dsItem1.PushIntoStack(magicLv.EffectNum.ToNotNullString());
                    dsItem1.PushIntoStack(magicLv.GridMaxNum);

                    dsItem.PushIntoStack(dsItem1);
                }

                this.PushIntoStack(dsItem);
            }
        }
Esempio n. 4
0
        public override void BuildPacket()
        {
            this.PushIntoStack(pageCount);
            this.PushIntoStack(userItemArray.Count);
            foreach (UserItemInfo item in userItemArray)
            {
                ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(item.ItemID);
                DataStruct dsItem = new DataStruct();
                int mallPrice = 0;
                if (itemInfo != null && itemInfo.ItemType == ItemType.ZhuangBei)
                {
                    mallPrice = UserHelper.StrongEquPayPrice(Uid, item.UserItemID);
                }
                else if (itemInfo != null)
                {
                    mallPrice = ((itemInfo.SalePrice) * item.Num / 4);
                }

                dsItem.PushIntoStack(item.UserItemID.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.QualityType);
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(mallPrice);

                PushIntoStack(dsItem);
            }
            PushIntoStack(ContextUser.GameCoin);
            PushIntoStack(ContextUser.GoldNum);
        }
Esempio n. 5
0
        public override void BuildPacket()
        {
            this.PushIntoStack(TaskHelper.DailyEveryMaxNum);
            this.PushIntoStack(currNum);
            this.PushIntoStack(userTaskList.Count);
            foreach (UserTask userTask in userTaskList)
            {
                DailyTaskInfo dtaskInfo = new ConfigCacheSet<DailyTaskInfo>().FindKey(userTask.TaskID);
                var userItem = userTask.GetDailyItem(userLv);
                ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(userItem != null ? userItem.ItemID : 0);

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(userTask.TaskID);
                dsItem.PushIntoStack(dtaskInfo.TaskName.ToNotNullString());
                dsItem.PushIntoStack((short)userTask.TaskState);
                dsItem.PushIntoStack((short)userTask.TaskType);
                dsItem.PushIntoStack((short)userTask.TaskStar);
                dsItem.PushIntoStack(dtaskInfo.TaskDescp.ToNotNullString());
                dsItem.PushIntoStack(dtaskInfo.TaskTarget);
                dsItem.PushIntoStack((int)userTask.TaskStar);
                dsItem.PushIntoStack(userTask.TaskTargetNum.ToInt());
                dsItem.PushIntoStack(userTask.GetDailyExpNum(userLv));
                dsItem.PushIntoStack(itemInfo != null ? itemInfo.ItemName.ToNotNullString() : string.Empty);
                dsItem.PushIntoStack(userItem != null ? userItem.Num : 0);

                this.PushIntoStack(dsItem);
            }
        }
Esempio n. 6
0
 public override bool TakeAction()
 {
     var package = UserItemPackage.Get(ContextUser.UserID);
     UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID == userItemID);
     if (userItem != null)
     {
         UserTrump userTrump = new GameDataCacheSet<UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);
         if (userTrump != null && userTrump.TrumpLv >= GameConfigSet.MaxTrumpLv)
         {
             ErrorCode = LanguageManager.GetLang().ErrorCode;
             ErrorInfo = LanguageManager.GetLang().St1456_OutTrumpMaxLv;
             return false;
         }
         ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(userItem.ItemID);
         if (itemInfo != null && itemInfo.PropType == 10)
         {
             TrumpHelper.CheckTrumpEscalate(ContextUser.UserID, itemInfo.EffectNum);
             UserItemHelper.UseUserItem(ContextUser.UserID, itemInfo.ItemID, 1);
             var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
             if (usergeneral != null)
             {
                 usergeneral.RefreshMaxLife();
             }
         }
     }
     return true;
 }
Esempio n. 7
0
        public override bool TakeAction()
        {
            UserTrump userTrump = new GameDataCacheSet<UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);
            if (userTrump != null && userTrump.PropertyInfo.Count > 0)
            {
                GeneralProperty property = userTrump.PropertyInfo.Find(m => m.AbilityType == propertyID);
                if (property != null)
                {
                    if (property.AbilityLv >= TrumpPropertyInfo.MaxTrumpPropertyLv)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St1466_OutPropertyMaxLv;
                        return false;
                    }
                    TrumpPropertyInfo trumpProperty = new ConfigCacheSet<TrumpPropertyInfo>().FindKey(property.AbilityType, property.AbilityLv);
                    if (trumpProperty != null)
                    {
                        int upItemNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, trumpProperty.ItemID);
                        if (upItemNum < trumpProperty.ItemNum)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St1462_ItemNumNotEnough;
                            return false;
                        }
                        if (ContextUser.GameCoin < trumpProperty.GameCoin)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough;
                            return false;
                        }
                        if (ContextUser.ObtainNum < trumpProperty.ObtainNum)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St_ObtainNumNotEnough;
                            return false;
                        }
                        ContextUser.ObtainNum = MathUtils.Subtraction(ContextUser.ObtainNum, trumpProperty.ObtainNum);
                        ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, trumpProperty.GameCoin);
                        UserItemHelper.UseUserItem(ContextUser.UserID, trumpProperty.ItemID, trumpProperty.ItemNum);
                        short upLv = MathUtils.Addition(property.AbilityLv, (short)1, (short)TrumpPropertyInfo.MaxTrumpPropertyLv);
                        TrumpPropertyInfo uptrumpProperty = new ConfigCacheSet<TrumpPropertyInfo>().FindKey(property.AbilityType, upLv);
                        property.UpdateNotify(obj =>
                        {
                            property.AbilityLv = MathUtils.Addition(property.AbilityLv, (short)1, TrumpPropertyInfo.MaxTrumpPropertyLv);
                            property.AbilityValue = uptrumpProperty.PropertyNum;
                            return true;
                        });
                        var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
                        if (usergeneral != null)
                        {
                            usergeneral.RefreshMaxLife();
                        }
                        ErrorCode = 0;
                        ErrorInfo = LanguageManager.GetLang().St1464_UpgradeWasSsuccessful;

                    }
                }
            }
            return true;
        }
Esempio n. 8
0
        /// <summary>
        /// 奖励命运水晶
        /// </summary>
        public static void GetUserCrystal(GameUser user, CrystalQualityType qualityType)
        {
            List <CrystalInfo> crystalArray2 = new ConfigCacheSet <CrystalInfo>().FindAll(m => m.CrystalQuality == qualityType);

            if (crystalArray2.Count > 0)
            {
                int         randomNum = RandomUtils.GetRandom(0, crystalArray2.Count);
                CrystalInfo crystal   = new ConfigCacheSet <CrystalInfo>().FindKey(crystalArray2[randomNum].CrystalID);
                UserHelper.CrystalAppend(user.UserID, crystal.CrystalID, 2);
                string chatcontent = string.Empty;
                if (crystal.CrystalQuality == CrystalQualityType.Orange)
                {
                    chatcontent = LanguageManager.GetLang().St1305_GainQualityNotice;
                }
                else
                {
                    chatcontent = LanguageManager.GetLang().St1305_HighQualityNotice;
                }
                string content = string.Format(chatcontent,
                                               user.NickName,
                                               CrystalHelper.GetQualityName(crystal.CrystalQuality),
                                               crystal.CrystalName
                                               );
                new TjxChatService().SystemSend(ChatType.World, content);
            }
        }
Esempio n. 9
0
        /// <summary>
        /// 奖励命运水晶
        /// </summary>
        public static string UserUserUniversalCrystal(GameUser user, CrystalQualityType qualityType, string systemContent)
        {
            string             crystalContent = string.Empty;
            List <CrystalInfo> crystalArray2  = new ConfigCacheSet <CrystalInfo>().FindAll(m => m.CrystalQuality == qualityType);

            if (crystalArray2.Count > 0)
            {
                int             randomNum      = RandomUtils.GetRandom(0, crystalArray2.Count);
                CrystalInfo     crystal        = new ConfigCacheSet <CrystalInfo>().FindKey(crystalArray2[randomNum].CrystalID);
                var             packageCrystal = UserCrystalPackage.Get(user.UserID);
                UserCrystalInfo userCrystal    = new UserCrystalInfo()
                {
                    UserCrystalID = Guid.NewGuid().ToString(),
                    CrystalID     = crystal.CrystalID,
                    CrystalLv     = 1,
                    CurrExprience = 0,
                    GeneralID     = 0,
                    IsSale        = 2,
                    CreateDate    = DateTime.Now,
                };
                packageCrystal.SaveCrystal(userCrystal);

                crystalContent = string.Format(LanguageManager.GetLang().st_FestivalInfoReward, systemContent, string.Format(LanguageManager.GetLang().St_Crystal, qualityType, crystal.CrystalName));
            }
            return(crystalContent);
        }
Esempio n. 10
0
 public override void BuildPacket()
 {
     PushIntoStack(_pageCount);
     PushIntoStack(ContextUser.GameCoin);
     PushIntoStack(ContextUser.GoldNum);
     PushIntoStack(_mallItemsInfoArray.Count);
     foreach (MallItemsInfo mallItems in _mallItemsInfoArray)
     {
         ItemBaseInfo itemInfo    = new ConfigCacheSet <ItemBaseInfo>().FindKey(mallItems.ItemID);
         int          mallPrice   = 0;
         int          specilPrice = 0;
         if (itemInfo != null)
         {
             mallPrice = mallItems.Price;
             if (mallItems.MallType == ShopType.Props || mallItems.MallType == ShopType.PresendBox)
             {
                 mallPrice = (FestivalHelper.StoreDiscount() * mallPrice).ToInt();
             }
             specilPrice = mallItems.SpecialPrice;
         }
         DataStruct dsItem = new DataStruct();
         dsItem.PushIntoStack(mallItems.ItemID);
         dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
         dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
         dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.MaxHeadID.ToNotNullString());
         dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemDesc.ToNotNullString());
         dsItem.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.QualityType);
         dsItem.PushIntoStack(mallPrice);
         dsItem.PushIntoStack(specilPrice);
         dsItem.PushIntoStack(mallItems.SeqNO);
         dsItem.PushIntoStack((short)_commandType);
         PushIntoStack(dsItem);
     }
     PushIntoStack(ContextUser.ObtainNum);
 }
Esempio n. 11
0
        public static short _currMaxLv = GameConfigSet.CurrMaxLv.ToShort(); //玩家最大等级

        /// <summary>
        /// 将星佣兵完成任务后奖励物品名称
        /// </summary>
        /// <param name="prize"></param>
        /// <returns></returns>
        public static string PrizeItemName(PrizeInfo prize)
        {
            string name = string.Empty;
            switch (prize.Type)
            {
                case RewardType.CrystalId:
                    CrystalInfo crystal = new ConfigCacheSet<CrystalInfo>().FindKey(prize.ItemID);
                    name = crystal == null ? string.Empty : crystal.CrystalName;
                    break;
                case RewardType.Item:
                    ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(prize.ItemID);
                    name = itemInfo == null ? string.Empty : itemInfo.ItemName;
                    break;
                case RewardType.Spare:
                    SparePartInfo sparePartInfo = new ConfigCacheSet<SparePartInfo>().FindKey(prize.ItemID);
                    name = sparePartInfo == null ? string.Empty : sparePartInfo.Name;
                    break;
                case RewardType.CrystalType:
                    name = string.Format(LanguageManager.GetLang().St_Crystal,
                                         CrystalHelper.GetQualityName(prize.CrystalType.ToEnum<CrystalQualityType>()),
                                         string.Empty);
                    break;

            }
            return name;
        }
Esempio n. 12
0
        public override void BuildPacket()
        {
            this.PushIntoStack(magicList.Count);
            foreach (MagicInfo magicInfo in magicList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(magicInfo.MagicID);
                dsItem.PushIntoStack(magicInfo.MagicType.ToInt());
                dsItem.PushIntoStack(magicInfo.MagicName.ToNotNullString());
                dsItem.PushIntoStack(magicInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(magicInfo.MagicDesc.ToNotNullString());

                var magicLvList = new ConfigCacheSet <MagicLvInfo>().FindAll(m => m.MagicID == magicInfo.MagicID);
                dsItem.PushIntoStack(magicLvList.Count);
                foreach (MagicLvInfo magicLv in magicLvList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(magicLv.MagicLv.ToShort());
                    dsItem1.PushIntoStack(magicLv.ExpNum);
                    dsItem1.PushIntoStack(magicLv.ColdTime);
                    dsItem1.PushIntoStack(magicLv.EscalateMinLv.ToShort());
                    dsItem1.PushIntoStack(magicLv.AbilityType.ToShort());
                    dsItem1.PushIntoStack(magicLv.EffectNum.ToNotNullString());
                    dsItem1.PushIntoStack(magicLv.GridMaxNum);

                    dsItem.PushIntoStack(dsItem1);
                }

                this.PushIntoStack(dsItem);
            }
        }
Esempio n. 13
0
        public override void BuildPacket()
        {
            this.PushIntoStack(medicineArray.Length);
            foreach (string item in medicineArray)
            {
                short               mType         = (short)medicineType;
                string[]            mArray        = item.Replace("{", "").Replace("}", "").Split('=');
                short               medicineLv    = 0;
                int                 useGold       = 0;
                List <ItemBaseInfo> itemInfoArray = new List <ItemBaseInfo>();
                if (mArray.Length > 0)
                {
                    string q = mArray[0];
                    string b = mArray[1];
                    medicineLv    = q.ToShort();
                    useGold       = b.ToShort();
                    itemInfoArray = new ConfigCacheSet <ItemBaseInfo>().FindAll(u => u.MedicineLv.Equals(medicineLv) && u.MedicineType.Equals(mType) && u.ItemType == ItemType.YaoJi);
                }
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(itemInfoArray.Count == 0 ? 0 : itemInfoArray[0].ItemID);
                dsItem.PushIntoStack(itemInfoArray.Count == 0 ? string.Empty : itemInfoArray[0].ItemName.ToNotNullString());
                dsItem.PushIntoStack(medicineLv);
                dsItem.PushIntoStack(itemInfoArray.Count == 0 ? string.Empty : itemInfoArray[0].HeadID.ToNotNullString());
                dsItem.PushIntoStack(useGold);

                this.PushIntoStack(dsItem);
            }
        }
Esempio n. 14
0
        public override void BuildPacket()
        {
            PushIntoStack(moreTeam.MorePlot.PlotID);
            PushIntoStack(moreTeam.MorePlot.PlotName.ToNotNullString());
            PushIntoStack(moreTeam.UserList.Count);
            PushIntoStack(PlotTeamCombat.TeamMaxPeople);
            PushIntoStack(moreTeam.MorePlot.ItemId);
            PushIntoStack(moreTeam.MorePlot.ItemName.ToNotNullString());
            PushIntoStack(moreTeam.MorePlot.ItemNum);
            PushIntoStack(moreTeam.MorePlot.ExpNum);
            PushIntoStack(moreTeam.TeamUser != null && moreTeam.TeamUser.UserId.ToNotNullString().Equals(Uid) ? 1 : 0);
            PushIntoStack(moreTeam.Status);

            PushIntoStack(moreTeam.UserList.Count);
            foreach (var teamUser in moreTeam.UserList)
            {
                var gameUser = new GameDataCacheSet<GameUser>().FindKey(teamUser.UserId);
                UserGeneral general = UserGeneral.GetMainGeneral(teamUser.UserId);
                CareerInfo careerInfo = null;
                if (general != null)
                {
                    careerInfo = new ConfigCacheSet<CareerInfo>().FindKey(general.CareerID);
                }

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(teamUser.UserId);
                dsItem.PushIntoStack(teamUser.NickName.ToNotNullString());
                dsItem.PushIntoStack(careerInfo == null ? 0 : (int)careerInfo.CareerID);
                dsItem.PushIntoStack(careerInfo == null ? string.Empty : careerInfo.CareerName.ToNotNullString());
                dsItem.PushIntoStack(gameUser == null ? (short)0 : gameUser.UserLv);
                PushIntoStack(dsItem);
            }
        }
Esempio n. 15
0
        public override void BuildPacket()
        {
            PushIntoStack(firstName.ToNotNullString());
            this.PushIntoStack((short)postType);
            this.PushIntoStack((short)isApply);
            this.PushIntoStack(fightList.Count);
            foreach (var fight in fightList)
            {
                CityInfo cityInfo = new ConfigCacheSet<CityInfo>().FindKey(fight.CityID);
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(fight.CityID);
                dsItem.PushIntoStack(cityInfo == null ? string.Empty : cityInfo.CityName.ToNotNullString());
                dsItem.PushIntoStack(fight.CityHead.ToNotNullString());
                dsItem.PushIntoStack((short)fight.GuildLv);
                dsItem.PushIntoStack(fight.SkillNum);
                this.PushIntoStack(dsItem);
            }
            this.PushIntoStack(currCityName.ToNotNullString());
            this.PushIntoStack(rewardDesc.ToNotNullString());
            this.PushIntoStack(guildName.ToNotNullString());
            this.PushIntoStack(endData);
            this.PushIntoStack((short)isChampion);


        }
Esempio n. 16
0
        public override void BuildPacket()
        {
            this.PushIntoStack(lifeNum);
            this.PushIntoStack((short)powerNum);
            this.PushIntoStack((short)soulNum);
            this.PushIntoStack((short)intelligenceNum);
            this.PushIntoStack((short)isPractice);
            this.PushIntoStack(storyTaskArray.Length);
            foreach (var task in storyTaskArray)
            {
                int collectNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, task.TargetItemID);
                iscomplete = IsComplete(ContextUser, task);
                PlotInfo     plotInfo = new ConfigCacheSet <PlotInfo>().FindKey(task.PlotID);
                ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(task.TargetItemID);
                DataStruct   dsItem   = new DataStruct();
                dsItem.PushIntoStack(task.TaskID);
                dsItem.PushIntoStack(task.TaskName.ToNotNullString());
                dsItem.PushIntoStack(task.TaskDescp.ToNotNullString());
                dsItem.PushIntoStack(plotInfo == null ? 0 : plotInfo.CityID);
                dsItem.PushIntoStack(task.PlotID);
                dsItem.PushIntoStack(task.TargetItemID);
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(collectNum);
                dsItem.PushIntoStack(task.TargetItemNum);
                dsItem.PushIntoStack((short)iscomplete);

                this.PushIntoStack(dsItem);
            }
        }
Esempio n. 17
0
        /// <summary>
        /// 佣兵武器开启的附魔格子
        /// </summary>
        /// <param name="itemLv"></param>
        /// <returns></returns>
        public static short EnchantOpenGridNum(short itemLv)
        {
            short gridNum     = 0;
            var   mosaicInfos = new ConfigCacheSet <MosaicInfo>().FindAll(m => m.DemandLv <= itemLv);

            mosaicInfos.QuickSort((x, y) =>
            {
                int result = 0;
                if (x == null && y == null)
                {
                    return(0);
                }
                if (x != null && y == null)
                {
                    return(1);
                }
                if (x == null)
                {
                    return(-1);
                }
                result = y.DemandLv.CompareTo(x.DemandLv);
                return(result);
            });
            if (mosaicInfos.Count > 0)
            {
                gridNum = mosaicInfos[0].Position.ToShort();
            }
            return(gridNum);
        }
Esempio n. 18
0
        public override bool TakeAction()
        {
            if (!UserHelper.IsOpenFunction(ContextUser.UserID, FunctionEnum.Trump))
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St_NoFun;
                return(false);
            }
            short     trumpLv   = 1;
            TrumpInfo trumpInfo = new ConfigCacheSet <TrumpInfo>().FindKey(TrumpInfo.CurrTrumpID, trumpLv);

            if (trumpInfo != null && trumpInfo.Property.Count > 0)
            {
                lifeNum         = TrumpHelper.GetTrumpProperty(trumpInfo, AbilityType.ShengMing).ToInt();
                powerNum        = TrumpHelper.GetTrumpProperty(trumpInfo, AbilityType.PowerNum);
                soulNum         = TrumpHelper.GetTrumpProperty(trumpInfo, AbilityType.SoulNum);
                intelligenceNum = TrumpHelper.GetTrumpProperty(trumpInfo, AbilityType.IntelligenceNum);
            }
            storyTaskArray = new ConfigCacheSet <StoryTaskInfo>().FindAll(m => m.TaskType == TaskType.Trump).ToArray();
            if (TrumpHelper.IsTrumpPractice(ContextUser.UserID))
            {
                isPractice = 1;
            }
            else
            {
                iscomplete = 0;
            }
            return(true);
        }
Esempio n. 19
0
 public override void BuildPacket()
 {
     this.PushIntoStack(pageCount);
     this.PushIntoStack(abilityArray.Count);
     foreach (GuildAbility ability in abilityArray)
     {
         GuildAbilityInfo abilityInfo = new ConfigCacheSet<GuildAbilityInfo>().FindKey(ability.ID);
         if (abilityInfo != null)
         {
             isCityCombat = abilityInfo.IsCityCombat ? (short)1 : (short)0;
         }
         GuildAbilityLvInfo abilityLvInfo = new ConfigCacheSet<GuildAbilityLvInfo>().FindKey(ability.ID, ability.Lv);
         DataStruct dsItem = new DataStruct();
         dsItem.PushIntoStack(ability.ID);
         dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.AbilityName.ToNotNullString());
         dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.AbilityHead.ToNotNullString());
         dsItem.PushIntoStack(ability.Lv);
         dsItem.PushIntoStack(abilityLvInfo == null ? string.Empty : abilityLvInfo.EffectNum.ToString().ToNotNullString());
         dsItem.PushIntoStack(abilityLvInfo == null ? 0 : abilityLvInfo.UpDonateNum);
         dsItem.PushIntoStack(isCityCombat);
         dsItem.PushIntoStack(abilityInfo == null ? (short)0 : (short)abilityInfo.GuildAbilityType);
         this.PushIntoStack(dsItem);
     }
     this.PushIntoStack(gAbilityInfo == null ? string.Empty : gAbilityInfo.AbilityName.ToNotNullString());
     this.PushIntoStack(currExperience);
     this.PushIntoStack(donateCoin);
     this.PushIntoStack(donateGold);
 }
Esempio n. 20
0
        public override void BuildPacket()
        {
            this.PushIntoStack(lifeNum);
            this.PushIntoStack((short)powerNum);
            this.PushIntoStack((short)soulNum);
            this.PushIntoStack((short)intelligenceNum);
            this.PushIntoStack((short)isPractice);
            this.PushIntoStack(storyTaskArray.Length);
            foreach (var task in storyTaskArray)
            {
                int collectNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, task.TargetItemID);
                iscomplete = IsComplete(ContextUser, task);
                PlotInfo plotInfo = new ConfigCacheSet<PlotInfo>().FindKey(task.PlotID);
                ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(task.TargetItemID);
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(task.TaskID);
                dsItem.PushIntoStack(task.TaskName.ToNotNullString());
                dsItem.PushIntoStack(task.TaskDescp.ToNotNullString());
                dsItem.PushIntoStack(plotInfo == null ? 0 : plotInfo.CityID);
                dsItem.PushIntoStack(task.PlotID);
                dsItem.PushIntoStack(task.TargetItemID);
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(collectNum);
                dsItem.PushIntoStack(task.TargetItemNum);
                dsItem.PushIntoStack((short)iscomplete);

                this.PushIntoStack(dsItem);
            }

        }
Esempio n. 21
0
        private void CreateMagic(GameUser userEntity)
        {
            UserMagic userMagic = new UserMagic
            {
                UserID    = userEntity.UserID,
                IsEnabled = true,
                MagicID   = new GameUser().UserMagicID,
                MagicLv   = 1,
                MagicType = MagicType.MoFaZhen
            };
            var cacheUserMagic = new GameDataCacheSet <UserMagic>();

            cacheUserMagic.Add(userMagic, GameEnvironment.CacheUserPeriod);
            cacheUserMagic.Update();

            //初始阵法
            string[] gridRange = new ConfigCacheSet <MagicLvInfo>().FindKey(userMagic.MagicID, userMagic.MagicLv).GridRange.Split(new char[] { ',' });
            if (gridRange.Length > 0)
            {
                string       grid         = gridRange[0];
                UserEmbattle userEmbattle = new UserEmbattle
                {
                    UserID    = userEntity.UserID,
                    GeneralID = generalID,
                    MagicID   = userMagic.MagicID,
                    Position  = grid.ToShort()
                };
                var cacheEmbattle = new GameDataCacheSet <UserEmbattle>();
                cacheEmbattle.Add(userEmbattle, GameEnvironment.CacheUserPeriod);
                cacheEmbattle.Update();
            }
        }
Esempio n. 22
0
 public override void BuildPacket()
 {
     this.PushIntoStack(heritageList.Count);
     foreach (var item in heritageList)
     {
         UserGeneral userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, item.GeneralID);
         GeneralInfo general     = new ConfigCacheSet <GeneralInfo>().FindKey(item.GeneralID);
         DataStruct  dsItem      = new DataStruct();
         dsItem.PushIntoStack((short)item.Type);
         dsItem.PushIntoStack(userGeneral == null ? 0 : userGeneral.GeneralID);
         dsItem.PushIntoStack(userGeneral == null ? string.Empty : ObjectExtend.ToNotNullString(userGeneral.GeneralName));
         dsItem.PushIntoStack(general == null ? string.Empty : ObjectExtend.ToNotNullString(general.BattleHeadID));
         dsItem.PushIntoStack(item.GeneralLv);
         dsItem.PushIntoStack(item.PowerNum);
         dsItem.PushIntoStack(item.SoulNum);
         dsItem.PushIntoStack(item.IntellectNum);
         dsItem.PushIntoStack(userGeneral == null ? (short)0 : (short)userGeneral.GeneralQuality);
         this.PushIntoStack(dsItem);
     }
     this.PushIntoStack(opsInfoList.Count);
     foreach (var item in opsInfoList)
     {
         DataStruct dsItem = new DataStruct();
         dsItem.PushIntoStack(item.Type);
         dsItem.PushIntoStack(item.VipLv);
         dsItem.PushIntoStack(item.UseGold);
         dsItem.PushIntoStack(item.ItemID);
         dsItem.PushIntoStack(item.ItemNum);
         this.PushIntoStack(dsItem);
     }
     this.PushIntoStack(heritageName.ToNotNullString());
     this.PushIntoStack(heritageLv);
     this.PushIntoStack(disGeneralName.ToNotNullString());
 }
Esempio n. 23
0
        public override void BuildPacket()
        {
            PushIntoStack(ContextUser.GoldNum);
            PushIntoStack(ContextUser.GameCoin);
            PushIntoStack(freeNum);
            PushIntoStack(isSale);
            PushIntoStack(issTelegrams);
            PushIntoStack(grayCrystalArray.Count);
            foreach (GrayCrystal crystal in grayCrystalArray)
            {
                CrystalInfo crystalInfo = new ConfigCacheSet<CrystalInfo>().FindKey(crystal.CrystalID) ?? new CrystalInfo();
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(crystal.UserCrystalID);
                dsItem.PushIntoStack(crystalInfo.CrystalID);
                dsItem.PushIntoStack(crystalInfo.CrystalName.ToNotNullString());
                dsItem.PushIntoStack(crystalInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack((short)crystalInfo.CrystalQuality);
                PushIntoStack(dsItem);
            }
            PushIntoStack(userLightArray.Count);
            foreach (UserLight light in userLightArray)
            {
                ProbabilityInfo probabilityInfo = new ConfigCacheSet<ProbabilityInfo>().FindKey(light.HuntingID);
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(light.HuntingID);
                dsItem.PushIntoStack(probabilityInfo == null ? 0 : probabilityInfo.Price);
                dsItem.PushIntoStack(light.IsLight);
                PushIntoStack(dsItem);
            }
            this.PushIntoStack(prompt.ToNotNullString());

        }
Esempio n. 24
0
        public override bool TakeAction()
        {
            var          plotTeam = new PlotTeamCombat(ContextUser);
            MorePlotTeam moreTeam = plotTeam.GetTeam(teamID);

            if (moreTeam != null && moreTeam.UserList.Count <= 1)
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                this.ErrorInfo = LanguageManager.GetLang().St4210_PeopleNotEnough;
                return(false);
            }

            PlotInfo plotInfo = new ConfigCacheSet <PlotInfo>().FindKey(plotID);

            if (plotInfo == null)
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                this.ErrorInfo = LanguageManager.GetLang().St4210_PlotNotEnough;
                return(false);
            }

            if (!plotTeam.DoStart(teamID))
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                return(false);
            }

            return(true);
        }
Esempio n. 25
0
        protected override void ProcessCmd(string[] args)
        {
            int magicID = args.Length > 0 ? args[0].Trim().ToInt() : 0;
            short magicLv = args.Length > 1 ? args[1].Trim().ToShort() : (short)1;

            var cacheSet = new GameDataCacheSet<UserMagic>();
            var userMagic = cacheSet.FindKey(UserID, magicID);
            MagicInfo magic = new ConfigCacheSet<MagicInfo>().FindKey(magicID);
            if (magic == null)
            {
                return;
            }
            if (userMagic == null)
            {
                userMagic = new UserMagic()
                {
                    UserID = UserID,
                    MagicID = magicID,
                    MagicLv = magicLv,
                    IsEnabled = false,
                    MagicType = magic.MagicType,
                };
                cacheSet.Add(userMagic);
            }
            else
            {
                userMagic.MagicLv = magicLv;
            }
        }
Esempio n. 26
0
        public override void BuildPacket()
        {
            this.PushIntoStack(pageCount);
            this.PushIntoStack(userItemArray.Count);
            foreach (UserItemInfo item in userItemArray)
            {
                ItemBaseInfo itemInfo  = new ConfigCacheSet <ItemBaseInfo>().FindKey(item.ItemID);
                DataStruct   dsItem    = new DataStruct();
                int          mallPrice = 0;
                if (itemInfo != null && itemInfo.ItemType == ItemType.ZhuangBei)
                {
                    mallPrice = UserHelper.StrongEquPayPrice(Uid, item.UserItemID);
                }
                else if (itemInfo != null)
                {
                    mallPrice = ((itemInfo.SalePrice) * item.Num / 4);
                }

                dsItem.PushIntoStack(item.UserItemID.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.QualityType);
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(mallPrice);

                PushIntoStack(dsItem);
            }
            PushIntoStack(ContextUser.GameCoin);
            PushIntoStack(ContextUser.GoldNum);
        }
Esempio n. 27
0
 //��ȡ�������ж��ֽ����������ȡһ��
 public static int GetItemID(LairRewardType lairRewardType)
 {
     var rewardTypeAll = new ConfigCacheSet<LairRewardInfo>().FindAll(u => u.LairRewardType == lairRewardType.ToInt());
     var i = RandomUtils.GetRandom(0, rewardTypeAll.Count);
     var itemID = rewardTypeAll[i].ItemID;
     return itemID;
 }
Esempio n. 28
0
 public override bool TakeAction()
 {
     var package = UserItemPackage.Get(ContextUser.UserID);
     UserItemInfo useritem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(userItemID));
     if (useritem != null)
     {
         ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(useritem.ItemID);
         if (itemInfo != null && itemInfo.DemandLv > ContextUser.VipLv)
         {
             ErrorCode = LanguageManager.GetLang().ErrorCode;
             ErrorInfo = LanguageManager.GetLang().St_VipNotEnough;
             return false;
         }
     }
     ItemUseHelper itemuse = new ItemUseHelper();
     itemuse.UseItem(userItemID, Uid);
     if (itemuse.result && itemuse.content != string.Empty)
     {
         ErrorCode = 0;
     }
     if (!itemuse.result)
     {
         ErrorCode = LanguageManager.GetLang().ErrorCode;
     }
     ErrorInfo = itemuse.content.Trim(',');
     return true;
 }
Esempio n. 29
0
 public override void BuildPacket()
 {
     PushIntoStack(_pageCount);
     PushIntoStack(ContextUser.GameCoin);
     PushIntoStack(ContextUser.GoldNum);
     PushIntoStack(_mallItemsInfoArray.Count);
     foreach (MallItemsInfo mallItems in _mallItemsInfoArray)
     {
         ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(mallItems.ItemID);
         int mallPrice = 0;
         int specilPrice = 0;
         if (itemInfo != null)
         {
             mallPrice = mallItems.Price;
             if (mallItems.MallType == ShopType.Props || mallItems.MallType == ShopType.PresendBox)
             {
                 mallPrice = (FestivalHelper.StoreDiscount() * mallPrice).ToInt();
             }
             specilPrice = mallItems.SpecialPrice;
         }
         DataStruct dsItem = new DataStruct();
         dsItem.PushIntoStack(mallItems.ItemID);
         dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
         dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
         dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.MaxHeadID.ToNotNullString());
         dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemDesc.ToNotNullString());
         dsItem.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.QualityType);
         dsItem.PushIntoStack(mallPrice);
         dsItem.PushIntoStack(specilPrice);
         dsItem.PushIntoStack(mallItems.SeqNO);
         dsItem.PushIntoStack((short)_commandType);
         PushIntoStack(dsItem);
     }
     PushIntoStack(ContextUser.ObtainNum);
 }
Esempio n. 30
0
        private void DoAccelerateQueue(int goldNum, int coldTime, int timing, int totalTime)
        {
            //获取加速后的所需的精力
            int npcCount  = new ConfigCacheSet <PlotNPCInfo>().FindAll(m => m.PlotID == plotID).Count;
            int battleNum = PlotHelper.GetBattleNum(coldTime);
            int turnsNum  = PlotHelper.GetTurnsNum(npcCount, battleNum);
            int energyNum = turnsNum * PlotInfo.BattleEnergyNum;

            ContextUser.RemoveEnergyNum((short)energyNum);
            ContextUser.UseGold    = MathUtils.Addition(ContextUser.UseGold, goldNum, int.MaxValue);
            ContextUser.UserStatus = UserStatus.Normal;
            //ContextUser.Update();

            int totalTurnsNum = PlotHelper.GetTurnsNum(npcCount, PlotHelper.GetBattleNum(totalTime));
            int tempNum       = PlotHelper.GetBattleNum(timing);
            int sweepCount    = PlotHelper.GetTurnsNum(npcCount, tempNum);
            int timesNum      = PlotHelper.GetTimesNum(npcCount, tempNum);

            sweepCount = sweepCount == 0 ? 1 : sweepCount;

            for (int i = sweepCount; i <= totalTurnsNum; i++)
            {
                int j = 1;
                if (i == sweepCount)
                {
                    j = timesNum;
                }
                for (; j <= npcCount; j++)
                {
                    //TrumpAbilityAttack.CombatTrumpLift(ContextUser.UserID);
                    PlotHelper.DoPlotSweepPrize(ContextUser.UserID, plotID, i, j, npcCount);
                }
            }
        }
Esempio n. 31
0
        public override bool TakeAction()
        {
            string puUserID;

            if (string.IsNullOrEmpty(toUserID))
            {
                puUserID = ContextUser.UserID;
            }
            else
            {
                puUserID = toUserID;
                UserCacheGlobal.LoadOffline(puUserID);
            }
            var package = UserEnchant.Get(puUserID);

            if (package != null)
            {
                userEnchantInfo = package.EnchantPackage.Find(m => m.UserEnchantID == userEnchantID);
                if (userEnchantInfo != null)
                {
                    finalMature = CombatHelper.EnchantFinalNum(userEnchantInfo);
                    currExp     = userEnchantInfo.CurrExprience;
                    enchant     = new ConfigCacheSet <EnchantInfo>().FindKey(userEnchantInfo.EnchantID);
                    if (enchant != null)
                    {
                        enchantLvInfo = new ConfigCacheSet <EnchantLvInfo>().FindKey(enchant.EnchantID, userEnchantInfo.EnchantLv);
                        short         uplv      = MathUtils.Addition(userEnchantInfo.EnchantLv, (short)1, (short)GameConfigSet.MaxEnchantLv);
                        EnchantLvInfo enchantLv = new ConfigCacheSet <EnchantLvInfo>().FindKey(userEnchantInfo.EnchantID, uplv);
                        upExp = enchantLv == null ? 0 : enchantLv.Experience;
                    }
                }
            }
            return(true);
        }
Esempio n. 32
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="energyNum">精力</param>
        /// <returns>倒计时间</returns>
        private int GetSweepColdTime(out int energyNum)
        {
            energyNum = 0;
            int coldTime = 0;
            List <PlotNPCInfo> npcList = new ConfigCacheSet <PlotNPCInfo>().FindAll(m => m.PlotID == plotID);
            int plotNpcNum             = npcList.Count;
            int battleNum;

            if (SweepOps == 1)
            {
                energyNum = (int)MathUtils.Addition(ContextUser.EnergyNum, ContextUser.SurplusEnergy, short.MaxValue);
                //energyNum = ContextUser.EnergyNum > 200 ? 200 : ContextUser.EnergyNum;
                energyNum = energyNum > 200 ? 200 : energyNum;
                battleNum = (energyNum / PlotInfo.BattleEnergyNum) * plotNpcNum;
                coldTime  = battleNum * PlotInfo.BattleSpeedNum;
            }
            else if (SweepOps == 2)
            {
                coldTime  = 1800;
                battleNum = PlotHelper.GetBattleNum(coldTime);
                energyNum = PlotHelper.GetTurnsNum(plotNpcNum, battleNum) * PlotInfo.BattleEnergyNum;
            }
            else if (SweepOps == 3)
            {
                coldTime  = 3600;
                battleNum = PlotHelper.GetBattleNum(coldTime);
                energyNum = PlotHelper.GetTurnsNum(plotNpcNum, battleNum) * PlotInfo.BattleEnergyNum;
            }

            return(coldTime);
        }
Esempio n. 33
0
        public override bool TakeAction()
        {
            var          package  = UserItemPackage.Get(ContextUser.UserID);
            UserItemInfo useritem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(userItemID));

            if (useritem != null)
            {
                ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(useritem.ItemID);
                if (itemInfo != null && itemInfo.DemandLv > ContextUser.VipLv)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_VipNotEnough;
                    return(false);
                }
            }
            ItemUseHelper itemuse = new ItemUseHelper();

            itemuse.UseItem(userItemID, Uid);
            if (itemuse.result && itemuse.content != string.Empty)
            {
                ErrorCode = 0;
            }
            if (!itemuse.result)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
            }
            ErrorInfo = itemuse.content.Trim(',');
            return(true);
        }
Esempio n. 34
0
        /// <summary>
        /// 初始化BOSS数据
        /// </summary>
        /// <returns></returns>
        private static CombatGeneral CreateBossGeneral(UserGuild guild)
        {
            CombatGeneral boss = null;

            if (guild != null)
            {
                GuildBossInfo bossInfo = guild.GuildBossInfo;
                if (bossInfo != null)
                {
                    var plotNpcInfoList = new ConfigCacheSet <PlotNPCInfo>().FindAll(m => m.PlotID == gameActive.BossPlotID);
                    if (plotNpcInfoList.Count > 0)
                    {
                        var embattleList = new ConfigCacheSet <PlotEmbattleInfo>().FindAll(m => m.PlotNpcID == plotNpcInfoList[0].PlotNpcID);
                        if (embattleList.Count > 0)
                        {
                            boss    = (CombatGeneral)MonsterQueue.Create(embattleList[0]);
                            boss.Lv = (short)MathUtils.Subtraction(bossInfo.BossLv, 0, gameActive.BossDefLv);
                            int bossLiftNum = MonsterQueue.BossProperty(embattleList[0].PlotNpcID, AbilityType.ShengMing).ToInt();
                            int lifeNum     = boss.LifeNum + (boss.Lv - gameActive.BossDefLv) * bossLiftNum; //ConfigEnvSet.GetInt("BossCombat.IncreaseLiveNum");
                            boss.LifeMaxNum = lifeNum;
                            boss.LifeNum    = lifeNum;
                        }
                    }
                    else
                    {
                        throw new Exception(string.Format("公会战未配置BOSS:{0}", gameActive.BossPlotID));
                    }
                }
            }
            if (boss == null)
            {
                throw new Exception("Loading guid boss faild.");
            }
            return(boss);
        }
Esempio n. 35
0
        /// <summary>
        /// 附魔符升级
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="generalID"></param>
        public static void CheckEnchantEscalate(string userID, string userEnchantID)
        {
            var             package = UserEnchant.Get(userID);
            UserEnchantInfo uEInfo1 = package.EnchantPackage.Find(m => m.UserEnchantID == userEnchantID);

            if (uEInfo1 != null)
            {
                while (uEInfo1.EnchantLv <= GameConfigSet.MaxEnchantLv)
                {
                    short         upLv          = MathUtils.Addition(uEInfo1.EnchantLv, (short)1);
                    EnchantLvInfo enchantLvInfo = new ConfigCacheSet <EnchantLvInfo>().FindKey(uEInfo1.EnchantID, upLv);
                    if (enchantLvInfo != null && uEInfo1.CurrExprience >= enchantLvInfo.Experience)
                    {
                        uEInfo1.EnchantLv = MathUtils.Addition(uEInfo1.EnchantLv, (short)1);
                        package.SaveEnchant(uEInfo1);
                    }
                    else
                    {
                        break;
                    }
                }
                if (uEInfo1.EnchantLv >= GameConfigSet.MaxEnchantLv)
                {
                    EnchantLvInfo enchantLvInfo = new ConfigCacheSet <EnchantLvInfo>().FindKey(uEInfo1.EnchantID, GameConfigSet.MaxEnchantLv);
                    if (enchantLvInfo != null)
                    {
                        uEInfo1.EnchantLv     = GameConfigSet.MaxEnchantLv.ToShort();
                        uEInfo1.CurrExprience = enchantLvInfo.Experience;
                        package.SaveEnchant(uEInfo1);
                    }
                }
            }
        }
Esempio n. 36
0
        private string DoBossItem(GameUser user, BossItem bossItem, int randId)
        {
            string prizeItemMsg = string.Empty;
            ////筛选物品
            var itemInfoList = new ConfigCacheSet <ItemBaseInfo>().FindAll(m => m.ItemType == bossItem.Type && m.MedicineLv == bossItem.ItemLv);

            if (itemInfoList.Count > 0)
            {
                for (int i = 0; i < bossItem.Num; i++)
                {
                    ItemBaseInfo itemInfo = itemInfoList[RandomUtils.GetRandom(0, itemInfoList.Count)];
                    if (itemInfo == null)
                    {
                        continue;
                    }
                    UserItemHelper.AddUserItem(user.UserID, itemInfo.ItemID, 1);
                    if (prizeItemMsg.Length > 0)
                    {
                        prizeItemMsg += " ";
                    }
                    prizeItemMsg += string.Format(LanguageManager.GetLang().St5405_CombatNum, itemInfo.ItemName, 1);
                }
            }
            return(prizeItemMsg);
        }
Esempio n. 37
0
        protected override void ProcessCmd(string[] args)
        {
            int   magicID = args.Length > 0 ? args[0].Trim().ToInt() : 0;
            short magicLv = args.Length > 1 ? args[1].Trim().ToShort() : (short)1;

            var       cacheSet  = new GameDataCacheSet <UserMagic>();
            var       userMagic = cacheSet.FindKey(UserID, magicID);
            MagicInfo magic     = new ConfigCacheSet <MagicInfo>().FindKey(magicID);

            if (magic == null)
            {
                return;
            }
            if (userMagic == null)
            {
                userMagic = new UserMagic()
                {
                    UserID    = UserID,
                    MagicID   = magicID,
                    MagicLv   = magicLv,
                    IsEnabled = false,
                    MagicType = magic.MagicType,
                };
                cacheSet.Add(userMagic);
            }
            else
            {
                userMagic.MagicLv = magicLv;
            }
        }
Esempio n. 38
0
        public override void BuildPacket()
        {
            PushIntoStack(moreTeam.MorePlot.PlotID);
            PushIntoStack(moreTeam.MorePlot.PlotName.ToNotNullString());
            PushIntoStack(moreTeam.UserList.Count);
            PushIntoStack(PlotTeamCombat.TeamMaxPeople);
            PushIntoStack(moreTeam.MorePlot.ItemId);
            PushIntoStack(moreTeam.MorePlot.ItemName.ToNotNullString());
            PushIntoStack(moreTeam.MorePlot.ItemNum);
            PushIntoStack(moreTeam.MorePlot.ExpNum);
            PushIntoStack(moreTeam.TeamUser != null && moreTeam.TeamUser.UserId.ToNotNullString().Equals(Uid) ? 1 : 0);
            PushIntoStack(moreTeam.Status);

            PushIntoStack(moreTeam.UserList.Count);
            foreach (var teamUser in moreTeam.UserList)
            {
                var         gameUser   = new GameDataCacheSet <GameUser>().FindKey(teamUser.UserId);
                UserGeneral general    = UserGeneral.GetMainGeneral(teamUser.UserId);
                CareerInfo  careerInfo = null;
                if (general != null)
                {
                    careerInfo = new ConfigCacheSet <CareerInfo>().FindKey(general.CareerID);
                }

                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(teamUser.UserId);
                dsItem.PushIntoStack(teamUser.NickName.ToNotNullString());
                dsItem.PushIntoStack(careerInfo == null ? 0 : (int)careerInfo.CareerID);
                dsItem.PushIntoStack(careerInfo == null ? string.Empty : careerInfo.CareerName.ToNotNullString());
                dsItem.PushIntoStack(gameUser == null ? (short)0 : gameUser.UserLv);
                PushIntoStack(dsItem);
            }
        }
Esempio n. 39
0
        public override void BuildPacket()
        {
            this.PushIntoStack(itemBaseList.Count);
            foreach (ItemBaseInfo itemInfo in itemBaseList)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(itemInfo.ItemID);
                dsItem.PushIntoStack(itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(itemInfo.ItemDesc.ToNotNullString());
                dsItem.PushIntoStack(itemInfo.ItemType.ToShort());
                dsItem.PushIntoStack(itemInfo.EquParts.ToShort());
                dsItem.PushIntoStack(itemInfo.QualityType.ToShort());
                dsItem.PushIntoStack(itemInfo.DemandLv.ToShort());

                string[] careerList = itemInfo.CareerRange.Split(new char[] { ',' });
                dsItem.PushIntoStack(careerList.Length);
                foreach (string CareerID in careerList)
                {
                    CareerInfo careerInfo = new ConfigCacheSet<CareerInfo>().FindKey(CareerID.ToInt());
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(careerInfo != null ? careerInfo.CareerID.ToInt() : (int)0);
                    dsItem1.PushIntoStack(careerInfo != null ? careerInfo.CareerName.ToNotNullString() : string.Empty);

                    dsItem.PushIntoStack(dsItem1);
                }

                var equList = new ConfigCacheSet<ItemEquAttrInfo>().FindAll(m => m.ItemID == itemInfo.ItemID);
                dsItem.PushIntoStack(equList.Count);
                foreach (ItemEquAttrInfo equ in equList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(equ.AttributeID.ToInt());
                    dsItem1.PushIntoStack(equ.BaseNum);
                    dsItem1.PushIntoStack(equ.IncreaseNum);

                    dsItem.PushIntoStack(dsItem1);
                }

                dsItem.PushIntoStack(itemInfo.MedicineType);
                dsItem.PushIntoStack(itemInfo.MedicineLv);
                dsItem.PushIntoStack(itemInfo.MedicineNum);
                dsItem.PushIntoStack(itemInfo.PropType);
                dsItem.PushIntoStack(itemInfo.EffectNum.ToNotNullString());

                var itemSynthesisList = new ConfigCacheSet<ItemSynthesisInfo>().FindAll(m => m.ItemID == itemInfo.ItemID);
                dsItem.PushIntoStack(itemSynthesisList.Count);
                foreach (ItemSynthesisInfo synthesisInfo in itemSynthesisList)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(synthesisInfo.SynthesisID);
                    dsItem1.PushIntoStack(synthesisInfo.DemandNum);
                    dsItem1.PushIntoStack(synthesisInfo.SynthesisNum);

                    dsItem.PushIntoStack(dsItem1);
                }

                this.PushIntoStack(dsItem);
            }
        }
Esempio n. 40
0
        public override bool TakeAction()
        {
            int currVersion = new ConfigCacheSet <ConfigVersion>().FindKey(VersionType.StoryTask).CurVersion;

            taskList = new ConfigCacheSet <StoryTaskInfo>().FindAll(m => m.Version > ClientVersion && m.Version <= currVersion);
            return(true);
        }
Esempio n. 41
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);
                }
            }
        }
Esempio n. 42
0
        public override bool TakeAction()
        {
            UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump != null && userTrump.PropertyInfo.Count > 0)
            {
                GeneralProperty property = userTrump.PropertyInfo.Find(m => m.AbilityType == propertyID);
                if (property != null)
                {
                    if (property.AbilityLv >= TrumpPropertyInfo.MaxTrumpPropertyLv)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St1466_OutPropertyMaxLv;
                        return(false);
                    }
                    TrumpPropertyInfo trumpProperty = new ConfigCacheSet <TrumpPropertyInfo>().FindKey(property.AbilityType, property.AbilityLv);
                    if (trumpProperty != null)
                    {
                        int upItemNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, trumpProperty.ItemID);
                        if (upItemNum < trumpProperty.ItemNum)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St1462_ItemNumNotEnough;
                            return(false);
                        }
                        if (ContextUser.GameCoin < trumpProperty.GameCoin)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough;
                            return(false);
                        }
                        if (ContextUser.ObtainNum < trumpProperty.ObtainNum)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St_ObtainNumNotEnough;
                            return(false);
                        }
                        ContextUser.ObtainNum = MathUtils.Subtraction(ContextUser.ObtainNum, trumpProperty.ObtainNum);
                        ContextUser.GameCoin  = MathUtils.Subtraction(ContextUser.GameCoin, trumpProperty.GameCoin);
                        UserItemHelper.UseUserItem(ContextUser.UserID, trumpProperty.ItemID, trumpProperty.ItemNum);
                        short             upLv            = MathUtils.Addition(property.AbilityLv, (short)1, (short)TrumpPropertyInfo.MaxTrumpPropertyLv);
                        TrumpPropertyInfo uptrumpProperty = new ConfigCacheSet <TrumpPropertyInfo>().FindKey(property.AbilityType, upLv);
                        property.UpdateNotify(obj =>
                        {
                            property.AbilityLv    = MathUtils.Addition(property.AbilityLv, (short)1, TrumpPropertyInfo.MaxTrumpPropertyLv);
                            property.AbilityValue = uptrumpProperty.PropertyNum;
                            return(true);
                        });
                        var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
                        if (usergeneral != null)
                        {
                            usergeneral.RefreshMaxLife();
                        }
                        ErrorCode = 0;
                        ErrorInfo = LanguageManager.GetLang().St1464_UpgradeWasSsuccessful;
                    }
                }
            }
            return(true);
        }
Esempio n. 43
0
        public override bool TakeAction()
        {
            var cacheSet = new GameDataCacheSet<UserQueue>();
            List<UserQueue> userQueueList = cacheSet.FindAll(ContextUser.UserID, m => m.QueueType == QueueType.SaoDang);

            foreach (UserQueue queue in userQueueList)
            {
                if (queue != null)
                {
                    int npcCount = new ConfigCacheSet<PlotNPCInfo>().FindAll(m => m.PlotID == plotID).Count;
                    //战斗次数
                    int totalBattleNum = (int)Math.Floor((double)(queue.TotalColdTime - queue.DoRefresh()) / PlotInfo.BattleSpeedNum);
                    int turnsNum = totalBattleNum / npcCount;
                    int battleNum = totalBattleNum % npcCount;
                    //没发生战斗或上未通关都返还精力
                    //if (turnsNum == 0 || battleNum > 0)
                    //{
                    //    ContextUser.EnergyNum = ContextUser.EnergyNum.Addition(PlotInfo.BattleEnergyNum, short.MaxValue);
                    //}
                    cacheSet.Delete(queue);
                }
            }

            if (ContextUser.UserStatus == UserStatus.SaoDang)
            {
                ContextUser.ResetSweepPool(0);
                ContextUser.UserStatus = UserStatus.Normal;
                //ContextUser.Update();
            }
            return true;
        }
Esempio n. 44
0
 public override void BuildPacket()
 {
     this.PushIntoStack(pageCount);
     this.PushIntoStack(abilityArray.Count);
     foreach (GuildAbility ability in abilityArray)
     {
         GuildAbilityInfo abilityInfo = new ConfigCacheSet <GuildAbilityInfo>().FindKey(ability.ID);
         if (abilityInfo != null)
         {
             isCityCombat = abilityInfo.IsCityCombat ? (short)1 : (short)0;
         }
         GuildAbilityLvInfo abilityLvInfo = new ConfigCacheSet <GuildAbilityLvInfo>().FindKey(ability.ID, ability.Lv);
         DataStruct         dsItem        = new DataStruct();
         dsItem.PushIntoStack(ability.ID);
         dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.AbilityName.ToNotNullString());
         dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.AbilityHead.ToNotNullString());
         dsItem.PushIntoStack(ability.Lv);
         dsItem.PushIntoStack(abilityLvInfo == null ? string.Empty : abilityLvInfo.EffectNum.ToString().ToNotNullString());
         dsItem.PushIntoStack(abilityLvInfo == null ? 0 : abilityLvInfo.UpDonateNum);
         dsItem.PushIntoStack(isCityCombat);
         dsItem.PushIntoStack(abilityInfo == null ? (short)0 : (short)abilityInfo.GuildAbilityType);
         this.PushIntoStack(dsItem);
     }
     this.PushIntoStack(gAbilityInfo == null ? string.Empty : gAbilityInfo.AbilityName.ToNotNullString());
     this.PushIntoStack(currExperience);
     this.PushIntoStack(donateCoin);
     this.PushIntoStack(donateGold);
 }
Esempio n. 45
0
        public override bool TakeAction()
        {
            var plotTeam = new PlotTeamCombat(ContextUser);
            MorePlotTeam moreTeam = plotTeam.GetTeam(teamID);

            if (moreTeam != null && moreTeam.UserList.Count <= 1)
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                this.ErrorInfo = LanguageManager.GetLang().St4210_PeopleNotEnough;
                return false;
            }

            PlotInfo plotInfo = new ConfigCacheSet<PlotInfo>().FindKey(plotID);
            if (plotInfo == null)
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                this.ErrorInfo = LanguageManager.GetLang().St4210_PlotNotEnough;
                return false;
            }

            if(!plotTeam.DoStart(teamID))
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                return false;
            }

            return true;
        }
Esempio n. 46
0
        /// <summary>
        /// 物品个数
        /// </summary>
        /// <param name="list"></param>
        /// <param name="userID"></param>
        private static int PutItemNum(UserTakePrize userPrize)
        {
            int packNum = 0;
            int subNum  = 0;
            int sumNum  = 0;

            string[] list = userPrize.ItemPackage.Split(',');
            foreach (string item in list)
            {
                if (string.IsNullOrEmpty(item))
                {
                    continue;
                }
                string[] itemList = item.Split(new char[] { '=' });

                int          itemID   = itemList.Length > 0 ? Convert.ToInt32(itemList[0]) : 0;
                int          itemNum  = itemList.Length > 2 ? Convert.ToInt32(itemList[2]) : 0;
                ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(itemID);
                if (itemInfo != null)
                {
                    packNum = itemNum / itemInfo.PackMaxNum;
                    subNum  = itemNum % itemInfo.PackMaxNum;
                }
                if (subNum > 0)
                {
                    sumNum = MathUtils.Addition(sumNum, packNum);
                    sumNum = MathUtils.Addition(sumNum, 1);
                }
                else
                {
                    sumNum = MathUtils.Addition(sumNum, packNum);
                }
            }
            return(sumNum);
        }
Esempio n. 47
0
        public override void BuildPacket()
        {
            PushIntoStack(codeTime);
            PushIntoStack(ContextUser.GameCoin);
            PushIntoStack(ContextUser.GoldNum);
            PushIntoStack(mysteryShopsList.Count);
            foreach (MysteryShops shops in mysteryShopsList)
            {
                ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(shops.ItemID);
                int mallPrice = 0;
                if (itemInfo != null)
                {
                    mallPrice = itemInfo.MysteryPrice;
                }
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(shops.ItemID);
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                dsItem.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.QualityType);
                dsItem.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                dsItem.PushIntoStack(mallPrice);
                dsItem.PushIntoStack(shops.ItemNum);
                dsItem.PushIntoStack(shops.BuyNum == 0 ? 1 : 2);

                PushIntoStack(dsItem);
            }
        }
Esempio n. 48
0
        public override void BuildPacket()
        {

            PushIntoStack(generalInfo == null ? string.Empty : generalInfo.GeneralName.ToNotNullString());
            PushIntoStack(generalMedicineArray.Count);
            foreach (GeneralMedicine item in generalMedicineArray)
            {
                ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(item.MedicineID);

                int itemcount = TrumpHelper.GetUserItemNum(item.UserID, item.MedicineID);
                if (itemcount > 0)
                {
                    gridStatus = 1;
                }
                else
                {
                    gridStatus = 2;
                }

                DataStruct ds = new DataStruct();
                ds.PushIntoStack(item.MedicineID);
                ds.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
                ds.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : itemInfo.MedicineLv);
                ds.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : itemInfo.MedicineType);
                ds.PushIntoStack((short)GetGeneralMedicine(item));
                ds.PushIntoStack(gridStatus);
                ds.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
                PushIntoStack(ds);
            }
            this.PushIntoStack(powerNum);
            this.PushIntoStack(soulNum);
            this.PushIntoStack(intellectNum);
        }
Esempio n. 49
0
 public override void BuildPacket()
 {
     PushIntoStack(pageCount);
     PushIntoStack(_itemCount);
     PushIntoStack(_gridNum);
     PushIntoStack(ContextUser.GameCoin);
     PushIntoStack(ContextUser.GoldNum);
     PushIntoStack(mlist.Count);
     foreach (UserItemInfo item in mlist)
     {
         DataStruct ds = new DataStruct();
         ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(item.ItemID);
         ds.PushIntoStack(item.UserItemID.ToNotNullString());
         ds.PushIntoStack(itemInfo == null ? 0 : itemInfo.ItemID);
         ds.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : (short)itemInfo.ItemType);
         ds.PushIntoStack(item.Num);
         ds.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.HeadID.ToNotNullString());
         ds.PushIntoStack(itemInfo == null ? LanguageManager.GetLang().shortInt : itemInfo.PropType);
         ds.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemName.ToNotNullString());
         ds.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.ItemDesc.ToNotNullString());
         ds.PushIntoStack(itemInfo == null ? 0 : itemInfo.SalePrice);
         ds.PushIntoStack(itemInfo == null ? 0 : itemInfo.IsUse ? 1 : 0);
         ds.PushIntoStack(itemInfo == null ? 0 : itemInfo.IsCostly ? 1 : 0);
         ds.PushIntoStack(itemInfo == null ? string.Empty : itemInfo.MaxHeadID);
         ds.PushIntoStack(itemInfo == null ? 0 : itemInfo.PropType != 15 ? 0 : ItemUseHelper.ItemNum(ContextUser.UserID, itemInfo.EffectNum) <= 0 ? 0 : 1);
         PushIntoStack(ds);
     }
 }
Esempio n. 50
0
        public override bool TakeAction()
        {
            UserDailyRestrain dailyRestrain = new GameDataCacheSet <UserDailyRestrain>().FindKey(ContextUser.UserID);

            if (RankingHelper.IsGainSportsReward(ContextUser.UserID) && dailyRestrain != null && dailyRestrain.UserExtend != null)
            {
                var envSet = ServerEnvSet.Get(ServerEnvKey.JingJiChangReward, "");
                SportsRewardInfo sportsInfo = new ConfigCacheSet <SportsRewardInfo>().FindKey(dailyRestrain.UserExtend.UserRankID);
                { if (envSet != null && sportsInfo != null)
                  {
                      if (envSet.ToDateTime().Date > dailyRestrain.Funtion11.Date && dailyRestrain.UserExtend.UserRankID > 0)
                      {
                          dailyRestrain.Funtion11             = DateTime.Now;
                          dailyRestrain.UserExtend.UserRankID = 0;
                          //dailyRestrain.Update();

                          ContextUser.ObtainNum = MathUtils.Addition(ContextUser.ObtainNum, sportsInfo.RewardObtian, int.MaxValue);
                          ContextUser.GameCoin  = MathUtils.Addition(ContextUser.GameCoin, sportsInfo.RewardGoin, int.MaxValue);
                          //ContextUser.Update();
                          UserHelper.Contribution(ContextUser.UserID, sportsInfo.RewardObtian);
                          ErrorInfo = string.Format(LanguageManager.GetLang().St5106_JingJiChangRankReward, sportsInfo.RewardObtian, sportsInfo.RewardGoin);
                      }
                  }
                }
            }
            return(true);
        }
Esempio n. 51
0
        //判断背包是否已满
        public static bool IsBeiBaoFull(GameUser user, int itembaseId)
        {
            ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(itembaseId);
            if (itemInfo != null)
            {
                var package = UserItemPackage.Get(user.UserID);

                //查找出所有已用的格子
                var userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus == ItemStatus.BeiBao);

                //查找出已用格子中是相同物品格子的数量
                var itemmountArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus == ItemStatus.BeiBao && m.ItemID == itembaseId);

                int totalNum = 0;
                //累加所有的该物品的数量
                foreach (UserItemInfo userItemInfo in itemmountArray)
                {
                    totalNum = MathUtils.Addition(totalNum, userItemInfo.Num);
                }
                //是否有空余位置
                int mount = totalNum % itemInfo.PackMaxNum;

                if (userItemArray.Count >= user.GridNum && mount == 0)
                {
                    return true;
                }
            }
            return false;
        }
Esempio n. 52
0
 /// <summary>
 /// 每日限制次数
 /// </summary>
 /// <returns></returns>
 public static int GetVipUseNum(int vipLv, RestrainType restrainType)
 {
     int rType = (int)restrainType;
     int baseNum = 0;
     int MaxNum = 0;
     int vipNum = 0;
     DailyRestrainSet restrainSet = new ShareCacheStruct<DailyRestrainSet>().FindKey(restrainType);
     if (restrainSet != null)
     {
         baseNum = restrainSet.MaxNum;
     }
     VipLvInfo lvInfo = new ConfigCacheSet<VipLvInfo>().FindKey(vipLv);
     var restrainArray = new CacheList<DailyRestrain>();
     if (lvInfo != null)
     {
         restrainArray = lvInfo.DailyRestrain;
     }
     foreach (DailyRestrain daily in restrainArray)
     {
         if (daily.ID == rType)
         {
             vipNum = daily.Num;
         }
     }
     MaxNum = MathUtils.Addition(baseNum, vipNum, int.MaxValue);
     return MaxNum;
 }
Esempio n. 53
0
        /// <summary>
        /// 竞技场每日奖励
        /// </summary>
        /// <param name="user"></param>
        public static void DailySportsRankPrize(GameUser user)
        {
            UserDailyRestrain dailyRestrain = new GameDataCacheSet<UserDailyRestrain>().FindKey(user.UserID);
            if (IsGainSportsReward(user.UserID) && dailyRestrain != null && dailyRestrain.UserExtend != null)
            {
                //var envSet = ServerEnvSet.Get(ServerEnvKey.JingJiChangReward, "");
                SportsRewardInfo sportsInfo = new ConfigCacheSet<SportsRewardInfo>().FindKey(dailyRestrain.UserExtend.UserRankID);
                //if (envSet != null && sportsInfo != null && envSet.ToDateTime().Date > dailyRestrain.Funtion11.Date &&
                // dailyRestrain.UserExtend.UserRankID > 0)
                if (sportsInfo != null && DateTime.Now.Date != dailyRestrain.Funtion11.Date &&
                 dailyRestrain.UserExtend.UserRankID > 0)
                {
                    dailyRestrain.Funtion11 = DateTime.Now;
                    dailyRestrain.UserExtend.UserRankID = 0;

                    user.SportsIntegral = MathUtils.Addition(user.SportsIntegral, sportsInfo.RewardObtian,
                                                             int.MaxValue);
                    user.GameCoin = MathUtils.Addition(user.GameCoin, sportsInfo.RewardGoin, int.MaxValue);
                    string sportContent = string.Format(LanguageManager.GetLang().St5106_JingJiChangRankReward,
                                                        sportsInfo.RewardObtian, sportsInfo.RewardGoin);
                    var chatService = new TjxChatService();
                    chatService.SystemSendWhisper(user, sportContent);
                }
            }
        }
Esempio n. 54
0
        /// <summary>
        /// 答题奖励
        /// </summary>
        /// <param name="userGuild"></param>
        /// <param name="gameActive"></param>
        /// <param name="exuser"></param>
        /// <param name="user"></param>
        public static void DoPrize(UserGuild userGuild, GameActive gameActive, ExerciseUser exuser, GameUser user, ref int expNum, ref int Experience)
        {
            DateTime dt = DateTime.Now;

            if (dt < gameActive.BeginTime)
            {
                userGuild.GuildExercise.Status = 0;
                return;
            }
            if (exuser.Status == GuildExerciseStatus.All ||
                (userGuild.GuildExercise.QuestionNo == exuser.QuestionNo &&
                 exuser.AnswerStatus))
            {
                GuildExercisePrize prize = new ConfigCacheSet <GuildExercisePrize>().FindKey(userGuild.GuildExercise.Level);
                if (prize == null)
                {
                    return;
                }
                decimal precent = GetExercisePrecent(userGuild);
                expNum      = (int)Math.Floor((decimal)prize.ExpNum * precent);
                Experience  = (int)Math.Floor((decimal)prize.Experience * precent);
                user.ExpNum = MathUtils.Addition(user.ExpNum, expNum, int.MaxValue);
                UserHelper.UserGeneralExp(user.UserID, Experience);
            }
        }
Esempio n. 55
0
        public override void BuildPacket()
        {
            this.PushIntoStack(abilityInfoArray.Count);
            foreach (GuildAbilityInfo abilityInfo in abilityInfoArray)
            {
                var guildAbilityLvInfos = new ConfigCacheSet<GuildAbilityLvInfo>().FindAll(m => m.ID == abilityInfo.ID);
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(abilityInfo.ID);
                dsItem.PushIntoStack(abilityInfo.IsCityCombat ? (short)1 : (short)0);
                dsItem.PushIntoStack(abilityInfo.AbilityName.ToNotNullString());
                dsItem.PushIntoStack((short)abilityInfo.GuildAbilityType);
                dsItem.PushIntoStack(abilityInfo.AbilityHead.ToNotNullString());
                dsItem.PushIntoStack(abilityInfo.AbilityDesc.ToNotNullString());

                dsItem.PushIntoStack(guildAbilityLvInfos.Count);
                foreach (GuildAbilityLvInfo lvInfo in guildAbilityLvInfos)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack(lvInfo.AbilityLv);
                    dsItem1.PushIntoStack(lvInfo.UpDonateNum);
                    dsItem1.PushIntoStack(lvInfo.EffectNum.ToString().ToNotNullString());
                    dsItem.PushIntoStack(dsItem1);
                }
                this.PushIntoStack(dsItem);
            }
        }
Esempio n. 56
0
        /// <summary>
        /// 获得水晶发送世界聊天
        /// </summary>
        /// <param name="CrystalID"></param>
        /// <param name="userInfo"></param>
        public static void SendChat(int CrystalID, GameUser userInfo)
        {
            CrystalInfo crystal = new ConfigCacheSet <CrystalInfo>().FindKey(CrystalID);

            if (crystal == null)
            {
                return;
            }
            string chatcontent = string.Empty;

            if (crystal.CrystalQuality == CrystalQualityType.Orange)
            {
                chatcontent = LanguageManager.GetLang().St1305_GainQualityNotice;
            }
            else
            {
                chatcontent = LanguageManager.GetLang().St1305_HighQualityNotice;
            }
            string content = string.Format(chatcontent,
                                           userInfo.NickName,
                                           GetQualityName(crystal.CrystalQuality),
                                           crystal.CrystalName
                                           );

            new TjxChatService().SystemSend(ChatType.World, content);
        }
Esempio n. 57
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);
                }

            }
        }
Esempio n. 58
0
        /// <summary>
        /// 增加灰色水晶
        /// </summary>
        /// <param name="user"></param>
        /// <param name="crystalID"></param>
        public static void AppendGrayCrystal(GameUser user, int crystalID)
        {
            if (user == null)
            {
                return;
            }
            if (user.GrayCrystalList == null)
            {
                user.GrayCrystalList = new CacheList <GrayCrystal>();
            }

            CrystalInfo crystalInfo = new ConfigCacheSet <CrystalInfo>().FindKey(crystalID);

            if (crystalInfo == null)
            {
                return;
            }

            if (CheckAllowCrystall(user))
            {
                user.GrayCrystalList.Add(new GrayCrystal()
                {
                    UserCrystalID = Guid.NewGuid().ToString(),
                    CrystalID     = crystalID,
                    SalePrice     = crystalInfo.Price,
                    CreateDate    = DateTime.Now,
                });
                user.UserExtend.GrayCrystalNum = MathUtils.Addition(user.UserExtend.GrayCrystalNum, 1);
            }
        }
Esempio n. 59
0
        public override bool TakeAction()
        {
            ItemBaseInfo itemBaseInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(_materialsID);
            if (itemBaseInfo.ItemType == ItemType.CaiLiao)
            {
                //寻材料
                List<MonsterInfo> monsterArray = new ConfigCacheSet<MonsterInfo>().FindAll(m => m.ItemID == _materialsID);
                if (monsterArray.Count > 0)
                {
                    MonsterInfo monsterInfo = monsterArray[0];
                    var plotEmbattles = new ConfigCacheSet<PlotEmbattleInfo>().FindAll(m => m.MonsterID == monsterInfo.MonsterID);
                    foreach (var embattle in plotEmbattles)
                    {
                        PlotNPCInfo npcInfo = new ConfigCacheSet<PlotNPCInfo>().FindKey(embattle.PlotNpcID);
                        if (npcInfo != null)
                        {
                            PlotInfo temp = new ConfigCacheSet<PlotInfo>().FindKey(npcInfo.PlotID);
                            if (temp != null && temp.CityID > CurrCityID(ContextUser.UserLv))
                            {
                                ErrorCode = LanguageManager.GetLang().ErrorCode;
                                ErrorInfo = LanguageManager.GetLang().St1604_MaterialsCityID;
                                return false;
                            }
                            if (CheckPlot(temp))
                            {
                                _plotInfo = temp;
                                break;
                            }
                        }
                    }
                }
            }

            return true;
        }
Esempio n. 60
0
 public static List<SkillLvInfo> CreateSkillLvInfo(CombatGeneral general)
 {
     List<SkillLvInfo> _skillLvList = new List<SkillLvInfo>();
     if (general.GeneralID == LanguageManager.GetLang().GameUserGeneralID)
     {
         var abilityCacheSet = new ConfigCacheSet<AbilityInfo>();
         var skillLvSet = new ConfigCacheSet<SkillLvInfo>();
         UserTrump userTrump = new GameDataCacheSet<UserTrump>().FindKey(general.UserID, TrumpInfo.CurrTrumpID) ?? new UserTrump();
         if (userTrump.LiftNum > 0)
         {
             userTrump.SkillInfo.Foreach(obj =>
             {
                 var abilityInfo = abilityCacheSet.FindKey(obj.AbilityID) ?? new AbilityInfo();
                 if (abilityInfo.AttackType == AttackType.Trigger)
                 {
                     var temp = skillLvSet.FindKey(obj.AbilityID, obj.AbilityLv);
                     if (temp != null)
                     {
                         _skillLvList.Add(temp);
                     }
                 }
                 return true;
             });
         }
     }
     return _skillLvList;
 }