public static string SaveLogindata(string account, string platformCode, string extraData = "", string kgext = "") { string returnCode = ""; try { ManagerClient reader = new ManagerClient(); var user = reader.GetUserByAccount(account, GetRealIP()); if (user != null) { var sessionId = ShareUtil.GenerateComb().ToString(); SetFormsAuthentication(account, Guid.Empty, "", 1, sessionId); //转页 returnCode = UAErrorCode.ErrOK; } else { returnCode = UAErrorCode.ErrNoUser; } } catch (Exception ex) { SystemlogMgr.Error("UAHelper SaveLogindata", ex); returnCode = UAErrorCode.ErrOther; } return(returnCode); }
static MessageCode InnerSaveMixNew(NbManagerEntity manager, Guid mid, SkillBagWrap bag, int coin, string setSkills = null) { int errorCode = (int)MessageCode.FailUpdate; using (var tranMgr = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault())) { tranMgr.BeginTransaction(); do { var mess = ManagerCore.Instance.CostCoin(manager, coin, EnumCoinConsumeSourceType.SkillUpgrade, ShareUtil.GenerateComb().ToString(), tranMgr.TransactionObject); if (mess != MessageCode.Success) { break; } NbManagerskillbagMgr.MixUpTran(false, mid, setSkills, bag.SetMap, "", bag.RawBag.RowVersion, ref errorCode); }while (false); if (errorCode == (int)MessageCode.Success) { tranMgr.Commit(); } else { tranMgr.Rollback(); } } return((MessageCode)errorCode); }
protected void btn_SendMallItem_Click(object sender, EventArgs e) { try { if (CheckManager()) { var mallitemId = ConvertHelper.ConvertToInt(txt_mallId.Text); if (mallitemId <= 0) { ShowMessage("请输入正确的道具ID"); return; } var code = TxBuyPointShipments(_account.ManagerId, ShareUtil.GenerateComb().ToString(), mallitemId, _account.ZoneId); if (code == "") { ShowMessage("发送成功"); } else { ShowMessage(code); } } } catch (Exception ex) { LogHelper.Insert(ex); ShowMessage(ex.Message); } }
public MatchCreateResponse Fight(Guid managerId, Guid awayId) { var lastTime = MemcachedFactory.FriendMutexClient.Get <DateTime>(managerId); if (lastTime > DateTime.Now) { return(ResponseHelper.Create <MatchCreateResponse>(MessageCode.FriendMatchWait)); } //好友比赛每天每个好友只能挑战3次, 只有第一次有奖励 var friend = FriendManagerMgr.GetOne(managerId, awayId); if (friend.DayMatchCount >= 3)//每日三次比赛 { return(ResponseHelper.Create <MatchCreateResponse>(MessageCode.FriendMatchOver)); } var matchId = ShareUtil.GenerateComb(); var code = MatchCore.CreateMatchFriendAsyn(matchId, managerId, awayId, friend, MatchCallback); if (code != MessageCode.Success) { return(ResponseHelper.Create <MatchCreateResponse>(code)); } MemcachedFactory.FriendMutexClient.Set(managerId, DateTime.Now.AddSeconds(_friendMatchWaitTime)); return(ResponseHelper.MatchCreateResponse(matchId)); }
private void BuyPointTx() { int mallcode = GetParamInt("mallcode"); var responsepara = reader.TxBuyPointPara(UserAccount.ManagerId, mallcode); var response = new MallTxBuyPointResultResponse(); if (responsepara.Code != (int)MessageCode.Success) { response.Code = responsepara.Code; OutputHelper.Output(response); return; } string orderId = ShareUtil.GenerateComb() + ""; int cost = 1; var code = BuyPlayzoneItem(responsepara.Data.OpenId, responsepara.Data.Openkey, responsepara.Data.Pf, UAFactory.Instance.TxAppId, UAFactory.Instance.TxAppKey, responsepara.Data.ItemId, responsepara.Data.ZoneId, ref orderId, ref cost); if (code != (int)MessageCode.Success) { response.Code = code; OutputHelper.Output(response); return; } response = reader.TxBuyPointShipments(UserAccount.ManagerId, orderId, cost, responsepara.Data.MallCode); if (response.Code != (int)MessageCode.Success) { response.Code = (int)MessageCode.PaySuccessAndShipmentsBeDefeated; } OutputHelper.Output(response); }
private MessageCode Tran_SaveWincountPrizePrize(DbTransaction transaction, NbManagerEntity manager, LeagueWincountrecordEntity leagueWincountRecord, ItemPackageFrame package, int point, int coin) { if (point > 0) { var code = PayCore.Instance.AddBonus(leagueWincountRecord.ManagerId, point, EnumChargeSourceType.LeaguePrize, ShareUtil.GenerateComb().ToString(), transaction); if (code != MessageCode.Success) { return(code); } } else if (coin > 0) { var code = ManagerCore.Instance.AddCoin(manager, coin, EnumCoinChargeSourceType.LeaguePrize, ShareUtil.GenerateComb().ToString(), transaction); if (code != MessageCode.Success) { return(code); } } else { if (!package.Save(transaction)) { return(MessageCode.FailUpdate); } package.Shadow.Save(); } if (!LeagueWincountrecordMgr.Update(leagueWincountRecord, transaction)) { return(MessageCode.FailUpdate); } return(MessageCode.Success); }
private MessageCode SaveRankPrize(NbManagerEntity manager, LeagueRecordEntity leagueRecord, LeagueManagerrecordEntity mLeagueRecord, LaegueManagerinfoEntity leagueManagerinfo, ItemPackageFrame package, int point, DbTransaction trans) { if (!ManagerUtil.SaveManagerData(manager, null, trans)) { return(MessageCode.NbUpdateFail); } if (!LeagueRecordMgr.Update(leagueRecord, trans)) { return(MessageCode.NbUpdateFail); } if (!LeagueManagerrecordMgr.Update(mLeagueRecord, trans)) { return(MessageCode.NbUpdateFail); } if (!LaegueManagerinfoMgr.Update(leagueManagerinfo, trans)) { return(MessageCode.NbUpdateFail); } if (package != null) { if (!package.Save(trans)) { return(MessageCode.NbUpdateFail); } package.Shadow.Save(); } if (point > 0) { var code = PayCore.Instance.AddBonus(manager.Idx, point, EnumChargeSourceType.LeaguePrize, ShareUtil.GenerateComb().ToString(), trans); return(code); } return(MessageCode.Success); }
private void SelectManager() { var managerId = GetParamGuid("g"); if (!CheckParam(managerId)) { return; } var info = reader.SelectManager(UserAccount.Account, managerId, GetIp(), UAFactory.Instance.IsTx); var sessionId = ShareUtil.GenerateComb().ToString(); if (info.Code == (int)MessageCode.Success) { if (CheckLockState(info.Data.Manager.Idx)) { OutputHelper.Output(MessageCode.LoginOnlineLock); return; } //写入登录信息 var cookie = UAHelper.SetFormsAuthentication(UserAccount.Account, info.Data.Manager.Idx, info.Data.Manager.Name, 1, sessionId); OnlineMgr.LoginSession(info.Data.Manager.Idx, sessionId); onlineClient.RiseOnlineTime(info.Data.Manager.Idx); info.Data.Cookie = cookie; } OutputHelper.Output(info); }
/// <summary> /// 将加入本轮天梯赛的经理推进比赛池. /// </summary> /// <returns></returns> public LadderInfoEntity GetCompetitorToMatch() { //将状态置为分组 var fightList = new List <LadderManagerEntity>(); var arenaLadder = new LadderInfoEntity(); lock (_competitorLock) { ManagerFightDic = new Dictionary <Guid, Guid>(); foreach (var dic in CompetitorDic) { //将经理推进比赛池 ManagerFightDic.Add(dic.Key, Guid.Empty); fightList.Add(dic.Value); } Status = EnumLadderStatus.Grouping; arenaLadder.Idx = ShareUtil.GenerateComb(); arenaLadder.FightList = fightList; arenaLadder.StartTime = StartTime; arenaLadder.GroupingTime = DateTime.Now; //开始新一轮报名 CreateLadder(); } return(arenaLadder); }
/// <summary> /// Builds the match info. /// </summary> /// <param name="ladderId">The ladder id.</param> /// <param name="group">The group.</param> /// <param name="home">The home.</param> /// <param name="away">The away.</param> /// <param name="fightDic">The fight dic.</param> private void BuildMatchInfo(Guid ladderId, int group, LadderManagerEntity home, LadderManagerEntity away, ConcurrentDictionary <Guid, LadderMatchEntity> fightDic) { try { //筛选条件,当两个玩家分差超过阀值,将他们扔到排队池里继续等待 //int tmpScore = home.Score - away.Score; //if (tmpScore <= _arenaLowScore || tmpScore >= _arenaHighScore) //{ // if (!home.IsBot) // LadderCore.Instance.PushFightToCompetitor(home.Clone()); // if (!away.IsBot) // LadderCore.Instance.PushFightToCompetitor(away.Clone()); // return; //} var matchId = ShareUtil.GenerateComb(); var ladderMatch = new LadderMatchEntity(home, away, matchId, ladderId, group + 1); fightDic.TryAdd(ladderMatch.Idx, ladderMatch); MemcachedFactory.LadderMatchClient.Set(ladderMatch.Idx, ladderMatch); //更新经理-比赛关联字典 if (!home.IsBot) { LadderCore.Instance.ManagerFightDic[home.ManagerId] = matchId; } if (!away.IsBot) { LadderCore.Instance.ManagerFightDic[away.ManagerId] = matchId; } } catch (Exception ex) { SystemlogMgr.Error("LadderThread-BuildMatchInfo", ex.Message, ex.StackTrace); } }
/// <summary> /// 注册球星启示录npc /// </summary> private void ReBuildRevelationNpc() { BuildCache(); var allnpcTemp = ConfigRevelationnpctempMgr.GetAll(); SqlHelper.ExecuteNonQuery(_connection, CommandType.Text, "Delete From Dic_Npc Where Type=3;Truncate table Config_RevelationNpcLink"); int index = 0; foreach (var item in allnpcTemp) { index++; DicNpcEntity entity = new DicNpcEntity(); entity.Idx = ShareUtil.GenerateComb(); entity.Type = 3; entity.Name = item.OpponentTeamName; entity.Logo = 1; entity.FormationId = item.FormationID; entity.FormationLevel = item.PlayerLevel; entity.TeammemberLevel = item.PlayerLevel; entity.PlayerCardStrength = item.PlayerCardStrength; entity.CoachId = 0; entity.DoTalent = GetDoTalent(); //主动天赋 entity.ManagerSkill = GetNodoManagerSkill(); //被动天赋和意志 int comb = 0; entity.DoWill = GetDoWill(ref comb); //主动意志 entity.CombLevel = item.PlayerLevel; entity.Buff = item.Buff; entity.TP1 = item.P1; entity.TP2 = item.P2; entity.TP3 = item.P3; entity.TP4 = item.P4; entity.TP5 = item.P5; entity.TP6 = item.P6; entity.TP7 = item.P7; entity.TE1 = 211071; entity.TE2 = 211076; entity.TE3 = 211072; entity.TE4 = 211073; entity.TE5 = 211074; entity.TE6 = 211075; entity.TE7 = 211077; entity.TS1 = "A031_40"; entity.TS2 = "A033_40"; entity.TS3 = "A027_40"; entity.TS4 = "A034_40"; entity.TS5 = "A030_40"; entity.TS6 = "A032_40"; entity.TS7 = "A028_40"; DicNpcMgr.Insert(entity); ConfigRevelationnpclinkMgr.Insert(new ConfigRevelationnpclinkEntity(index, item.MarkId, item.Schedule, entity.Idx)); m_curCount++; ProgressBar1.Value = m_curCount; lblProcess.Content = string.Format("进度:{0}/{1}", m_curCount, m_totalCount); } }
public static BaseMatchData CreateMatch(EnumMatchType matchType, Guid homeId, Guid awayId) { var matchId = ShareUtil.GenerateComb(); var stateObj = new BaseMatchData((int)matchType, matchId, homeId, awayId); MatchThread.Instance.CreateMatch(stateObj); return(stateObj); }
private MessageCode SaveMatchConfirm(NbManagerEntity manager, ItemPackageFrame package, LeagueRecordEntity leagueRecordInfo, LeagueManagerrecordEntity nextManagerRecord, LeagueManagerrecordEntity leagueManagerRecord, int point, bool isUpdatenextManagerRecord, LaegueManagerinfoEntity leagueManagerInfo, LeagueFightMapFrame fightMap, NbManagerextraEntity managerExtra, LeagueWincountrecordEntity leagueWinCount, DbTransaction trans) { if (!ManagerUtil.SaveManagerData(manager, managerExtra, trans)) { return(MessageCode.NbUpdateFail); } if (!NbManagerextraMgr.Update(managerExtra, trans)) { return(MessageCode.NbUpdateFail); } if (package != null) { if (!package.Save(trans)) { return(MessageCode.NbUpdateFail); } package.Shadow.Save(); } if (!LeagueRecordMgr.Update(leagueRecordInfo, trans)) { return(MessageCode.NbUpdateFail); } if (isUpdatenextManagerRecord) { if (nextManagerRecord != null) { if (!LeagueManagerrecordMgr.Update(nextManagerRecord, trans)) { return(MessageCode.NbUpdateFail); } } } if (!LaegueManagerinfoMgr.Update(leagueManagerInfo, trans)) { return(MessageCode.NbUpdateFail); } if (!LeagueManagerrecordMgr.Update(leagueManagerRecord, trans)) { return(MessageCode.NbUpdateFail); } if (point > 0) { var code = PayCore.Instance.AddBonus(manager.Idx, point, EnumChargeSourceType.LeaguePrize, ShareUtil.GenerateComb().ToString(), trans); return(code); } if (!fightMap.SaveFIghtMap(trans)) { return(MessageCode.NbUpdateFail); } if (!LeagueWincountrecordMgr.Update(leagueWinCount, trans)) { return(MessageCode.NbUpdateFail); } return(MessageCode.Success); }
private void ManagerInfo() { if (UserAccount.ManagerId == Guid.Empty) //登录 { var info = reader.GetManagerInfoByAccount(UserAccount.Account, GetIp(), UAFactory.Instance.IsTx); var sessionId = ShareUtil.GenerateComb().ToString(); if (info.Code == (int)MessageCode.Success) { if (info.Data.NeedSelect == false) { if (info.Data.ManagerInfo == null) { string playerName = ""; string logo = "1"; int templateId = 1; var createData = reader.CreateManager(UserAccount.Account, playerName, logo, templateId, UAHelper.GetRealIP()); if (createData.Code != (int)MessageCode.Success) { info.Code = createData.Code; OutputHelper.Output(info); return; } info = reader.GetManagerInfoByAccount(UserAccount.Account, GetIp(), UAFactory.Instance.IsTx); } if (CheckLockState(info.Data.ManagerInfo.Manager.Idx)) { OutputHelper.Output(MessageCode.LoginOnlineLock); return; } //写入登录信息 string cookie = UAHelper.SetFormsAuthentication(UserAccount.Account, info.Data.ManagerInfo.Manager.Idx, info.Data.ManagerInfo.Manager.Name, 1, sessionId); OnlineMgr.LoginSession(info.Data.ManagerInfo.Manager.Idx, sessionId); onlineClient.RiseOnlineTime(info.Data.ManagerInfo.Manager.Idx); info.Data.Cookie = cookie; } } OutputHelper.Output(info); } else { if (CheckLockState(UserAccount.ManagerId)) { OutputHelper.Output(MessageCode.LoginOnlineLock); return; } var info = reader.GetManagerInfo(UserAccount.ManagerId, UAFactory.Instance.IsTx); info.Data.Cookie = ""; OutputHelper.Output(info); } }
/// <summary> /// 生成物品基本信息 /// </summary> /// <param name="itemType"></param> /// <param name="itemCode"></param> /// <param name="itemCount"></param> /// <param name="isBinding"></param> /// <returns></returns> public ConstellationInfoEntity BuildItem(int itemType, int itemCode, int itemCount, bool isBinding) { Guid itemId = ShareUtil.GenerateComb(); LastAddItemId = itemId; LastAddItem = BuildItem(itemId, itemType, itemCode, itemCount, isBinding); return(LastAddItem); }
public MessageCode ResetLeague(Guid managerId, int leagueId, int point) { DateTime date = DateTime.Now; var managerRecord = LeagueManagerrecordMgr.GetManagerMarkInfo(managerId, leagueId); managerRecord.LeagueRecordId = new Guid();//00000000-0000-0000-0000-000000000000 //managerRecord.LastPrizeLeagueRecordId = new Guid(); managerRecord.IsPass = false; managerRecord.IsStart = false; managerRecord.MatchNumber = 0; managerRecord.Score = 0; managerRecord.WinNumber = 0; managerRecord.FlatNumber = 0; managerRecord.LoseNumber = 0; managerRecord.GoalsNumber = 0; managerRecord.FumbleNumber = 0; managerRecord.MaxWheelNumber = 0; managerRecord.UpdateTime = date; managerRecord.FightDicId = 0; var fightMap = new LeagueFightMapFrame(managerId); using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault())) { transactionManager.BeginTransaction(); MessageCode messCode = MessageCode.NbUpdateFail; do { if (point > 0) { messCode = PayCore.Instance.GambleConsume(managerId, 50, ShareUtil.GenerateComb(), EnumConsumeSourceType.LeagueReset, transactionManager.TransactionObject); if (messCode != MessageCode.Success) { break; } } messCode = fightMap.ClearFightMap(transactionManager.TransactionObject); if (messCode != MessageCode.Success) { break; } if (!LeagueManagerrecordMgr.Update(managerRecord, transactionManager.TransactionObject)) { break; } messCode = MessageCode.Success; } while (false); if (messCode != MessageCode.Success) { transactionManager.Rollback(); return(messCode); } transactionManager.Commit(); } return(MessageCode.Success); }
DicNpcEntity BuildBasicData(int playerLevel, int strengthenLevel, int eqLevel) { //阵型 int formationId = RandomHelper.GetInt32(1, 17); //获取阵型 var formationList = CacheFactory.FormationCache.GetFormationDetail(formationId); DicNpcEntity entity = new DicNpcEntity(); entity.Idx = ShareUtil.GenerateComb(); entity.Type = 2; entity.Name = GetName(); entity.Logo = 1; entity.FormationId = formationId; entity.FormationLevel = playerLevel; entity.TeammemberLevel = playerLevel; entity.PlayerCardStrength = strengthenLevel; entity.CoachId = 0; entity.DoTalent = GetDoTalent(); //主动天赋 entity.ManagerSkill = GetNodoManagerSkill(); //被动天赋和意志 int comb = 0; entity.DoWill = GetDoWill(ref comb);//主动意志 entity.CombLevel = playerLevel; entity.Buff = 100 + playerLevel; entity.TP1 = GetPlayer(1, formationList.Values.ToList()); entity.TP2 = GetPlayer(2, formationList.Values.ToList()); entity.TP3 = GetPlayer(3, formationList.Values.ToList()); entity.TP4 = GetPlayer(4, formationList.Values.ToList()); entity.TP5 = GetPlayer(5, formationList.Values.ToList()); entity.TP6 = GetPlayer(6, formationList.Values.ToList()); entity.TP7 = GetPlayer(7, formationList.Values.ToList()); entity.TE1 = GetEquipment(eqLevel); entity.TE2 = GetEquipment(eqLevel); entity.TE3 = GetEquipment(eqLevel); entity.TE4 = GetEquipment(eqLevel); entity.TE5 = GetEquipment(eqLevel); entity.TE6 = GetEquipment(eqLevel); entity.TE7 = GetEquipment(eqLevel); entity.TS1 = ""; entity.TS2 = ""; entity.TS3 = ""; entity.TS4 = ""; entity.TS5 = ""; entity.TS6 = ""; entity.TS7 = ""; return(entity); }
/// <summary> /// 天梯赛清除CD /// </summary> /// <param name="managerId"></param> /// <returns></returns> public LadderClearCDResponse LadderClearCD(Guid managerId) { LadderClearCDResponse response = new LadderClearCDResponse(); response.Data = new LadderClearCD(); try { if (_ManagerMatchCD.ContainsKey(managerId)) { if (DateTime.Now >= _ManagerMatchCD[managerId]) { response.Code = (int)MessageCode.LadderCdEnd; } var manager = ManagerCore.Instance.GetManager(managerId); int point = 0; if (manager.VipLevel > 0) { point = LadderVipClearCDPrice; } else { point = LadderNotVipClearCDPrice; } var pointNumber = PayCore.Instance.GetPoint(managerId); if (pointNumber < point) { response.Code = (int)MessageCode.NbPointShortage; return(response); } var messCode = PayCore.Instance.GambleConsume(managerId, point, ShareUtil.GenerateComb(), EnumConsumeSourceType.LadderClearCD); if (messCode == MessageCode.Success) { _ManagerMatchCD[managerId] = DateTime.Now; response.Data.CDTick = ShareUtil.GetTimeTick(DateTime.Now); response.Data.Point = pointNumber - point; } } else { response.Code = (int)MessageCode.LadderCdEnd; } } catch (Exception ex) { SystemlogMgr.Error("天梯赛清除CD", ex); } return(response); }
public TransactionShadow(Guid managerId, EnumTransactionType transactionType, string zoneId = "") { Transaction = new ShadowTransactionEntity(); Transaction.Idx = ShareUtil.GenerateComb(); Transaction.TransactionType = (int)transactionType; Transaction.ManagerId = managerId; Transaction.RowTime = DateTime.Now; Transaction.TerminalIP = ShareUtil.GetServerIp(); Transaction.AppId = ShareUtil.AppId; Shadows = new List <IShadow>(); ItemShadows = new List <ItemShadow>(); _zoneId = zoneId; }
/// <summary> /// 按数量拆分物品 /// </summary> /// <param name="item"></param> /// <param name="count"></param> /// <returns></returns> public MessageCode Split(ConstellationInfoEntity item, int count) { if (item != null) { if (IsFull) { return(MessageCode.ItemPackageFull); } try { if (count <= 0) { return(MessageCode.NbParameterError); } if (item.ItemCount <= count) { return(MessageCode.ItemSplitCountOver); } else { item.ItemCount = item.ItemCount - count; var code = Update(item, count * -1); if (code != MessageCode.Success) { return(code); } var newItem = item.Clone(); newItem.GridIndex = GetBlankGrid(); _blanks.Remove(newItem.GridIndex); _itemCount++; newItem.ItemId = ShareUtil.GenerateComb(); newItem.ItemCount = count; LastAddItemId = newItem.ItemId; return(SaveItem(newItem)); } } catch (Exception ex) { SystemlogMgr.Error("ConstellationPackbager Split", ex); return(MessageCode.Exception); } } return(MessageCode.ItemNotExists); }
/// <summary> /// Builds the match info. /// </summary> /// <param name="ladderId">The ladder id.</param> /// <param name="group">The group.</param> /// <param name="home">The home.</param> /// <param name="away">The away.</param> /// <param name="fightDic">The fight dic.</param> private void BuildMatchInfo(Guid ladderId, int group, CrossladderManagerEntity home, CrossladderManagerEntity away, Dictionary <Guid, CrossladderMatchEntity> fightDic) { try { //筛选条件,当两个玩家分差超过阀值,将他们扔到排队池里继续等待 //int tmpScore = home.Score - away.Score; //if (tmpScore <= _arenaLowScore || tmpScore >= _arenaHighScore) //{ // if (!home.IsBot) // CrossLadderCore.Instance.PushFightToCompetitor(home.Clone()); // if (!away.IsBot) // CrossLadderCore.Instance.PushFightToCompetitor(away.Clone()); // return; //} var matchId = ShareUtil.GenerateComb(); var ladderMatch = new CrossladderMatchEntity(home, away, matchId, ladderId, group + 1); ladderMatch.HomeName = ShareUtil.GetCrossManagerNameByZoneId(home.SiteId, home.Name); ladderMatch.AwayName = ShareUtil.GetCrossManagerNameByZoneId(away.SiteId, away.Name); ladderMatch.DomainId = _domainId; fightDic.Add(ladderMatch.Idx, ladderMatch); MemcachedFactory.LadderMatchClient.Set(ladderMatch.Idx, ladderMatch); //更新经理-比赛关联字典 if (!home.IsBot) { var homeHeart = new CrossLadderHeartEntity(matchId, away.ManagerId, away.SiteId, away.IsBot, away.Kpi); ManagerFightDic[home.ManagerId] = homeHeart; MemcachedFactory.LadderHeartClient.Set(home.ManagerId, homeHeart); } if (!away.IsBot) { var awayHeart = new CrossLadderHeartEntity(matchId, home.ManagerId, home.SiteId, home.IsBot, away.Kpi); ManagerFightDic[away.ManagerId] = awayHeart; MemcachedFactory.LadderHeartClient.Set(away.ManagerId, awayHeart); } } catch (Exception ex) { SystemlogMgr.Error("CrossLadderThread-BuildMatchInfo", ex.Message, ex.StackTrace); } }
private void BuildMatchInfo(int crowdId, int pairIndex, CrosscrowdManagerEntity home, CrosscrowdManagerEntity away, Dictionary <Guid, CrosscrowdMatchEntity> matchDic) { try { var matchId = ShareUtil.GenerateComb(); var match = new CrosscrowdMatchEntity(home, away, matchId, crowdId, pairIndex); matchDic.Add(match.Idx, match); MemcachedFactory.CrowdMatchClient.Set(match.Idx, match); //更新经理-比赛关联字典 var homeHeart = new CrowdHeartEntity(matchId, away.ShowName, away.Logo, away.Morale, away.ManagerId, away.SiteId); var awayHeart = new CrowdHeartEntity(matchId, home.ShowName, home.Logo, home.Morale, home.ManagerId, home.SiteId); ManagerFightDic[home.ManagerId] = homeHeart; ManagerFightDic[away.ManagerId] = awayHeart; //try //{ // CrossChatHelper.SendCrowdPairPop(home.ManagerId, homeHeart, home.SiteId); // CrossChatHelper.SendCrowdPairPop(away.ManagerId, awayHeart, away.SiteId); //} //catch (Exception ex) //{ // SystemlogMgr.Error("CrossCrowdThread-SendCrowdPairPop", ex); //} MatchCdHandler.SetCd(home.ManagerId, EnumMatchType.CrossCrowd, _crowdCd); MatchCdHandler.SetCd(away.ManagerId, EnumMatchType.CrossCrowd, _crowdCd); try { MemcachedFactory.CrowdHeartClient.Set(home.ManagerId, homeHeart); MemcachedFactory.CrowdHeartClient.Set(away.ManagerId, awayHeart); } catch (Exception ex) { SystemlogMgr.Error("CrossCrowdThread-BuildMatchInfo-Send", ex); } } catch (Exception ex) { SystemlogMgr.Error("CrossCrowdThread-BuildMatchInfo", ex); } }
void CreateMatch(MatchInput transfer, int matchTimes, bool needStatistics, CreateDelegate createDelegate, FinishDelegate finishDelegate) { int i = 1; var hmid = transfer.HomeManager.Mid; var amid = transfer.AwayManager.Mid; while (i <= matchTimes) { if (transfer != null) { var watch = new System.Diagnostics.Stopwatch(); watch.Start(); transfer.MatchId = ShareUtil.GenerateComb(); try { IMatch match = new MatchEntity(transfer); if (needStatistics) { statisticsMatch = new StatisticsMatchEntity(match); } EmulatorHelper.CreateMatch(match, statisticsMatch); var result = match.Report; long cost = watch.ElapsedMilliseconds; _testStatisticsDic.Add(i, statisticsMatch); _testMatchEntityDic.Add(i, result); Dispatcher.Invoke((Action) delegate { createDelegate(transfer.MatchId, i, cost, result); }); } catch (Exception ex) { LogHelper.Insert(ex); } } i++; } Dispatcher.Invoke((Action) delegate { finishDelegate(); }); }
//MessageCode Tran_SaveLottery(DbTransaction transaction, Guid matchId, Guid managerId, ItemPackageFrame package, MailBuilder mail, int lotteryRepeatCode) MessageCode Tran_SaveLottery(DbTransaction transaction, Guid matchId, Guid managerId, int lotteryRepeatCode, ItemPackageFrame package, MailBuilder mail, int point) { MessageCode msg = MessageCode.Success; if (point > 0) { msg = PayCore.Instance.AddBonus(managerId, point, EnumChargeSourceType.PkMatchPrize, ShareUtil.GenerateComb().ToString(), transaction); if (msg != MessageCode.Success) { return(msg); } } int returnCode = -2; PlayerkillInfoMgr.LotterySave(matchId, managerId, lotteryRepeatCode, ref returnCode, transaction); if (returnCode != 0) { return(MessageCode.NbUpdateFail); } if (package != null) { if (!package.Save(transaction)) { return(MessageCode.NbUpdateFail); } package.Shadow.Save(); } if (mail != null) { if (!mail.Save(transaction)) { return(MessageCode.NbUpdateFail); } } return(MessageCode.Success); }
private bool doLogin() { try { var platformId = ddlPlatform.SelectedValue; var user = NbUserMgr.GetByAccount(UserName, Request.UserHostAddress, DateTime.Today.AddDays(-1), DateTime.Today, 0); var sessionId = ShareUtil.GenerateComb().ToString(); if (user != null) { UserAccountEntity userAccountEntity = new UserAccountEntity(user.Account, Guid.Empty, "", 1, platformId, sessionId); userAccountEntity.ExtraData = "d|pengyou|f"; FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, user.Account, DateTime.Now, DateTime.Now.AddDays(10), false, userAccountEntity.ToString(), FormsAuthentication .FormsCookiePath); var cookie = FormsAuthentication.Encrypt(ticket); Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, cookie)); // OnlineMgr.LoginSession(info.Data.ManagerInfo.Manager.Idx, sessionId); return(true); } else { ResponseMessage("用户名不存在"); return(false); } } catch (Exception ex) { LogHelper.Insert(ex); ResponseMessage(ex.Message); return(false); } }
private void Register() { string playerName = GetParam("name"); string logo = GetParam("logo"); int templateId = 1; // GetParamInt("ti"); if (string.IsNullOrEmpty(playerName)) { OutputHelper.Output(MessageCode.RegisterNameIsEmpty); return; } var createData = reader.CreateManager(UserAccount.Account, playerName, logo, templateId, UAHelper.GetRealIP()); if (createData.Code == (int)MessageCode.Success) { var sessionId = ShareUtil.GenerateComb().ToString(); var cookie = UAHelper.SetFormsAuthentication(UserAccount.Account, createData.Data, playerName, 1, sessionId); OnlineMgr.LoginSession(createData.Data, sessionId); onlineClient.RiseOnlineTime(createData.Data); } OutputHelper.Output(createData); }
public MessageCode MatchCallback(BaseMatchData matchData) { var fmatchData = (FriendMatchData)matchData; if (fmatchData == null || fmatchData.ErrorCode != (int)MessageCode.Success) { return(MessageCode.MatchCreateFail); } var friendRecord = fmatchData.FriendRecord; bool isFriend = friendRecord != null; var coin = 0; int intimacy = 0; if (isFriend) { var oldIntimacy = friendRecord.Intimacy; AddFriendMatchIntimacy(friendRecord); intimacy = friendRecord.Intimacy - oldIntimacy; if (friendRecord.DayMatchCount == 1) { //第一次比赛有奖励 if (fmatchData.Home.Score > fmatchData.Away.Score) { coin = 30; } else if (fmatchData.Home.Score == fmatchData.Away.Score) { coin = 20; } else { coin = 10; } } } var match = new FriendMatchEntity(); match.Idx = fmatchData.MatchId; match.HomeId = fmatchData.Home.ManagerId; match.HomeName = fmatchData.Home.Name; match.HomeScore = fmatchData.Home.Score; match.AwayId = fmatchData.Away.ManagerId; match.AwayName = fmatchData.Away.Name; match.AwayScore = fmatchData.Away.Score; match.Intimacy = intimacy; match.IsFriend = isFriend; match.RowTime = DateTime.Now; match.Status = 0; MatchCore.SaveMatchStat(match.HomeId, EnumMatchType.Friend, match.HomeScore, match.AwayScore, match.HomeScore); var winType = EnumWinType.Win; if (match.HomeScore == match.AwayScore) { winType = EnumWinType.Draw; } else if (match.HomeScore < match.AwayScore) { winType = EnumWinType.Lose; } using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault())) { transactionManager.BeginTransaction(); var trans = transactionManager.TransactionObject; var messageCode = MessageCode.NbUpdateFail; do { if (isFriend) { if (!FriendManagerMgr.Update(friendRecord, trans)) { break; } } if (!FriendMatchMgr.Insert(match, trans)) { break; } //记录成就相关数据 var mess = AchievementTaskCore.Instance.UpdateFriendMatchComb(match.HomeId, winType, trans); if (mess != MessageCode.Success) { break; } if (coin > 0) { //友谊赛金币奖励 var manager = ManagerCore.Instance.GetManager(fmatchData.Home.ManagerId); if (manager != null) { mess = ManagerCore.Instance.AddCoin(manager, coin, EnumCoinChargeSourceType.FriendMatch, ShareUtil.GenerateComb().ToString(), trans); if (mess != MessageCode.Success) { break; } } } messageCode = MessageCode.Success; } while (false); if (messageCode == ShareUtil.SuccessCode) { transactionManager.Commit(); } else { transactionManager.Rollback(); } } return(MessageCode.Success); }
private MessageCode SendPrize(Guid managerId, ConfigDaysattendprizeEntity prizeEntity) { bool doublePrize = false; var manager = ManagerCore.Instance.GetManager(managerId); if (manager == null) { return(MessageCode.NbParameterError); } //是否有双倍奖励 if (prizeEntity.HasDouble && manager.VipLevel >= prizeEntity.DoubleVipLevel) { doublePrize = true; } var code = MessageCode.Success; switch (prizeEntity.PrizeType) { case 1: //点券 var point = prizeEntity.Count; if (doublePrize) { point = point * 2; } code = PayCore.Instance.AddBonus(managerId, point, EnumChargeSourceType.LeaguePrize, ShareUtil.GenerateComb().ToString(), null); break; case 2: //奖励物品 var count = prizeEntity.Count; if (doublePrize) { count = count * 2; } //获取背包 var package = ItemCore.Instance.GetPackage(managerId, EnumTransactionType.LeaguePrize); if (package == null) { return(MessageCode.NbNoPackage); } code = package.AddItems(prizeEntity.PrizeItemCode, count, 1, prizeEntity.IsBinding, false); if (package.Save()) { package.Shadow.Save(); } break; } return(code); }
/// <summary> /// 引导比赛 /// </summary> /// <param name="managerId"></param> /// <returns></returns> private MessageCodeResponse GuideMatch(Guid managerId) { var manager = ManagerCore.Instance.GetManager(managerId); if (manager == null) { return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.NbParameterError)); } var arenaManager = InnerGetLadderManager(managerId); if (arenaManager == null) { return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.NbParameterError)); } if (ManagerGuideFightDic == null) { ManagerGuideFightDic = new Dictionary <Guid, Guid>(); } var laddermanager = GetLadderManager(managerId); if (laddermanager.MatchTime > 0) { return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.NbParameterError)); } LadderManagerEntity bot = new LadderManagerEntity(); var botList = LadderManagerMgr.GetBot(1, 0, 1201); if (botList != null) { bot = botList[0]; bot.Name = "送分小王子"; bot.IsBot = true; bot.Score = laddermanager.Score; } laddermanager.IsBot = false; laddermanager.Name = manager.Name; laddermanager.UpdateTime = DateTime.Now; laddermanager.HasTask = true; var ladderInfo = new LadderInfoEntity(); ladderInfo.Idx = ShareUtil.GenerateComb(); ladderInfo.FightList = new List <LadderManagerEntity>() { laddermanager, bot }; ladderInfo.StartTime = DateTime.Now; ladderInfo.GroupingTime = DateTime.Now; ladderInfo.CountdownTime = DateTime.Now; ladderInfo.CountdownTime = DateTime.Now.AddSeconds(1); ladderInfo.PlayerNumber = 2; ladderInfo.AvgWaitTime = 2; var matchId = ShareUtil.GenerateComb(); var ladderMatch = new LadderMatchEntity(laddermanager, bot, matchId, ladderInfo.Idx, 1); ConcurrentDictionary <Guid, LadderMatchEntity> fightDic = new ConcurrentDictionary <Guid, LadderMatchEntity>(); fightDic.TryAdd(ladderMatch.Idx, ladderMatch); MemcachedFactory.LadderMatchClient.Set(ladderMatch.Idx, ladderMatch); var process = new LadderProcess(fightDic, ladderInfo, LadderThread.Instance._ladderProctiveScore, true); process.StartProcess(); if (!ManagerGuideFightDic.ContainsKey(managerId)) { ManagerGuideFightDic.Add(managerId, matchId); } return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.Success)); }
/// <summary> /// 抽奖 /// </summary> /// <param name="managerId"></param> /// <param name="zoneName"></param> /// <returns></returns> public CrossActivityPrizeResponse Prize(Guid managerId, string zoneName) { CrossActivityPrizeResponse response = new CrossActivityPrizeResponse(); response.Data = new CrossActivityPrize(); try { if (!IsActivity) { return(ResponseHelper.Create <CrossActivityPrizeResponse>(MessageCode.CrowdNoData)); } var managerInfo = NbManagerMgr.GetById(managerId, zoneName); if (managerInfo == null) { return(ResponseHelper.Create <CrossActivityPrizeResponse>(MessageCode.NbParameterError)); } var maxCount = CacheFactory.VipdicCache.GetEffectValue(managerInfo.VipLevel, (int)EnumVipEffect.BeThankfulActivity); var usedNumber = CrossactivityRecordMgr.GetActivityNumber(managerId, DateTime.Now.Date); if (maxCount <= usedNumber) { return(ResponseHelper.Create <CrossActivityPrizeResponse>(MessageCode.DayNumberNot)); } var result = Prize(managerInfo.VipLevel); CrossactivityRecordEntity entity = new CrossactivityRecordEntity(0, managerId, zoneName, result.PrizeId, DateTime.Now); ItemPackageFrame package = null; int addPoint = 0; int addGoldBar = 0; int itemCode = 0; int itemCount = 0; var messageCode = AddPrize(result, managerId, zoneName, ref package, ref addPoint, ref addGoldBar, ref itemCode, ref itemCount); if (messageCode != MessageCode.Success) { return(ResponseHelper.Create <CrossActivityPrizeResponse>(messageCode)); } if (addPoint > 0) { messageCode = PayCore.Instance.AddBonus(managerInfo.Account, addPoint, EnumChargeSourceType.CrossActivity, ShareUtil.GenerateComb().ToString(), null, zoneName); if (messageCode != MessageCode.Success) { return(ResponseHelper.Create <CrossActivityPrizeResponse>(messageCode)); } } else if (package != null) { if (!package.Save()) { return(ResponseHelper.Create <CrossActivityPrizeResponse>(MessageCode.NbUpdateFail)); } package.Shadow.Save(); } else if (addGoldBar > 0) { var goldBarManager = ScoutingGoldbarMgr.GetById(managerId, zoneName); if (goldBarManager == null) { goldBarManager = new ScoutingGoldbarEntity(managerId, addGoldBar, 0, 0, 0, DateTime.Now, DateTime.Now); if (!ScoutingGoldbarMgr.Insert(goldBarManager, null, zoneName)) { return(ResponseHelper.Create <CrossActivityPrizeResponse>(MessageCode.NbUpdateFail)); } } else { goldBarManager.GoldBarNumber = goldBarManager.GoldBarNumber + addGoldBar; if (!ScoutingGoldbarMgr.Update(goldBarManager, null, zoneName)) { return(ResponseHelper.Create <CrossActivityPrizeResponse>(MessageCode.NbUpdateFail)); } } } try { CrossactivityRecordMgr.Insert(entity); } catch { } response.Data.MaxNumber = maxCount; response.Data.PrizeId = result.PrizeId; response.Data.UsedNumber = usedNumber + 1; response.Data.Number = itemCount; response.Data.ItemCode = itemCode; } catch (Exception ex) { SystemlogMgr.Error("抽奖", ex); response.Code = (int)MessageCode.NbParameterError; } return(response); }