少年修仙传客户端代码仓库
client_Zxw
2018-08-20 f11a7aae6f821913aa4bc415961db4cb18f3e3b6
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
15个文件已修改
525 ■■■■■ 已修改文件
Core/GameEngine/Model/ConfigManager.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/AnimatorControllerLoader.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Compose/New/ComposeWinModel.cs 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzCell.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzEquip.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzItemCell.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzModel.cs 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/EquipTip.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemTipsModel.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PackModelInterface.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PackSendQuestMgr.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PlayerPackModels.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/NewBieGuidance/NewBieCenter.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmUpWin.cs 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/SortTable.cs 218 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/ConfigManager.cs
@@ -245,6 +245,7 @@
        StartSyncTask<IconConfig>(AssetPath.ResourceOut);
        StartSyncTask<SysInfoConfig>(AssetPath.ResourceOut);
        StartSyncTask<LanguageConfig>(AssetPath.ResourceOut);
        StartSyncTask<RealmConfig>(AssetPath.ResourceOut);
    }
    public bool AllCompleted()
Core/ResModule/AnimatorControllerLoader.cs
@@ -11,6 +11,7 @@
    public static readonly string controllerSuffix = "AnimatorController_";
    public static readonly string controllerUISuffix = "AnimatorController_UI_";
    public static readonly string controllerShowSuffix = "AnimatorController_Show_";
    public static readonly string controllerRealmSuffix = "AnimatorController_Realm_";
    public static AnimationClip LoadAnimationClip(string name, string clipName)
    {
System/Compose/New/ComposeWinModel.cs
@@ -130,6 +130,24 @@
        return modellist;
    }
    public int GetTicketId(int firstType, int secondType, int thirdType)
    {
        var itemId = 0;
        var dict = ItemCompoundConfig.GetFirstComposeTypeDict(firstType);
        Dictionary<int, List<ItemCompoundConfig>> _secondTypeDict = null;
        dict.TryGetValue(secondType, out _secondTypeDict);
        if (_secondTypeDict != null)
        {
            List<ItemCompoundConfig> modellist = null;
            _secondTypeDict.TryGetValue(thirdType, out modellist);
            if (modellist != null && modellist.Count > 0)
            {
                int.TryParse(modellist[0].makeID, out itemId);
            }
        }
        return itemId;
    }
    public int[] makeIDs { get; private set; }
    public int[] unfixedItemIDs { get; private set; }
    public int[] costfixedItemIDs { get; private set; }
