少年修仙传客户端代码仓库
client_linchunjie
2018-09-28 df040876b6cb3d9a8e29f16615474819bd4fcf17
2287 添加上古战场积分王和复仇成功提示
5个文件已修改
503 ■■■■■ 已修改文件
Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0319_tagFBHelp.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Activity/ActivitySettleWin.cs 288 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/BattleHint.cs 109 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/BattleHintWin.cs 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/SysNotifyMgr.cs 14 ●●●● 补丁 | 查看 | 原始文档 | 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)