Example #1
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);
            }
        }
Example #2
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);
        }
Example #3
0
 public override bool TakeAction()
 {
     userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);
     if (userTrump != null)
     {
         worshipLv  = userTrump.WorshipLv;
         growth     = userTrump.MatureNum.ToString();
         trumpLv    = userTrump.TrumpLv;
         matureType = TrumpHelper.GetEnumMatureType(userTrump.MatureNum).ToShort();
         TrumpInfo trumpInfo = new ConfigCacheSet <TrumpInfo>().FindKey(TrumpInfo.CurrTrumpID, userTrump.TrumpLv);
         if (trumpInfo != null && trumpInfo.Property.Count > 0)
         {
             currLiftNum     = TrumpHelper.GetTrumpProperty(trumpInfo, AbilityType.ShengMing).ToInt();
             powerNum        = TrumpHelper.GetTrumpProperty(trumpInfo, AbilityType.PowerNum);
             soulNum         = TrumpHelper.GetTrumpProperty(trumpInfo, AbilityType.SoulNum);
             intelligenceNum = TrumpHelper.GetTrumpProperty(trumpInfo, AbilityType.IntelligenceNum);
             upLiftNum       = (int)Math.Floor(currLiftNum * TrumpHelper.GetMatureNum(userTrump.MatureNum));
             upPower         = (short)Math.Floor(powerNum * TrumpHelper.GetMatureNum(userTrump.MatureNum));
             upSoul          = (short)Math.Floor(soulNum * TrumpHelper.GetMatureNum(userTrump.MatureNum));
             upIntelligence  = (short)Math.Floor(intelligenceNum * TrumpHelper.GetMatureNum(userTrump.MatureNum));
         }
         totalNum = userTrump.PropertyInfo.Count;
         skcount  = userTrump.SkillInfo.Count;
     }
     trumpInfoArray       = new ConfigCacheSet <TrumpInfo>().FindAll(m => m.SkillID > 0 && m.TrumpID == TrumpInfo.CurrTrumpID).ToArray();
     worshipInfoInfoArray = new ConfigCacheSet <WorshipInfo>().FindAll(m => m.IsOpen && m.TrumpID == TrumpInfo.CurrTrumpID).ToArray();
     return(true);
 }
Example #4
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);
        }
Example #5
0
 public override void BuildPacket()
 {
     PushIntoStack(trumpInfoArray.Length);
     foreach (var trumpInfo in trumpInfoArray)
     {
         isOpen = trumpLv >= trumpInfo.TrumpLv ? 1 : 0;
         SkillInfo skillInfo = TrumpHelper.GetSkillInfo(ContextUser.UserID, skillcount);
         if (skillInfo != null && skillInfo.AbilityLv >= GameConfigSet.MaxSkillLv)
         {
             isFull = 1;
         }
         else
         {
             isFull = 0;
         }
         AbilityInfo abilityInfo = TrumpHelper.GetAbilityInfo(ContextUser.UserID, skillcount);
         DataStruct  dsItem      = new DataStruct();
         dsItem.PushIntoStack(abilityInfo == null ? (short)0 : (short)abilityInfo.AbilityID);
         dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.AbilityName.ToNotNullString());
         dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.HeadID.ToNotNullString());
         dsItem.PushIntoStack(skillInfo == null ? (short)0 : skillInfo.AbilityLv);
         dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.AbilityDesc.ToNotNullString());
         dsItem.PushIntoStack((short)isOpen);
         dsItem.PushIntoStack(trumpInfo.TrumpLv);
         dsItem.PushIntoStack(isFull);
         PushIntoStack(dsItem);
         skillcount++;
     }
 }
Example #6
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);
        }
Example #7
0
        public override void BuildPacket()
        {
            PushIntoStack(worshipLv);
            PushIntoStack(itemName.ToNotNullString());
            PushIntoStack(worshipInfo == null ? 0 : worshipInfo.ItemNum);
            PushIntoStack(worshipInfo == null ? 0 : worshipInfo.GameCoin);
            PushIntoStack(worshipInfo == null ? 0 : worshipInfo.ObtainNum);
            PushIntoStack(TrumpHelper.IsUpWorshLv(ContextUser) ? (short)1 : (short)0);
            PushIntoStack(worshipInfoInfoArray.Length);
            int propertycount = 0;

            foreach (var item in worshipInfoInfoArray)
            {
                short           isFull   = 0;
                GeneralProperty property = GetPropertyType(ContextUser.UserID, propertycount);
                if (property != null && property.AbilityLv >= TrumpPropertyInfo.MaxTrumpPropertyLv)
                {
                    isFull = 1;
                }
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(property == null ? 0 : (int)property.AbilityType);
                dsItem.PushIntoStack(property == null ? (short)0 : (short)property.AbilityLv);
                dsItem.PushIntoStack(totalNum > propertycount ? (short)1 : (short)0);
                dsItem.PushIntoStack(worshipLv >= item.WorshipLv ? (short)1 : (short)0);
                dsItem.PushIntoStack(isFull);
                PushIntoStack(dsItem);
                propertycount++;
            }
            this.PushIntoStack((short)isItem);
            this.PushIntoStack((short)isCoin);
            this.PushIntoStack((short)isObtain);
            PushIntoStack(successNum.ToNotNullString());
        }
