Exemple #1
0
        // 初始化本主角玩家的所有英雄天赋数据
        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);
        }
Exemple #2
0
        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);
        }