少年修仙传客户端代码仓库
hch
2020-01-17 fc555e1717c7c012e0b1804c367c8adc563cb7b1
8370 【恺英】缥缈优化
13个文件已修改
561 ■■■■■ 已修改文件
Core/NetworkPackage/ServerPack/HB0_Event/HB001_tagGCAssistInfoList.cs 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_Hero.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/AssistConfirmwin.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/AssistThanksWin.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonAssistModel.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonAssistResultCell.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/ReceiveAssistThanksWin.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionEntrancePanel.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionIncidentBehaviour.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionIncidentPanel.cs 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionModel.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/GroupDungeonChallengeProcessor.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HB0_Event/HB001_tagGCAssistInfoList.cs
@@ -1,45 +1,52 @@
using UnityEngine;
using System.Collections;
// B0 01 新增协助 #tagGCAssistInfoList
public class HB001_tagGCAssistInfoList : GameNetPackBasic {
    public byte Count;
    public  tagGCAssistInfo[] AssistInfoList;
    public HB001_tagGCAssistInfoList () {
        _cmd = (ushort)0xB001;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out Count, vBytes, NetDataType.BYTE);
        AssistInfoList = new tagGCAssistInfo[Count];
        for (int i = 0; i < Count; i ++) {
            AssistInfoList[i] = new tagGCAssistInfo();
            TransBytes (out AssistInfoList[i].AssistGUID, vBytes, NetDataType.Chars, 40);
            TransBytes (out AssistInfoList[i].PlayerName, vBytes, NetDataType.Chars, 33);
            TransBytes (out AssistInfoList[i].Job, vBytes, NetDataType.BYTE);
            TransBytes (out AssistInfoList[i].LV, vBytes, NetDataType.WORD);
            TransBytes (out AssistInfoList[i].RealmLV, vBytes, NetDataType.BYTE);
            TransBytes (out AssistInfoList[i].MapID, vBytes, NetDataType.DWORD);
            TransBytes (out AssistInfoList[i].LineID, vBytes, NetDataType.DWORD);
            TransBytes (out AssistInfoList[i].NPCID, vBytes, NetDataType.DWORD);
            TransBytes (out AssistInfoList[i].ExDataLen, vBytes, NetDataType.WORD);
            TransBytes (out AssistInfoList[i].ExData, vBytes, NetDataType.Chars, AssistInfoList[i].ExDataLen);
        }
    }
    public struct tagGCAssistInfo {
        public string AssistGUID;        //协助GUID
        public string PlayerName;
        public byte Job;
        public ushort LV;        //等级
        public byte RealmLV;        //境界
        public uint MapID;
        public uint LineID;
        public uint NPCID;
        public ushort ExDataLen;
        public string ExData;        //其他自定义数据
    }
}
using UnityEngine;
using System.Collections;
// B0 01 新增协助 #tagGCAssistInfoList
public class HB001_tagGCAssistInfoList : GameNetPackBasic
{
    public byte Count;
    public tagGCAssistInfo[] AssistInfoList;
    public HB001_tagGCAssistInfoList()
    {
        _cmd = (ushort)0xB001;
    }
    public override void ReadFromBytes(byte[] vBytes)
    {
        TransBytes(out Count, vBytes, NetDataType.BYTE);
        AssistInfoList = new tagGCAssistInfo[Count];
        for (int i = 0; i < Count; i++)
        {
            AssistInfoList[i] = new tagGCAssistInfo();
            TransBytes(out AssistInfoList[i].AssistGUID, vBytes, NetDataType.Chars, 40);
            TransBytes(out AssistInfoList[i].PlayerID, vBytes, NetDataType.DWORD);
            TransBytes(out AssistInfoList[i].PlayerName, vBytes, NetDataType.Chars, 33);
            TransBytes(out AssistInfoList[i].Job, vBytes, NetDataType.BYTE);
            TransBytes(out AssistInfoList[i].LV, vBytes, NetDataType.WORD);
            TransBytes(out AssistInfoList[i].RealmLV, vBytes, NetDataType.BYTE);
            TransBytes(out AssistInfoList[i].MapID, vBytes, NetDataType.DWORD);
            TransBytes(out AssistInfoList[i].LineID, vBytes, NetDataType.DWORD);
            TransBytes(out AssistInfoList[i].NPCID, vBytes, NetDataType.DWORD);
            TransBytes(out AssistInfoList[i].ExDataLen, vBytes, NetDataType.WORD);
            TransBytes(out AssistInfoList[i].ExData, vBytes, NetDataType.Chars, AssistInfoList[i].ExDataLen);
        }
    }
    public struct tagGCAssistInfo
    {
        public string AssistGUID;        //协助GUID
        public uint PlayerID;
        public string PlayerName;
        public byte Job;
        public ushort LV;        //等级
        public byte RealmLV;        //境界
        public uint MapID;
        public uint LineID;
        public uint NPCID;
        public ushort ExDataLen;
        public string ExData;        //其他自定义数据
    }
}
Fight/GameActor/GA_Hero.cs
@@ -453,26 +453,27 @@
        }
        set
        {
            if (m_StartAutoHazyRegion != value)
            {
                if (ModelCenter.Instance.GetModel<HazyRegionModel>().auto)
                {
                    if (value)
                    {
                        SysNotifyMgr.Instance.ShowTip("Automatic_PMXY");
                    }
                    else
                    {
                        SysNotifyMgr.Instance.ShowTip("Automatic_PMXY1");
                    }
                }
#if UNITY_EDITOR
                Debug.Log("自动开始飘渺仙域: " + value);
#endif
            }
            m_StartAutoHazyRegion = value;
            if (m_StartAutoHazyRegion == false)
                ModelCenter.Instance.GetModel<HazyRegionModel>().auto = false;
            m_StartAutoHazyRegion = false;
//            if (m_StartAutoHazyRegion != value)
//            {
//                if (ModelCenter.Instance.GetModel<HazyRegionModel>().auto)
//                {
//                    if (value)
//                    {
//                        SysNotifyMgr.Instance.ShowTip("Automatic_PMXY");
//                    }
//                    else
//                    {
//                        SysNotifyMgr.Instance.ShowTip("Automatic_PMXY1");
//                    }
//                }
//#if UNITY_EDITOR
//                Debug.Log("自动开始飘渺仙域: " + value);
//#endif
//            }
//            m_StartAutoHazyRegion = value;
//            if (m_StartAutoHazyRegion == false)
//                ModelCenter.Instance.GetModel<HazyRegionModel>().auto = false;
        }
    }
    private float m_CalcAutoHazyRegionTime = 0;
