Ejemplo n.º 1
0
        private int GetKVDataCount(RES_STATISTIC_SETTLE_DATA_TYPE type)
        {
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            if (masterRoleInfo != null)
            {
                for (int i = 0; i < masterRoleInfo.pvpDetail.stKVDetail.dwNum; i++)
                {
                    COMDT_STATISTIC_KEY_VALUE_INFO comdt_statistic_key_value_info = masterRoleInfo.pvpDetail.stKVDetail.astKVDetail[i];
                    if (((RES_STATISTIC_SETTLE_DATA_TYPE)comdt_statistic_key_value_info.dwKey) == type)
                    {
                        return((int)comdt_statistic_key_value_info.dwValue);
                    }
                }
            }
            return(0);
        }
Ejemplo n.º 2
0
        private int GetKVDataCount(RES_STATISTIC_SETTLE_DATA_TYPE type)
        {
            int       result         = 0;
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            if (masterRoleInfo == null)
            {
                return(result);
            }
            int num = 0;

            while ((long)num < (long)((ulong)masterRoleInfo.pvpDetail.stKVDetail.dwNum))
            {
                COMDT_STATISTIC_KEY_VALUE_INFO cOMDT_STATISTIC_KEY_VALUE_INFO = masterRoleInfo.pvpDetail.stKVDetail.astKVDetail[num];
                if (cOMDT_STATISTIC_KEY_VALUE_INFO.dwKey == (uint)type)
                {
                    result = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    break;
                }
                num++;
            }
            return(result);
        }
Ejemplo n.º 3
0
        public void CalculateKDA(COMDT_GAME_INFO gameInfo)
        {
            CRoleInfo masterRoleInfo = this.GetMasterRoleInfo();

            DebugHelper.Assert(masterRoleInfo != null, "masterRoleInfo is null");
            if (masterRoleInfo != null)
            {
                PlayerKDA hostKDA = Singleton <BattleStatistic> .GetInstance().m_playerKDAStat.GetHostKDA();

                if (hostKDA != null)
                {
                    int num   = 0;
                    int num2  = 0;
                    int num3  = 0;
                    int num4  = 0;
                    int num5  = 0;
                    int num6  = 0;
                    int num7  = 0;
                    int num8  = 0;
                    int num9  = 0;
                    int num10 = 0;
                    int num11 = 0;
                    int num12 = 0;
                    ListView <HeroKDA> .Enumerator enumerator = hostKDA.GetEnumerator();
                    while (enumerator.MoveNext())
                    {
                        if (enumerator.Current != null)
                        {
                            num   += enumerator.Current.LegendaryNum;
                            num2  += enumerator.Current.PentaKillNum;
                            num3  += enumerator.Current.QuataryKillNum;
                            num4  += enumerator.Current.TripleKillNum;
                            num5  += enumerator.Current.DoubleKillNum;
                            num8  += !enumerator.Current.bHurtMost ? 0 : 1;
                            num9  += !enumerator.Current.bHurtTakenMost ? 0 : 1;
                            num10 += !enumerator.Current.bGetCoinMost ? 0 : 1;
                            num11 += !enumerator.Current.bAsssistMost ? 0 : 1;
                            num12 += !enumerator.Current.bKillMost ? 0 : 1;
                        }
                    }
                    if (gameInfo.bGameResult == 1)
                    {
                        uint mvpPlayer = Singleton <BattleStatistic> .instance.GetMvpPlayer(hostKDA.PlayerCamp, true);

                        if (mvpPlayer != 0)
                        {
                            num6 = (mvpPlayer != hostKDA.PlayerId) ? 0 : 1;
                        }
                    }
                    else if (gameInfo.bGameResult == 2)
                    {
                        uint num14 = Singleton <BattleStatistic> .instance.GetMvpPlayer(hostKDA.PlayerCamp, false);

                        if (num14 != 0)
                        {
                            num7 = (num14 != hostKDA.PlayerId) ? 0 : 1;
                        }
                    }
                    bool flag   = false;
                    bool flag2  = false;
                    bool flag3  = false;
                    bool flag4  = false;
                    bool flag5  = false;
                    bool flag6  = false;
                    bool flag7  = false;
                    bool flag8  = false;
                    bool flag9  = false;
                    bool flag10 = false;
                    bool flag11 = false;
                    bool flag12 = false;
                    int  index  = 0;
                    ListView <COMDT_STATISTIC_KEY_VALUE_INFO> inList = new ListView <COMDT_STATISTIC_KEY_VALUE_INFO>();
                    while (index < masterRoleInfo.pvpDetail.stKVDetail.dwNum)
                    {
                        COMDT_STATISTIC_KEY_VALUE_INFO comdt_statistic_key_value_info = masterRoleInfo.pvpDetail.stKVDetail.astKVDetail[index];
                        switch (comdt_statistic_key_value_info.dwKey)
                        {
                        case 13:
                            comdt_statistic_key_value_info.dwValue += (uint)num6;
                            flag6 = true;
                            break;

                        case 14:
                            comdt_statistic_key_value_info.dwValue += (uint)num7;
                            flag7 = true;
                            break;

                        case 15:
                            comdt_statistic_key_value_info.dwValue += (uint)num;
                            flag5 = true;
                            break;

                        case 0x10:
                            comdt_statistic_key_value_info.dwValue += (uint)num5;
                            flag = true;
                            break;

                        case 0x11:
                            comdt_statistic_key_value_info.dwValue += (uint)num4;
                            flag2 = true;
                            break;

                        case 0x1b:
                            comdt_statistic_key_value_info.dwValue += (uint)num3;
                            flag3 = true;
                            break;

                        case 0x1c:
                            comdt_statistic_key_value_info.dwValue += (uint)num2;
                            flag4 = true;
                            break;

                        case 0x1d:
                            comdt_statistic_key_value_info.dwValue += (uint)num8;
                            flag8 = true;
                            break;

                        case 30:
                            comdt_statistic_key_value_info.dwValue += (uint)num10;
                            flag10 = true;
                            break;

                        case 0x1f:
                            comdt_statistic_key_value_info.dwValue += (uint)num9;
                            flag9 = true;
                            break;

                        case 0x20:
                            comdt_statistic_key_value_info.dwValue += (uint)num11;
                            flag11 = true;
                            break;

                        case 0x21:
                            comdt_statistic_key_value_info.dwValue += (uint)num12;
                            flag12 = true;
                            break;
                        }
                        index++;
                    }
                    COMDT_STATISTIC_KEY_VALUE_INFO item = null;
                    if (!flag)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 0x10,
                            dwValue = (uint)num5
                        };
                        inList.Add(item);
                    }
                    if (!flag2)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 0x11,
                            dwValue = (uint)num4
                        };
                        inList.Add(item);
                    }
                    if (!flag3)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 0x1b,
                            dwValue = (uint)num3
                        };
                        inList.Add(item);
                    }
                    if (!flag4)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 0x1c,
                            dwValue = (uint)num2
                        };
                        inList.Add(item);
                    }
                    if (!flag5)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 15,
                            dwValue = (uint)num
                        };
                        inList.Add(item);
                    }
                    if (!flag6)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 13,
                            dwValue = (uint)num6
                        };
                        inList.Add(item);
                    }
                    if (!flag7)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 14,
                            dwValue = (uint)num7
                        };
                        inList.Add(item);
                    }
                    if (!flag8)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 0x1d,
                            dwValue = (uint)num8
                        };
                        inList.Add(item);
                    }
                    if (!flag9)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 0x1f,
                            dwValue = (uint)num9
                        };
                        inList.Add(item);
                    }
                    if (!flag10)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 30,
                            dwValue = (uint)num10
                        };
                        inList.Add(item);
                    }
                    if (!flag11)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 0x20,
                            dwValue = (uint)num11
                        };
                        inList.Add(item);
                    }
                    if (!flag12)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 0x21,
                            dwValue = (uint)num12
                        };
                        inList.Add(item);
                    }
                    if (inList.Count > 0)
                    {
                        masterRoleInfo.pvpDetail.stKVDetail.dwNum += (uint)inList.Count;
                        inList.AddRange(masterRoleInfo.pvpDetail.stKVDetail.astKVDetail);
                        masterRoleInfo.pvpDetail.stKVDetail.astKVDetail = LinqS.ToArray <COMDT_STATISTIC_KEY_VALUE_INFO>(inList);
                    }
                }
            }
        }
