Example #1
0
        void BindData()
        {
            var accountData = Master.GetAccount();

            if (accountData == null)
            {
                Master.ShowMessage("请先选择经理.");
                return;
            }
            ClearData();
            var matchList = NbMatchstatMgr.GetByManager(accountData.ManagerId, accountData.ZoneId);

            if (matchList == null)
            {
                Master.ShowMessage("没有比赛数据.");
                return;
            }
            var localList = new List <AdminMatchStatEntity>(matchList.Count);

            foreach (var entity in matchList)
            {
                var aEntity = new AdminMatchStatEntity(entity);
                aEntity.MatchTypeV = AdminMgr.GetEnumName("EnumMatchType", entity.MatchType);
                localList.Add(aEntity);
            }

            lblHint.Text         = string.Format("总场次:{0}", matchList.Sum(d => d.TotalCount));
            datagrid1.DataSource = localList;
            datagrid1.DataBind();
        }
Example #2
0
 public static void SaveMatchStat(Guid managerId, int matchType, int win, int lose, int draw, int goals, string siteId = "")
 {
     try
     {
         NbMatchstatMgr.Save(managerId, matchType, win, lose, draw, goals, null, siteId);
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("SaveMatchStat", ex);
     }
 }
Example #3
0
        public static double GetWinRate(Guid managerId, EnumMatchType matchType, string siteId = "")
        {
            var matchState = NbMatchstatMgr.GetByManagerAndType(managerId, (int)matchType, siteId);

            if (matchState != null)
            {
                return(matchState.WinRate);
            }
            else
            {
                return(0);
            }
        }
