示例#1
0
        public void RequestHeroDetailInfo(PDBIDandHeroID nMultiKey, HeroDetailReqType eType = HeroDetailReqType.HDRT_INIT)
        {
            // 设置详细英雄界面信息请求标志位
            eHeroDetailReqType = eType;

            cmd_entity_hero_info cmdHeroInfo = new cmd_entity_hero_info();

            // Player界面取一次
            ActorPlayerInfo playerInfo = null;

            if (actorPlayer.TryGetValue(nMultiKey.nPDBID, out playerInfo))
            {
                foreach (var value in playerInfo.strongHeroInfoList)
                {
                    if (value.nHeroID == nMultiKey.nHeroID)
                    {
                        cmdHeroInfo = value;
                        break;
                    }
                }
            }

            // Hero界面取一次
            if (cmdHeroInfo.nHeroID == 0)
            {
                ActorHeroInfo heroInfo = null;
                if (actorHero.TryGetValue(nMultiKey.nPDBID, out heroInfo))
                {
                    heroInfo.dicEntityHeroInfo.TryGetValue(nMultiKey.nHeroID, out cmdHeroInfo);
                }
            }

            // nHeroID > 0,则表示该英雄有数据;bIsBuy > 0,则表示已购买
            cmd_Request_Hero_Detail_Info reqHeroDetailInfo = new cmd_Request_Hero_Detail_Info();

            reqHeroDetailInfo.nActorID = (uint)nMultiKey.nPDBID;
            reqHeroDetailInfo.nHeroID  = nMultiKey.nHeroID;
            reqHeroDetailInfo.heroInfo = cmdHeroInfo;

            EntityEventHelper.Instance.SendCommand <cmd_Request_Hero_Detail_Info>(EntityFactory.MainHeroID, EntityLogicDef.ENTITY_CMD_QUERY_HERO_DETAIL_INFO, ref reqHeroDetailInfo);
        }
示例#2
0
        public ActorHeroDetailInfo GetActorHeroDetail(int heroID, int actorID = nDefaultSelfActorID, HeroDetailReqType eType = HeroDetailReqType.HDRT_INIT)
        {
            CheckGetSelfPDBID(ref actorID);

            ActorHeroDetailInfo info     = null;
            PDBIDandHeroID      multiKey = new PDBIDandHeroID(actorID, heroID);

            if (actorHeroDetail.TryGetValue(multiKey, out info))
            {
                return(info);
            }
            else
            {
                info = new ActorHeroDetailInfo();
                info.heroDetailInfo       = new cmd_entity_hero_detail_info();
                info.cmdCount.nCount      = 0;
                info.heroSkillDesc        = new List <cmd_match_room_hero_skill_desc>();
                actorHeroDetail[multiKey] = info;
            }

            RequestHeroDetailInfo(multiKey, eType);
            return(info);
        }