Ejemplo n.º 4
0
        public void ConvertServerDetailData(CSDT_ACNT_DETAIL_INFO detailInfo)
        {
            this.isMasterData = false;
            this.ResetData();
            this._doubleKillCount  = 0;
            this._trippleKillCount = 0;
            this._quataryKillCount = 0;
            this._pentaKillCount   = 0;
            this._holyShitCount    = 0;
            this._mvpCnt           = 0;
            this._loseMvpCount     = 0;
            if (detailInfo == null)
            {
                return;
            }
            this._playerName               = StringHelper.UTF8BytesToString(ref detailInfo.szAcntName);
            this.m_personSign              = StringHelper.UTF8BytesToString(ref detailInfo.szSignatureInfo);
            this.m_uuid                    = detailInfo.ullUid;
            this.m_iLogicWorldId           = detailInfo.iLogicWorldId;
            this.m_vipInfo                 = new SCPKG_GAME_VIP_NTF();
            this.m_vipInfo.stGameVipClient = detailInfo.stGameVip;
            this._playerHeadUrl            = Singleton <ApolloHelper> .GetInstance().ToSnsHeadUrl(ref detailInfo.szOpenUrl);

            this._playerLevel = detailInfo.dwLevel;
            ResAcntExpInfo dataByKey = GameDataMgr.acntExpDatabin.GetDataByKey(this._playerLevel);

            this._playerNeedExp           = dataByKey.dwNeedExp;
            this._playerExp               = detailInfo.dwExp;
            this.creditScore              = detailInfo.dwCreditValue;
            this.sumDelCreditValue        = detailInfo.iSumDelCreditValue * -1;
            this.mostDelCreditType        = detailInfo.dwMostDelCreditType;
            this._power                   = detailInfo.dwPower;
            this._pvpLevel                = detailInfo.dwPvpLevel;
            this._playerPvpExp            = detailInfo.dwPvpExp;
            this._gender                  = detailInfo.bGender;
            this._privilegeType           = detailInfo.bPrivilege;
            this._rankGrade               = detailInfo.bGradeOfRank;
            this._rankHistoryHighestGrade = detailInfo.bMaxGradeOfRank;
            this._rankClass               = detailInfo.dwCurClassOfRank;
            this._rankHistoryHighestClass = detailInfo.stRankInfo.dwTopClassOfRank;
            this.GuildName                = StringHelper.UTF8BytesToString(ref detailInfo.stGuildInfo.szGuildName);
            this.GuildState               = detailInfo.stGuildInfo.bGuildState;
            this.qqVipMask                = detailInfo.dwQQVIPMask;
            int num = 0;

            while ((long)num < (long)((ulong)detailInfo.stStatistic.stKVDetail.dwNum))
            {
                COMDT_STATISTIC_KEY_VALUE_INFO cOMDT_STATISTIC_KEY_VALUE_INFO = detailInfo.stStatistic.stKVDetail.astKVDetail[num];
                RES_STATISTIC_SETTLE_DATA_TYPE dwKey = cOMDT_STATISTIC_KEY_VALUE_INFO.dwKey;
                switch (dwKey)
                {
                case 13:
                    this._mvpCnt = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    break;

                case 14:
                    this._loseMvpCount = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    break;

                case 15:
                    this._holyShitCount = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    break;

                case 16:
                    this._doubleKillCount = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    break;

                case 17:
                    this._trippleKillCount = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    break;

                default:
                    if (dwKey != 27)
                    {
                        if (dwKey == 28)
                        {
                            this._pentaKillCount = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                        }
                    }
                    else
                    {
                        this._quataryKillCount = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    }
                    break;
                }
                num++;
            }
            this._5V5TotalCount           = (int)detailInfo.stStatistic.stFiveVsFiveInfo.dwTotalNum;
            this._5V5WinCount             = (int)detailInfo.stStatistic.stFiveVsFiveInfo.dwWinNum;
            this._3V3TotalCount           = (int)detailInfo.stStatistic.stThreeVsThreeInfo.dwTotalNum;
            this._3V3WinCount             = (int)detailInfo.stStatistic.stThreeVsThreeInfo.dwWinNum;
            this._2V2TotalCount           = (int)detailInfo.stStatistic.stTwoVsTwoInfo.dwTotalNum;
            this._2V2WinCount             = (int)detailInfo.stStatistic.stTwoVsTwoInfo.dwWinNum;
            this._1V1TotalCount           = (int)detailInfo.stStatistic.stOneVsOneInfo.dwTotalNum;
            this._1V1WinCount             = (int)detailInfo.stStatistic.stOneVsOneInfo.dwWinNum;
            this._guildTotalCount         = (int)detailInfo.stStatistic.stGuildMatch.dwTotalNum;
            this._guildWinCount           = (int)detailInfo.stStatistic.stGuildMatch.dwWinNum;
            this._vsAiTotalCount          = (int)detailInfo.stStatistic.stVsMachineInfo.dwTotalNum;
            this._vsAiWinCount            = (int)detailInfo.stStatistic.stVsMachineInfo.dwWinNum;
            this._rankTotalCount          = (int)detailInfo.stStatistic.stLadderInfo.dwTotalNum;
            this._rankWinCount            = (int)detailInfo.stStatistic.stLadderInfo.dwWinNum;
            this._entertainmentTotalCount = (int)detailInfo.stStatistic.stEntertainmentInfo.dwTotalNum;
            this._entertainmentWinCount   = (int)detailInfo.stStatistic.stEntertainmentInfo.dwWinNum;
            this._heroCnt  = (int)detailInfo.stMostUsedHero.dwTotalHeroNum;
            this._skinCnt  = (int)detailInfo.stMostUsedHero.dwTotalSkinNum;
            this._isOnLine = (detailInfo.bIsOnline != 0);
            if (this._mostUsedHeroList == null)
            {
                this._mostUsedHeroList = new ListView <COMDT_MOST_USED_HERO_INFO>();
            }
            else
            {
                this._mostUsedHeroList.Clear();
            }
            int num2 = (int)Mathf.Min(detailInfo.stMostUsedHero.dwHeroNum, (float)detailInfo.stMostUsedHero.astHeroInfoList.Length);

            for (int i = 0; i < num2; i++)
            {
                this._mostUsedHeroList.Add(detailInfo.stMostUsedHero.astHeroInfoList[i]);
            }
            this.SortMostUsedHeroList();
            if (detailInfo.stHonorInfo == null || detailInfo.stHonorInfo.bHonorCnt < 6)
            {
                Singleton <CRoleInfoManager> .get_instance().InsertHonorOnDuplicateUpdate(ref this._honorDic, 1, 0);

                Singleton <CRoleInfoManager> .get_instance().InsertHonorOnDuplicateUpdate(ref this._honorDic, 2, 0);

                Singleton <CRoleInfoManager> .get_instance().InsertHonorOnDuplicateUpdate(ref this._honorDic, 6, 0);

                Singleton <CRoleInfoManager> .get_instance().InsertHonorOnDuplicateUpdate(ref this._honorDic, 4, 0);

                Singleton <CRoleInfoManager> .get_instance().InsertHonorOnDuplicateUpdate(ref this._honorDic, 5, 0);

                Singleton <CRoleInfoManager> .get_instance().InsertHonorOnDuplicateUpdate(ref this._honorDic, 3, 0);
            }
            if (detailInfo.stHonorInfo != null)
            {
                for (int j = 0; j < (int)detailInfo.stHonorInfo.bHonorCnt; j++)
                {
                    COMDT_HONORINFO cOMDT_HONORINFO = detailInfo.stHonorInfo.astHonorInfo[j];
                    switch (cOMDT_HONORINFO.iHonorID)
                    {
                    case 1:
                    case 2:
                    case 3:
                    case 4:
                    case 5:
                    case 6:
                        Singleton <CRoleInfoManager> .get_instance().InsertHonorOnDuplicateUpdate(ref this._honorDic, cOMDT_HONORINFO.iHonorID, cOMDT_HONORINFO.iHonorPoint);

                        break;
                    }
                }
                COMDT_HONORINFO cOMDT_HONORINFO2 = new COMDT_HONORINFO();
                if (this._honorDic.TryGetValue(detailInfo.stHonorInfo.iCurUseHonorID, ref cOMDT_HONORINFO2))
                {
                    if (cOMDT_HONORINFO2.iHonorLevel > 0)
                    {
                        this._selectedHonorId = detailInfo.stHonorInfo.iCurUseHonorID;
                    }
                    else
                    {
                        this._selectedHonorId = 0;
                    }
                }
            }
            this._geiLiDuiYou     = (int)detailInfo.stLikeNum.dwTeammateNum;
            this._keJingDuiShou   = (int)detailInfo.stLikeNum.dwOpponentNum;
            this._haveExtraCoin   = false;
            this._haveExtraExp    = false;
            this.pvpExtraDetail   = detailInfo.stStatistic.stMultiExtraDetail;
            this.pvpAbilityDetail = detailInfo.stStatistic.stRadarDetail;
            CAchieveInfo2 achieveInfo = CAchieveInfo2.GetAchieveInfo(detailInfo.iLogicWorldId, detailInfo.ullUid, false);

            achieveInfo.OnServerAchieveInfo(detailInfo.astShowAchievement, detailInfo.dwAchieveMentScore);
            this._trophyRewardInfoLevel = achieveInfo.LastDoneTrophyRewardInfo.Cfg.dwTrophyLvl;
            this._trophyRank            = achieveInfo.GetWorldRank();
            Array.Copy(achieveInfo.SelectedTrophies, this._selectedTrophies, achieveInfo.SelectedTrophies.Length);
            this._mentorInfo = Utility.DeepCopyByReflection <COMDT_ACNT_MASTER_INFO>(detailInfo.stAcntMasterInfo);
        }