Example #4
0
        //成就任务
        private bool doAchievementHandler(Guid managerId, int taskId, int count, ref byte[] doneParam, ref string stepRecord, ref int curTimes, ref int status,
                                          EnumTaskRequireFunc requireType, int subParam = 0, int thirdParam = 0, string doneKey = "")
        {
            try
            {
                var taskCache = CacheFactory.TaskConfigCache.GetTask(taskId);
                if (taskCache == null)
                {
                    SystemlogMgr.Error("TaskHandler", "no task config taskid:" + taskId);
                    return(false);
                }
                int tempRequireType = (int)requireType;
                if (!taskCache.RequireFuncDic.ContainsKey(tempRequireType))
                {
                    return(false);
                }
                TaskDoneRecordEntity doneRecordEntity = null;
                if (taskCache.UniqueConstraint)
                {
                    if (doneParam == null || doneParam.Length <= 0)
                    {
                        doneRecordEntity = new TaskDoneRecordEntity(taskCache.RequireList.Count);
                    }
                    else
                    {
                        doneRecordEntity = SerializationHelper.FromByte <TaskDoneRecordEntity>(doneParam);
                    }
                }
                var  stepArray = BuildStepArray(stepRecord, taskCache.RequireList.Count);
                bool sync      = false;
                for (int i = 0; i < taskCache.RequireList.Count; i++)
                {
                    if (doneRecordEntity != null)
                    {
                        if (doneRecordEntity.Records[i].Params.Contains(doneKey))
                        {
                            continue;
                        }
                    }
                    var require = taskCache.RequireList[i];
                    if (require.RequireType == (int)EnumTaskRequireFunc.PlayCardCollection)
                    {
                        if (require.RequireSub != 0 && require.RequireSub <= 4)
                        {
                            var achievementManager = AchievementManagerMgr.GetById(managerId);
                            if (achievementManager != null)
                            {
                                switch (require.RequireSub)
                                {
                                case 4:
                                    curTimes = achievementManager.PurpleCardCount;
                                    break;

                                case 3:
                                    curTimes = achievementManager.OrangeCardCount;
                                    break;

                                case 2:
                                    curTimes = achievementManager.SilverCardCount;
                                    break;

                                case 1:
                                    curTimes = achievementManager.GoldCardCount;
                                    break;
                                }
                                stepArray[i] = "1";
                            }
                        }
                    }
                    else if (require.RequireType == (int)EnumTaskRequireFunc.PlayerCardLevel)
                    {
                        if (require.RequireSub != 0 && require.RequireSub <= 30)
                        {
                            var achievementManager = AchievementManagerMgr.GetById(managerId);
                            if (achievementManager != null)
                            {
                                switch (require.RequireSub)
                                {
                                case 5:
                                    curTimes = achievementManager.Level5CardCount;
                                    break;

                                case 10:
                                    curTimes = achievementManager.Level10CardCount;
                                    break;

                                case 20:
                                    curTimes = achievementManager.Level20CardCount;
                                    break;

                                case 30:
                                    curTimes = achievementManager.Level30CardCount;
                                    break;
                                }
                                stepArray[i] = "1";
                            }
                        }
                    }
                    else if (require.RequireType == (int)EnumTaskRequireFunc.LeagueChampionScore)
                    {
                        if (require.RequireSub != 0 && require.RequireSub <= 8)
                        {
                            var achievementManager = AchievementManagerMgr.GetById(managerId);
                            if (achievementManager != null)
                            {
                                switch (require.RequireSub)
                                {
                                case 1:
                                    if (achievementManager.LeagueScore1 >= require.RequireThird)
                                    {
                                        curTimes = 1;
                                    }
                                    break;

                                case 2:
                                    if (achievementManager.LeagueScore2 >= require.RequireThird)
                                    {
                                        curTimes = 1;
                                    }
                                    break;

                                case 3:
                                    if (achievementManager.LeagueScore3 >= require.RequireThird)
                                    {
                                        curTimes = 1;
                                    }
                                    break;

                                case 4:
                                    if (achievementManager.LeagueScore4 >= require.RequireThird)
                                    {
                                        curTimes = 1;
                                    }
                                    break;

                                case 5:
                                    if (achievementManager.LeagueScore5 >= require.RequireThird)
                                    {
                                        curTimes = 1;
                                    }
                                    break;

                                case 6:
                                    if (achievementManager.LeagueScore6 >= require.RequireThird)
                                    {
                                        curTimes = 1;
                                    }
                                    break;

                                case 7:
                                    if (achievementManager.LeagueScore7 >= require.RequireThird)
                                    {
                                        curTimes = 1;
                                    }
                                    break;

                                case 8:
                                    if (achievementManager.LeagueScore8 >= require.RequireThird)
                                    {
                                        curTimes = 1;
                                    }
                                    break;
                                }
                            }
                        }
                    }
                    else if (require.RequireType == (int)EnumTaskRequireFunc.DailyCupRank)
                    {
                        var achievementManager = AchievementManagerMgr.GetById(managerId);
                        if (achievementManager != null)
                        {
                            if (achievementManager.MaxDailyCupRank <= require.RequireSub)
                            {
                                curTimes     = 1;
                                stepArray[i] = "1";
                            }
                        }
                    }
                    if (require.RequireType == (int)EnumTaskRequireFunc.PkMatchGoals)
                    {
                        var achievementManager = AchievementManagerMgr.GetById(managerId);
                        if (achievementManager != null)
                        {
                            if (achievementManager.MaxPkMatchGoals >= curTimes)
                            {
                                curTimes     = achievementManager.MaxPkMatchGoals;
                                stepArray[i] = "1";
                            }
                        }
                    }
                    else if (require.RequireType == (int)EnumTaskRequireFunc.PkMatchDayGoals)
                    {
                        var achievementManager = AchievementManagerMgr.GetById(managerId);
                        if (achievementManager != null)
                        {
                            if (achievementManager.DayPkMatchGoals >= curTimes)
                            {
                                curTimes     = achievementManager.DayPkMatchGoals;
                                stepArray[i] = "1";
                            }
                        }
                    }
                    else if (require.RequireType == (int)EnumTaskRequireFunc.LadderWinCountSeason)
                    {
                        var achievementManager = AchievementManagerMgr.GetById(managerId);
                        if (achievementManager != null)
                        {
                            if (achievementManager.MaxLadderWin >= curTimes)
                            {
                                curTimes     = achievementManager.MaxLadderWin;
                                stepArray[i] = "1";
                            }
                        }
                    }
                    else if (require.RequireType == (int)EnumTaskRequireFunc.LadderMatchGoals)
                    {
                        var achievementManager = AchievementManagerMgr.GetById(managerId);
                        if (achievementManager != null)
                        {
                            if (achievementManager.MaxLadderGoals >= curTimes)
                            {
                                curTimes     = achievementManager.MaxLadderGoals;
                                stepArray[i] = "1";
                            }
                        }
                    }
                    else if (require.RequireType == (int)EnumTaskRequireFunc.FriendMatchWin)
                    {
                        var achievementManager = AchievementManagerMgr.GetById(managerId);
                        if (achievementManager != null)
                        {
                            if (achievementManager.MaxFriendWinComb >= curTimes)
                            {
                                curTimes     = achievementManager.MaxFriendWinComb;
                                stepArray[i] = "1";
                            }
                        }
                    }

                    else if (require.RequireType == (int)EnumTaskRequireFunc.PkOrFriendMatchCount)
                    {
                        var matchStat = NbMatchstatMgr.GetByManager(managerId);
                        if (matchStat != null)
                        {
                            var matchCount = 0;
                            foreach (var nbMatchstatEntity in matchStat)
                            {
                                if (nbMatchstatEntity.MatchType == (int)EnumMatchType.PlayerKill ||
                                    nbMatchstatEntity.MatchType == (int)EnumMatchType.Friend)
                                {
                                    matchCount += nbMatchstatEntity.TotalCount;
                                }
                            }
                            if (matchCount >= curTimes)
                            {
                                curTimes     = matchCount;
                                stepArray[i] = "1";
                            }
                        }
                    }
                    else if (require.RequireType == (int)EnumTaskRequireFunc.LadderMatchCount)
                    {
                        var matchStat = NbMatchstatMgr.GetByManagerAndType(managerId, (int)EnumMatchType.Ladder);
                        if (matchStat != null)
                        {
                            if (matchStat.TotalCount >= curTimes)
                            {
                                curTimes     = matchStat.TotalCount;
                                stepArray[i] = "1";
                            }
                        }
                    }
                    else if (require.RequireType == (int)EnumTaskRequireFunc.FriendMatchCount)
                    {
                        var matchStat = NbMatchstatMgr.GetByManagerAndType(managerId, (int)EnumMatchType.Friend);
                        if (matchStat != null)
                        {
                            if (matchStat.TotalCount >= curTimes)
                            {
                                curTimes     = matchStat.TotalCount;
                                stepArray[i] = "1";
                            }
                        }
                    }
                    else if (require.RequireType == (int)EnumTaskRequireFunc.LadderScore)
                    {
                        var ladderInfo = LadderCore.Instance.GetLadderManager(managerId);
                        if (ladderInfo != null)
                        {
                            if (ladderInfo.MaxScore >= require.RequireSub)
                            {
                                curTimes     = ladderInfo.MaxScore;
                                stepArray[i] = "1";
                            }
                        }
                    }
                    else if (require.RequireType == (int)EnumTaskRequireFunc.PlayerCardStrengthCollection)
                    {
                        var package = ItemCore.Instance.GetPackage(managerId,
                                                                   EnumTransactionType.AchievementUpdate);
                        if (package != null)
                        {
                            var cardCount = package.GetStrengthCardCount(require.RequireSub, require.RequireThird);
                            if (cardCount >= curTimes)
                            {
                                curTimes     = cardCount;
                                stepArray[i] = "1";
                            }
                        }
                    }
                    if (doneRecordEntity != null)
                    {
                        doneRecordEntity.Records[i].Add(doneKey);
                    }
                }
                bool isDone = true;
                foreach (var s in stepArray)
                {
                    if (s != "1")
                    {
                        isDone = false;
                        break;
                    }
                }

                if (isDone)
                {
                    sync = true;
                    if (curTimes >= taskCache.Times)
                    {
                        status = (int)EnumTaskStatus.Done;
                    }
                    stepRecord = "";
                }
                else
                {
                    stepRecord = string.Join(",", stepArray);
                }
                if (sync)
                {
                    if (doneRecordEntity != null)
                    {
                        doneParam = SerializationHelper.ToByte(doneRecordEntity);
                    }
                }
                return(sync);
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("Task Handler", ex);
                return(false);
            }
        }