public bool CanObtainPrize() { int taskID = LogicDataCenter.lifeHeroDataManager.PrizeTaskData; if (taskID < 0 || taskID >= LifeHeroConfig.Instance.LifeHeroPrizeList.Count) { return(false); } int meetHeroCount = 0; foreach (int heroID in LogicDataCenter.lifeHeroDataManager.AllLifeHero.Keys) { ActorHeroDetailInfo heroInfo = LogicDataCenter.playerSystemDataManager.GetActorHeroDetail(heroID, eType: HeroDetailReqType.HDRT_LIFEHERO); if (heroInfo != null && heroInfo.heroDetailInfo.nHeroID > 0) { if (heroInfo.heroDetailInfo.nStar >= LifeHeroConfig.Instance.LifeHeroPrizeList[taskID].starLv) { ++meetHeroCount; } } else { Debug.Log("英雄详情信息还未收到?"); } } return(meetHeroCount >= LifeHeroConfig.Instance.LifeHeroPrizeList[taskID].heroCount); }
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 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); }
public void UpgradeStartProAndExpend(IntPtr ptrParam, int nPtrLen) { IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen); cmd_entity_hero_diff_expend cmdHeroDetailInfo = helper.get <cmd_entity_hero_diff_expend>(); int dwPDBID = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_ID); PDBIDandHeroID multiKey = new PDBIDandHeroID(dwPDBID, cmdHeroDetailInfo.nHeroID); ActorHeroDetailInfo info = null; if (actorHeroDetail.TryGetValue(multiKey, out info) == false) { return; } info.heroDetailInfo.nStar = cmdHeroDetailInfo.nStarLv; info.heroDetailInfo.nStarExp = cmdHeroDetailInfo.nHaveCardCount; info.heroDetailInfo.nStarNeedExp = cmdHeroDetailInfo.nExpendCard; info.heroDetailInfo.fHP = cmdHeroDetailInfo.fHP; info.heroDetailInfo.fMA = cmdHeroDetailInfo.fMA; info.heroDetailInfo.fMagic = cmdHeroDetailInfo.fMagic; info.heroDetailInfo.fMD = cmdHeroDetailInfo.fMD; info.heroDetailInfo.fPA = cmdHeroDetailInfo.fPA; info.heroDetailInfo.fPD = cmdHeroDetailInfo.fPD; }