Ejemplo n.º 5
0
        public void ConvertRoleInfoData(CRoleInfo roleInfo)
        {
            if (roleInfo == null)
            {
                this.ResetData();
                return;
            }
            this.ResetData();
            this.isMasterData    = (roleInfo == Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo());
            this.m_uuid          = roleInfo.playerUllUID;
            this.m_iLogicWorldId = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.logicWorldID;

            this.m_vipInfo                = roleInfo.GetNobeInfo();
            this._gender                  = roleInfo.m_gender;
            this._privilegeType           = roleInfo.m_privilegeType;
            this._playerName              = roleInfo.Name;
            this.m_personSign             = roleInfo.PersonSign;
            this._playerHeadUrl           = roleInfo.HeadUrl;
            this._playerLevel             = roleInfo.Level;
            this._playerExp               = roleInfo.Exp;
            this._playerNeedExp           = roleInfo.NeedExp;
            this._power                   = roleInfo.BattlePower;
            this._pvpLevel                = roleInfo.PvpLevel;
            this._playerPvpExp            = roleInfo.PvpExp;
            this._rankGrade               = roleInfo.m_rankGrade;
            this._rankHistoryHighestGrade = roleInfo.m_rankHistoryHighestGrade;
            this._rankClass               = roleInfo.m_rankClass;
            this._rankHistoryHighestClass = roleInfo.m_rankHistoryHighestClass;
            this.GuildName                = roleInfo.m_baseGuildInfo.name;
            this.GuildState               = roleInfo.m_baseGuildInfo.guildState;
            this.creditScore              = roleInfo.creditScore;
            this.sumDelCreditValue        = roleInfo.sumDelCreditValue;
            this.mostDelCreditType        = roleInfo.mostDelCreditType;
            int num = 0;

            while ((long)num < (long)((ulong)roleInfo.pvpDetail.stKVDetail.dwNum))
            {
                COMDT_STATISTIC_KEY_VALUE_INFO cOMDT_STATISTIC_KEY_VALUE_INFO = roleInfo.pvpDetail.stKVDetail.astKVDetail[num];
                RES_STATISTIC_SETTLE_DATA_TYPE dwKey = cOMDT_STATISTIC_KEY_VALUE_INFO.dwKey;
                switch (dwKey)
                {
                case 13:
                    this._mvpCnt = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    break;

                case 14:
                    this._loseMvpCount = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    break;

                case 15:
                    this._holyShitCount = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    break;

                case 16:
                    this._doubleKillCount = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    break;

                case 17:
                    this._trippleKillCount = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    break;

                default:
                    if (dwKey != 27)
                    {
                        if (dwKey == 28)
                        {
                            this._pentaKillCount = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                        }
                    }
                    else
                    {
                        this._quataryKillCount = (int)cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue;
                    }
                    break;
                }
                num++;
            }
            this._5V5TotalCount           = (int)roleInfo.pvpDetail.stFiveVsFiveInfo.dwTotalNum;
            this._5V5WinCount             = (int)roleInfo.pvpDetail.stFiveVsFiveInfo.dwWinNum;
            this._3V3TotalCount           = (int)roleInfo.pvpDetail.stThreeVsThreeInfo.dwTotalNum;
            this._3V3WinCount             = (int)roleInfo.pvpDetail.stThreeVsThreeInfo.dwWinNum;
            this._2V2TotalCount           = (int)roleInfo.pvpDetail.stTwoVsTwoInfo.dwTotalNum;
            this._2V2WinCount             = (int)roleInfo.pvpDetail.stTwoVsTwoInfo.dwWinNum;
            this._1V1TotalCount           = (int)roleInfo.pvpDetail.stOneVsOneInfo.dwTotalNum;
            this._1V1WinCount             = (int)roleInfo.pvpDetail.stOneVsOneInfo.dwWinNum;
            this._guildTotalCount         = (int)roleInfo.pvpDetail.stGuildMatch.dwTotalNum;
            this._guildWinCount           = (int)roleInfo.pvpDetail.stGuildMatch.dwWinNum;
            this._vsAiTotalCount          = (int)roleInfo.pvpDetail.stVsMachineInfo.dwTotalNum;
            this._vsAiWinCount            = (int)roleInfo.pvpDetail.stVsMachineInfo.dwWinNum;
            this._rankTotalCount          = (int)roleInfo.pvpDetail.stLadderInfo.dwTotalNum;
            this._rankWinCount            = (int)roleInfo.pvpDetail.stLadderInfo.dwWinNum;
            this._entertainmentTotalCount = (int)roleInfo.pvpDetail.stEntertainmentInfo.dwTotalNum;
            this._entertainmentWinCount   = (int)roleInfo.pvpDetail.stEntertainmentInfo.dwWinNum;
            this._heroCnt  = roleInfo.GetHaveHeroCount(false);
            this._skinCnt  = roleInfo.GetHeroSkinCount(false);
            this._isOnLine = true;
            if (this._mostUsedHeroList == null)
            {
                this._mostUsedHeroList = new ListView <COMDT_MOST_USED_HERO_INFO>();
            }
            else
            {
                this._mostUsedHeroList.Clear();
            }
            int num2 = (int)Mathf.Min(roleInfo.MostUsedHeroDetail.dwHeroNum, (float)roleInfo.MostUsedHeroDetail.astHeroInfoList.Length);

            for (int i = 0; i < num2; i++)
            {
                this._mostUsedHeroList.Add(roleInfo.MostUsedHeroDetail.astHeroInfoList[i]);
            }
            this.SortMostUsedHeroList();
            this._selectedHonorId = roleInfo.selectedHonorID;
            Dictionary <int, COMDT_HONORINFO> .Enumerator enumerator = roleInfo.honorDic.GetEnumerator();
            while (enumerator.MoveNext())
            {
                KeyValuePair <int, COMDT_HONORINFO> current = enumerator.get_Current();
                int key = current.get_Key();
                Dictionary <int, COMDT_HONORINFO>   arg_47A_0 = this._honorDic;
                KeyValuePair <int, COMDT_HONORINFO> current2  = enumerator.get_Current();
                if (!arg_47A_0.ContainsKey(current2.get_Key()))
                {
                    Dictionary <int, COMDT_HONORINFO> arg_49C_0 = this._honorDic;
                    int arg_49C_1 = key;
                    KeyValuePair <int, COMDT_HONORINFO> current3 = enumerator.get_Current();
                    arg_49C_0.Add(arg_49C_1, current3.get_Value());
                }
            }
            this._geiLiDuiYou   = roleInfo.GeiLiDuiYou;
            this._keJingDuiShou = roleInfo.KeJingDuiShou;
            this._haveExtraCoin = roleInfo.HaveExtraCoin();
            if (this._haveExtraCoin)
            {
                this._coinExpireHours = roleInfo.GetCoinExpireHours();
                this._coinWinCount    = roleInfo.GetCoinWinCount();
            }
            this._haveExtraExp = roleInfo.HaveExtraExp();
            if (this._haveExtraExp)
            {
                this._expExpireHours = roleInfo.GetExpExpireHours();
                this._expWinCount    = roleInfo.GetExpWinCount();
            }
            this.pvpExtraDetail   = roleInfo.pvpDetail.stMultiExtraDetail;
            this.pvpAbilityDetail = roleInfo.pvpDetail.stRadarDetail;
            CAchieveInfo2 achieveInfo = CAchieveInfo2.GetAchieveInfo(roleInfo.logicWorldID, roleInfo.playerUllUID, false);

            if (achieveInfo != null)
            {
                if (achieveInfo.LastDoneTrophyRewardInfo != null)
                {
                    this._trophyRewardInfoLevel = achieveInfo.LastDoneTrophyRewardInfo.Cfg.dwTrophyLvl;
                }
                else
                {
                    DebugHelper.Assert(false, "cheieveInfo.LastDoneTrophyRewardInfo is null,wordID{0},uid{1}", new object[]
                    {
                        roleInfo.logicWorldID,
                        roleInfo.playerUllUID
                    });
                }
                this._trophyRank = achieveInfo.GetWorldRank();
                if (achieveInfo.SelectedTrophies != null)
                {
                    Array.Copy(achieveInfo.SelectedTrophies, this._selectedTrophies, achieveInfo.SelectedTrophies.Length);
                }
                else
                {
                    DebugHelper.Assert(false, "cheieveInfo.SelectedTrophies is null,wordID{0},uid{1}", new object[]
                    {
                        roleInfo.logicWorldID,
                        roleInfo.playerUllUID
                    });
                }
                this._mentorInfo = Utility.DeepCopyByReflection <COMDT_ACNT_MASTER_INFO>(roleInfo.m_mentorInfo);
            }
            else
            {
                DebugHelper.Assert(false, "cheieveInfo is null,wordID{0},uid{1}", new object[]
                {
                    roleInfo.logicWorldID,
                    roleInfo.playerUllUID
                });
            }
        }
