public void UpdateHeroDetailInfo(IntPtr ptrParam, int nPtrLen) { IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen); int dwPDBID = helper.get <int>(); cmd_entity_hero_detail_info heroDetailInfo = helper.get <cmd_entity_hero_detail_info>(); PDBIDandHeroID multiKey = new PDBIDandHeroID(dwPDBID, heroDetailInfo.nHeroID); ActorHeroDetailInfo info = null; if (actorHeroDetail.TryGetValue(multiKey, out info) == false) { return; } info.heroDetailInfo = heroDetailInfo; cmd_count cmdCount = helper.get <cmd_count>(); info.cmdCount = cmdCount; for (int i = 0; i < cmdCount.nCount; i++) { cmd_match_room_hero_skill_desc skillDesc = helper.get <cmd_match_room_hero_skill_desc>(); info.heroSkillDesc.Add(skillDesc); } cmd_Return_Hero_Detail_Info returnHeroInfo; returnHeroInfo.nPDBID = dwPDBID; returnHeroInfo.nHeroID = heroDetailInfo.nHeroID; UIMsgCmdData uiReturnHeroInfo = null; if (eHeroDetailReqType == HeroDetailReqType.HDRT_INIT) { uiReturnHeroInfo = UIMsgCmdDataHelper.Instance.create <cmd_Return_Hero_Detail_Info>(WndMsgID.WND_MSG_HERODETAIL_HERODETAILINFO, ref returnHeroInfo); UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_HERODETAIL_HERODETAILINFO, uiReturnHeroInfo); } else if (eHeroDetailReqType == HeroDetailReqType.HDRT_REFRESH) { uiReturnHeroInfo = UIMsgCmdDataHelper.Instance.create <cmd_Return_Hero_Detail_Info>(WndMsgID.WND_MSG_HERODETAIL_HERODETAILINFOREFRESH, ref returnHeroInfo); UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_HERODETAIL_HERODETAILINFOREFRESH, uiReturnHeroInfo); } else if (eHeroDetailReqType == HeroDetailReqType.HDRT_LIFEHERO) { uiReturnHeroInfo = UIMsgCmdDataHelper.Instance.create <cmd_Return_Hero_Detail_Info>(WndMsgID.WND_MSG_OPEN_LIFEHERO_CULTURE_HERO_HINT, ref returnHeroInfo); UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_OPEN_LIFEHERO_CULTURE_HERO_HINT, uiReturnHeroInfo); } }
public void SetSkillText(IntPtr nSkillTextInfo, int nPtrLen) { IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(nSkillTextInfo, nPtrLen); cmd_match_room_hero_skill_desc_count SkillDescCountdata = helper.get <cmd_match_room_hero_skill_desc_count>(); for (int i = 0; i < SkillDescCountdata.nSkillDescCount; ++i) { cmd_match_room_hero_skill_desc data = helper.get <cmd_match_room_hero_skill_desc>(); if (Value.IsValueValid(vSkillFrame)) { // 名字或者技能描述为空返回,并放出错误信息 if (data.nSpellIconID == 0 || data.heroSkillDes == null) { Trace.LogWarning("SetSkillText Warning:Skill Desc==null"); continue; } //解析UBB UBB.toHtml(ref data.heroSkillDes); if (bIsSelectOrSkinState) { if (vSkillFrame.Invoke("SetText", data.nSlotID, data.heroSkillDes, data.nSpellIconID) == null) { Trace.LogError("call SetSkillText failed"); return; } } else { if (vSkinSkillFrame.Invoke("SetText", data.nSlotID, data.heroSkillDes, data.nSpellIconID) == null) { Trace.LogError("call SetSkillText failed"); return; } } } } }