/// <summary> /// 获取经理显示Buff /// </summary> /// <param name="managerId">经理Id</param> /// <returns></returns> public RootResponse <DTOManagerBuffView> GetManagerShowBuffs(Guid managerId) { var list = GetManagerShowBuffList(managerId); if (list == null) { return(ResponseHelper.CreateRoot <DTOManagerBuffView>(null)); } var data = new DTOManagerBuffView(); data.BuffList = list; return(ResponseHelper.CreateRoot <DTOManagerBuffView>(data)); }
public static RootResponse <DTOSkillSetView> GetSkillSetInfo(Guid mid) { var bag = SkillCardConvert.GetSkillBagWrap(mid); int managerLevel = (int)FrameConvert.GetWorthValue(mid, EnumWorthType.ManagerLevel); var data = new DTOSkillSetView(); data.MaxSetCells = GetMaxSkillCells(managerLevel); var form = MatchDataHelper.GetSolution(mid); if (null != form) { data.FormId = form.FormationId; data.PidStr = form.PlayerString.TrimEnd(); } data.SetList = bag.GetShowSet(); data.CntSetCells = bag.CntSetNum; return(ResponseHelper.CreateRoot <DTOSkillSetView>(data)); }
static RootResponse <DTOAssetInfo> SaveReward(NbManagerEntity manager, string orderId, int coin, int point, int assetType, int tranType, string tranMap) { var msgCode = MessageCode.Success; int totalCoin = -1; int totalPoint = -1; using (var tranMgr = new TransactionManager(Games.NBall.Dal.ConnectionFactory.Instance.GetConnectionString(EnumDbType.Main))) { tranMgr.BeginTransaction(); do { if (coin > 0) { msgCode = ManagerCore.Instance.AddCoinV2(out totalCoin, manager, coin, (int)EnumCoinChargeSourceType.MatchReward, orderId, tranMgr.TransactionObject); if (msgCode != MessageCode.Success) { break; } } if (point > 0) { msgCode = PayCore.Instance.AddBonusV2(out totalPoint, manager.Account, point, EnumChargeSourceType.MatchReward, orderId, tranMgr.TransactionObject); if (msgCode != MessageCode.Success) { break; } } int errorCode = 0; NbManagerMgr.AssetRecord(false, manager.Idx, assetType, tranType, tranMap, ref errorCode, tranMgr.TransactionObject); msgCode = (MessageCode)errorCode; }while (false); if (msgCode != MessageCode.Success) { tranMgr.Rollback(); return(ResponseHelper.CreateRoot <DTOAssetInfo>(msgCode)); } tranMgr.Commit(); } ManagerCore.Instance.DeleteCache(manager.Idx); var data = new DTOAssetInfo(totalCoin, totalPoint); return(ResponseHelper.CreateRoot <DTOAssetInfo>(data)); }
public static RootResponse <DTOAssetInfo> CommitReward(Guid managerId, int matchType, Guid matchId, string mask, string sig) { if (!ShareUtil.IsAppRXYC) { return(ResponseHelper.CreateRoot <DTOAssetInfo>(MessageCode.MatchRewardLimitApp)); } if (!MatchThread.CheckRewardMatchType(matchType)) { return(ResponseHelper.CreateRoot <DTOAssetInfo>(MessageCode.MatchRewardLimitType)); } int coin = 0; int point = 0; ParseMask(out coin, out point, mask); if (coin < 0 || coin > MATCHRewardMaxCoin) { return(ResponseHelper.CreateRoot <DTOAssetInfo>(MessageCode.MatchRewardOverCoin)); } if (point < 0 || point > MATCHRewardMaxPoint) { return(ResponseHelper.CreateRoot <DTOAssetInfo>(MessageCode.MatchRewardOverPoint)); } string key = string.Concat(managerId, ".", matchType).ToLower(); var state = MemcachedFactory.MatchRewardClient.Get <DTOMatchRewardState>(key); if (null == state || state.MatchId != matchId) { return(ResponseHelper.CreateRoot <DTOAssetInfo>(MessageCode.MatchRewardMissMatch)); } if (state.SetTimes >= MATCHRewardMaxSetTimes) { MemcachedFactory.MatchRewardClient.Delete(key); return(ResponseHelper.CreateRoot <DTOAssetInfo>(MessageCode.MatchRewardOverSet)); } RootResponse <DTOAssetInfo> rst = null; if (coin > 0 || point > 0) { var manager = ManagerCore.Instance.GetManager(managerId); if (null == manager) { return(ResponseHelper.CreateRoot <DTOAssetInfo>(MessageCode.MissManager)); } string orderId = string.Concat(matchType, ".", matchId, ".", state.SetTimes); string tranMap = string.Format("{0}:C{1}P{2}..", orderId, coin, point); int assetType = 0; int tranType = 0; rst = SaveReward(manager, orderId, coin, point, assetType, tranType, tranMap); } if (state.SetTimes == MATCHRewardMaxSetTimes - 1) { MemcachedFactory.MatchRewardClient.Delete(key); } else { state.SetTimes++; state.Coin = coin; state.Point = point; MemcachedFactory.MatchRewardClient.Set(key, state); } if (null == rst) { rst = ResponseHelper.CreateRoot <DTOAssetInfo>(new DTOAssetInfo()); } return(rst); }
/// <summary> /// 技能升级 /// </summary> /// <param name="mid"></param> /// <param name="cid"></param> /// <returns></returns> public static RootResponse <DTOSkillSetView> UseSkillExp(Guid mid, string cid) { if (string.IsNullOrEmpty(cid) || !FrameUtil.CheckChar22Id(cid)) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillInvalidCid)); } //var package = ItemCore.Instance.GetPackage(mid, EnumTransactionType.MixSkillExpCard); //if (package == null) // return ResponseHelper.CreateRoot<DTOSkillSetView>(MessageCode.NbParameterError); //var item = package.GetByItemCode(310110); //if (item == null) // return ResponseHelper.CreateRoot<DTOSkillSetView>(MessageCode.SkillExpNotFind); var bag = SkillCardConvert.GetSkillBagWrap(mid); var onlib = bag.SetList; var dstItem = onlib.Values.FirstOrDefault(i => i.ItemId == cid); if (null == dstItem) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillMissCard)); } string rawCode = dstItem.ItemCode; if (dstItem.Cfg.SkillLevel <= 0) { dstItem.Cfg.SkillLevel = 1; } if (dstItem.Cfg.SkillLevel >= SkillCardConfig.SKILLCardMaxCardLevel) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillMixOverCardLevel)); } var config = SkillCardConfig.GetSkillUpgrade(dstItem.Cfg.SkillLevel + 1, dstItem.Cfg.SkillClass); if (config == null) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillMissConfig)); } var manager = ManagerCore.Instance.GetManager(mid); if (manager == null) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.AdMissManager)); } if (manager.Coin < config.Coin) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.LackofCoin)); } int newLevel = 1; if (InnerDealMix(dstItem, out newLevel)) { string setSkills = string.Empty; if (dstItem.ItemCode != rawCode)//升级了 { setSkills = bag.SetSkillsTextFromLib(); MemcachedFactory.SolutionClient.Delete(mid); } var errCode = InnerSaveMixNew(manager, mid, bag, config.Coin, setSkills); if (errCode == MessageCode.Success) { var response = GetSkillSetInfo(mid); response.Data.Coin = manager.Coin; return(response); } } return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.FailUpdate)); }
public static RootResponse <DTOSkillSetView> SkillSet(Guid mid, string cids, bool hasTask) { if (string.IsNullOrEmpty(cids) || cids.Length >= 400) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillSetInvalidArgs)); } string[] skills = cids.Split(','); if (skills.Length != SkillCardConfig.SKILLCardMAXSkillCellSize) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillSetInvalidArgs)); } int managerLevel = (int)FrameConvert.GetWorthValue(mid, EnumWorthType.ManagerLevel); int maxCells = GetMaxSkillCells(managerLevel); var bag = SkillCardConvert.GetSkillBagWrap(mid); var onlib = new Dictionary <string, DTOSkillSetItem>(bag.SetList.Count); foreach (var item in bag.SetList.Values) { item.Index = 0; onlib[item.ItemId] = item; } int cntCells = 0; DTOSkillSetItem setItem = null; var dicChk = new Dictionary <string, byte>(skills.Length); for (int i = 0; i < skills.Length; ++i) { if (skills[i] == string.Empty) { continue; } if (!onlib.TryGetValue(skills[i], out setItem)) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillMissCard)); } if (!SkillCardConvert.FillSkillCardConfig(setItem, false)) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillMissConfig)); } if (dicChk.ContainsKey(setItem.Cfg.SkillRoot)) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillSetLimitRepeat)); } ++cntCells; setItem.Index = i + 1; dicChk[setItem.Cfg.SkillRoot] = 0; skills[i] = setItem.ItemCode; } if (cntCells > maxCells) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillSetLackofCells)); } string setSkills = string.Join(",", skills); string setMap = bag.SetMap; MemcachedFactory.SolutionClient.Delete(mid); int errorCode = 0; NbManagerskillbagMgr.Set(mid, setSkills, null, setMap, bag.RawBag.RowVersion, ref errorCode); if (errorCode != (int)MessageCode.Success) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(errorCode)); } var data = new DTOSkillSetView(); data.MaxSetCells = maxCells; data.CntSetCells = cntCells; data.SetList = bag.GetShowSet(); //if (hasTask) //{ data.PopMsg = TaskHandler.Instance.SkillSet(mid); //} //data.CardList = bag.GetShowBag(); return(ResponseHelper.CreateRoot <DTOSkillSetView>(data)); }