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