예제 #1
0
        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);
            }
        }
예제 #2
0
    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;
                    }
                }
            }
        }
    }