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); }
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); }