@@ -746,28 +764,36 @@
    {
        bool isEnough = true;
        Dictionary<int, Dictionary<int, List<ItemCompoundConfig>>> getFirstModel = ItemCompoundConfig.GetFirstComposeTypeDict((int)ComposeFuncType.Ticket);
        if(getFirstModel.ContainsKey(secondType))
        if (getFirstModel.ContainsKey(secondType))
        {
            if(getFirstModel[secondType].ContainsKey(0))
            if (getFirstModel[secondType].ContainsKey(0))
            {
                ItemCompoundConfig compoundConfig = getFirstModel[secondType][0][0];
                int[] fixedIDs = ConfigParse.GetMultipleStr<int>(compoundConfig.itemID);
                int[] fixedCnt = ConfigParse.GetMultipleStr<int>(compoundConfig.itemCount);
                for(int i= 0; i< fixedIDs.Length; i++)
                for (int i = 0; i < fixedIDs.Length; i++)
                {
                    int haveCnt = playerPack.GetItemCountByID(PackType.rptItem,fixedIDs[i]);
                    if(fixedCnt[i] > haveCnt)
                    int haveCnt = playerPack.GetItemCountByID(PackType.rptItem, fixedIDs[i]);
                    if (fixedCnt[i] > haveCnt)
                    {
                        isEnough = false;
                        break;
                    }
                }
            }
            else
            {
                isEnough = false;
            }
        }
        else
        {
            isEnough = false;
        }
        return isEnough;
    }
     #region 处理跳转界面数据
    #region 处理跳转界面数据
    public bool CheckComposeItemById(int itemId)
    {
System/Dogz/DogzCell.cs
@@ -28,10 +28,21 @@
            m_DogzIcon.SetSprite(_dogzCfg.HeadIcon);
            m_DogzIcon.SetNativeSize();
            var _dogzEquips = model.GetDogzEquips(_dogzCfg.ID);
            m_DogzIcon.material = (_dogzEquips == null || _dogzEquips.Count < 5) ? MaterialUtility.GetDefaultSpriteGrayMaterial() :
                MaterialUtility.GetUIDefaultGraphicMaterial();
            bool isActive = (_dogzEquips == null || _dogzEquips.Count < 5) ? false : true;
            m_DogzName.text = _dogzCfg.Name;
            //m_DogzGrade.text = StringUtility.Contact("评分:", 100);
            m_DogzGrade.text = StringUtility.Contact("评分:", 100);
            if (isActive)
            {
                m_DogzIcon.material = MaterialUtility.GetUIDefaultGraphicMaterial();
                m_DogzName.material = MaterialUtility.GetUIDefaultGraphicMaterial();
                m_DogzGrade.material = MaterialUtility.GetUIDefaultGraphicMaterial();
            }
            else
            {
                m_DogzIcon.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
                m_DogzName.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
                m_DogzGrade.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
            }
            m_DogzBtn.image.color = model.presentSelectDogz == _dogzCfg.ID ? Color.blue : Color.white;
            m_DogzAssist.gameObject.SetActive(model.TryGetAssistDogzState(_dogzCfg.ID));
            m_DogzBtn.onClick.RemoveAllListeners();
System/Dogz/DogzEquip.cs
@@ -32,9 +32,9 @@
            itemBaisc.cellBtn.RemoveAllListeners();
            itemBaisc.cellBtn.AddListener(()=>
            {
                ItemAttrData attrData = new ItemAttrData(model.itemId,false,(ulong)model.itemInfo.ItemCount,model.itemInfo.ItemPlace,
                    model.itemInfo.IsBind,false,PackType.rptDogzEquip,model.itemInfo.ItemGUID);
                tipsModel.SetItemTipsModel(attrData);
                tipsModel.SetItemTipsModel(model.packType,model.itemInfo.ItemGUID,false,false);
                tipsModel.SetDogzEquipBtn(tipsModel.curAttrData);
                tipsModel.ShowUICtrl();
            });
        }
    }
System/Dogz/DogzItemCell.cs
@@ -46,9 +46,9 @@
            itemBaisc.cellBtn.RemoveAllListeners();
            itemBaisc.cellBtn.AddListener(()=>
            {
                ItemAttrData attrData = new ItemAttrData(model.itemId, false, (ulong)model.itemInfo.ItemCount, model.itemInfo.ItemPlace,
                  model.itemInfo.IsBind, false, PackType.rptDogzItem, model.itemInfo.ItemGUID);
                tipsModel.SetItemTipsModel(attrData);
                tipsModel.SetItemTipsModel(model.packType, model.itemInfo.ItemGUID, false, false);
                tipsModel.SetDogzItemBtn(tipsModel.curAttrData);
                tipsModel.ShowUICtrl();
            });
        }
    }
System/Dogz/DogzModel.cs
@@ -69,7 +69,7 @@
            AddAssistItem = int.Parse(_funcCfg.Numerical2);
            AddAssistItemCnt = ConfigParse.GetMultipleStr<int>(_funcCfg.Numerical3);
            m_DogzEquipStrenLimit = ConfigParse.GetDic<int, int>(_funcCfg.Numerical4);
            _funcCfg = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("DogzPack");
            _funcCfg = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("DogzPack");
            DogzPackGridCnt = int.Parse(_funcCfg.Numerical1);
        }
        /// <summary>