Ejemplo n.º 6
0
        public void ConvertRoleInfoData(CRoleInfo roleInfo)
        {
            if (roleInfo == null)
            {
                this.ResetData();
            }
            else
            {
                this.m_uuid              = roleInfo.playerUllUID;
                this.m_vipInfo           = roleInfo.GetNobeInfo();
                this._gender             = roleInfo.m_gender;
                this._privilegeType      = roleInfo.m_privilegeType;
                this._playerName         = roleInfo.Name;
                this._playerHeadUrl      = roleInfo.HeadUrl;
                this._playerLevel        = roleInfo.Level;
                this._playerExp          = roleInfo.Exp;
                this._playerNeedExp      = roleInfo.NeedExp;
                this._power              = roleInfo.BattlePower;
                this._pvpLevel           = roleInfo.PvpLevel;
                this._playerPvpExp       = roleInfo.PvpExp;
                this._gradeOfRank        = roleInfo.m_gradeOfRank;
                this._highestGradeOfRank = roleInfo.m_HighestGradeOfRank;
                this.GuildName           = roleInfo.m_baseGuildInfo.name;
                this.GuildState          = roleInfo.m_baseGuildInfo.guildState;
                for (int i = 0; i < roleInfo.pvpDetail.stKVDetail.dwNum; i++)
                {
                    COMDT_STATISTIC_KEY_VALUE_INFO comdt_statistic_key_value_info = roleInfo.pvpDetail.stKVDetail.astKVDetail[i];
                    switch (((RES_STATISTIC_SETTLE_DATA_TYPE)comdt_statistic_key_value_info.dwKey))
                    {
                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_MVP_CNT:
                        this._mvpCnt = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_LOSE_SOUL:
                        this._loseMvpCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_GODLIKE_CNT:
                        this._holyShitCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_DOUBLE_KILL_CNT:
                        this._doubleKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_TRIPLE_KILL_CNT:
                        this._trippleKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_QUATARY_KILL_CNT:
                        this._quataryKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_PENTA_KILL_CNT:
                        this._pentaKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;
                    }
                }
                this._5V5TotalCount           = (int)roleInfo.pvpDetail.stFiveVsFiveInfo.dwTotalNum;
                this._5V5WinCount             = (int)roleInfo.pvpDetail.stFiveVsFiveInfo.dwWinNum;
                this._3V3TotalCount           = (int)roleInfo.pvpDetail.stThreeVsThreeInfo.dwTotalNum;
                this._3V3WinCount             = (int)roleInfo.pvpDetail.stThreeVsThreeInfo.dwWinNum;
                this._2V2TotalCount           = (int)roleInfo.pvpDetail.stTwoVsTwoInfo.dwTotalNum;
                this._2V2WinCount             = (int)roleInfo.pvpDetail.stTwoVsTwoInfo.dwWinNum;
                this._1V1TotalCount           = (int)roleInfo.pvpDetail.stOneVsOneInfo.dwTotalNum;
                this._1V1WinCount             = (int)roleInfo.pvpDetail.stOneVsOneInfo.dwWinNum;
                this._vsAiTotalCount          = (int)roleInfo.pvpDetail.stVsMachineInfo.dwTotalNum;
                this._vsAiWinCount            = (int)roleInfo.pvpDetail.stVsMachineInfo.dwWinNum;
                this._rankTotalCount          = (int)roleInfo.pvpDetail.stLadderInfo.dwTotalNum;
                this._rankWinCount            = (int)roleInfo.pvpDetail.stLadderInfo.dwWinNum;
                this._entertainmentTotalCount = (int)roleInfo.pvpDetail.stEntertainmentInfo.dwTotalNum;
                this._entertainmentWinCount   = (int)roleInfo.pvpDetail.stEntertainmentInfo.dwWinNum;
                this._heroCnt  = roleInfo.GetHaveHeroCount(false);
                this._skinCnt  = roleInfo.GetHeroSkinCount(false);
                this._isOnLine = true;
                if (this._mostUsedHeroList == null)
                {
                    this._mostUsedHeroList = new ListView <COMDT_MOST_USED_HERO_INFO>();
                }
                else
                {
                    this._mostUsedHeroList.Clear();
                }
                int num2 = (int)Mathf.Min((float)roleInfo.MostUsedHeroDetail.dwHeroNum, (float)roleInfo.MostUsedHeroDetail.astHeroInfoList.Length);
                for (int j = 0; j < num2; j++)
                {
                    this._mostUsedHeroList.Add(roleInfo.MostUsedHeroDetail.astHeroInfoList[j]);
                }
                this.SortMostUsedHeroList();
            }
        }
