// 初始化本主角玩家的所有英雄天赋数据 public void InitHeroTalentInfo(IntPtr ptrParam, int nPtrLen) { if (dicTalentInfoData == null) { return; } dicTalentInfoData.Clear(); IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen); cmd_count heroCount = helper.get <cmd_count>(); for (int i = 0; i < heroCount.nCount; ++i) { cmd_count talentCount = helper.get <cmd_count>(); for (int j = 0; j < talentCount.nCount; ++j) { cmd_Hero_Talent_Info cmdInfo = helper.get <cmd_Hero_Talent_Info>(); int nHeroId = cmdInfo.nHeroId; bool bActive = cmdInfo.nActive > 0 ? true : false; HeroTalentInfo info = new HeroTalentInfo(); info.nHeroId = nHeroId; info.nTalentId = cmdInfo.nTalentId; info.bActive = bActive; if (dicTalentInfoData.ContainsKey(cmdInfo.nHeroId)) { dicTalentInfoData[nHeroId].Add(info); } else { List <HeroTalentInfo> listInfo = new List <HeroTalentInfo>(); listInfo.Add(info); dicTalentInfoData[nHeroId] = listInfo; } } } // 初始化战场天赋显示 USpeedUI.UISystem.Instance.SendWndMessage(USpeedUI.WndMsgID.WND_ID_HEROTALENTVIEW_INITWARTALENT, null); }
public void UpdateHeroTalentData(IntPtr ptrParam, int nLen) { IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nLen); cmd_Hero_Talent_Info data = helper.get <cmd_Hero_Talent_Info>(); if (!dicTalentInfoData.ContainsKey(data.nHeroId)) { return; } foreach (HeroTalentInfo info in dicTalentInfoData[data.nHeroId]) { if (info.nTalentId == data.nTalentId) { bool bActive = data.nActive > 0 ? true : false; info.bActive = bActive; break; } } // 更新主城天赋显示 USpeedUI.UISystem.Instance.SendWndMessage(USpeedUI.WndMsgID.WND_ID_HEROTALENTVIEW_UPDATESTATICTALENT, null); }