| Core/NetworkPackage/ServerPack/HB0_Event/HB001_tagGCAssistInfoList.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/GameActor/GA_Hero.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/AssistConfirmwin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/AssistThanksWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/DungeonAssistModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/DungeonAssistResultCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/DungeonModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/ReceiveAssistThanksWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/HazyRegion/HazyRegionEntrancePanel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/HazyRegion/HazyRegionIncidentBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/HazyRegion/HazyRegionIncidentPanel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/HazyRegion/HazyRegionModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Team/GroupDungeonChallengeProcessor.cs | ●●●●● 补丁 | 查看 | 原始文档 | 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: {