Example #8
0
        public override void BuildPacket()
        {
            PushIntoStack(generalInfo == null ? string.Empty : generalInfo.GeneralName.ToNotNullString());
            PushIntoStack(generalMedicineArray.Count);
            foreach (GeneralMedicine item in generalMedicineArray)
            {
                ItemBaseInfo itemInfo = new ShareCacheStruct <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);
        }
Example #9
0
        public override bool TakeAction()
        {
            int useGold = ConfigEnvSet.GetInt("TrumpZodiac.ChangeZodiacUseGold");

            if (ops == 1)
            {
                ErrorCode = ops;
                ErrorInfo = string.Format(LanguageManager.GetLang().St1471_ChangeZodiac, useGold);
                return(false);
            }
            else if (ops == 2)
            {
                if (ContextUser.GoldNum < useGold)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }
                var       cacheSet  = new PersonalCacheStruct <UserTrump>();
                UserTrump userTrump = cacheSet.FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);
                if (userTrump != null)
                {
                    userTrump.Zodiac    = TrumpHelper.GetZodiacType(userTrump.Zodiac);
                    ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold, int.MaxValue);
                }
                ErrorCode = ops;
            }
            return(true);
        }
Example #10
0
        public override bool TakeAction()
        {
            int       upitemNum = 0;
            var       cacheSet  = new GameDataCacheSet <UserTrump>();
            UserTrump userTrump = cacheSet.FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump == null)
            {
                return(false);
            }
            WashConsumeInfo consumeInfo = TrumpHelper.GetWashConsumeInfo(userTrump.MatureNum);

            if (consumeInfo == null)
            {
                return(false);
            }
            upitemNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, consumeInfo.ItemID);
            if (ops == 1)
            {
                string success = ((double)consumeInfo.SuccessNum * 100).ToString();
                ErrorCode = ops;
                ErrorInfo = string.Format(LanguageManager.GetLang().St1458_UseBackDaysOrb, consumeInfo.ItemNum, consumeInfo.MatureNum, success);
                return(false);
            }
            else if (ops == 2)
            {
                ErrorCode = ops;
                if (upitemNum < consumeInfo.ItemNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1458_BackDaysOrbNotEnough;
                    return(false);
                }
                int maxMatrueNum = ConfigEnvSet.GetInt("Trump.MaxMatrueNum");
                if (userTrump.MatureNum >= maxMatrueNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1458_MaxMatrueNumFull;
                    return(false);
                }
                UserItemHelper.UseUserItem(ContextUser.UserID, consumeInfo.ItemID, consumeInfo.ItemNum);
                if (RandomUtils.IsHit(consumeInfo.SuccessNum))
                {
                    userTrump.MatureNum = MathUtils.Addition(userTrump.MatureNum, consumeInfo.MatureNum.ToShort(), maxMatrueNum.ToShort());
                    ErrorInfo           = LanguageManager.GetLang().St1458_XiLianSuccess;
                    var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
                    if (usergeneral != null)
                    {
                        usergeneral.RefreshMaxLife();
                    }
                }
                else
                {
                    ErrorInfo = LanguageManager.GetLang().St1458_XiLianFail;
                }
            }
            return(true);
        }