@@ -236,28 +236,48 @@
            ItemModel itemModel = playerPack.GetItemModelByIndex(type, index);
            int dogzId = GetDogzIDByIndex(index);
            if (itemModel != null)
            List<ItemModel> modellist = GetDogzEquips(dogzId);
            if(modellist != null)
            {
                for (int i = 0; i < m_DogzEquipDict[dogzId].Count; i++)
                if (itemModel != null)
                {
                    if (m_DogzEquipDict[dogzId][i].itemInfo.ItemPlace == index)
                    bool isAdd = true;
                    for (int i = 0; i < modellist.Count; i++)
                    {
                        m_DogzEquipDict[dogzId][i] = itemModel;
                        return;
                        if (modellist[i].itemInfo.ItemPlace == index)
                        {
                            isAdd = false;
                            modellist[i] = itemModel;
                            break;
                        }
                    }
                    if(isAdd)
                    {
                       modellist.Add(itemModel);
                    }
                }
                else
                {
                    for (int i = 0; i < modellist.Count; i++)
                    {
                        if (modellist[i].itemInfo.ItemPlace == index)
                        {
                            modellist.RemoveAt(i);
                            break;
                        }
                    }
                }
            }
            else
            {
                for (int i = 0; i < m_DogzEquipDict[dogzId].Count; i++)
                if(itemModel != null)
                {
                    if (m_DogzEquipDict[dogzId][i].itemInfo.ItemPlace == index)
                    {
                        m_DogzEquipDict[dogzId].RemoveAt(i);
                        return;
                    }
                    List<ItemModel> equipDatas = new List<ItemModel>();
                    equipDatas.Add(itemModel);
                    m_DogzEquipDict.Add(dogzId,equipDatas);
                }
            }
            if(RefreshDogzEquipAct != null)
            {
System/KnapSack/Logic/EquipTip.cs
@@ -179,7 +179,8 @@
            yield return null;
            if(itemAttrData.isCompare)
            {
                if (itemAttrData.packType != PackType.rptEquip)
                if (itemAttrData.packType != PackType.rptEquip
                    && itemAttrData.packType != PackType.rptDogzEquip)
                {
                    itemTipsModel.SetCurTips(this.GetComponent<RectTransform>());
                }
@@ -205,7 +206,8 @@
            ItemCellModel cellModel = new ItemCellModel(itemAttrData.itemId,itemAttrData.isPreview, (ulong)itemAttrData.count, itemAttrData.isBind,
                itemAttrData.guid,itemAttrData.packType,itemAttrData.isCompare, itemAttrData.useDataDict);
            itemCell.Init(cellModel);
            if(itemAttrData.packType == PackType.rptEquip)
            if(itemAttrData.packType == PackType.rptEquip
                || itemAttrData.packType == PackType.rptDogzEquip)
            {
                putOnIcon.SetActive(true);
            }
@@ -262,7 +264,8 @@
            if (itemAttrData.isCompare)
            {
                if(itemAttrData.packType != PackType.rptEquip)
                if(itemAttrData.packType != PackType.rptEquip
                    && itemAttrData.packType != PackType.rptDogzEquip)
                {
                    CreateFuncBtn();
                }
System/KnapSack/Logic/ItemTipsModel.cs
@@ -71,6 +71,8 @@
            get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); }
        }
        DogzModel dogzModel { get { return ModelCenter.Instance.GetModel<DogzModel>(); } }
        public override void Init()
        {
            m_storeModel.RefreshTCBPlayerDataEvent += RefreshOfflinePluginTime;
@@ -637,11 +639,7 @@
                switch (attrData.winType)
                {
                    case ItemWinType.equipWin:
                        attrData.SetTipsFuncBtn(ItemWinBtnType.putOn, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendPutOnQuest(ItemWinBtnType.putOn, attrData.guid); });
                        break;
                    case ItemWinType.wingsWin:
                        attrData.SetTipsFuncBtn(ItemWinBtnType.putOn, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendPutOnQuest(ItemWinBtnType.putOn, attrData.guid); });
                        break;
                    case ItemWinType.guardWin:
                        attrData.SetTipsFuncBtn(ItemWinBtnType.putOn, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendPutOnQuest(ItemWinBtnType.putOn, attrData.guid); });
                        break;
@@ -688,6 +686,36 @@
        }
        public void SetDogzItemBtn(ItemAttrData attrData)
        {
            if (attrData == null) return;
            if (attrData.itemConfig.CanSell == 1)
            {
                attrData.SetTipsFuncBtn(ItemWinBtnType.sell, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendSellQuest(ItemWinBtnType.sell, attrData); });
            }
            switch (attrData.winType)
            {
                case ItemWinType.equipWin:
                    attrData.SetTipsFuncBtn(ItemWinBtnType.putOn, (ItemWinBtnType, ItemAttrData) => { dogzModel.SendPutOnEquip(dogzModel.presentSelectDogz, attrData.index); });
                    break;
            }
        }
        public void SetDogzEquipBtn(ItemAttrData attrData)
        {
            if (attrData == null) return;
            attrData.SetTipsFuncBtn(ItemWinBtnType.putOff, (ItemWinBtnType, ItemAttrData) => {
               dogzModel.SendPutOffEquip(dogzModel.presentSelectDogz,dogzModel.GetDogzEquipPlaceByIndex(attrData.index));
            });
            attrData.SetTipsFuncBtn(ItemWinBtnType.strength, (ItemWinBtnType, ItemAttrData) => {
                WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.StrengthFunc1);
            });
        }
        /// <summary>
        /// 设置仓库弹框按钮
        /// </summary>
