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); }
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); }