System/Dungeon/AssistConfirmwin.cs
@@ -27,6 +27,10 @@
        DungeonAssistModel assistModel { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } }
        TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
        int FamilyActiveID = 3903;
        #region Built-in
@@ -47,8 +51,19 @@
            var config = ItemConfig.Get(FamilyActiveID);
            m_Image.SetSprite(config.IconKey);
            Count.text = assistModel.assistActiveCnt.ToString();
            m_Text.text = UIHelper.ReplaceNewLine(Language.Get("AssistCheckInfo", assistModel.assistOtherPlayerName,
                assistModel.assistObjStr));
            var assistInfo = assistModel.assistInfoDict[assistModel.assistGUIDTemp];
            if (assistInfo.npcID != 0)
            {
                NPCConfig cfg = NPCConfig.Get((int)assistInfo.npcID);
                m_Text.text = UIHelper.ReplaceNewLine(Language.Get("AssistCheckInfo",
                    assistInfo.playerName, cfg.charName));
            }
            else
            {
                var mapConfig = MapConfig.Get((int)assistInfo.mapID);
                m_Text.text = UIHelper.ReplaceNewLine(Language.Get("AssistCheckInfo1",
                assistInfo.playerName, mapConfig.Name));
            }
            m_ItemBG.SetItemBackGround(config.ItemColor);
        }
@@ -75,10 +90,20 @@
                SysNotifyMgr.Instance.ShowTip("AssistIsGone");
                return;
            }
            assistModel.SendStartAssistBoss(assistModel.assistGUIDTemp);
            //var assistInfo = assistModel.assistInfoDict[assistModel.assistGUID];
            //assistModel.GotoKillBoss((int)assistInfo.npcID);
            assistModel.isClickAssist = true;
            var assistInfo = assistModel.assistInfoDict[assistModel.assistGUIDTemp];
            if (assistInfo.npcID != 0)
            {
                assistModel.SendStartAssistBoss(assistModel.assistGUIDTemp);
                //var assistInfo = assistModel.assistInfoDict[assistModel.assistGUID];
                //assistModel.GotoKillBoss((int)assistInfo.npcID);
                assistModel.isClickAssist = true;
            }
            else
            {
                teamModel.RequestApplyForJoin((int)assistInfo.playerID);
            }
            CloseClick();
            WindowCenter.Instance.Close<DungeonAssistWin>();
        }