Example #11
0
        public override bool TakeAction()
        {
            StoryTaskInfo storyTask = new ConfigCacheSet <StoryTaskInfo>().FindKey(taskID);

            if (storyTask != null && storyTask.TaskLv <= ContextUser.UserLv)
            {
                UserTask userTask = new GameDataCacheSet <UserTask>().FindKey(ContextUser.UserID, taskID);
                if (userTask != null && userTask.TaskState == TaskState.Close)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1433_RewardAlreadyReceive;
                    return(false);
                }
                int collectNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, storyTask.TargetItemID);
                if (collectNum < storyTask.TargetItemNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1462_ItemNumNotEnough;
                    return(false);
                }
                ItemUseHelper itemuse = new ItemUseHelper();

                if (!itemuse.GeneralPrize(ContextUser, storyTask.Reward.ToList()))
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1433_StoryTaskGridNotEnough;
                    return(false);
                }
                if (itemuse.DoPrize(ContextUser, storyTask.Reward.ToList()))
                {
                    UserItemHelper.UseUserItem(ContextUser.UserID, storyTask.TargetItemID, storyTask.TargetItemNum);
                    if (userTask != null && userTask.TaskState != TaskState.Close)
                    {
                        userTask.TaskState = TaskState.Close;
                    }

                    if (userTask == null)
                    {
                        userTask = new UserTask
                        {
                            UserID        = ContextUser.UserID,
                            TaskID        = taskID,
                            TaskType      = storyTask.TaskType,
                            TaskStar      = TaskStar.Star5,
                            TaskState     = TaskState.Close,
                            TaskTargetNum = "0",
                            CompleteNum   = 0,
                            CreateDate    = DateTime.Now
                        };
                        new GameDataCacheSet <UserTask>().Add(userTask, GameEnvironment.CacheUserPeriod);
                    }

                    ErrorCode = 0;
                    ErrorInfo = itemuse.content.Trim(',');
                }
            }
            return(true);
        }
Example #12
0
        public override bool TakeAction()
        {
            UserTrump userTrump = new PersonalCacheStruct <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump == null)
            {
                return(false);
            }
            if (userTrump.WorshipLv >= GameConfigSet.MaxWorshipLv)
            {
                return(false);
            }
            short       uplv        = (short)MathUtils.Addition((int)userTrump.WorshipLv, 1, GameConfigSet.MaxWorshipLv);
            WorshipInfo worshipInfo = new ShareCacheStruct <WorshipInfo>().FindKey(TrumpInfo.CurrTrumpID, uplv);

            if (worshipInfo == null)
            {
                return(false);
            }

            if (ContextUser.GameCoin < worshipInfo.GameCoin)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough;
                return(false);
            }
            if (ContextUser.ObtainNum < worshipInfo.ObtainNum)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St_ObtainNumNotEnough;
                return(false);
            }
            int upitemNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, worshipInfo.ItemID);

            if (upitemNum < worshipInfo.ItemNum)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1462_ItemNumNotEnough;
                return(false);
            }
            ContextUser.GameCoin  = MathUtils.Subtraction(ContextUser.GameCoin, worshipInfo.GameCoin, 0);
            ContextUser.ObtainNum = MathUtils.Subtraction(ContextUser.ObtainNum, worshipInfo.ObtainNum, 0);
            UserItemHelper.UseUserItem(ContextUser.UserID, worshipInfo.ItemID, worshipInfo.ItemNum);
            ErrorCode = 0;
            if (RandomUtils.IsHit(worshipInfo.SuccessNum))
            {
                userTrump.WorshipLv = MathUtils.Addition(userTrump.WorshipLv, (short)1, GameConfigSet.MaxWorshipLv);
                ErrorInfo           = LanguageManager.GetLang().St1464_WorshipSuccess;
            }
            else
            {
                ErrorInfo = LanguageManager.GetLang().St1464_WorshipFail;
            }
            return(true);
        }
Example #13
0
        public override bool TakeAction()
        {
            UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump != null && userTrump.SkillInfo.Count > 0)
            {
                SkillInfo skillInfo = userTrump.SkillInfo.Find(m => m.AbilityID == skillID);
                if (skillInfo != null)
                {
                    if (skillInfo.AbilityLv >= GameConfigSet.MaxSkillLv)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St1462_OutMaxTrumpLv;
                        return(false);
                    }
                    SkillLvInfo skillLvInfo = new ConfigCacheSet <SkillLvInfo>().FindKey(skillInfo.AbilityID, skillInfo.AbilityLv);
                    if (skillLvInfo != null)
                    {
                        if (ContextUser.GameCoin < skillLvInfo.GameCoin)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough;
                            return(false);
                        }
                        if (ContextUser.ObtainNum < skillLvInfo.ObtainNum)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St_ObtainNumNotEnough;
                            return(false);
                        }
                        int upitemNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, skillLvInfo.ItemID);
                        if (upitemNum < skillLvInfo.ItemNum)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St1462_ItemNumNotEnough;
                            return(false);
                        }
                        if (TrumpHelper.IsMeetUpSkillLv(ContextUser, skillLvInfo))
                        {
                            ContextUser.GameCoin  = MathUtils.Subtraction(ContextUser.GameCoin, skillLvInfo.GameCoin, 0);
                            ContextUser.ObtainNum = MathUtils.Subtraction(ContextUser.ObtainNum, skillLvInfo.ObtainNum, 0);
                            UserItemHelper.UseUserItem(ContextUser.UserID, skillLvInfo.ItemID, skillLvInfo.ItemNum);
                            skillInfo.UpdateNotify(obj =>
                            {
                                skillInfo.AbilityLv = MathUtils.Addition(skillInfo.AbilityLv, (short)1, GameConfigSet.MaxTrumpLv.ToShort());
                                return(true);
                            });
                            ErrorCode = 0;
                            ErrorInfo = LanguageManager.GetLang().St1464_UpgradeWasSsuccessful;
                        }
                    }
                }
            }
            return(true);
        }
