// 接受消息 public override void OnMessage(WndMsgID msgID, UIMsgData msgData) { switch (msgID) { case WndMsgID.WND_MSG_CHICKUPGRADEBUTTON_RETURN: { SetVisible(true); if (m_wndView == null) { return; } UIMsgCmdData uiHeroInfo = (UIMsgCmdData)msgData; cmd_entity_hero_diff_expend cmdData = IntPtrHelper.toData <cmd_entity_hero_diff_expend>(uiHeroInfo.ptrParam); m_wndView.setHeroUpStarInfo(cmdData); } break; case WndMsgID.WND_MSG_UPGRADESTARSUCESS_RESULT: { if (m_wndView == null) { return; } UIMsgCmdData uiHeroInfo = (UIMsgCmdData)msgData; cmd_Return_HeroDetail_Upgrade_Success cmdData = IntPtrHelper.toData <cmd_Return_HeroDetail_Upgrade_Success>(uiHeroInfo.ptrParam); m_wndView.showUpStarSucess(cmdData); } break; default: break; } }
// 将升星前后的英雄属性赋值,并显示出来 public void setHeroUpStarInfo(cmd_entity_hero_diff_expend cmdInfo) { WndID wndID = GetUIWnd().GetID(); heroIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, wndID, 1, 3, cmdInfo.nHeroID); if (heroIcon.sprite == null) { heroIcon.sprite = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_HeadPortrait, wndID, 1, 3, 10); } int nHeroStar = cmdInfo.nStarLv; heroStarItem.SetData(cmdInfo.nHeroID, nHeroStar, false, true); heroName.text = cmdInfo.chHeroName; if (cmdInfo.nHaveGold < cmdInfo.nExpedGold) { expendGold.text = "金币 " + cmdInfo.nExpedGold.ToString() + "(现有:<color=red>" + cmdInfo.nHaveGold.ToString() + "</color>)"; } else { expendGold.text = "金币 " + cmdInfo.nExpedGold.ToString() + "(现有:" + cmdInfo.nHaveGold.ToString() + ")"; } if (cmdInfo.nHaveCardCount < cmdInfo.nExpendCard) { expendCard.text = "荣誉勋章 " + cmdInfo.nExpendCard.ToString() + "(现有:<color=red>" + cmdInfo.nHaveCardCount.ToString() + "</color>)"; } else { expendCard.text = "荣誉勋章 " + cmdInfo.nExpendCard.ToString() + "(现有:" + cmdInfo.nHaveCardCount.ToString() + ")"; } heroLvLimitFront.text = cmdInfo.nLimitLv.ToString(); heroLvLimitBack.text = cmdInfo.nLimitLvAdd == 0 ? "" : ("+" + cmdInfo.nLimitLvAdd.ToString()); for (int i = 0; i < UDefines.PROPERTY_COUNT; ++i) { if (i >= 2) { Hp[i].text = (cmdInfo.fHP[i] == 0 ? "" : ("+" + cmdInfo.fHP[i].ToString("F2"))); PhysicAttack[i].text = (cmdInfo.fPA[i] == 0 ? "" : ("+" + cmdInfo.fPA[i].ToString("F2"))); PhysicDef[i].text = (cmdInfo.fPD[i] == 0 ? "" : ("+" + cmdInfo.fPD[i].ToString("F2"))); Mp[i].text = (cmdInfo.fMagic[i] == 0 ? "" : ("+" + cmdInfo.fMagic[i].ToString("F2"))); MagicAttack[i].text = (cmdInfo.fMA[i] == 0 ? "" : ("+" + cmdInfo.fMA[i].ToString("F2"))); MagicDef[i].text = (cmdInfo.fMD[i] == 0 ? "" : ("+" + cmdInfo.fMD[i].ToString("F2"))); } else { Hp[i].text = cmdInfo.fHP[i].ToString(); PhysicAttack[i].text = cmdInfo.fPA[i].ToString(); PhysicDef[i].text = cmdInfo.fPD[i].ToString(); Mp[i].text = cmdInfo.fMagic[i].ToString(); MagicAttack[i].text = cmdInfo.fMA[i].ToString(); MagicDef[i].text = cmdInfo.fMD[i].ToString(); } } nHeroID = cmdInfo.nHeroID; }
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; }
public override void OnMessage(WndMsgID msgID, UIMsgData msgData) { switch (msgID) { case WndMsgID.WND_MSG_HERODETAIL_HERODETAILINFO: { HeroDetailViewData.Instance.Clear(); UIMsgCmdData uiInitHeroInfo = (UIMsgCmdData)msgData; cmd_Return_Hero_Detail_Info initHeroInfo = IntPtrHelper.toData <cmd_Return_Hero_Detail_Info>(uiInitHeroInfo.ptrParam); SetHeroDetailData(initHeroInfo.nHeroID, initHeroInfo.nPDBID); SetVisible(true); } break; case WndMsgID.WND_MSG_HERODETAIL_HERODETAILINFOREFRESH: { if (m_wndView == null) { return; } UIMsgCmdData uiRefreshHeroInfo = (UIMsgCmdData)msgData; cmd_Return_Hero_Detail_Info refreshHeroInfo = IntPtrHelper.toData <cmd_Return_Hero_Detail_Info>(uiRefreshHeroInfo.ptrParam); if (refreshHeroInfo.nHeroID != HeroDetailViewData.Instance.nHeroID || refreshHeroInfo.nPDBID != HeroDetailViewData.Instance.nReqPDBID) { return; } SetHeroDetailData(refreshHeroInfo.nHeroID, refreshHeroInfo.nPDBID); m_wndView.OnBuyOrChangeHeroSuccess(); } break; case WndMsgID.WND_MSG_CHICKUPGRADEBUTTON_RETURN: { if (m_wndView == null) { return; } UIMsgCmdData uiHeroInfo = (UIMsgCmdData)msgData; cmd_entity_hero_diff_expend cmdData = IntPtrHelper.toData <cmd_entity_hero_diff_expend>(uiHeroInfo.ptrParam); m_wndView.OnRecvHeroDiffInfo(cmdData); } break; case WndMsgID.WND_MSG_UPGRADESTARSUCESS_RESULT: { if (m_wndView == null) { return; } if (!this.IsVisible()) { return; } UIMsgCmdData uiHeroUpStarInfo = (UIMsgCmdData)msgData; cmd_Return_HeroDetail_Upgrade_Success cmdUpStarData = IntPtrHelper.toData <cmd_Return_HeroDetail_Upgrade_Success>(uiHeroUpStarInfo.ptrParam); m_wndView.ShowUpStarSucess(cmdUpStarData); } break; case WndMsgID.WND_MSG_HEROSKINVIEW_UPDATESKINDATA: { if (m_wndView == null) { return; } m_wndView.OnBuyOrChangeHeroSuccess(); } break; case WndMsgID.WND_MSG_HERODETAIL_HERODETAILXPUPDATE: { if (m_wndView == null) { return; } m_wndView.UpdateXPSkillList(); } break; case WndMsgID.WND_MSG_HEROPREVIEWFRAME_GETHEROINFO: { if (m_wndView != null) { // 购买卡牌,卡牌数据主动更新 int nHeroID = HeroDetailViewData.Instance.nHeroID; IntPtrHelper helper = new IntPtrHelper(); cmd_get_hero_detail_info data = new cmd_get_hero_detail_info(); data.nHeroID = nHeroID; data.nStarLv = 1; data.nStaticLv = 1; ActorHeroInfo info = LogicDataCenter.playerSystemDataManager.GetActorAllHero(); if (info.dicEntityHeroInfo.ContainsKey(nHeroID)) { data.nStarLv = info.dicEntityHeroInfo[nHeroID].byStarLv; data.nStaticLv = info.dicEntityHeroInfo[nHeroID].nLv; } IntPtr ptr = helper.toPtr <cmd_get_hero_detail_info>(ref data); int len = Marshal.SizeOf(data); GameLogicAPI.onEntityEvent(EntityFactory.MainHeroID, (int)EntityLogicDef.ENTITY_CMD_REQ_UPGRADESTARANDHEROPRO, len, "", ptr, len); } } break; case WndMsgID.WND_MSG_HERODETAIL_UPDATEGOLD: { if (m_wndView != null && IsVisible()) { UIMsgCmdData uiData = (UIMsgCmdData)msgData; m_wndView.UpdateUpStarGoldView(uiData.nParam); } } break; case WndMsgID.WND_ID_HEROTALENTVIEW_UPDATESTATICTALENT: { if (m_wndView != null && IsVisible()) { m_wndView.OnUpdateHeroTalent(); } } break; #region 新手引导相关 case WndMsgID.WND_MSG_HERODETAIL_GUIDE_ACTIONBEGIN: { UGuideWidgetMsgData cmdData = (UGuideWidgetMsgData)msgData; if (m_wndView != null && cmdData != null) { m_wndView.GuideActionBegin(cmdData); } } break; case WndMsgID.WND_MSG_HERODETAIL_GUIDE_ACTIONEND: { UGuideWidgetMsgData cmdData = (UGuideWidgetMsgData)msgData; if (m_wndView != null && cmdData != null) { m_wndView.GuideActionEnd(cmdData); } } break; #endregion default: break; } }