System/Dungeon/AssistThanksWin.cs
@@ -54,9 +54,17 @@
        protected override void OnPreOpen()
        {
            AssistCtrl.OnRefreshCell += OnRefreshRoleCell;
            var curNPC = NPCConfig.Get((int)assistModel.assistThanksGift.NPCID);
            AssistBossText.text = Language.Get("AssistBossThanks",
                MapConfig.Get((int)assistModel.assistThanksGift.MapID).Name, curNPC.charName, curNPC.NPCLV);
            if (assistModel.assistThanksGift.NPCID != 0)
            {
                var curNPC = NPCConfig.Get((int)assistModel.assistThanksGift.NPCID);
                AssistBossText.text = Language.Get("AssistBossThanks",
                    MapConfig.Get((int)assistModel.assistThanksGift.MapID).Name, curNPC.charName, curNPC.NPCLV);
            }
            else
            {
                var mapConfig = MapConfig.Get((int)assistModel.assistThanksGift.MapID);
                AssistBossText.text = Language.Get("AssistBossThanks1", mapConfig.Name);
            }
            AssistCtrl.Refresh();
System/Dungeon/DungeonAssistModel.cs
@@ -24,8 +24,6 @@
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        #region 正在协助中数据
        public string assistOtherPlayerName = string.Empty;
        public string assistObjStr = string.Empty; //协助额外信息如boss名 或功能名等
        public string assistGUID = string.Empty; //只要记录guid即可 后续优化
        public string assistGUIDTemp = string.Empty; //临时打开确认框使用
        public int assistActiveCnt = 0;  //协助可获得的活跃令
@@ -655,7 +653,7 @@
                    lineID = assistPack.AssistInfoList[i].LineID,
                    npcID = assistPack.AssistInfoList[i].NPCID,
                    exData = assistPack.AssistInfoList[i].ExData,
                    playerID = assistPack.AssistInfoList[i].PlayerID,
                };
            }
@@ -727,6 +725,14 @@
            var send = new CB010_tagCMRequestAssistBoss();
            send.ObjID = npcObjID;
            send.NPCID = (uint)(actore as GActorNpcFight).NpcConfig.NPCID;
            GameNetSystem.Instance.SendInfo(send);
        }
        public void SendTeamAssist(int mapID, int lineID)
        {
            var send = new CB011_tagCMRequestAssistTeamFB();
            send.MapID = (ushort)mapID;
            send.LineID = (ushort)lineID;
            GameNetSystem.Instance.SendInfo(send);
        }
@@ -1570,6 +1576,7 @@
            public uint lineID;
            public uint npcID;
            public string exData;
            public uint playerID;
        }
        public struct AssistThanksGift
System/Dungeon/DungeonAssistResultCell.cs
@@ -36,7 +36,17 @@
            NPCConfig cfg = NPCConfig.Get((int)assistInfo.npcID);
            //助战信息根据扩展信息后续补充
            assistInfoText.text = Language.Get("Z2001") + UIHelper.GetRealmNameEx(cfg.Realm, Language.Get("Z2002"), true) + UIHelper.AppendColor(TextColType.Blue, cfg.charName + Language.Get("Z1024", cfg.NPCLV));
            if (assistInfo.npcID != 0)
            {
                // 杀怪
                assistInfoText.text = Language.Get("Z2001") + UIHelper.GetRealmNameEx(cfg.Realm, Language.Get("Z2002"), true) + UIHelper.AppendColor(TextColType.Blue, cfg.charName + Language.Get("Z1024", cfg.NPCLV));
            }
            else
            {
                // 通关
                var mapConfig = MapConfig.Get((int)assistInfo.mapID);
                assistInfoText.text = Language.Get("Z2013", mapConfig.Name);
            }
            if (UIHelper.ServerStringTrim(assistName) == UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName))
            {
@@ -45,12 +55,19 @@
            }
            else
            {
                if (!findPreciousModel.IsBossUnlock((int)assistInfo.npcID))
                if (assistInfo.npcID != 0 && !findPreciousModel.IsBossUnlock((int)assistInfo.npcID))
                {
                    assistBtn.gameObject.SetActive(false);
                    LockObj.gameObject.SetActive(true);
                    LockText.text = UIHelper.GetRealmName(cfg.Realm, true) + Language.Get("MountPanel_UnlockBtn_1");
                }
                else if (assistInfo.npcID == 0 && PlayerDatas.Instance.baseData.LV < DungeonConfig.Get(assistInfo.mapID.ToString()).LVLimitMin)
                {
                    assistBtn.gameObject.SetActive(false);
                    LockObj.gameObject.SetActive(true);
                    LockText.text = Language.Get("WorldMap_LV", DungeonConfig.Get(assistInfo.mapID.ToString()).LVLimitMin);
                }
                else
                {
@@ -73,8 +90,6 @@
                            }
                        }
                        assistModel.assistOtherPlayerName = assistName;
                        assistModel.assistObjStr = cfg.charName;
                        assistModel.assistGUIDTemp = cell.info.Value.infoStr1;
                        WindowCenter.Instance.Open<AssistConfirmwin>();