System/KnapSack/Logic/PackModelInterface.cs
@@ -588,7 +588,7 @@
            SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem);
            if (singlePack == null) return false;
            int startLockIndex = singlePack.openGridCount - GetInitGridCount(PackType.rptItem);
            int startLockIndex = singlePack.openGridCount - playerPack.InitBagGridCnt;
            FuncConfigConfig _tagFuncModel = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("OpenBagItem");
            int haveCount = playerPack.GetItemCountByID(PackType.rptItem,itemId);
            Equation.Instance.Clear();
@@ -779,22 +779,20 @@
        #region 解锁格子
        public int GetInitGridCount(PackType type)
        {
            FuncConfigConfig initGridCount = null;
            if (type == PackType.rptItem)
                initGridCount = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("InitBagCellCount");
            else if (type == PackType.rptWarehouse)
                initGridCount = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("InitDepotCellCount");
            return int.Parse(initGridCount.Numerical1);
        }
        public void OpenGrid(int chooseGridCount, PackType type)
        {
            SinglePackModel singlePack = playerPack.GetSinglePackModel(type);
            int openCount = chooseGridCount - singlePack.openGridCount;
            int index = chooseGridCount - GetInitGridCount(type);
            int index = 0;
            switch(type)
            {
                case PackType.rptItem:
                    index = chooseGridCount - playerPack.InitBagGridCnt;
                    break;
                case PackType.rptWarehouse:
                    index = chooseGridCount - playerPack.InitDepotGridCnt;
                    break;
            }
            itemTipsModel.SetExtendGirdModel(openCount,index, type);
            WindowCenter.Instance.Open<ExtendWin>();
        }
System/KnapSack/Logic/PackSendQuestMgr.cs
@@ -680,7 +680,7 @@
            if (useItemModel.itemId == 951)
            {
                int startLockIndex = singlePack.openGridCount - modelInterface.GetInitGridCount(PackType.rptItem);
                int startLockIndex = singlePack.openGridCount - playerPack.InitBagGridCnt;
                int chooseGridCnt = singlePack.openGridCount + GetExtendGridCnt(startLockIndex);
                modelInterface.OpenGrid(chooseGridCnt, PackType.rptItem);
                return;
@@ -776,6 +776,11 @@
                {
                    extendCnt = 1;
                }
                int remianLock = playerPack.MaxBagGridCnt - playerPack.GetSinglePackModel(PackType.rptItem).openGridCount;
                if(extendCnt > remianLock)
                {
                    extendCnt = remianLock;
                }
                return extendCnt;
            }
        }
System/KnapSack/Logic/PlayerPackModels.cs
@@ -17,6 +17,11 @@
        public Dictionary<int, Dictionary<int, int>> decomposeAttrDict = new Dictionary<int, Dictionary<int, int>>();
        public static string StrengthAttrShift_RecordKey = "StrengthAttrShift";
        public const string RecordKnapsackTitle = "RecordKnapsackTitle";
        public int MaxBagGridCnt { get; private set; }
        public int InitBagGridCnt { get; private set; }
        public int MaxDepotGridCnt { get; private set; }
        public int InitDepotGridCnt { get; private set; }
        public override void Init()
        {
            List<DungeonOpenTimeConfig> dungeonlist = ConfigManager.Instance.GetAllValues<DungeonOpenTimeConfig>();
@@ -71,6 +76,11 @@
            minDecomposeNum = int.Parse(equipDecompose.Numerical1);
            defaultUnSelectlist = ConfigParse.GetMultipleStr<int>(equipDecompose.Numerical2);
            InitDepotGridCnt = int.Parse(ConfigManager.Instance.GetTemplate<FuncConfigConfig>("InitDepotCellCount").Numerical1);
            InitBagGridCnt = int.Parse(ConfigManager.Instance.GetTemplate<FuncConfigConfig>("InitBagCellCount").Numerical1);
            MaxBagGridCnt = int.Parse(ConfigManager.Instance.GetTemplate<FuncConfigConfig>("MaxBagCellCount").Numerical1);
            MaxDepotGridCnt = int.Parse(ConfigManager.Instance.GetTemplate<FuncConfigConfig>("MaxDepotCellCount").Numerical1);
        }
        
        public void OnBeforePlayerDataInitialize()
