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