System/Dungeon/DungeonModel.cs
@@ -1225,7 +1225,8 @@
                            WindowCenter.Instance.Open<RidingPetBossVictoryWin>();
                            break;
                        case 22030:
                        case 32030:
                        case 32040:
                        case 32050:
                        case HazyDemonKingModel.CLIENTDATAMAP:
                            WindowCenter.Instance.Open<HazyDemonKingVictoryWin>();
                            break;
System/Dungeon/ReceiveAssistThanksWin.cs
@@ -57,10 +57,17 @@
        protected override void OnPreOpen()
        {
            var curNPC = NPCConfig.Get((int)assistModel.receiveAssistThanksGift.NPCID);
            AssistBossText.text = Language.Get("ReceiveAssistThanks",
                MapConfig.Get((int)assistModel.receiveAssistThanksGift.MapID).Name, curNPC.charName, curNPC.NPCLV);
            if (assistModel.receiveAssistThanksGift.NPCID != 0)
            {
                var curNPC = NPCConfig.Get((int)assistModel.receiveAssistThanksGift.NPCID);
                AssistBossText.text = Language.Get("ReceiveAssistThanks",
                    MapConfig.Get((int)assistModel.receiveAssistThanksGift.MapID).Name, curNPC.charName, curNPC.NPCLV);
            }
            else
            {
                AssistBossText.text = Language.Get("ReceiveAssistThanks1",
                    MapConfig.Get((int)assistModel.receiveAssistThanksGift.MapID).Name);
            }
            var award = AssistThanksGiftConfig.Get((int)assistModel.receiveAssistThanksGift.ItemID);
            var thanksAwards = ConfigParse.GetMultipleStr(award.AssistPlayerAward);
System/HazyRegion/HazyRegionEntrancePanel.cs
@@ -30,6 +30,7 @@
        {
            dailyQuestModel.usableActivePointUpdateEvent += UsableActivePointUpdateEvent;
            model.onHazyRegionIncidentRefresh += OnHazyRegionIncidentRefresh;
            dailyQuestModel.dailyQuestProgressUpdateEvent += DailyQuestProgressUpdateEvent;
            DisplayActivePoint();
            DisplayButtonState();
@@ -144,6 +145,16 @@
        {
            dailyQuestModel.usableActivePointUpdateEvent -= UsableActivePointUpdateEvent;
            model.onHazyRegionIncidentRefresh -= OnHazyRegionIncidentRefresh;
            dailyQuestModel.dailyQuestProgressUpdateEvent -= DailyQuestProgressUpdateEvent;
        }
        private void DailyQuestProgressUpdateEvent(int id)
        {
            var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
            if (config != null && id == config.RelatedID)
            {
                DisplayActivePoint();
            }
        }
        private void OnHazyRegionIncidentRefresh()
System/HazyRegion/HazyRegionIncidentBehaviour.cs
@@ -136,12 +136,12 @@
            hazyDemonKingModel.onPlayerCountRefresh += OnPlayerCountRefresh;
            m_TitleEffect.gameObject.SetActive(false);
            switch (incidentType)
            {
                case HazyRegionIncidentType.Precious:
                    m_TitleEffect.gameObject.SetActive(true);
                    break;
            }
            //switch (incidentType)
            //{
            //    case HazyRegionIncidentType.Precious:
            //        m_TitleEffect.gameObject.SetActive(true);
            //        break;
            //}
        }
        void DisplayBase()
System/HazyRegion/HazyRegionIncidentPanel.cs
@@ -12,7 +12,8 @@
        [SerializeField] Transform m_ContainerPoint;
        [SerializeField] Slider m_Slider;
        [SerializeField] Text m_Point;
        [SerializeField] Button m_GotoAuto;
        [SerializeField] Button m_TeamAssist;
        [SerializeField] Button m_Over;
        [SerializeField] Button m_Goto;
        [SerializeField] Text m_GotoLabel;
@@ -23,6 +24,8 @@
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        DungeonAssistModel assistModel { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } }
        TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
        DateTime requestTime = DateTime.Now;
        int requestCount = 0;