System/NewBieGuidance/NewBieCenter.cs
@@ -54,6 +54,7 @@
        PlayerDeadModel playerDeadModel { get { return ModelCenter.Instance.GetModel<PlayerDeadModel>(); } }
        TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
        DailyQuestModel dailyModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        PlayerPackModel packModel { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        public event Action guideStepChangeEvent;
        public event Action guideBeginEvent;
@@ -340,7 +341,10 @@
                case GuideTriggerType.RealmSitDown:
                    return false;
                case GuideTriggerType.ItemCompound:
                    return composeModel.IsComposeTicketByType(config.Condition);
                    var itemId = composeModel.GetTicketId((int)ComposeFuncType.Ticket, config.Condition, 0);
                    var singlepack = packModel.GetSinglePackModel(PackType.rptItem);
                    var count = singlepack != null ? singlepack.GetItemCountByID(itemId) : 0;
                    return composeModel.IsComposeTicketByType(config.Condition) && itemId != 0 && count == 0;
                case GuideTriggerType.HangUpResult:
                    return true;
                case GuideTriggerType.BranchQuestCando:
System/Realm/RealmUpWin.cs
@@ -40,7 +40,6 @@
        [SerializeField] RealmProgressBehaviour m_RealmProgress;
        [SerializeField] UIEffect m_RealmDungeonSfx;
        [SerializeField] UIEffect m_GetRealmPointSfx;
        [SerializeField] Button m_FuncButton;
        [SerializeField] Text m_FuncButtonTxt;
@@ -55,8 +54,14 @@
        [SerializeField, Header("模型位置")] Vector3[] m_ModelPositions;
        [SerializeField, Header("当前境界位置")] Vector3[] m_RealmNowPositions;
        [SerializeField, Header("下一境界位置")] Vector3[] m_RealmNextwPositions;
        [SerializeField, Header("Boss位置")] Vector3[] m_BossPositions;
        [SerializeField, Header("Boss出现延长")] float m_DelayEnterTime = 1f;
        int cacheRealmPoint = 0;
        Coroutine cacheCoroutine = null;
        RuntimeAnimatorController cacheController = null;
        const string State_EnterHash = "Show";
        const string State_IdleHash = "Idle";
        RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
@@ -75,7 +80,21 @@
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
            WindowCenter.Instance.windowAfterCloseEvent += WindowAfterCloseEvent;
            cacheRealmPoint = PlayerDatas.Instance.extersion.realmPoint;
            m_RawBoss.gameObject.SetActive(false);
            m_RawPlayer.gameObject.SetActive(false);
            Display();
        }
        protected override void OnActived()
        {
            base.OnActived();
            if (realmModel.realmDungeonState)
            {
                StopBoss();
                m_RawBoss.gameObject.SetActive(false);
                m_RawPlayer.gameObject.SetActive(true);
                UI3DModelExhibition.Instance.BeginShowSitDownPlayer(m_RawPlayer, PlayerDatas.Instance.baseData.Job);
            }
        }
        protected override void OnAfterOpen()
@@ -91,6 +110,7 @@
            if (realmModel.realmDungeonState)
            {
                m_RealmDungeonSfx.Play();
                StartCoroutine(Co_DisplayBossShow());
            }
            realmModel.realmDungeonState = false;
        }
@@ -99,9 +119,18 @@
        {
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
            WindowCenter.Instance.windowAfterCloseEvent -= WindowAfterCloseEvent;
            UI3DModelExhibition.Instance.StopShowNPC();
            StopBoss();
            UI3DModelExhibition.Instance.StopShowPlayer();
            realmModel.realmDungeonState = false;
            if (cacheCoroutine != null)
            {
                StopCoroutine(cacheCoroutine);
                cacheCoroutine = null;
            }
            if (cacheController != null)
            {
                cacheController = null;
            }
        }
        protected override void OnAfterClose()