Ejemplo n.º 7
0
        public void ConvertServerDetailData(CSDT_ACNT_DETAIL_INFO detailInfo)
        {
            this._doubleKillCount  = 0;
            this._trippleKillCount = 0;
            this._quataryKillCount = 0;
            this._pentaKillCount   = 0;
            this._holyShitCount    = 0;
            this._mvpCnt           = 0;
            this._loseMvpCount     = 0;
            if (detailInfo != null)
            {
                this._playerName = StringHelper.UTF8BytesToString(ref detailInfo.szAcntName);
                this.m_uuid      = detailInfo.ullUid;
                this.m_vipInfo   = new SCPKG_GAME_VIP_NTF();
                this.m_vipInfo.stGameVipClient = detailInfo.stGameVip;
                this._playerHeadUrl            = Singleton <ApolloHelper> .GetInstance().ToSnsHeadUrl(ref detailInfo.szOpenUrl);

                this._playerLevel = detailInfo.dwLevel;
                ResAcntExpInfo dataByKey = GameDataMgr.acntExpDatabin.GetDataByKey(this._playerLevel);
                this._playerNeedExp      = dataByKey.dwNeedExp;
                this._playerExp          = detailInfo.dwExp;
                this._power              = detailInfo.dwPower;
                this._pvpLevel           = detailInfo.dwPvpLevel;
                this._playerPvpExp       = detailInfo.dwPvpExp;
                this._gender             = (COM_SNSGENDER)detailInfo.bGender;
                this._privilegeType      = (COM_PRIVILEGE_TYPE)detailInfo.bPrivilege;
                this._gradeOfRank        = detailInfo.bGradeOfRank;
                this._highestGradeOfRank = detailInfo.bMaxGradeOfRank;
                this.GuildName           = StringHelper.UTF8BytesToString(ref detailInfo.stGuildInfo.szGuildName);
                this.GuildState          = (COM_PLAYER_GUILD_STATE)detailInfo.stGuildInfo.bGuildState;
                this.qqVipMask           = detailInfo.dwQQVIPMask;
                for (int i = 0; i < detailInfo.stStatistic.stKVDetail.dwNum; i++)
                {
                    COMDT_STATISTIC_KEY_VALUE_INFO comdt_statistic_key_value_info = detailInfo.stStatistic.stKVDetail.astKVDetail[i];
                    switch (((RES_STATISTIC_SETTLE_DATA_TYPE)comdt_statistic_key_value_info.dwKey))
                    {
                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_MVP_CNT:
                        this._mvpCnt = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_LOSE_SOUL:
                        this._loseMvpCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_GODLIKE_CNT:
                        this._holyShitCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_DOUBLE_KILL_CNT:
                        this._doubleKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_TRIPLE_KILL_CNT:
                        this._trippleKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_QUATARY_KILL_CNT:
                        this._quataryKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_PENTA_KILL_CNT:
                        this._pentaKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;
                    }
                }
                this._5V5TotalCount           = (int)detailInfo.stStatistic.stFiveVsFiveInfo.dwTotalNum;
                this._5V5WinCount             = (int)detailInfo.stStatistic.stFiveVsFiveInfo.dwWinNum;
                this._3V3TotalCount           = (int)detailInfo.stStatistic.stThreeVsThreeInfo.dwTotalNum;
                this._3V3WinCount             = (int)detailInfo.stStatistic.stThreeVsThreeInfo.dwWinNum;
                this._2V2TotalCount           = (int)detailInfo.stStatistic.stTwoVsTwoInfo.dwTotalNum;
                this._2V2WinCount             = (int)detailInfo.stStatistic.stTwoVsTwoInfo.dwWinNum;
                this._1V1TotalCount           = (int)detailInfo.stStatistic.stOneVsOneInfo.dwTotalNum;
                this._1V1WinCount             = (int)detailInfo.stStatistic.stOneVsOneInfo.dwWinNum;
                this._vsAiTotalCount          = (int)detailInfo.stStatistic.stVsMachineInfo.dwTotalNum;
                this._vsAiWinCount            = (int)detailInfo.stStatistic.stVsMachineInfo.dwWinNum;
                this._rankTotalCount          = (int)detailInfo.stStatistic.stLadderInfo.dwTotalNum;
                this._rankWinCount            = (int)detailInfo.stStatistic.stLadderInfo.dwWinNum;
                this._entertainmentTotalCount = (int)detailInfo.stStatistic.stEntertainmentInfo.dwTotalNum;
                this._entertainmentWinCount   = (int)detailInfo.stStatistic.stEntertainmentInfo.dwWinNum;
                this._heroCnt  = (int)detailInfo.stMostUsedHero.dwTotalHeroNum;
                this._skinCnt  = (int)detailInfo.stMostUsedHero.dwTotalSkinNum;
                this._isOnLine = detailInfo.bIsOnline != 0;
                if (this._mostUsedHeroList == null)
                {
                    this._mostUsedHeroList = new ListView <COMDT_MOST_USED_HERO_INFO>();
                }
                else
                {
                    this._mostUsedHeroList.Clear();
                }
                int num2 = (int)Mathf.Min((float)detailInfo.stMostUsedHero.dwHeroNum, (float)detailInfo.stMostUsedHero.astHeroInfoList.Length);
                for (int j = 0; j < num2; j++)
                {
                    this._mostUsedHeroList.Add(detailInfo.stMostUsedHero.astHeroInfoList[j]);
                }
                this.SortMostUsedHeroList();
            }
        }
Ejemplo n.º 8
0
        public void CalculateKDA(COMDT_GAME_INFO gameInfo)
        {
            CRoleInfo masterRoleInfo = this.GetMasterRoleInfo();

            DebugHelper.Assert(masterRoleInfo != null, "masterRoleInfo is null");
            if (masterRoleInfo != null)
            {
                PlayerKDA hostKDA = Singleton <BattleStatistic> .GetInstance().m_playerKDAStat.GetHostKDA();

                if (hostKDA != null)
                {
                    int num  = 0;
                    int num2 = 0;
                    int num3 = 0;
                    int num4 = 0;
                    int num5 = 0;
                    int num6 = 0;
                    int num7 = 0;
                    IEnumerator <HeroKDA> enumerator = hostKDA.GetEnumerator();
                    while (enumerator.MoveNext())
                    {
                        if (enumerator.Current != null)
                        {
                            num  += enumerator.Current.LegendaryNum;
                            num2 += enumerator.Current.PentaKillNum;
                            num3 += enumerator.Current.QuataryKillNum;
                            num4 += enumerator.Current.TripleKillNum;
                            num5 += enumerator.Current.DoubleKillNum;
                        }
                    }
                    if (gameInfo.bGameResult == 1)
                    {
                        uint mvpPlayer = Singleton <BattleStatistic> .instance.GetMvpPlayer(hostKDA.PlayerCamp, true);

                        if (mvpPlayer != 0)
                        {
                            num6 = (mvpPlayer != hostKDA.PlayerId) ? 0 : 1;
                        }
                    }
                    else if (gameInfo.bGameResult == 2)
                    {
                        uint num9 = Singleton <BattleStatistic> .instance.GetMvpPlayer(hostKDA.PlayerCamp, false);

                        if (num9 != 0)
                        {
                            num7 = (num9 != hostKDA.PlayerId) ? 0 : 1;
                        }
                    }
                    bool flag  = false;
                    bool flag2 = false;
                    bool flag3 = false;
                    bool flag4 = false;
                    bool flag5 = false;
                    bool flag6 = false;
                    bool flag7 = false;
                    int  index = 0;
                    ListView <COMDT_STATISTIC_KEY_VALUE_INFO> inList = new ListView <COMDT_STATISTIC_KEY_VALUE_INFO>();
                    while (index < masterRoleInfo.pvpDetail.stKVDetail.dwNum)
                    {
                        COMDT_STATISTIC_KEY_VALUE_INFO comdt_statistic_key_value_info = masterRoleInfo.pvpDetail.stKVDetail.astKVDetail[index];
                        switch (((RES_STATISTIC_SETTLE_DATA_TYPE)comdt_statistic_key_value_info.dwKey))
                        {
                        case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_MVP_CNT:
                            comdt_statistic_key_value_info.dwValue += (uint)num6;
                            flag6 = true;
                            break;

                        case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_LOSE_SOUL:
                            comdt_statistic_key_value_info.dwValue += (uint)num7;
                            flag7 = true;
                            break;

                        case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_GODLIKE_CNT:
                            comdt_statistic_key_value_info.dwValue += (uint)num;
                            flag5 = true;
                            break;

                        case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_DOUBLE_KILL_CNT:
                            comdt_statistic_key_value_info.dwValue += (uint)num5;
                            flag = true;
                            break;

                        case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_TRIPLE_KILL_CNT:
                            comdt_statistic_key_value_info.dwValue += (uint)num4;
                            flag2 = true;
                            break;

                        case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_QUATARY_KILL_CNT:
                            comdt_statistic_key_value_info.dwValue += (uint)num3;
                            flag3 = true;
                            break;

                        case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_PENTA_KILL_CNT:
                            comdt_statistic_key_value_info.dwValue += (uint)num2;
                            flag4 = true;
                            break;
                        }
                        index++;
                    }
                    COMDT_STATISTIC_KEY_VALUE_INFO item = null;
                    if (!flag)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 0x10,
                            dwValue = (uint)num5
                        };
                        inList.Add(item);
                    }
                    if (!flag2)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 0x11,
                            dwValue = (uint)num4
                        };
                        inList.Add(item);
                    }
                    if (!flag3)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 0x1b,
                            dwValue = (uint)num3
                        };
                        inList.Add(item);
                    }
                    if (!flag4)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 0x1c,
                            dwValue = (uint)num2
                        };
                        inList.Add(item);
                    }
                    if (!flag5)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 15,
                            dwValue = (uint)num
                        };
                        inList.Add(item);
                    }
                    if (!flag6)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 13,
                            dwValue = (uint)num6
                        };
                        inList.Add(item);
                    }
                    if (!flag7)
                    {
                        item = new COMDT_STATISTIC_KEY_VALUE_INFO {
                            dwKey   = 14,
                            dwValue = (uint)num7
                        };
                        inList.Add(item);
                    }
                    if (inList.Count > 0)
                    {
                        masterRoleInfo.pvpDetail.stKVDetail.dwNum += (uint)inList.Count;
                        inList.AddRange(masterRoleInfo.pvpDetail.stKVDetail.astKVDetail);
                        masterRoleInfo.pvpDetail.stKVDetail.astKVDetail = LinqS.ToArray <COMDT_STATISTIC_KEY_VALUE_INFO>(inList);
                    }
                }
            }
        }