Example #14
0
        public override void BuildPacket()
        {
            this.PushIntoStack(_generalArray.Length);
            foreach (var general in _generalArray)
            {
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(general.GeneralID);
                dsItem.PushIntoStack(general.GeneralName.ToNotNullString());
                this.PushIntoStack(dsItem);
            }
            this.PushIntoStack(_firstName.ToNotNullString());
            this.PushIntoStack(_headID.ToNotNullString());
            this.PushIntoStack(_lifeNum);
            this.PushIntoStack((short)_careerID);
            this.PushIntoStack(_careerName.ToNotNullString());
            this.PushIntoStack((short)_powerNum);
            this.PushIntoStack((short)_soulNum);
            this.PushIntoStack((short)_intellectNum);
            this.PushIntoStack(_abilityName.ToNotNullString());
            this.PushIntoStack(_abilityDesc.ToNotNullString());
            this.PushIntoStack((short)_isRecruit);
            this.PushIntoStack(_storyTaskArray.Length);
            foreach (var task in _storyTaskArray)
            {
                int          collectNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, task.TargetItemID);
                PlotInfo     plotInfo   = new ConfigCacheSet <PlotInfo>().FindKey(task.PlotID);
                ItemBaseInfo itemInfo   = new ConfigCacheSet <ItemBaseInfo>().FindKey(task.TargetItemID);
                iscomplete = GeneralHelper.IsComplete(ContextUser, task);
                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);
                dsItem.PushIntoStack(task.Reward.Count);
                foreach (var prize in task.Reward)
                {
                    DataStruct dsItem1 = new DataStruct();
                    dsItem1.PushIntoStack((short)prize.Type);
                    dsItem1.PushIntoStack(GeneralHelper.PrizeItemName(prize).ToNotNullString());
                    dsItem1.PushIntoStack(prize.Num);
                    dsItem.PushIntoStack(dsItem1);
                }

                this.PushIntoStack(dsItem);
            }
        }
Example #15
0
        public override bool TakeAction()
        {
            UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump != null && userTrump.SkillInfo.Count > 0)
            {
                SkillInfo skillInfo = userTrump.SkillInfo.Find(m => m.AbilityID == skillID);
                if (skillInfo != null)
                {
                    AbilityInfo abilityInfo = new ConfigCacheSet <AbilityInfo>().FindKey(skillInfo.AbilityID);
                    if (abilityInfo != null)
                    {
                        skillName = abilityInfo.AbilityName;
                    }
                    skillLv = skillInfo.AbilityLv;

                    short upLv = MathUtils.Addition(skillInfo.AbilityLv, (short)1, GameConfigSet.MaxTrumpLv.ToShort());
                    if (upLv <= GameConfigSet.MaxTrumpLv)
                    {
                        SkillLvInfo skillLvInfo = new ConfigCacheSet <SkillLvInfo>().FindKey(skillInfo.AbilityID, skillInfo.AbilityLv);
                        if (skillLvInfo != null)
                        {
                            gameCoin  = skillLvInfo.GameCoin;
                            obtainNum = skillLvInfo.ObtainNum;
                            int upItemNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, skillLvInfo.ItemID);
                            if (upItemNum >= skillLvInfo.ItemNum)
                            {
                                isItem = 1;
                            }
                            if (ContextUser.GameCoin >= gameCoin)
                            {
                                isCoin = 1;
                            }
                            if (ContextUser.ObtainNum >= obtainNum)
                            {
                                isObtain = 1;
                            }
                            ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(skillLvInfo.ItemID);
                            if (itemInfo != null)
                            {
                                itemName = itemInfo.ItemName;
                                itemNum  = skillLvInfo.ItemNum;
                            }
                            if (TrumpHelper.IsMeetUpSkillLv(ContextUser, skillLvInfo))
                            {
                                isMeet = 1;
                            }
                        }
                    }
                }
            }
            return(true);
        }