@@ -116,6 +145,17 @@
            }
        }
        #endregion
        IEnumerator Co_DisplayBossShow()
        {
            yield return WaitingForSecondConst.WaitMS800;
            ResetRunTimeController();
            var config = ConfigManager.Instance.GetTemplate<RealmConfig>(PlayerDatas.Instance.baseData.realmLevel);
            m_RawPlayer.gameObject.SetActive(false);
            UI3DModelExhibition.Instance.StopShowPlayer();
            yield return WaitingForSecondConst.GetWaitForSeconds(m_DelayEnterTime > 0 ? m_DelayEnterTime : 1f);
            StartBoss(config, true);
        }
        private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType)
        {
@@ -135,10 +175,6 @@
                DisplayModel();
                DisplayButton();
                if (PlayerDatas.Instance.extersion.realmPoint >= cacheRealmPoint)
                {
                    DisplayGetRealmPointSfx();
                }
                cacheRealmPoint = PlayerDatas.Instance.extersion.realmPoint;
            }
        }
@@ -236,16 +272,58 @@
            if (realmModel.IsRealmHighest || _realmPoint < config.NeedPoint)
            {
                m_RawPlayer.gameObject.SetActive(true);
                StopBoss();
                m_RawBoss.gameObject.SetActive(false);
                UI3DModelExhibition.Instance.StopShowNPC();
                UI3DModelExhibition.Instance.BeginShowSitDownPlayer(m_RawPlayer, PlayerDatas.Instance.baseData.Job);
            }
            else if (_realmPoint >= config.NeedGood)
            {
                m_RawBoss.gameObject.SetActive(true);
                m_RawPlayer.gameObject.SetActive(false);
                ResetRunTimeController();
                UI3DModelExhibition.Instance.StopShowPlayer();
                UI3DModelExhibition.Instance.BeginShowNPC(config.BossID, config.IsBigRealm == 1 ? Vector3.zero : direction, m_RawBoss, false);
                StartBoss(config);
            }
        }
        private void StopBoss()
        {
            ResetRunTimeController();
            UI3DModelExhibition.Instance.StopShowNPC();
        }
        private void ResetRunTimeController()
        {
            var npcModel = UI3DModelExhibition.Instance.NpcModelPet;
            if (npcModel != null)
            {
                var animator = npcModel.GetComponentInChildren<Animator>();
                if (animator != null && cacheController != null)
                {
                    animator.runtimeAnimatorController = cacheController;
                }
            }
        }
        private void StartBoss(RealmConfig config, bool act = false)
        {
            StopBoss();
            m_RawBoss.gameObject.SetActive(true);
            UI3DModelExhibition.Instance.StopShowPlayer();
            UI3DModelExhibition.Instance.BeginShowNPC(config.BossID, config.IsBigRealm == 1 ? Vector3.zero : direction, m_RawBoss, false);
            var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(config.BossID);
            var npcModel = UI3DModelExhibition.Instance.NpcModelPet;
            m_RawBoss.transform.localPosition = config.IsBigRealm == 1 ? m_BossPositions[1] : m_BossPositions[0];
            if (npcModel != null)
            {
                var animator = npcModel.GetComponentInChildren<Animator>();
                if (animator != null)
                {
                    cacheController = animator.runtimeAnimatorController;
                    var runtimeController = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerRealmSuffix, npcConfig.MODE);
                    animator.runtimeAnimatorController = runtimeController;
                    animator.Play(act ? State_EnterHash : State_IdleHash, 0);
                }
            }
        }
@@ -271,14 +349,6 @@
            else
            {
                m_FuncButtonTxt.text = Language.Get("RealmWin_Bewrite_1");
            }
        }
        void DisplayGetRealmPointSfx()
        {
            if (m_GetRealmPointSfx != null)
            {
                m_GetRealmPointSfx.Play();
            }
        }