@@ -31,12 +34,136 @@
        private void Awake()
        {
            m_GotoAuto.AddListener(GotoAuto);
            m_Goto.AddListener(Goto);
            m_TeamAssist.SetListener(TeamAssist);
            m_Goto.SetListener(Goto);
            m_Over.SetListener(EventHandOver);
        }
        int QuestAssistID = -1;   //队伍创建成功后发送请求
        int QuestGoto = -1;  //队伍创建成功后打开界面
        private void TeamAssist()
        {
            if (PlayerDatas.Instance.baseData.FamilyId == 0)
            {
                SysNotifyMgr.Instance.ShowTip("DailyQuestwinUnionLimit");
                return;
            }
            var config = HazyRegionConfig.Get(model.selectIncident);
            if (config == null)
            {
                return;
            }
            if (PlayerDatas.Instance.hero.ActorInfo.teamID != 0)
            {
                if (!teamModel.myTeam.iamCaptainer)
                {
                    //退队重组
                    ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("Z2009"), (bool isOk) =>
                    {
                        if (isOk)
                        {
                            teamModel.RequestExitTeam();
                            QuestAssistID = model.selectIncident;
                            teamModel.missionBuf = new TeamMission(config.dungeonId, config.lineId);
                            teamModel.RequestCreateTeam(teamModel.missionBuf.mapId, teamModel.missionBuf.mapEx);
                        }
                    });
                }
                assistModel.SendTeamAssist(config.dungeonId, config.lineId);
            }
            else
            {
                //创建队成功才可发起请求
                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("Z2009"), (bool isOk) =>
                {
                    if (isOk)
                    {
                        QuestAssistID = model.selectIncident;
                        teamModel.missionBuf = new TeamMission(config.dungeonId, config.lineId);
                        teamModel.RequestCreateTeam(teamModel.missionBuf.mapId, teamModel.missionBuf.mapEx);
                    }
                });
            }
        }
        private void TeamGoto()
        {
            var config = HazyRegionConfig.Get(model.selectIncident);
            if (config == null)
            {
                return;
            }
            if (PlayerDatas.Instance.hero.ActorInfo.teamID != 0)
            {
                if (!teamModel.myTeam.iamCaptainer)
                {
                    SysNotifyMgr.Instance.ShowTip("DungeonGroupOnlyTeamLeader");
                    //退队重组
                    ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("Z2012"), (bool isOk) =>
                    {
                        if (isOk)
                        {
                            teamModel.RequestExitTeam();
                            QuestGoto = model.selectIncident;
                            teamModel.missionBuf = new TeamMission(config.dungeonId, config.lineId);
                            teamModel.RequestCreateTeam(teamModel.missionBuf.mapId, teamModel.missionBuf.mapEx);
                        }
                    });
                    return;
                }
                WindowCenter.Instance.Open<TeamFrameWin>(false, 1);
            }
            else
            {
                QuestGoto = model.selectIncident;
                teamModel.missionBuf = new TeamMission(config.dungeonId, config.lineId);
                teamModel.RequestCreateTeam(teamModel.missionBuf.mapId, teamModel.missionBuf.mapEx);
            }
        }
        private void OnCreateTeam()
        {
            if (QuestAssistID != -1)
            {
                var config = HazyRegionConfig.Get(QuestAssistID);
                if (config == null)
                {
                    return;
                }
                assistModel.SendTeamAssist(config.dungeonId, config.lineId);
                QuestAssistID = -1;
            }
            if (QuestGoto != -1)
            {
                WindowCenter.Instance.Open<TeamFrameWin>(false, 1);
                QuestGoto = -1;
            }
        }
        private void EventHandOver()
        {
            //提前结束事件
            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HazyRegionBackRemind_2"), (bool isOk) =>
            {
                if (isOk)
                {
                    model.SendBackHazyRegion();
                }
            });
        }
        public void Display()
        {
            QuestAssistID = -1;
            QuestGoto = -1;
            DisplayPoint();
            DisplayIncidents();
            DisplayBackButton();
@@ -44,7 +171,6 @@
            requestCount = 0;
            model.incidentDirty = false;
            SendRequestPlayerCount();
            m_ContainerPoint.gameObject.SetActive(false);
@@ -53,6 +179,11 @@
            m_CyclicScroll.animationComplete -= AnimationComplete;
            m_CyclicScroll.animationComplete += AnimationComplete;
            model.selectIncidentRefresh -= DisplayBackButton;
            model.selectIncidentRefresh += DisplayBackButton;
            teamModel.createTeamEvent -= OnCreateTeam;
            teamModel.createTeamEvent += OnCreateTeam;
        }
        void DisplayIncidents()