Example #16
0
        public override bool TakeAction()
        {
            UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump != null)
            {
                trumpLv = userTrump.TrumpLv;
            }
            trumpInfoArray = new ConfigCacheSet <TrumpInfo>().FindAll(m => m.SkillID > 0 && m.TrumpID == TrumpInfo.CurrTrumpID).ToArray();
            TrumpHelper.RepairMagicSkills(ContextUser.UserID);
            return(true);
        }
Example #17
0
 public override void BuildPacket()
 {
     PushIntoStack(abilityLv);
     PushIntoStack(itemName.ToNotNullString());
     PushIntoStack(trumpProperty == null ? 0 : trumpProperty.ItemNum);
     PushIntoStack(trumpProperty == null ? 0 : trumpProperty.GameCoin);
     PushIntoStack(trumpProperty == null ? 0 : trumpProperty.ObtainNum);
     PushIntoStack(successNum.ToNotNullString());
     PushIntoStack(TrumpHelper.IsMeetUpPropertyLv(ContextUser, trumpProperty) ? (short)1 : (short)0);
     PushIntoStack((short)isItem);
     PushIntoStack((short)isCoin);
     PushIntoStack((short)isObtain);
 }
Example #18
0
        public override void BuildPacket()
        {
            this.PushIntoStack(trumpLv);
            this.PushIntoStack(growth.ToNotNullString());
            this.PushIntoStack((short)matureType);
            this.PushIntoStack(currLiftNum);
            this.PushIntoStack((short)powerNum);
            this.PushIntoStack((short)soulNum);
            this.PushIntoStack((short)intelligenceNum);
            this.PushIntoStack(upLiftNum);
            this.PushIntoStack((short)upPower);
            this.PushIntoStack((short)upSoul);
            this.PushIntoStack((short)upIntelligence);
            this.PushIntoStack(worshipInfoInfoArray.Length);
            foreach (var item in worshipInfoInfoArray)
            {
                short           isOpen    = 0;
                GeneralProperty gProperty = null;
                if (userTrump != null && userTrump.PropertyInfo.Count > propertycount)
                {
                    gProperty = userTrump.PropertyInfo[propertycount];
                }
                if (worshipLv >= item.WorshipLv)
                {
                    isOpen = 1;
                }
                DataStruct dsItem = new DataStruct();
                dsItem.PushIntoStack(gProperty == null ? (short)AbilityType.Empty : (short)gProperty.AbilityType);
                dsItem.PushIntoStack(gProperty == null ? (short)0 : (short)gProperty.AbilityLv);
                dsItem.PushIntoStack(gProperty == null ? AbilityType.Empty.ToNotNullString() : gProperty.AbilityValue.ToNotNullString());
                dsItem.PushIntoStack(isOpen);
                dsItem.PushIntoStack(totalNum > propertycount ? (short)1 : (short)0);
                this.PushIntoStack(dsItem);
                propertycount++;
            }
            this.PushIntoStack(trumpInfoArray.Length);
            for (int i = 0; i < trumpInfoArray.Length; i++)
            {
                AbilityInfo abilityInfo = TrumpHelper.GetAbilityInfo(ContextUser.UserID, i);;
                DataStruct  dsItem      = new DataStruct();
                dsItem.PushIntoStack(abilityInfo == null ? (short)0 : (short)abilityInfo.AbilityID);
                dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.AbilityName.ToNotNullString());
                dsItem.PushIntoStack(abilityInfo == null ? string.Empty : abilityInfo.AbilityDesc.ToNotNullString());
                dsItem.PushIntoStack(skcount > i ? (short)1 : (short)0);

                this.PushIntoStack(dsItem);
            }
            PushIntoStack(trumpLv >= GameConfigSet.MaxTrumpLv ? (short)1 : (short)0);
        }