UI/Common/SortTable.cs
@@ -1,67 +1,67 @@
using EnhancedUI.EnhancedScroller;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class SortTable : MonoBehaviour
    {
        [SerializeField] SortType m_SortType;
        public SortType sortType
        {
            get
            {
                return m_SortType;
            }
            set
            {
                m_SortType = value;
            }
        }
        [SerializeField] List<SortElement> m_SortElements;
        [SerializeField] ScrollerController m_Controller;
        [SerializeField] ClickScreenOtherSpace m_ClickOtherSpace;
        [SerializeField] Text m_TargetDisplay;
        public event Action<int> onSelectSortEvent;
        public event Action onSortCloseEvent;
        DogzModel dogzModel { get { return ModelCenter.Instance.GetModel<DogzModel>(); } }
        private void Awake()
        {
            m_Controller.OnRefreshCell += OnRefreshCell;
        }
        private void OnEnable()
        {
            m_Controller.Refresh();
            if (m_SortElements != null)
            {
                for (int i = 0; i < m_SortElements.Count; i++)
                {
                    m_Controller.AddCell(ScrollerDataType.Header, i, OnSortSelect);
                }
            }
            m_Controller.Restart();
            if (m_ClickOtherSpace != null)
            {
                m_ClickOtherSpace.RemoveAllListeners();
                m_ClickOtherSpace.AddListener(() =>
                {
                    if (onSortCloseEvent != null)
                    {
                        onSortCloseEvent();
                    }
                });
            }
        }
        private void OnSortSelect(CellView _cell)
        {
            var _index = _cell.index;
            var type = m_SortElements[_index].type;
using EnhancedUI.EnhancedScroller;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class SortTable : MonoBehaviour
    {
        [SerializeField] SortType m_SortType;
        public SortType sortType
        {
            get
            {
                return m_SortType;
            }
            set
            {
                m_SortType = value;
            }
        }
        [SerializeField] List<SortElement> m_SortElements;
        [SerializeField] ScrollerController m_Controller;
        [SerializeField] ClickScreenOtherSpace m_ClickOtherSpace;
        [SerializeField] Text m_TargetDisplay;
        public event Action<int> onSelectSortEvent;
        public event Action onSortCloseEvent;
        DogzModel dogzModel { get { return ModelCenter.Instance.GetModel<DogzModel>(); } }
        private void Awake()
        {
            m_Controller.OnRefreshCell += OnRefreshCell;
        }
        private void OnEnable()
        {
            m_Controller.Refresh();
            if (m_SortElements != null)
            {
                for (int i = 0; i < m_SortElements.Count; i++)
                {
                    m_Controller.AddCell(ScrollerDataType.Header, i, OnSortSelect);
                }
            }
            m_Controller.Restart();
            if (m_ClickOtherSpace != null)
            {
                m_ClickOtherSpace.RemoveAllListeners();
                m_ClickOtherSpace.AddListener(() =>
                {
                    if (onSortCloseEvent != null)
                    {
                        onSortCloseEvent();
                    }
                });
            }
        }
        private void OnSortSelect(CellView _cell)
        {
            var _index = _cell.index;
            var type = m_SortElements[_index].type;
            switch (sortType)
            {
                case SortType.EquipQuality:
@@ -70,48 +70,48 @@
                case SortType.EquipStar:
                    dogzModel.SelectDogzItemStart = type;
                    break;
            }
            if (onSelectSortEvent != null)
            {
                onSelectSortEvent(type);
            }
            if (onSortCloseEvent != null)
            {
                onSortCloseEvent();
            }
            if (m_TargetDisplay != null)
            {
                m_TargetDisplay.text = Language.Get(m_SortElements[_index].textKey);
            }
            this.gameObject.SetActive(false);
        }
        private void OnRefreshCell(ScrollerDataType type, CellView cell)
        {
            var _sortCell = cell as SortCell;
            _sortCell.sortTypeTxt.text = Language.Get(m_SortElements[cell.index].textKey);
        }
        public void SetDefault()
        {
            if (m_TargetDisplay != null && m_SortElements != null && m_SortElements.Count > 0)
            {
                m_TargetDisplay.text = Language.Get(m_SortElements[0].textKey);
            }
        }
    }
    public enum SortType
    {
        EquipQuality,
        EquipStar,
    }
    [Serializable]
    public struct SortElement
    {
        [Header("语言表key")]
        public string textKey;
        public int type;
    }
}
            }
            if (onSelectSortEvent != null)
            {
                onSelectSortEvent(type);
            }
            if (onSortCloseEvent != null)
            {
                onSortCloseEvent();
            }
            if (m_TargetDisplay != null)
            {
                m_TargetDisplay.text = Language.Get(m_SortElements[_index].textKey);
            }
            this.gameObject.SetActive(false);
        }
        private void OnRefreshCell(ScrollerDataType type, CellView cell)
        {
            var _sortCell = cell as SortCell;
            _sortCell.sortTypeTxt.text = Language.Get(m_SortElements[cell.index].textKey);
        }
        public void SetDefault()
        {
            if (m_TargetDisplay != null && m_SortElements != null && m_SortElements.Count > 0)
            {
                m_TargetDisplay.text = Language.Get(m_SortElements[0].textKey);
            }
        }
    }
    public enum SortType
    {
        EquipQuality,
        EquipStar,
    }
    [Serializable]
    public struct SortElement
    {
        [Header("语言表key")]
        public string textKey;
        public int type;
    }
}