From aa48354db07996eaa7eea3820282e97b8aebbd3e Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 24 五月 2019 10:44:25 +0800
Subject: [PATCH] 3675 【BUG】【2.0】骑宠争夺已被击杀Boss血量显示异常,前往按钮无反馈信息
---
Lua/Gen/SnxxzUIRidingPetBossModelWrap.cs | 17 --------
System/RidingPet/RidingPetBossModel.cs | 21 ++++++++--
System/RidingPet/RidingPetContentionWin.cs | 26 +++++++++++-
System/RidingPet/ContainerRidingPet.cs | 24 +++++++++---
Core/GameEngine/DataToCtl/PackageRegedit.cs | 3 +
5 files changed, 60 insertions(+), 31 deletions(-)
diff --git a/Core/GameEngine/DataToCtl/PackageRegedit.cs b/Core/GameEngine/DataToCtl/PackageRegedit.cs
index 861db01..e296786 100644
--- a/Core/GameEngine/DataToCtl/PackageRegedit.cs
+++ b/Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -25,7 +25,8 @@
public static void Init()
{
// 鐧昏鐩稿簲鐨勬暟鎹綋鍙婂搴旂殑鏁版嵁杞�昏緫绫�
- Register(typeof(HB216_tagMCStartCustomSceneResult), typeof(DTCB216_tagMCStartCustomSceneResult));
+ Register(typeof(HAC07_tagGCHorsePetBossInfo), typeof(DTCAC07_tagGCHorsePetBossInfo));
+ Register(typeof(HB216_tagMCStartCustomSceneResult), typeof(DTCB216_tagMCStartCustomSceneResult));
Register(typeof(HA905_tagGCNotifyEquipDetailInfo), typeof(DTCA905_tagGCNotifyEquipDetailInfo));
Register(typeof(HA719_tagSCPlayerEquipCacheResult) ,typeof(DTCA719_tagSCPlayerEquipCacheResult));
Register(typeof(HB108_tagMCYinjiStartTime) ,typeof(DTCB108_tagMCYinjiStartTime));
diff --git a/Lua/Gen/SnxxzUIRidingPetBossModelWrap.cs b/Lua/Gen/SnxxzUIRidingPetBossModelWrap.cs
index a6cbed1..b8ad825 100644
--- a/Lua/Gen/SnxxzUIRidingPetBossModelWrap.cs
+++ b/Lua/Gen/SnxxzUIRidingPetBossModelWrap.cs
@@ -33,7 +33,6 @@
Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetRidingPetBossLineDictAction", _e_GetRidingPetBossLineDictAction);
- Utils.RegisterFunc(L, Utils.GETTER_IDX, "isActivityOver", _g_get_isActivityOver);
Utils.RegisterFunc(L, Utils.GETTER_IDX, "BossIDArray", _g_get_BossIDArray);
Utils.RegisterFunc(L, Utils.GETTER_IDX, "Boss1RewardIDArray", _g_get_Boss1RewardIDArray);
Utils.RegisterFunc(L, Utils.GETTER_IDX, "Boss2RewardIDArray", _g_get_Boss2RewardIDArray);
@@ -295,22 +294,6 @@
}
-
-
-
- [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
- static int _g_get_isActivityOver(RealStatePtr L)
- {
- try {
- ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
-
- Snxxz.UI.RidingPetBossModel gen_to_be_invoked = (Snxxz.UI.RidingPetBossModel)translator.FastGetCSObj(L, 1);
- LuaAPI.lua_pushboolean(L, gen_to_be_invoked.isActivityOver);
- } catch(System.Exception gen_e) {
- return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
- }
- return 1;
- }
[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
static int _g_get_BossIDArray(RealStatePtr L)
diff --git a/System/RidingPet/ContainerRidingPet.cs b/System/RidingPet/ContainerRidingPet.cs
index 2bae492..bb22df4 100644
--- a/System/RidingPet/ContainerRidingPet.cs
+++ b/System/RidingPet/ContainerRidingPet.cs
@@ -20,7 +20,7 @@
[SerializeField] RawImage m_BossRawImage;
DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
- RidingPetBossModel ridingPetMdoel { get { return ModelCenter.Instance.GetModel<RidingPetBossModel>(); } }
+ RidingPetBossModel model { get { return ModelCenter.Instance.GetModel<RidingPetBossModel>(); } }
//public int RawImagetestBossID = 50103006;
public RewardPositionType rewardPositonType;
[SerializeField] ItemCell[] m_RewardArray;
@@ -34,8 +34,8 @@
public void DisplayBossRawImage()
{
- var config = NPCConfig.Get(ridingPetMdoel.BossIDArray[0]);
- UI3DModelExhibition.Instance.ShowNPC(ridingPetMdoel.BossIDArray[0], config.UIModeLOffset, config.UIModelRotation, m_BossRawImage);
+ var config = NPCConfig.Get(model.BossIDArray[0]);
+ UI3DModelExhibition.Instance.ShowNPC(model.BossIDArray[0], config.UIModeLOffset, config.UIModelRotation, m_BossRawImage);
}
public void StopShowBossRawImage()
@@ -50,13 +50,24 @@
public void DisplayAnotherBossRawImage()
{
- var config = NPCConfig.Get(ridingPetMdoel.BossIDArray[1]);
- UI3DModelExhibition.InstanceClone1.ShowNPC(ridingPetMdoel.BossIDArray[1], config.UIModeLOffset, config.UIModelRotation, m_BossRawImage);
+ var config = NPCConfig.Get(model.BossIDArray[1]);
+ UI3DModelExhibition.InstanceClone1.ShowNPC(model.BossIDArray[1], config.UIModeLOffset, config.UIModelRotation, m_BossRawImage);
}
public void DisplaySpiritPetHP()
{
- m_ActivityInfo.text = Language.Get("RidingPetBossRemainHP", ModelCenter.Instance.GetModel<RidingPetBossModel>().GetBossRemianedHP(bossIdIndex));
+ var hp = model.GetBossRemianedHP(bossIdIndex);
+ var alive = model.IsBossAlive(bossIdIndex);
+ if (!alive)
+ {
+ m_ActivityInfo.text = Language.Get("AllianceBoss_1");
+ m_ActivityInfo.color = UIHelper.GetUIColor(TextColType.Red);
+ }
+ else
+ {
+ m_ActivityInfo.text = Language.Get("RidingPetBossRemainHP", hp);
+ m_ActivityInfo.color = UIHelper.GetUIColor(TextColType.White);
+ }
}
public void DisplayActivityTime()
@@ -66,6 +77,7 @@
HourMinute hourMin;
dailyQuestOpentime.TryGetNextOpenTime(out hourMin);
m_ActivityInfo.text = Language.Get("RidingPetBossQuestTime", "<color=red>"+hourMin.hourBegin+":"+hourMin.minuteBegin+"</color>");
+ m_ActivityInfo.color = UIHelper.GetUIColor(TextColType.White);
}
public void DisplayRewardItem()
diff --git a/System/RidingPet/RidingPetBossModel.cs b/System/RidingPet/RidingPetBossModel.cs
index f3259aa..2602186 100644
--- a/System/RidingPet/RidingPetBossModel.cs
+++ b/System/RidingPet/RidingPetBossModel.cs
@@ -8,16 +8,21 @@
[XLua.Hotfix]
public class RidingPetBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
+ Dictionary<int, bool> m_BossAliceStates = new Dictionary<int, bool>();
+
+ public const int RIDINGPETBOSS_MAP = 31200;
+
public int[] BossIDArray;
public int[] Boss1RewardIDArray;
public int[] Boss2RewardIDArray;
- public bool isActivityOver { get; private set; }
- public const int RIDINGPETBOSS_MAP = 31200;
+
Dictionary<int, RidingPetBossLine> RidingPetBossLineDict = new Dictionary<int, RidingPetBossLine>();
private string m_MountsBossID;
private string m_Boss1RewardID;
private string m_Boss2RewardID;
+
public event Action GetRidingPetBossLineDictAction;
+ public event Action onBossStateRefresh;
@@ -33,6 +38,7 @@
public void OnBeforePlayerDataInitialize()
{
+ m_BossAliceStates.Clear();
}
public void OnPlayerLoginOk()
@@ -47,9 +53,11 @@
public void ReceivePackage(HAC07_tagGCHorsePetBossInfo package)
{
- if (package.IsEnd == 1)
+ m_BossAliceStates[0] = !MathUtility.GetBitValue(package.IsEnd, 0);
+ m_BossAliceStates[1] = !MathUtility.GetBitValue(package.IsEnd, 1);
+ if (onBossStateRefresh != null)
{
- isActivityOver = true;
+ onBossStateRefresh();
}
}
@@ -93,6 +101,11 @@
return RidingPetBossLineDict[index].remainedHP;
}
}
+
+ public bool IsBossAlive(int index)
+ {
+ return m_BossAliceStates.ContainsKey(index) ? m_BossAliceStates[index] : false;
+ }
}
public struct RidingPetBossLine
diff --git a/System/RidingPet/RidingPetContentionWin.cs b/System/RidingPet/RidingPetContentionWin.cs
index 48027d3..2e26df5 100644
--- a/System/RidingPet/RidingPetContentionWin.cs
+++ b/System/RidingPet/RidingPetContentionWin.cs
@@ -1,4 +1,5 @@
-锘縰sing System.Collections;
+锘縰sing System;
+using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
@@ -46,10 +47,15 @@
protected override void OnPreClose()
{
ridingPetBossModel.GetRidingPetBossLineDictAction -= GetRidingBossDictPackageAction;
+ ridingPetBossModel.onBossStateRefresh -= OnBossStateRefresh;
}
protected override void OnPreOpen()
{
+
+ m_ContainerMounts.bossIdIndex = 0;
+ m_ContainerSpiritPet.bossIdIndex = 1;
+
m_ContainerMounts.DisplayBossName();
m_ContainerSpiritPet.DisplayBossName();
@@ -57,12 +63,22 @@
mapModel.RequestQueryMapLineState(RidingPetBossModel.RIDINGPETBOSS_MAP);
GetRidingBossDictPackageAction();
+
m_ContainerMounts.DisplayBossRawImage();
m_ContainerSpiritPet.DisplayAnotherBossRawImage();
m_ContainerMounts.DisplayRewardItem();
m_ContainerSpiritPet.DisplayRewardItem();
WindowCenter.Instance.windowBeforeCloseEvent += WindowBeforeCloseEvent;
+
+ ridingPetBossModel.onBossStateRefresh += OnBossStateRefresh;
+
+ UpdateRidingPetBottomTip();
+ }
+
+ private void OnBossStateRefresh()
+ {
+ GetRidingBossDictPackageAction();
}
private void WindowBeforeCloseEvent(Window _window)
@@ -107,8 +123,12 @@
case DailyQuestModel.DailyQuestState.Normal:
m_ContainerMounts.DisplaySpiritPetHP();
m_ContainerSpiritPet.DisplaySpiritPetHP();
- m_MountsGoToButton.SetInteractable(m_MountGotoLabel, true);
- m_SpiritPetGoToButton.SetInteractable(m_PetGotoLabel, true);
+
+ var isMountAlive = ridingPetBossModel.IsBossAlive(m_ContainerMounts.bossIdIndex);
+ var isPetAlive = ridingPetBossModel.IsBossAlive(m_ContainerSpiritPet.bossIdIndex);
+
+ m_MountsGoToButton.SetInteractable(m_MountGotoLabel, isMountAlive);
+ m_SpiritPetGoToButton.SetInteractable(m_PetGotoLabel, isPetAlive);
break;
default:
m_ContainerMounts.DisplayActivityTime();
--
Gitblit v1.8.0