Example #19
0
        public override bool TakeAction()
        {
            int useGold = ConfigEnvSet.GetInt("TrumpSkill.WashIngUseGold");

            if (ops == 1)
            {
                ErrorCode = ops;
                ErrorInfo = string.Format(LanguageManager.GetLang().St1460_WashingSkills, useGold);
                return(false);
            }
            else if (ops == 2)
            {
                if (useGold > ContextUser.GoldNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1460_WashingSkillsNotEnough;
                    return(false);
                }
                UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);
                if (userTrump == null || userTrump.SkillInfo.Count == 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1466_WorshipPropertyNotEnough;
                    return(false);
                }
                SkillInfo trumpSkill = userTrump.SkillInfo.Find(m => m.AbilityID == skillID);
                if (trumpSkill == null)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1460_SkillsNotEnough;
                    return(false);
                }
                AbilityInfo abilityInfo = TrumpHelper.GetRandomAbility(ContextUser.UserID);
                if (abilityInfo != null)
                {
                    ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold);
                    trumpSkill.UpdateNotify(obj =>
                    {
                        trumpSkill.AbilityID = abilityInfo.AbilityID;
                        trumpSkill.AbilityLv = 1;
                        return(true);
                    });
                    ErrorCode = ops;
                    ErrorInfo = LanguageManager.GetLang().St1460_WashingSuccess;
                }
            }
            return(true);
        }
Example #20
0
 public override void BuildPacket()
 {
     this.PushIntoStack(enchant == null ? 0 : enchant.EnchantID);
     this.PushIntoStack(enchant == null ? string.Empty : enchant.EnchantName.ToNotNullString());
     this.PushIntoStack(enchant == null ? string.Empty : enchant.HeadID.ToNotNullString());
     this.PushIntoStack(userEnchantInfo == null ? (short)0 : (short)userEnchantInfo.EnchantLv);
     this.PushIntoStack(enchant == null ? (short)0 : (short)enchant.ColorType);
     PushIntoStack(currExp);
     PushIntoStack(upExp);
     this.PushIntoStack(userEnchantInfo == null ? (short)0 : (short)userEnchantInfo.MaxMature);
     this.PushIntoStack(TrumpHelper.GetTransformData(finalMature).ToNotNullString());
     this.PushIntoStack(enchantLvInfo == null ? 0 : enchantLvInfo.CoinPrice);
     this.PushIntoStack(enchantLvInfo == null ? 0 : enchantLvInfo.MoJingPrice);
     this.PushIntoStack(enchant == null ? (short)0 : (short)enchant.AbilityType);
     this.PushIntoStack(enchantLvInfo == null ? string.Empty :TrumpHelper.GetTransformData(enchantLvInfo.Num).ToNotNullString());
 }
Example #21
0
 public static short IsComplete(GameUser user, StoryTaskInfo taskInfo)
 {
     if (user.UserLv >= taskInfo.TaskLv)
     {
         int collectNum = TrumpHelper.GetUserItemNum(user.UserID, taskInfo.TargetItemID);
         if (collectNum >= taskInfo.TargetItemNum)
         {
             return(1);
         }
         else
         {
             return(0);
         }
     }
     return(2);
 }
Example #22
0
        public override bool TakeAction()
        {
            UserTrump userTrump = new PersonalCacheStruct <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump != null)
            {
                zodiac     = (short)userTrump.Zodiac;
                zodiacList = TrumpHelper.ZodiacRestraint(userTrump.Zodiac, 1);
                Dictionary <short, decimal> restraintList = TrumpHelper.ZodiacRestraint(userTrump.Zodiac, 2);
                foreach (KeyValuePair <short, decimal> keyValuePair in restraintList)
                {
                    isRestraint = keyValuePair.Value.ToShort();
                    break;
                }
            }
            return(true);
        }
Example #23
0
        public override bool TakeAction()
        {
            UserTrump userTrump = new PersonalCacheStruct <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)
                {
                    abilityLv = property.AbilityLv;
                    // short upLv = MathUtils.Addition(property.AbilityLv, (short)1, TrumpPropertyInfo.MaxTrumpPropertyLv);
                    //trumpProperty = new ShareCacheStruct<TrumpPropertyInfo>().FindKey(property.AbilityType, upLv);
                    trumpProperty = new ShareCacheStruct <TrumpPropertyInfo>().FindKey(property.AbilityType, property.AbilityLv);
                    if (trumpProperty != null)
                    {
                        int upItemNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, trumpProperty.ItemID);
                        if (upItemNum >= trumpProperty.ItemNum)
                        {
                            isItem = 1;
                        }
                        if (ContextUser.GameCoin >= trumpProperty.GameCoin)
                        {
                            isCoin = 1;
                        }
                        if (ContextUser.ObtainNum >= trumpProperty.ObtainNum)
                        {
                            isObtain = 1;
                        }
                        successNum = trumpProperty.SuccessNum.ToString();
                        ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(trumpProperty.ItemID);
                        if (itemInfo != null)
                        {
                            itemName = itemInfo.ItemName;
                        }
                    }
                }
            }
            return(true);
        }