Ejemplo n.º 9
0
        public void ConvertRoleInfoData(CRoleInfo roleInfo)
        {
            if (roleInfo == null)
            {
                this.ResetData();
            }
            else
            {
                this.ResetData();
                this.m_uuid          = roleInfo.playerUllUID;
                this.m_iLogicWorldId = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.logicWorldID;

                this.m_vipInfo                = roleInfo.GetNobeInfo();
                this._gender                  = roleInfo.m_gender;
                this._privilegeType           = roleInfo.m_privilegeType;
                this._playerName              = roleInfo.Name;
                this.m_personSign             = roleInfo.PersonSign;
                this._playerHeadUrl           = roleInfo.HeadUrl;
                this._playerLevel             = roleInfo.Level;
                this._playerExp               = roleInfo.Exp;
                this._playerNeedExp           = roleInfo.NeedExp;
                this._power                   = roleInfo.BattlePower;
                this._pvpLevel                = roleInfo.PvpLevel;
                this._playerPvpExp            = roleInfo.PvpExp;
                this._rankGrade               = roleInfo.m_rankGrade;
                this._rankHistoryHighestGrade = roleInfo.m_rankHistoryHighestGrade;
                this._rankClass               = roleInfo.m_rankClass;
                this._rankHistoryHighestClass = roleInfo.m_rankHistoryHighestClass;
                this.GuildName                = roleInfo.m_baseGuildInfo.name;
                this.GuildState               = roleInfo.m_baseGuildInfo.guildState;
                this.creditScore              = roleInfo.creditScore;
                for (int i = 0; i < roleInfo.pvpDetail.stKVDetail.dwNum; i++)
                {
                    COMDT_STATISTIC_KEY_VALUE_INFO comdt_statistic_key_value_info = roleInfo.pvpDetail.stKVDetail.astKVDetail[i];
                    switch (((RES_STATISTIC_SETTLE_DATA_TYPE)comdt_statistic_key_value_info.dwKey))
                    {
                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_MVP_CNT:
                        this._mvpCnt = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_LOSE_SOUL:
                        this._loseMvpCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_GODLIKE_CNT:
                        this._holyShitCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_DOUBLE_KILL_CNT:
                        this._doubleKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_TRIPLE_KILL_CNT:
                        this._trippleKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_QUATARY_KILL_CNT:
                        this._quataryKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_PENTA_KILL_CNT:
                        this._pentaKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;
                    }
                }
                this._5V5TotalCount           = (int)roleInfo.pvpDetail.stFiveVsFiveInfo.dwTotalNum;
                this._5V5WinCount             = (int)roleInfo.pvpDetail.stFiveVsFiveInfo.dwWinNum;
                this._3V3TotalCount           = (int)roleInfo.pvpDetail.stThreeVsThreeInfo.dwTotalNum;
                this._3V3WinCount             = (int)roleInfo.pvpDetail.stThreeVsThreeInfo.dwWinNum;
                this._2V2TotalCount           = (int)roleInfo.pvpDetail.stTwoVsTwoInfo.dwTotalNum;
                this._2V2WinCount             = (int)roleInfo.pvpDetail.stTwoVsTwoInfo.dwWinNum;
                this._1V1TotalCount           = (int)roleInfo.pvpDetail.stOneVsOneInfo.dwTotalNum;
                this._1V1WinCount             = (int)roleInfo.pvpDetail.stOneVsOneInfo.dwWinNum;
                this._vsAiTotalCount          = (int)roleInfo.pvpDetail.stVsMachineInfo.dwTotalNum;
                this._vsAiWinCount            = (int)roleInfo.pvpDetail.stVsMachineInfo.dwWinNum;
                this._rankTotalCount          = (int)roleInfo.pvpDetail.stLadderInfo.dwTotalNum;
                this._rankWinCount            = (int)roleInfo.pvpDetail.stLadderInfo.dwWinNum;
                this._entertainmentTotalCount = (int)roleInfo.pvpDetail.stEntertainmentInfo.dwTotalNum;
                this._entertainmentWinCount   = (int)roleInfo.pvpDetail.stEntertainmentInfo.dwWinNum;
                this._heroCnt  = roleInfo.GetHaveHeroCount(false);
                this._skinCnt  = roleInfo.GetHeroSkinCount(false);
                this._isOnLine = true;
                if (this._mostUsedHeroList == null)
                {
                    this._mostUsedHeroList = new ListView <COMDT_MOST_USED_HERO_INFO>();
                }
                else
                {
                    this._mostUsedHeroList.Clear();
                }
                int num2 = (int)Mathf.Min((float)roleInfo.MostUsedHeroDetail.dwHeroNum, (float)roleInfo.MostUsedHeroDetail.astHeroInfoList.Length);
                for (int j = 0; j < num2; j++)
                {
                    this._mostUsedHeroList.Add(roleInfo.MostUsedHeroDetail.astHeroInfoList[j]);
                }
                this.SortMostUsedHeroList();
                this._selectedHonorId = roleInfo.selectedHonorID;
                Dictionary <int, COMDT_HONORINFO> .Enumerator enumerator = roleInfo.honorDic.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    KeyValuePair <int, COMDT_HONORINFO> current = enumerator.Current;
                    int key = current.Key;
                    KeyValuePair <int, COMDT_HONORINFO> pair2 = enumerator.Current;
                    if (!this._honorDic.ContainsKey(pair2.Key))
                    {
                        KeyValuePair <int, COMDT_HONORINFO> pair3 = enumerator.Current;
                        this._honorDic.Add(key, pair3.Value);
                    }
                }
                this._geiLiDuiYou   = roleInfo.GeiLiDuiYou;
                this._keJingDuiShou = roleInfo.KeJingDuiShou;
                this._haveExtraCoin = roleInfo.HaveExtraCoin();
                if (this._haveExtraCoin)
                {
                    this._coinExpireHours = roleInfo.GetCoinExpireHours();
                    this._coinWinCount    = roleInfo.GetCoinWinCount();
                }
                this._haveExtraExp = roleInfo.HaveExtraExp();
                if (this._haveExtraExp)
                {
                    this._expExpireHours = roleInfo.GetExpExpireHours();
                    this._expWinCount    = roleInfo.GetExpWinCount();
                }
            }
        }
