コード例 #1
0
ファイル: Action1420.cs プロジェクト: xushenghan/Scut-samples
        public override bool TakeAction()
        {
            UserHelper.GetFeelHunger(ContextUser.UserID, generalID);
            UserHelper.ChechDailyRestrain(ContextUser.UserID);
            generalInfo = new ShareCacheStruct <GeneralInfo>().FindKey(generalID);
            if (generalInfo != null)
            {
                giftName = GiftHelper.GetGiftTypeName(generalInfo.GiftType);
                if (generalInfo.ReplaceSkills != null)
                {
                    demandLv = generalInfo.ReplaceSkills.FeelLv;
                    AbilityInfo abilityInfo =
                        new ShareCacheStruct <AbilityInfo>().FindKey(generalInfo.ReplaceSkills.AbilityID);
                    if (abilityInfo != null)
                    {
                        skillName = abilityInfo.AbilityName;
                        skillDesc = abilityInfo.AbilityDesc;
                    }
                }
            }
            userGeneral = new PersonalCacheStruct <UserGeneral>().FindKey(ContextUser.UserID, generalID);
            if (userGeneral != null)
            {
                FeelLvInfo feelLvInfo = new ShareCacheStruct <FeelLvInfo>().FindKey(userGeneral.FeelLv);
                if (feelLvInfo != null)
                {
                    propertyList = feelLvInfo.Property.ToList();
                }
                short      feelLv       = MathUtils.Addition(userGeneral.FeelLv, (short)1, GiftHelper.maxFeelLv);
                FeelLvInfo upfeelLvInfo = new ShareCacheStruct <FeelLvInfo>().FindKey(feelLv);
                if (upfeelLvInfo != null)
                {
                    upExperience = upfeelLvInfo.Experience;
                }
                if (demandLv > 0 && userGeneral.FeelLv >= demandLv)
                {
                    isLearn = 1;
                }
                else
                {
                    isLearn = 0;
                }
            }

            goldNum = GiftHelper.SurplusGoldNum(ContextUser.UserID);
            int _itemid   = 5050; //消除饱食度物品ID
            var package   = UserItemPackage.Get(ContextUser.UserID);
            var itemArray =
                package.ItemPackage.FindAll(
                    m => m.ItemStatus.Equals(ItemStatus.BeiBao) && m.ItemID.Equals(_itemid));

            if (itemArray.Count > 0)
            {
                isSaturation = 1;
            }
            else
            {
                isSaturation = 0;
            }

            return(true);
        }
コード例 #2
0
        public override bool TakeAction()
        {
            UserHelper.ChechDailyRestrain(ContextUser.UserID);
            UserGeneral general = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, generalID);

            if (general == null)
            {
                return(false);
            }
            if (general.FeelLv >= GiftHelper.maxFeelLv)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1422_MaxFeelFull;
                return(false);
            }
            int     useGold         = ConfigEnvSet.GetInt("User.PresentationGold");
            int     feelNum         = ConfigEnvSet.GetInt("User.PresentationFeelNum");
            int     maxSatiationNum = ConfigEnvSet.GetInt("User.FeelMaxSatiationNum");
            decimal generalEffect   = ConfigEnvSet.GetDecimal("Gift.GeneralEffectNum");

            if (ops == 1)
            {
                var package  = UserItemPackage.Get(ContextUser.UserID);
                var useritem = package.ItemPackage.Find(m => m.UserItemID.Equals(userItemID));
                if (useritem == null)
                {
                    return(false);
                }
                ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(useritem.ItemID);
                if (itemInfo != null)
                {
                    if (general.SaturationNum >= maxSatiationNum)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St1422_FeelMaxSatiationNum;
                        return(false);
                    }
                    int giftEffect = itemInfo.EffectNum;
                    //佣兵喜欢类型的礼物,好感度加成
                    GeneralInfo generalInfo = new ConfigCacheSet <GeneralInfo>().FindKey(generalID);
                    if (generalInfo != null && itemInfo.GiftType == generalInfo.GiftType)
                    {
                        decimal sumGeneralEffect = MathUtils.Addition(generalEffect, 1, decimal.MaxValue);
                        giftEffect = MathUtils.RoundCustom(giftEffect * sumGeneralEffect).ToShort();
                    }
                    GiftHelper.GeneralFeelUpgrade(general, giftEffect, itemInfo.SatiationNum);
                    UserItemHelper.UseUserItem(ContextUser.UserID, itemInfo.ItemID, 1);
                    ErrorCode = ops;
                    ErrorInfo = string.Format(LanguageManager.GetLang().St1422_PresentationFeelNum, giftEffect);
                }
            }
            else if (ops == 2)
            {
                int addNum = UseGoldZengSong(ContextUser.UserID);
                useGold   = MathUtils.Addition(useGold, addNum);
                ErrorCode = ops;
                ErrorInfo = string.Format(LanguageManager.GetLang().St1422_PresentationUseGold, useGold, feelNum);
                return(false);
            }
            else if (ops == 3)
            {
                if (GiftHelper.SurplusGoldNum(ContextUser.UserID) <= 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1422_PresentationGoldNum;
                    return(false);
                }
                UserDailyRestrain userDaily = new GameDataCacheSet <UserDailyRestrain>().FindKey(ContextUser.UserID);
                int addNum = UseGoldZengSong(ContextUser.UserID);
                useGold = MathUtils.Addition(useGold, addNum);
                if (ContextUser.GoldNum < useGold)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }

                if (userDaily != null)
                {
                    if (userDaily.UserExtend == null)
                    {
                        userDaily.UserExtend = new DailyUserExtend();
                    }
                    userDaily.UserExtend.UpdateNotify(obj =>
                    {
                        userDaily.UserExtend.GoldNum = MathUtils.Addition(userDaily.UserExtend.GoldNum, (short)1);
                        return(true);
                    });
                }
                int feelExp = general.FeelExperience;
                int upExp   = MathUtils.Addition(feelExp, feelNum);
                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold);
                GiftHelper.GeneralFeelUpgrade(general, feelNum, 0);
                //TraceLog.ReleaseWrite(string.Format("玩家{0}(通行证ID)的佣兵{1}(ID){2}使用晶石赠送增加好感度{3}。好感度从{4}上升到{5}。",
                //    ContextUser.Pid,
                //    ContextUser.UserID,
                //    ContextUser.NickName, feelNum,
                //    feelExp, upExp));
                ErrorCode = ops;
                ErrorInfo = string.Format(LanguageManager.GetLang().St1422_PresentationFeelNum, feelNum);
            }
            return(true);
        }