Example #24
0
        public override bool TakeAction()
        {
            var package = UserEnchant.Get(ContextUser.UserID);

            if (package != null)
            {
                userEnchant = package.EnchantPackage.Find(m => m.UserEnchantID == userEnchantID);
                if (userEnchant != null)
                {
                    matureNum   = (decimal)userEnchant.MaxMature / GameConfigSet.MaxEnchantMature;
                    maxMature   = CombatHelper.EnchantFinalNum(userEnchant);
                    enchantInfo = new ConfigCacheSet <EnchantInfo>().FindKey(userEnchant.EnchantID);
                    EnchantLvInfo enchantLvInfo = new ConfigCacheSet <EnchantLvInfo>().FindKey(userEnchant.EnchantID,
                                                                                               userEnchant.EnchantLv);
                    if (enchantLvInfo != null)
                    {
                        abilityNum = TrumpHelper.GetTransformData(enchantLvInfo.Num);
                    }
                }
            }
            enchantList = EnchantHelper.EnchantCultureList();
            return(true);
        }
Example #25
0
 public override void BuildPacket()
 {
     this.PushIntoStack(enchantInfo == null ? string.Empty : enchantInfo.EnchantName.ToNotNullString());
     this.PushIntoStack(enchantInfo == null ? string.Empty : enchantInfo.HeadID.ToNotNullString());
     this.PushIntoStack(userEnchant == null ? (short)0 : (short)userEnchant.EnchantLv);
     this.PushIntoStack(enchantInfo == null ? (short)0 : (short)enchantInfo.ColorType);
     this.PushIntoStack(matureNum.ToNotNullString());
     this.PushIntoStack(TrumpHelper.GetTransformData(maxMature).ToNotNullString());
     this.PushIntoStack(enchantInfo == null ? (short)0 : (short)enchantInfo.AbilityType);
     this.PushIntoStack(abilityNum.ToNotNullString());
     this.PushIntoStack(enchantList.Count);
     foreach (var culTure in enchantList)
     {
         DataStruct dsItem = new DataStruct();
         dsItem.PushIntoStack((short)culTure.CultureType);
         dsItem.PushIntoStack(culTure.MoJingNum);
         dsItem.PushIntoStack(culTure.GoldNum);
         dsItem.PushIntoStack((int)culTure.UpMature);
         dsItem.PushIntoStack(culTure.SuccessNum.ToNotNullString());
         dsItem.PushIntoStack(IsMeet(ContextUser, culTure) ? (short)1 : (short)0);
         this.PushIntoStack(dsItem);
     }
 }
Example #26
0
        public override bool TakeAction()
        {
            UserTrump userTrump = new PersonalCacheStruct <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump != null)
            {
                worshipLv = userTrump.WorshipLv;
                short upWorshLv = MathUtils.Addition(userTrump.WorshipLv, (short)1, (short)10);
                totalNum = userTrump.PropertyInfo.Count;

                worshipInfo = new ShareCacheStruct <WorshipInfo>().FindKey(TrumpInfo.CurrTrumpID, upWorshLv);
                if (worshipInfo != null)
                {
                    successNum = TrumpHelper.GetTransformData(worshipInfo.SuccessNum);
                    int upItemNum = TrumpHelper.GetUserItemNum(ContextUser.UserID, worshipInfo.ItemID);
                    if (upItemNum >= worshipInfo.ItemNum)
                    {
                        isItem = 1;
                    }
                    if (ContextUser.GameCoin >= worshipInfo.GameCoin)
                    {
                        isCoin = 1;
                    }
                    if (ContextUser.ObtainNum >= worshipInfo.ObtainNum)
                    {
                        isObtain = 1;
                    }
                    ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(worshipInfo.ItemID);
                    if (itemInfo != null)
                    {
                        itemName = itemInfo.ItemName;
                    }
                }
            }
            worshipInfoInfoArray = new ShareCacheStruct <WorshipInfo>().FindAll(m => m.IsOpen && m.TrumpID == TrumpInfo.CurrTrumpID).ToArray();
            return(true);
        }
