/// 实现相对阵营中 杀敌数 等级 助攻数更新 public void UpdatePlayerInfo(IntPtr recordInfo, int nPtrLen) { IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(recordInfo, nPtrLen); cmd_war_personInfo_count obj = helper.get <cmd_war_personInfo_count>(); for (int i = 0; i < obj.nCount; ++i) { cmd_war_personinfo data = helper.get <cmd_war_personinfo>(); ulong uPdBid = data.uPDBID; if (uPdBid == 0) { continue; } int uCamp = data.nCamp; // 如果找到这个元素就清空重新把元素加入进去 if (recordInfoArry.ContainsKey(uPdBid)) { // 找到的更新 WarPersonInfo tmpRecordInfo = recordInfoArry[uPdBid]; doPersonAliveAssistBrodcast(tmpRecordInfo, data.nAliveContAssist); tmpRecordInfo.nLevel = data.nLevel; tmpRecordInfo.nID = data.uID; tmpRecordInfo.nKillNum = data.nKillNum; tmpRecordInfo.nDeadNum = data.nDeadNum; tmpRecordInfo.nAssists = data.nAssists; tmpRecordInfo.nMobaWarMoney = data.nKillMonsterNum; tmpRecordInfo.bIsHero = data.isProtag; tmpRecordInfo.nAliveContAssist = data.nAliveContAssist; tmpRecordInfo.nDestroyTower = data.nDestroyTower; if (tmpRecordInfo.nSummerIconID <= 0) { tmpRecordInfo.nSummerIconID = data.nSummerIconID; tmpRecordInfo.sSummerDesc = data.szSummerDesc; } recordInfoArry[uPdBid] = tmpRecordInfo; } else { WarPersonInfo warPersonInfo = new WarPersonInfo(); FillWarPersonInfo(ref warPersonInfo, data); recordInfoArry.Add(data.uPDBID, warPersonInfo); } } if (this.IsWarRecordTableVisible == true) { UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_RECORDTABLE_FIGHTING_UPDATERECORDINFO, null); } if (m_bUpdateTeamInfo) { UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_TEAMMATEINFO_UPDATETEAMINFO, null); } UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_WAR_UPDATEPLAYERINFO, null); }
// 当刚登陆进来时设置左右两边的召唤师技能信息 public void SetSummonerPicLogin(IntPtr ptrParam, int nPtrLen) { IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen); cmd_war_personInfo_count obj = helper.get <cmd_war_personInfo_count>(); for (int i = 0; i < obj.nCount; ++i) { cmd_Summoner_Skill_Change data = helper.get <cmd_Summoner_Skill_Change>(); if (data.nPos >= 10) { continue; } showSummonerSkillInRoom(data.nCamp, data.nPos, data.nSummonerSkill[0], data.nSummonerSkill[1]); } }
/// <summary> /// 更新阵营玩家 /// </summary> /// <param name="ptrParam"></param> /// <param name="nLen"></param> public void UpdateCampPlayer(IntPtr ptrParam, int nLen) { if (StageManager.Instance.CurPermissionState != EStage_PermissionState.ESPS_OB) { return; } if (StageManager.Instance.CurSubState != EStage_SubState.ESSS_WAR) { return; } IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nLen); cmd_war_personInfo_count cmdCount = helper.get <cmd_war_personInfo_count>(); for (int i = 0; i < cmdCount.nCount; ++i) { cmd_war_personinfo data = helper.get <cmd_war_personinfo>(); if (data.uID < 1) { continue; } if (!m_PlayerEntitiesMap.ContainsKey(data.nCamp)) { m_PlayerEntitiesMap.Add(data.nCamp, new List <int>()); } if (!m_PlayerEntitiesMap[data.nCamp].Contains(data.uID)) { m_PlayerEntitiesMap[data.nCamp].Add(data.uID); } if (!m_PlayerEntitiesList.Contains(data.uID)) { m_PlayerEntitiesList.Add(data.uID); } } }