Ejemplo n.º 10
0
        public void ConvertServerDetailData(CSDT_ACNT_DETAIL_INFO detailInfo)
        {
            this.ResetData();
            this._doubleKillCount  = 0;
            this._trippleKillCount = 0;
            this._quataryKillCount = 0;
            this._pentaKillCount   = 0;
            this._holyShitCount    = 0;
            this._mvpCnt           = 0;
            this._loseMvpCount     = 0;
            if (detailInfo != null)
            {
                this._playerName               = StringHelper.UTF8BytesToString(ref detailInfo.szAcntName);
                this.m_personSign              = StringHelper.UTF8BytesToString(ref detailInfo.szSignatureInfo);
                this.m_uuid                    = detailInfo.ullUid;
                this.m_iLogicWorldId           = detailInfo.iLogicWorldId;
                this.m_vipInfo                 = new SCPKG_GAME_VIP_NTF();
                this.m_vipInfo.stGameVipClient = detailInfo.stGameVip;
                this._playerHeadUrl            = Singleton <ApolloHelper> .GetInstance().ToSnsHeadUrl(ref detailInfo.szOpenUrl);

                this._playerLevel = detailInfo.dwLevel;
                ResAcntExpInfo dataByKey = GameDataMgr.acntExpDatabin.GetDataByKey(this._playerLevel);
                this._playerNeedExp           = dataByKey.dwNeedExp;
                this._playerExp               = detailInfo.dwExp;
                this.creditScore              = detailInfo.dwCreditValue;
                this._power                   = detailInfo.dwPower;
                this._pvpLevel                = detailInfo.dwPvpLevel;
                this._playerPvpExp            = detailInfo.dwPvpExp;
                this._gender                  = (COM_SNSGENDER)detailInfo.bGender;
                this._privilegeType           = (COM_PRIVILEGE_TYPE)detailInfo.bPrivilege;
                this._rankGrade               = detailInfo.bGradeOfRank;
                this._rankHistoryHighestGrade = detailInfo.bMaxGradeOfRank;
                this._rankClass               = detailInfo.dwCurClassOfRank;
                this._rankHistoryHighestClass = detailInfo.stRankInfo.dwTopClassOfRank;
                this.GuildName                = StringHelper.UTF8BytesToString(ref detailInfo.stGuildInfo.szGuildName);
                this.GuildState               = (COM_PLAYER_GUILD_STATE)detailInfo.stGuildInfo.bGuildState;
                this.qqVipMask                = detailInfo.dwQQVIPMask;
                for (int i = 0; i < detailInfo.stStatistic.stKVDetail.dwNum; i++)
                {
                    COMDT_STATISTIC_KEY_VALUE_INFO comdt_statistic_key_value_info = detailInfo.stStatistic.stKVDetail.astKVDetail[i];
                    switch (((RES_STATISTIC_SETTLE_DATA_TYPE)comdt_statistic_key_value_info.dwKey))
                    {
                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_MVP_CNT:
                        this._mvpCnt = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_LOSE_SOUL:
                        this._loseMvpCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_GODLIKE_CNT:
                        this._holyShitCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_DOUBLE_KILL_CNT:
                        this._doubleKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_TRIPLE_KILL_CNT:
                        this._trippleKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_QUATARY_KILL_CNT:
                        this._quataryKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;

                    case RES_STATISTIC_SETTLE_DATA_TYPE.RES_STATISTIC_SETTLE_DATA_TYPE_PENTA_KILL_CNT:
                        this._pentaKillCount = (int)comdt_statistic_key_value_info.dwValue;
                        break;
                    }
                }
                this._5V5TotalCount           = (int)detailInfo.stStatistic.stFiveVsFiveInfo.dwTotalNum;
                this._5V5WinCount             = (int)detailInfo.stStatistic.stFiveVsFiveInfo.dwWinNum;
                this._3V3TotalCount           = (int)detailInfo.stStatistic.stThreeVsThreeInfo.dwTotalNum;
                this._3V3WinCount             = (int)detailInfo.stStatistic.stThreeVsThreeInfo.dwWinNum;
                this._2V2TotalCount           = (int)detailInfo.stStatistic.stTwoVsTwoInfo.dwTotalNum;
                this._2V2WinCount             = (int)detailInfo.stStatistic.stTwoVsTwoInfo.dwWinNum;
                this._1V1TotalCount           = (int)detailInfo.stStatistic.stOneVsOneInfo.dwTotalNum;
                this._1V1WinCount             = (int)detailInfo.stStatistic.stOneVsOneInfo.dwWinNum;
                this._vsAiTotalCount          = (int)detailInfo.stStatistic.stVsMachineInfo.dwTotalNum;
                this._vsAiWinCount            = (int)detailInfo.stStatistic.stVsMachineInfo.dwWinNum;
                this._rankTotalCount          = (int)detailInfo.stStatistic.stLadderInfo.dwTotalNum;
                this._rankWinCount            = (int)detailInfo.stStatistic.stLadderInfo.dwWinNum;
                this._entertainmentTotalCount = (int)detailInfo.stStatistic.stEntertainmentInfo.dwTotalNum;
                this._entertainmentWinCount   = (int)detailInfo.stStatistic.stEntertainmentInfo.dwWinNum;
                this._heroCnt  = (int)detailInfo.stMostUsedHero.dwTotalHeroNum;
                this._skinCnt  = (int)detailInfo.stMostUsedHero.dwTotalSkinNum;
                this._isOnLine = detailInfo.bIsOnline != 0;
                if (this._mostUsedHeroList == null)
                {
                    this._mostUsedHeroList = new ListView <COMDT_MOST_USED_HERO_INFO>();
                }
                else
                {
                    this._mostUsedHeroList.Clear();
                }
                int num2 = (int)Mathf.Min((float)detailInfo.stMostUsedHero.dwHeroNum, (float)detailInfo.stMostUsedHero.astHeroInfoList.Length);
                for (int j = 0; j < num2; j++)
                {
                    this._mostUsedHeroList.Add(detailInfo.stMostUsedHero.astHeroInfoList[j]);
                }
                this.SortMostUsedHeroList();
                if ((detailInfo.stHonorInfo == null) || (detailInfo.stHonorInfo.bHonorCnt < 6))
                {
                    Singleton <CRoleInfoManager> .instance.InsertHonorOnDuplicateUpdate(ref this._honorDic, 1, 0);

                    Singleton <CRoleInfoManager> .instance.InsertHonorOnDuplicateUpdate(ref this._honorDic, 2, 0);

                    Singleton <CRoleInfoManager> .instance.InsertHonorOnDuplicateUpdate(ref this._honorDic, 6, 0);

                    Singleton <CRoleInfoManager> .instance.InsertHonorOnDuplicateUpdate(ref this._honorDic, 4, 0);

                    Singleton <CRoleInfoManager> .instance.InsertHonorOnDuplicateUpdate(ref this._honorDic, 5, 0);

                    Singleton <CRoleInfoManager> .instance.InsertHonorOnDuplicateUpdate(ref this._honorDic, 3, 0);
                }
                if (detailInfo.stHonorInfo != null)
                {
                    for (int k = 0; k < detailInfo.stHonorInfo.bHonorCnt; k++)
                    {
                        COMDT_HONORINFO comdt_honorinfo = detailInfo.stHonorInfo.astHonorInfo[k];
                        switch (comdt_honorinfo.iHonorID)
                        {
                        case 1:
                        case 2:
                        case 3:
                        case 4:
                        case 5:
                        case 6:
                            Singleton <CRoleInfoManager> .instance.InsertHonorOnDuplicateUpdate(ref this._honorDic, comdt_honorinfo.iHonorID, comdt_honorinfo.iHonorPoint);

                            break;
                        }
                    }
                    COMDT_HONORINFO comdt_honorinfo2 = new COMDT_HONORINFO();
                    if (this._honorDic.TryGetValue(detailInfo.stHonorInfo.iCurUseHonorID, out comdt_honorinfo2))
                    {
                        if (comdt_honorinfo2.iHonorLevel > 0)
                        {
                            this._selectedHonorId = detailInfo.stHonorInfo.iCurUseHonorID;
                        }
                        else
                        {
                            this._selectedHonorId = 0;
                        }
                    }
                }
                this._geiLiDuiYou   = (int)detailInfo.stLikeNum.dwTeammateNum;
                this._keJingDuiShou = (int)detailInfo.stLikeNum.dwOpponentNum;
                this._haveExtraCoin = false;
                this._haveExtraExp  = false;
            }
        }
