| Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0319_tagFBHelp.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Activity/ActivitySettleWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Message/BattleHint.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Message/BattleHintWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Message/SysNotifyMgr.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0319_tagFBHelp.cs
@@ -30,6 +30,9 @@ break; case 31230: break; case 31160: BattleHint.Instance.UpdateDungeonHelp(); break; } } System/Activity/ActivitySettleWin.cs
@@ -1,139 +1,149 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, November 22, 2017 //-------------------------------------------------------- using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class ActivitySettleWin : Window { [SerializeField] List<ItemCell> activityItemCells=new List<ItemCell>(); [SerializeField] RectTransform container_ActivityReward; [SerializeField] GameObject activityNullReawrd; [SerializeField] List<ItemCell> achieveItemCells=new List<ItemCell>(); [SerializeField] RectTransform container_AchieveReward; [SerializeField] GameObject achieveNullReawrd; [SerializeField] Button rewardGetBtn; DungeonModel m_DungeonModel; DungeonModel dungeonModel { get { return m_DungeonModel ?? (m_DungeonModel = ModelCenter.Instance.GetModel<DungeonModel>()); } } ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { rewardGetBtn.onClick.AddListener(CloseClick); } protected override void OnPreOpen() { ShowActivityReward(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { dungeonModel.dungeonResult = default(DungeonResult); } protected override void OnAfterClose() { } #endregion void ShowActivityReward() { foreach (var item in achieveItemCells) { item.gameObject.SetActive(false); } foreach (var item in activityItemCells) { item.gameObject.SetActive(false); } var actiivityItems = dungeonModel.dungeonResult.itemInfo; bool hasReward = actiivityItems != null && actiivityItems.Length > 0; container_ActivityReward.gameObject.SetActive(hasReward); activityNullReawrd.SetActive(!hasReward); if (hasReward) { for (int i = 0; i < actiivityItems.Length; i++) { activityItemCells[i].gameObject.SetActive(true); ItemCell itemCell = activityItemCells[i]; ServerItem serverItem = actiivityItems[i]; ItemCellModel cellModel = new ItemCellModel(serverItem.ItemID,false,(ulong)serverItem.Count,serverItem.IsBind ,"",PackType.rptDeleted,false,ConfigParse.Analysis(serverItem.UserData)); itemCell.Init(cellModel); itemCell.cellBtn.RemoveAllListeners(); itemCell.cellBtn.AddListener(() => { ShowItemDetails(serverItem); }); } } var achieveItems = dungeonModel.dungeonResult.succItemInfo; hasReward = achieveItems != null && achieveItems.Length > 0; container_AchieveReward.gameObject.SetActive(hasReward); achieveNullReawrd.SetActive(!hasReward); if (hasReward) { for (int i = 0; i < achieveItems.Length; i++) { achieveItemCells[i].gameObject.SetActive(true); ItemCell itemCell = achieveItemCells[i]; ServerItem serverItem = achieveItems[i]; ItemCellModel cellModel = new ItemCellModel(serverItem.ItemID,false,(ulong)serverItem.Count, serverItem.IsBind ,"" ,PackType.rptDeleted,false,ConfigParse.Analysis(serverItem.UserData)); itemCell.Init(cellModel); itemCell.cellBtn.RemoveAllListeners(); itemCell.cellBtn.AddListener(() => { ShowItemDetails(serverItem); }); } } } private void ShowItemDetails(ServerItem serverItem) { //ItemWinModel itemWinModel = ItemCommonCtrl.Instance.OnSingleClickItemCell(serverItem.ItemID); //itemWinModel.itemCount = serverItem.ItemCount; //itemWinModel.isSuite = serverItem.IsSuite; //itemWinModel.isBind = serverItem.IsBind; //itemWinModel.userDataDict = serverItem.UserData == null ? null : ConfigParse.Analysis(serverItem.UserData); //ItemPopModel.Instance.SetDefaultShowUIDict(itemWinModel, false); //itemWinModel.SetShowWin(itemWinModel); ItemAttrData attrData = new ItemAttrData(serverItem.ItemID,false, (ulong)serverItem.Count,-1,serverItem.IsBind ,false,PackType.rptDeleted,"", ConfigParse.Analysis(serverItem.UserData)); itemTipsModel.SetItemTipsModel(attrData); } } } //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, November 22, 2017 //-------------------------------------------------------- using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class ActivitySettleWin : Window { [SerializeField] List<ItemCell> activityItemCells = new List<ItemCell>(); [SerializeField] RectTransform container_ActivityReward; [SerializeField] GameObject activityNullReawrd; [SerializeField] List<ItemCell> achieveItemCells = new List<ItemCell>(); [SerializeField] RectTransform container_AchieveReward; [SerializeField] GameObject achieveNullReawrd; [SerializeField] Button rewardGetBtn; DungeonModel m_DungeonModel; DungeonModel dungeonModel { get { return m_DungeonModel ?? (m_DungeonModel = ModelCenter.Instance.GetModel<DungeonModel>()); } } ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { rewardGetBtn.onClick.AddListener(CloseClick); } protected override void OnPreOpen() { ShowActivityReward(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { dungeonModel.dungeonResult = default(DungeonResult); } protected override void OnAfterClose() { } #endregion void ShowActivityReward() { foreach (var item in achieveItemCells) { item.gameObject.SetActive(false); } foreach (var item in activityItemCells) { item.gameObject.SetActive(false); } var actiivityItems = dungeonModel.dungeonResult.itemInfo; bool hasReward = actiivityItems != null && actiivityItems.Length > 0; container_ActivityReward.gameObject.SetActive(hasReward); activityNullReawrd.SetActive(!hasReward); if (hasReward) { for (int i = 0; i < actiivityItems.Length; i++) { if (i < activityItemCells.Count) { activityItemCells[i].gameObject.SetActive(true); ItemCell itemCell = activityItemCells[i]; ServerItem serverItem = actiivityItems[i]; ItemCellModel cellModel = new ItemCellModel(serverItem.ItemID, false, (ulong)serverItem.Count, serverItem.IsBind , "", PackType.rptDeleted, false, ConfigParse.Analysis(serverItem.UserData)); itemCell.Init(cellModel); itemCell.cellBtn.RemoveAllListeners(); itemCell.cellBtn.AddListener(() => { ShowItemDetails(serverItem); }); } } } var achieveItems = dungeonModel.dungeonResult.succItemInfo; hasReward = achieveItems != null && achieveItems.Length > 0; container_AchieveReward.gameObject.SetActive(hasReward); achieveNullReawrd.SetActive(!hasReward); if (hasReward) { for (int i = 0; i < achieveItems.Length; i++) { if (i < achieveItemCells.Count) { achieveItemCells[i].gameObject.SetActive(true); ItemCell itemCell = achieveItemCells[i]; ServerItem serverItem = achieveItems[i]; ItemCellModel cellModel = new ItemCellModel(serverItem.ItemID, false, (ulong)serverItem.Count, serverItem.IsBind , "", PackType.rptDeleted, false, ConfigParse.Analysis(serverItem.UserData)); itemCell.Init(cellModel); itemCell.cellBtn.RemoveAllListeners(); itemCell.cellBtn.AddListener(() => { ShowItemDetails(serverItem); }); } } } } private void ShowItemDetails(ServerItem serverItem) { ItemAttrData attrData = new ItemAttrData(serverItem.ItemID, false, (ulong)serverItem.Count, -1, serverItem.IsBind , false, PackType.rptDeleted, "", ConfigParse.Analysis(serverItem.UserData)); itemTipsModel.SetItemTipsModel(attrData); } } } System/Message/BattleHint.cs
@@ -6,31 +6,74 @@ { public class BattleHint : Singleton<BattleHint> { DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } public BattleHint() { StageManager.Instance.onStageLoadFinish += OnStageLoadFinish; SysNotifyMgr.Instance.OnSystemNotifyEvent += OnSystemNotifyEvent; } private void OnStageLoadFinish() public void OnStageLoadFinish() { Clear(); var mapId = PlayerDatas.Instance.baseData.MapID; if (cacheMapId != 0 && cacheMapId != 31160 && mapId == 31160) { SnxxzGame.Instance.StartCoroutine(Co_LoadFinish()); } var help = dungeonModel.mission; ancientKing = mapId != 31160 ? 0 : help.topPlayerID; cacheMapId = PlayerDatas.Instance.baseData.MapID; } public event Action battleHintUpdate; public event Action evenKillUpdate; Queue<string> battleHints = new Queue<string>(); Queue<int> battleHints = new Queue<int>(); Queue<string> evenKills = new Queue<string>(); public void Receive(string msg) int ancientKing = 0; int cacheMapId = 0; IEnumerator Co_LoadFinish() { if (!(StageManager.Instance.CurrentStage is DungeonStage)) yield return WaitingForSecondConst.WaitMS300; Receive(3); } public void UpdateDungeonHelp() { var help = dungeonModel.mission; if (DTC0403_tagPlayerLoginLoadOK.finishedLogin) { if (PlayerDatas.Instance.baseData.MapID == 31160 && help.topPlayerID == PlayerDatas.Instance.baseData.PlayerID && ancientKing != help.topPlayerID) { ancientKing = help.topPlayerID; Receive(1); } } ancientKing = help.topPlayerID; } private void OnSystemNotifyEvent(string msg) { if (!(StageManager.Instance.CurrentStage is DungeonStage) || StageManager.Instance.isLoading) { return; } battleHints.Enqueue(msg); if (StageManager.Instance.isLoading) if (msg.Equals("AncientBattlefield_8")) { return; Receive(2); } } public void Receive(int ancientType) { battleHints.Enqueue(ancientType); if (!WindowCenter.Instance.IsOpen<BattleHintWin>()) { WindowCenter.Instance.Open<BattleHintWin>(); @@ -44,12 +87,55 @@ } } public bool TryGetBattleHint(out string msg) public void ReceiveEvenKill(string message, ArrayList list) { msg = string.Empty; if (PlayerDatas.Instance.baseData.MapID != 31160 || !(StageManager.Instance.CurrentStage is DungeonStage) || StageManager.Instance.isLoading) { return; } var evenKillCount = 0; if (list != null && list.Count > 0) { int.TryParse(list[0].ToString(), out evenKillCount); } if (evenKillCount == 0) { return; } message = message.Replace("%s0", evenKillCount.ToString()); evenKills.Enqueue(message); if (!WindowCenter.Instance.IsOpen<BattleHintWin>()) { WindowCenter.Instance.Open<BattleHintWin>(); } else { if (evenKillUpdate != null) { evenKillUpdate(); } } } public bool TryGetBattleHint(out int ancientType) { ancientType = 0; if (battleHints.Count > 0) { msg = battleHints.Dequeue(); ancientType = battleHints.Dequeue(); return true; } return false; } public bool TryGetEvenKill(out string message) { message = string.Empty; if (evenKills.Count > 0) { message = evenKills.Dequeue(); return true; } return false; @@ -58,6 +144,7 @@ public void Clear() { battleHints.Clear(); evenKills.Clear(); } } } System/Message/BattleHintWin.cs
@@ -6,6 +6,7 @@ using System; using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; @@ -14,11 +15,21 @@ public class BattleHintWin : Window { [SerializeField] Image m_BattleHint; [SerializeField] RectTransform m_ContainerBattleHint; [SerializeField] RectTransform m_ContainerKing; [SerializeField] RectTransform m_ContainerEnemy; [SerializeField] RectTransform m_ContainerAncientRemind; [SerializeField] ScaleTween m_BattleHintTween; [SerializeField, Header("保留时间")] float m_KeepTime = 2f; bool inBattleHint = false; [SerializeField] RectTransform m_ContainerEvenKill; [SerializeField] ScaleTween m_EvenKillTween; [SerializeField] Text m_EvenKill; [SerializeField, Header("保留时间")] float m_EvenKillTime = 2f; bool isBattleHint = false; bool isEvenKill = false; #region Built-in protected override void BindController() { @@ -30,15 +41,19 @@ protected override void OnPreOpen() { inBattleHint = false; m_BattleHintTween.gameObject.SetActive(false); m_ContainerBattleHint.gameObject.SetActive(false); m_ContainerEvenKill.gameObject.SetActive(false); isBattleHint = false; isEvenKill = false; } protected override void OnActived() { base.OnActived(); DisplayBattleHint(); DisplayEvenKill(); BattleHint.Instance.battleHintUpdate += BattleHintUpdate; BattleHint.Instance.evenKillUpdate += EvenKillUpdate; } protected override void OnAfterOpen() @@ -48,6 +63,7 @@ protected override void OnPreClose() { BattleHint.Instance.battleHintUpdate -= BattleHintUpdate; BattleHint.Instance.evenKillUpdate -= EvenKillUpdate; } protected override void OnAfterClose() @@ -57,7 +73,7 @@ private void BattleHintUpdate() { if (!inBattleHint) if (!isBattleHint) { DisplayBattleHint(); } @@ -65,13 +81,26 @@ void DisplayBattleHint() { string iconKey = string.Empty; if (BattleHint.Instance.TryGetBattleHint(out iconKey)) var ancientType = 0; if (BattleHint.Instance.TryGetBattleHint(out ancientType)) { inBattleHint = true; m_BattleHint.SetSprite(iconKey); m_BattleHint.SetNativeSize(); m_BattleHintTween.gameObject.SetActive(true); isBattleHint = true; m_ContainerKing.gameObject.SetActive(false); m_ContainerEnemy.gameObject.SetActive(false); m_ContainerAncientRemind.gameObject.SetActive(false); switch (ancientType) { case 1: m_ContainerKing.gameObject.SetActive(true); break; case 2: m_ContainerEnemy.gameObject.SetActive(true); break; case 3: m_ContainerAncientRemind.gameObject.SetActive(true); break; } m_ContainerBattleHint.gameObject.SetActive(true); m_BattleHintTween.SetStartState(); m_BattleHintTween.Play(OnBattleHintTweenComplete); } @@ -82,13 +111,47 @@ StartCoroutine(Co_Complete()); } private void EvenKillUpdate() { if (!isEvenKill) { DisplayEvenKill(); } } void DisplayEvenKill() { string evenKill = string.Empty; if (BattleHint.Instance.TryGetEvenKill(out evenKill)) { isEvenKill = true; m_EvenKill.text= evenKill; m_ContainerEvenKill.gameObject.SetActive(true); m_EvenKillTween.SetStartState(); m_EvenKillTween.Play(OnEvenKillComplete); } } private void OnEvenKillComplete() { StartCoroutine(Co_EvenKill()); } IEnumerator Co_Complete() { yield return WaitingForSecondConst.GetWaitForSeconds(m_KeepTime); inBattleHint = false; m_BattleHintTween.gameObject.SetActive(false); isBattleHint = false; m_ContainerBattleHint.gameObject.SetActive(false); DisplayBattleHint(); } IEnumerator Co_EvenKill() { yield return WaitingForSecondConst.GetWaitForSeconds(m_EvenKillTime); isEvenKill = false; m_ContainerEvenKill.gameObject.SetActive(false); DisplayEvenKill(); } } } System/Message/SysNotifyMgr.cs
@@ -29,6 +29,13 @@ { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerDataInitializeEvent; StageManager.Instance.onStageLoadFinish += OnStageLoadFinish; StartCoroutine(Co_Instance()); } IEnumerator Co_Instance() { yield return null; var instance = BattleHint.Instance; } protected override void OnDestroy() @@ -41,6 +48,7 @@ private void OnStageLoadFinish() { ServerTipDetails.OnStageLoadFinish(); BattleHint.Instance.OnStageLoadFinish(); } private void BeforePlayerDataInitializeEvent() @@ -211,8 +219,8 @@ OnSysTipEvent(type[i], msg, tipInfoList); } break; case SysNotifyType.SysBattleHint: BattleHint.Instance.Receive(msg); case SysNotifyType.SysEvenKill: BattleHint.Instance.ReceiveEvenKill(msg, tipInfoList); break; } } @@ -235,7 +243,7 @@ SysTeamTip = 41,//队伍频道提示 SysRealmTip = 100,//境界提示 SysFixedTip1 = 11,//固定提示2 SysBattleHint = 6,//上古战场提示 SysEvenKill = 7,//上古战场连杀提示 } public int Compare(SystemHintData x, SystemHintData y)