@@ -77,6 +208,7 @@
                        {
                            return lhs_index.CompareTo(rhs_index);
                        }
                        lhs_index = incidents.IndexOf(x);
                        rhs_index = incidents.IndexOf(y);
                        if (lhs_index != rhs_index)
@@ -113,31 +245,44 @@
        void DisplayBackButton()
        {
            if (PlayerDatas.Instance.baseData.LV >= model.autoOpenLimitLV)
                m_GotoAuto.gameObject.SetActive(true);
            m_TeamAssist.gameObject.SetActive(false);
            m_Over.gameObject.SetActive(false);
            m_GotoLabel.text = Language.Get("Z1074");
            var config = HazyRegionConfig.Get(model.selectIncident);
            // 宝藏类定义为需要组队协助
            if (config != null && config.incidentType == (int)HazyRegionIncidentType.Precious)
            {
                m_TeamAssist.gameObject.SetActive(true);
                m_Over.gameObject.SetActive(true);
                m_GotoLabel.text = Language.Get("Z2011");
            }
        }
        int Compare(int lhs, int rhs)
        {
            var lhs_config = HazyRegionConfig.Get(lhs);
            var rhs_config = HazyRegionConfig.Get(rhs);
            var lhs_index = model.incidentTypesSort.IndexOf((HazyRegionIncidentType)lhs_config.incidentType);
            var rhs_index = model.incidentTypesSort.IndexOf((HazyRegionIncidentType)rhs_config.incidentType);
            if (lhs_index != rhs_index)
            //var lhs_index = model.incidentTypesSort.IndexOf((HazyRegionIncidentType)lhs_config.incidentType);
            //var rhs_index = model.incidentTypesSort.IndexOf((HazyRegionIncidentType)rhs_config.incidentType);
            //if (lhs_index != rhs_index)
            //{
            //    return lhs_index.CompareTo(rhs_index);
            //}
            //if (lhs_config.incidentType == rhs_config.incidentType)
            //{
            //    if ((HazyRegionIncidentType)lhs_config.incidentType == HazyRegionIncidentType.DemonKing)
            //    {
            //        if (lhs_config.lineId != rhs_config.lineId)
            //        {
            //            return -lhs_config.lineId.CompareTo(rhs_config.lineId);
            //        }
            //    }
            //}
            if (lhs_config.star != rhs_config.star)
            {
                return lhs_index.CompareTo(rhs_index);
                return -lhs_config.star.CompareTo(rhs_config.star);
            }
            if (lhs_config.incidentType == rhs_config.incidentType)
            {
                if ((HazyRegionIncidentType)lhs_config.incidentType == HazyRegionIncidentType.DemonKing)
                {
                    if (lhs_config.lineId != rhs_config.lineId)
                    {
                        return -lhs_config.lineId.CompareTo(rhs_config.lineId);
                    }
                }
            }
            return 0;
            return lhs_config.id.CompareTo(lhs_config.id);
        }
        private void OnBack()