Ejemplo n.º 11
0
        public void CalculateKDA(COMDT_GAME_INFO gameInfo)
        {
            CRoleInfo masterRoleInfo = this.GetMasterRoleInfo();

            DebugHelper.Assert(masterRoleInfo != null, "masterRoleInfo is null");
            if (masterRoleInfo == null)
            {
                return;
            }
            PlayerKDA hostKDA = Singleton <BattleStatistic> .GetInstance().m_playerKDAStat.GetHostKDA();

            if (hostKDA != null)
            {
                int num   = 0;
                int num2  = 0;
                int num3  = 0;
                int num4  = 0;
                int num5  = 0;
                int num6  = 0;
                int num7  = 0;
                int num8  = 0;
                int num9  = 0;
                int num10 = 0;
                int num11 = 0;
                int num12 = 0;
                ListView <HeroKDA> .Enumerator enumerator = hostKDA.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    if (enumerator.get_Current() != null)
                    {
                        num   += enumerator.get_Current().LegendaryNum;
                        num2  += enumerator.get_Current().PentaKillNum;
                        num3  += enumerator.get_Current().QuataryKillNum;
                        num4  += enumerator.get_Current().TripleKillNum;
                        num5  += enumerator.get_Current().DoubleKillNum;
                        num8  += ((!enumerator.get_Current().bHurtMost) ? 0 : 1);
                        num9  += ((!enumerator.get_Current().bHurtTakenMost) ? 0 : 1);
                        num10 += ((!enumerator.get_Current().bGetCoinMost) ? 0 : 1);
                        num11 += ((!enumerator.get_Current().bAsssistMost) ? 0 : 1);
                        num12 += ((!enumerator.get_Current().bKillMost) ? 0 : 1);
                    }
                }
                if (gameInfo.bGameResult == 1)
                {
                    uint mvpPlayer = Singleton <BattleStatistic> .get_instance().GetMvpPlayer(hostKDA.PlayerCamp, true);

                    if (mvpPlayer != 0u)
                    {
                        num6 = ((mvpPlayer != hostKDA.PlayerId) ? 0 : 1);
                    }
                }
                else if (gameInfo.bGameResult == 2)
                {
                    uint mvpPlayer2 = Singleton <BattleStatistic> .get_instance().GetMvpPlayer(hostKDA.PlayerCamp, false);

                    if (mvpPlayer2 != 0u)
                    {
                        num7 = ((mvpPlayer2 != hostKDA.PlayerId) ? 0 : 1);
                    }
                }
                bool flag   = false;
                bool flag2  = false;
                bool flag3  = false;
                bool flag4  = false;
                bool flag5  = false;
                bool flag6  = false;
                bool flag7  = false;
                bool flag8  = false;
                bool flag9  = false;
                bool flag10 = false;
                bool flag11 = false;
                bool flag12 = false;
                int  num13  = 0;
                ListView <COMDT_STATISTIC_KEY_VALUE_INFO> listView = new ListView <COMDT_STATISTIC_KEY_VALUE_INFO>();
                while ((long)num13 < (long)((ulong)masterRoleInfo.pvpDetail.stKVDetail.dwNum))
                {
                    COMDT_STATISTIC_KEY_VALUE_INFO cOMDT_STATISTIC_KEY_VALUE_INFO = masterRoleInfo.pvpDetail.stKVDetail.astKVDetail[num13];
                    switch (cOMDT_STATISTIC_KEY_VALUE_INFO.dwKey)
                    {
                    case 13u:
                        cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue += (uint)num6;
                        flag6 = true;
                        break;

                    case 14u:
                        cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue += (uint)num7;
                        flag7 = true;
                        break;

                    case 15u:
                        cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue += (uint)num;
                        flag5 = true;
                        break;

                    case 16u:
                        cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue += (uint)num5;
                        flag = true;
                        break;

                    case 17u:
                        cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue += (uint)num4;
                        flag2 = true;
                        break;

                    case 27u:
                        cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue += (uint)num3;
                        flag3 = true;
                        break;

                    case 28u:
                        cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue += (uint)num2;
                        flag4 = true;
                        break;

                    case 29u:
                        cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue += (uint)num8;
                        flag8 = true;
                        break;

                    case 30u:
                        cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue += (uint)num10;
                        flag10 = true;
                        break;

                    case 31u:
                        cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue += (uint)num9;
                        flag9 = true;
                        break;

                    case 32u:
                        cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue += (uint)num11;
                        flag11 = true;
                        break;

                    case 33u:
                        cOMDT_STATISTIC_KEY_VALUE_INFO.dwValue += (uint)num12;
                        flag12 = true;
                        break;
                    }
                    num13++;
                }
                if (!flag)
                {
                    listView.Add(new COMDT_STATISTIC_KEY_VALUE_INFO
                    {
                        dwKey   = 16u,
                        dwValue = (uint)num5
                    });
                }
                if (!flag2)
                {
                    listView.Add(new COMDT_STATISTIC_KEY_VALUE_INFO
                    {
                        dwKey   = 17u,
                        dwValue = (uint)num4
                    });
                }
                if (!flag3)
                {
                    listView.Add(new COMDT_STATISTIC_KEY_VALUE_INFO
                    {
                        dwKey   = 27u,
                        dwValue = (uint)num3
                    });
                }
                if (!flag4)
                {
                    listView.Add(new COMDT_STATISTIC_KEY_VALUE_INFO
                    {
                        dwKey   = 28u,
                        dwValue = (uint)num2
                    });
                }
                if (!flag5)
                {
                    listView.Add(new COMDT_STATISTIC_KEY_VALUE_INFO
                    {
                        dwKey   = 15u,
                        dwValue = (uint)num
                    });
                }
                if (!flag6)
                {
                    listView.Add(new COMDT_STATISTIC_KEY_VALUE_INFO
                    {
                        dwKey   = 13u,
                        dwValue = (uint)num6
                    });
                }
                if (!flag7)
                {
                    listView.Add(new COMDT_STATISTIC_KEY_VALUE_INFO
                    {
                        dwKey   = 14u,
                        dwValue = (uint)num7
                    });
                }
                if (!flag8)
                {
                    listView.Add(new COMDT_STATISTIC_KEY_VALUE_INFO
                    {
                        dwKey   = 29u,
                        dwValue = (uint)num8
                    });
                }
                if (!flag9)
                {
                    listView.Add(new COMDT_STATISTIC_KEY_VALUE_INFO
                    {
                        dwKey   = 31u,
                        dwValue = (uint)num9
                    });
                }
                if (!flag10)
                {
                    listView.Add(new COMDT_STATISTIC_KEY_VALUE_INFO
                    {
                        dwKey   = 30u,
                        dwValue = (uint)num10
                    });
                }
                if (!flag11)
                {
                    listView.Add(new COMDT_STATISTIC_KEY_VALUE_INFO
                    {
                        dwKey   = 32u,
                        dwValue = (uint)num11
                    });
                }
                if (!flag12)
                {
                    listView.Add(new COMDT_STATISTIC_KEY_VALUE_INFO
                    {
                        dwKey   = 33u,
                        dwValue = (uint)num12
                    });
                }
                if (listView.get_Count() > 0)
                {
                    masterRoleInfo.pvpDetail.stKVDetail.dwNum += (uint)listView.get_Count();
                    listView.AddRange(masterRoleInfo.pvpDetail.stKVDetail.astKVDetail);
                    masterRoleInfo.pvpDetail.stKVDetail.astKVDetail = LinqS.ToArray <COMDT_STATISTIC_KEY_VALUE_INFO>(listView);
                }
            }
        }