From bc20563f3bdfba7a4e3e6d1a4770f86bc7cfa998 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 21 二月 2025 01:40:59 +0800
Subject: [PATCH] 0312 本服/跨服竞技场进入防范问题
---
System/Dungeon/DungeonModel.cs | 83 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 83 insertions(+), 0 deletions(-)
diff --git a/System/Dungeon/DungeonModel.cs b/System/Dungeon/DungeonModel.cs
index 6e96e2b..aa161b1 100644
--- a/System/Dungeon/DungeonModel.cs
+++ b/System/Dungeon/DungeonModel.cs
@@ -147,6 +147,7 @@
BossRebornModel bossRebornModel { get { return ModelCenter.Instance.GetModel<BossRebornModel>(); } }
DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
+ TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
public override void Init()
{
ParseConfig();
@@ -611,6 +612,88 @@
RequestChallangeDungeon(_dungeon.mapId, _dungeon.lineId);
}
+ public bool CanEnter(out int error)
+ {
+ var mapId = PlayerDatas.Instance.baseData.MapID;
+ var mapConfig = MapConfig.Get(mapId);
+ if (mapConfig.MapFBType != (int)MapType.OpenCountry ||
+ ArenaManager.IsArenaStage() ||
+ ClientDungeonStageUtility.isClientDungeon ||
+ ClientCrossServerOneVsOne.isClientCrossServerOneVsOne ||
+ AdventureStage.Instance.IsInAdventureStage
+ )
+ {
+ error = 1;
+ return false;
+ }
+
+ if (teamModel.isMatching)
+ {
+ error = 2;
+ return false;
+ }
+
+ if (teamModel.teamPrepare.isPreparing)
+ {
+ error = 3;
+ return false;
+ }
+
+ if (CrossServerLogin.Instance.IsEnterCrossServerPreparing())
+ {
+ error = 4;
+ return false;
+ }
+
+ var deadModel = ModelCenter.Instance.GetModel<PlayerDeadModel>();
+ if (deadModel.playerIsDie)
+ {
+ error = 5;
+ return false;
+ }
+ if (PlayerDatas.Instance.extersion.bossState == 1)
+ {
+ error = 6;
+ return false;
+ }
+
+ if (CrossServerUtility.IsCrossServer())
+ {
+ error = 7;
+ return false;
+ }
+ error = 0;
+ return true;
+ }
+
+ public void ProcessEnterError(int error)
+ {
+ switch (error)
+ {
+ case 1:
+ SysNotifyMgr.Instance.ShowTip("InDungeon_CantGo");
+ break;
+ case 2:
+ SysNotifyMgr.Instance.ShowTip("CrossMap1");
+ break;
+ case 3:
+ SysNotifyMgr.Instance.ShowTip("CrossMap2");
+ break;
+ case 4:
+ SysNotifyMgr.Instance.ShowTip("CrossMap3");
+ break;
+ case 5:
+ SysNotifyMgr.Instance.ShowTip("CrossMap4");
+ break;
+ case 6:
+ SysNotifyMgr.Instance.ShowTip("CrossMap11");
+ break;
+ case 7:
+ SysNotifyMgr.Instance.ShowTip("CrossMap10");
+ break;
+ }
+ }
+
public void GroupChallenge(int _dungeonId, int _lineId = 0)
{
GroupChallenge(new Dungeon(_dungeonId, _lineId));
--
Gitblit v1.8.0