Example #27
0
        public override bool TakeAction()
        {
            if (!UserHelper.IsOpenFunction(ContextUser.UserID, FunctionEnum.Trump))
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St_NoFun;
                return(false);
            }
            if (UserHelper.IsOpenFunction(ContextUser.UserID, FunctionEnum.TrumpPractice))
            {
                return(false);
            }
            if (!TrumpHelper.IsTrumpPractice(ContextUser.UserID))
            {
                return(false);
            }
            var       cacheTrump = new PersonalCacheStruct <UserTrump>();
            UserTrump userTrump  = cacheTrump.FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump == null)
            {
                TrumpInfo trumpInfo = new ShareCacheStruct <TrumpInfo>().FindKey(TrumpInfo.CurrTrumpID, 1);
                if (trumpInfo == null)
                {
                    return(false);
                }
                StoryTaskInfo[] storyTaskArray = new ShareCacheStruct <StoryTaskInfo>().FindAll(m => m.TaskType == TaskType.Trump).ToArray();
                foreach (StoryTaskInfo taskInfo in storyTaskArray)
                {
                    UserItemHelper.UseUserItem(ContextUser.UserID, taskInfo.TargetItemID, taskInfo.TargetItemNum);
                }
                userTrump            = new UserTrump(ContextUser.UserID, TrumpInfo.CurrTrumpID);
                userTrump.TrumpLv    = 1;
                userTrump.WorshipLv  = 1;
                userTrump.LiftNum    = trumpInfo.MaxLift;
                userTrump.Experience = 0;
                userTrump.MatureNum  = trumpInfo.BeseMature;
                userTrump.Zodiac     = TrumpHelper.GetZodiacType(ZodiacType.NoZodiac);
                //userTrump.SkillInfo = new List<SkillInfo>();
                //userTrump.PropertyInfo = new List<GeneralProperty>();
                cacheTrump.Add(userTrump);
                cacheTrump.Update();
            }
            var          cacheSet     = new PersonalCacheStruct <UserFunction>();
            UserFunction userFunction = cacheSet.FindKey(ContextUser.UserID, FunctionEnum.TrumpPractice);

            if (userFunction == null)
            {
                UserFunction function = new UserFunction()
                {
                    FunEnum    = FunctionEnum.TrumpPractice,
                    UserID     = ContextUser.UserID,
                    CreateDate = DateTime.Now,
                };
                cacheSet.Add(function);
                cacheSet.Update();
            }
            var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);

            if (userTrump.LiftNum > 0 && usergeneral != null)
            {
                usergeneral.RefreshMaxLife();
            }
            return(true);
        }
Example #28
0
        public override bool TakeAction()
        {
            if (!TrumpHelper.IsLearnProperty(ContextUser))
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1466_WorshipPropertyNotEnough;
                return(false);
            }
            UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);

            if (userTrump == null)
            {
                return(false);
            }
            UserItemInfo userItem = null;
            var          package  = UserItemPackage.Get(ContextUser.UserID);

            if (package != null)
            {
                userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID == userItemID);
                if (userItem == null || (userItem.ItemType != ItemType.DaoJu && userItem.PropType == 13))
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1466_ItemPropertyNotEnough;
                    return(false);
                }
                ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(userItem.ItemID);
                if (itemInfo != null)
                {
                    GeneralProperty property = null;
                    if (userTrump.PropertyInfo.Count > 0)
                    {
                        property = userTrump.PropertyInfo.Find(m => m.AbilityType == itemInfo.AbilityType);
                        if (property != null)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St1466_ItemPropertyExite;
                            return(false);
                        }
                    }
                    else
                    {
                        userTrump.PropertyInfo.Clear();
                    }
                    short             baseLv        = 1;
                    TrumpPropertyInfo trumpProperty =
                        new ConfigCacheSet <TrumpPropertyInfo>().FindKey(itemInfo.AbilityType, baseLv);
                    if (trumpProperty != null)
                    {
                        property              = new GeneralProperty();
                        property.AbilityType  = itemInfo.AbilityType;
                        property.AbilityLv    = 1;
                        property.AbilityValue = trumpProperty.PropertyNum;
                        userTrump.PropertyInfo.Add(property);
                        TraceProperty(userTrump);
                        UserItemHelper.UseUserItem(ContextUser.UserID, userItem.ItemID, trumpProperty.ItemNum);

                        var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
                        if (usergeneral != null)
                        {
                            usergeneral.RefreshMaxLife();
                        }

                        ErrorCode = 0;
                        ErrorInfo = LanguageManager.GetLang().St1466_LearningSuccess;
                    }
                }
            }

            return(true);
        }