@@ -214,23 +359,23 @@
        }
        private void GotoAuto()
        {
            model.auto = true;
            GA_Hero.startAutoHazyRegion = true;
            //Goto();
        }
        //private void GotoAuto()
        //{
        //    model.auto = true;
        //    GA_Hero.startAutoHazyRegion = true;
        //    //Goto();
        //}
        private void Goto()
        {
            var error = 0;
            var config = HazyRegionConfig.Get(model.selectIncident);
            if (!model.TryGotoIncident(model.selectIncident, true, out error))
            {
                model.DisplayErrorRemind(error);
            }
            else
            {
                var config = HazyRegionConfig.Get(model.selectIncident);
                if (config.incidentType == (int)HazyRegionIncidentType.FairyGrass)
                {
                    HazyRegionModel.Incident incident;
@@ -261,70 +406,21 @@
                        }
                    }
                }
                model.SendGotoIncident(model.selectIncident);
            }
        }
        private void LateUpdate()
        {
            timer += Time.deltaTime;
            if (timer >= 0.5f)
            {
                if (model.incidentDirty)
                // 宝藏类定义为需要组队协助
                if (config != null && config.incidentType == (int)HazyRegionIncidentType.Precious)
                {
                    model.incidentDirty = false;
                    requestCount = 0;
                    requestTime = DateTime.Now;
                    SendRequestPlayerCount();
                    return;
                    TeamGoto();
                }
                timer = 0f;
                if ((DateTime.Now - requestTime).TotalSeconds > 5
                    && requestCount < 10)
                else
                {
                    SendRequestPlayerCount();
                    model.SendGotoIncident(model.selectIncident);
                }
            }
        }
        void SendRequestPlayerCount()
        {
            requestLines.Clear();
            for (int i = 0; i < incidents.Count; i++)
            {
                var config = HazyRegionConfig.Get(incidents[i]);
                if (config.incidentType != (int)HazyRegionIncidentType.DemonKing
                    || config.dungeonType == 0)
                {
                    continue;
                }
                if (findPreciousModel.IsBossAlive(config.npcId))
                {
                    if (!requestLines.ContainsKey(config.dungeonId))
                    {
                        requestLines.Add(config.dungeonId, new List<byte>());
                    }
                    if (!requestLines[config.dungeonId].Contains((byte)config.lineId))
                    {
                        requestLines[config.dungeonId].Add((byte)config.lineId);
                    }
                }
            }
            if (requestLines.Count > 0)
            {
                foreach (var mapId in requestLines.Keys)
                {
                    var pak = new CA004_tagCGGetFBLinePlayerCnt();
                    pak.MapID = (uint)mapId;
                    pak.LineCount = (byte)requestLines[mapId].Count;
                    pak.LineIDList = requestLines[mapId].ToArray();
                    GameNetSystem.Instance.SendInfo(pak);
                }
                requestCount++;
                requestTime = DateTime.Now;
            }
        }
        private void RefreshDailyQuestState()
        {
System/HazyRegion/HazyRegionModel.cs
@@ -431,6 +431,22 @@
            return false;
        }
        public bool HasIncidentByMapID(int MapID)
        {
            foreach (var id in m_Incidents.Keys)
            {
                if (HazyRegionConfig.Get(id).dungeonId == MapID)
                {
                    Incident incident;
                    TryGetIncident(id, out incident);
                    if (incident.state != IncidentState.Complete)
                        return true;
                }
            }
            return false;
        }
        public bool IsAllIncidentComplete()
        {
            var allComplete = true;
@@ -584,8 +600,8 @@
                    }
                    break;
                case HazyRegionIncidentType.Precious:
                    BossShowModel.Instance.reqDungeonLineId = 0;
                    ClientDungeonStageUtility.GotoNormalClientDungeon(config.dungeonId, config.dungeonId, config.lineId);
                    //BossShowModel.Instance.reqDungeonLineId = 0;
                    //ClientDungeonStageUtility.GotoNormalClientDungeon(config.dungeonId, config.dungeonId, config.lineId);
                    break;
            }
        }
System/Team/GroupDungeonChallengeProcessor.cs
@@ -14,6 +14,7 @@
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        PlayerMainDate main { get { return ModelCenter.Instance.GetModel<PlayerMainDate>(); } }
        HazyRegionModel hazyModel { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
        public void GroupChallengeDungeon(int _mapId, int _lineId, bool _isAutoMatch)
        {
@@ -36,7 +37,17 @@
            {
                switch (_mapId)
                {
                    case RealmModel.REALM_DUNGEON_ID:
                    case 31280:
                        //没有这个任务
                        if (hazyModel.HasIncidentByMapID(31280))
                        {
                            var dungeon = new Dungeon(_mapId, _lineId);
                            dungeonModel.GroupChallenge(dungeon);
                        }
                        else
                        {
                            SysNotifyMgr.Instance.ShowTip("TeamFBFail2");
                        }
                        break;
                    case 31080:
                        {