From 5df482a22d9b243cf92bc2d6826a294cff93daee Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 17 八月 2018 14:11:08 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/WindowJump/WindowJumpMgr.cs | 16 +++++
Utility/EnumHelper.cs | 2
System/Team/TeamModel.cs | 11 +++
System/DailyQuest/DailyQuestWin.cs | 83 ++++++++++++++++++++++++---
System/DailyQuest/DailyQuestModel.cs | 9 --
5 files changed, 99 insertions(+), 22 deletions(-)
diff --git a/System/DailyQuest/DailyQuestModel.cs b/System/DailyQuest/DailyQuestModel.cs
index 656fc01..97e7441 100644
--- a/System/DailyQuest/DailyQuestModel.cs
+++ b/System/DailyQuest/DailyQuestModel.cs
@@ -110,7 +110,6 @@
UpdateRedpoints();
- treasureModel.treasureStageUpEvent += OnTreasureStageUp;
fairyLeagueModel.onFairyLeagueBattleEvent += OnFairyLeagueBattle;
dungeonModel.dungeonRecordChangeEvent += OnDungeonRecordChange;
FuncOpen.Instance.OnFuncStateChangeEvent += OnFunctionStateChange;
@@ -120,7 +119,6 @@
public override void UnInit()
{
- treasureModel.treasureStageUpEvent -= OnTreasureStageUp;
fairyLeagueModel.onFairyLeagueBattleEvent -= OnFairyLeagueBattle;
dungeonModel.dungeonRecordChangeEvent -= OnDungeonRecordChange;
FuncOpen.Instance.OnFuncStateChangeEvent -= OnFunctionStateChange;
@@ -497,11 +495,6 @@
}
}
- private void OnTreasureStageUp(int _treasureId)
- {
- UpdateDailyActionRedpoint((int)DailyQuestType.TreasureAwaken);
- }
-
private void OnFairyLeagueBattle()
{
UpdateDailyActionRedpoint((int)DailyQuestType.FairyLeague);
@@ -546,7 +539,7 @@
case DailyQuestType.ElderGodArea:
case DailyQuestType.DungeonAssist:
case DailyQuestType.RuneTower:
- case DailyQuestType.TreasureAwaken:
+ case DailyQuestType.TreasureCollectSoul:
dailyQuest.redpoint.state = RedPointState.None;
break;
default:
diff --git a/System/DailyQuest/DailyQuestWin.cs b/System/DailyQuest/DailyQuestWin.cs
index fe0d5d4..087d2e0 100644
--- a/System/DailyQuest/DailyQuestWin.cs
+++ b/System/DailyQuest/DailyQuestWin.cs
@@ -31,6 +31,7 @@
DailyQuestModel model { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
PlayerTaskDatas taskModel { get { return ModelCenter.Instance.GetModel<PlayerTaskDatas>(); } }
+ TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
public int guidingDailyQuestId = 0;
@@ -272,8 +273,8 @@
WindowCenter.Instance.CloseImmediately<DailyQuestWin>();
WindowCenter.Instance.Open<RuneTowerWin>();
break;
- case DailyQuestType.TreasureAwaken:
- GotoTreasureAwaken();
+ case DailyQuestType.TreasureCollectSoul:
+ GotoTreasureCollectSoul();
break;
case DailyQuestType.DungeonAssist:
WindowCenter.Instance.CloseImmediately<DailyQuestWin>();
@@ -456,23 +457,58 @@
}
}
- private void GotoTreasureAwaken()
+ private void GotoTreasureCollectSoul()
{
var treasureModel = ModelCenter.Instance.GetModel<TreasureModel>();
var treasures = treasureModel.GetTreasureCategory(TreasureCategory.Human);
var gotoTreasureId = 0;
- for (int i = 0; i < treasures.Count; i++)
+ for (int i = treasures.Count - 1; i >= 0; i--)
{
- var treasureId = treasures[i];
- Treasure treasure;
- if (treasureModel.TryGetTreasure(treasureId, out treasure))
+ if (IsTreasureCollectSoul(treasures[i]))
{
- var humanTreasure = treasure as HumanTreasure;
+ gotoTreasureId = treasures[i];
+ break;
+ }
+ }
- if (humanTreasure.castSoulRedpoint.state == RedPointState.Simple)
+ if (gotoTreasureId == 0)
+ {
+ var result = treasures.FindLast((x) =>
+ {
+ Treasure treasure;
+ if (treasureModel.TryGetTreasure(x, out treasure))
+ {
+ var humanTreasure = treasure as HumanTreasure;
+ var config = ConfigManager.Instance.GetTemplate<TreasureConfig>(humanTreasure.id);
+ return humanTreasure != null && (humanTreasure.humanState == HumanTreasureState.CastSoul);
+ }
+ else
+ {
+ return false;
+ }
+ }
+ );
+
+ if (result != 0)
+ {
+ gotoTreasureId = result;
+ }
+ }
+
+ if (gotoTreasureId == 0)
+ {
+ for (int i = 0; i < treasures.Count; i++)
+ {
+ Treasure treasure;
+ if (treasureModel.TryGetTreasure(treasures[i], out treasure))
{
- gotoTreasureId = humanTreasure.id;
- break;
+ var humanTreasure = treasure as HumanTreasure;
+ if (humanTreasure != null
+ && (humanTreasure.humanState == HumanTreasureState.Locked || humanTreasure.humanState == HumanTreasureState.Challenge))
+ {
+ gotoTreasureId = humanTreasure.id;
+ break;
+ }
}
}
}
@@ -504,6 +540,31 @@
}
}
+ private bool IsTreasureCollectSoul(int _treasureId)
+ {
+ Treasure treasure;
+ if (treasureModel.TryGetTreasure(_treasureId, out treasure))
+ {
+ var humanTreasure = treasure as HumanTreasure;
+ if (humanTreasure.humanState == HumanTreasureState.CastSoul)
+ {
+ foreach (var achievementGroup in treasure.achievementGroups.Values)
+ {
+ if (achievementGroup.IsAwardable())
+ {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
private bool IsDungeon()//鏄惁鍦ㄥ壇鏈腑
{
var mapId = PlayerDatas.Instance.baseData.MapID;
diff --git a/System/Team/TeamModel.cs b/System/Team/TeamModel.cs
index 5dffb24..de67d5d 100644
--- a/System/Team/TeamModel.cs
+++ b/System/Team/TeamModel.cs
@@ -185,6 +185,8 @@
Redpoint invitationRedpoint = new Redpoint(28);
Redpoint memberCountRedpoint = new Redpoint(34);
+ int lastOpenCountryMapRecorder = 0;
+
public override void Init()
{
levelMaxBuf = GeneralConfig.Instance.playerMaxLevel;
@@ -205,6 +207,7 @@
public void OnSwitchAccount()
{
+ lastOpenCountryMapRecorder = 0;
m_CurrentMission = new TeamMission(CURRENTMAP_MISSION, 0);
m_MissionBuf = new TeamMission(CURRENTMAP_MISSION, 0);
m_MyTeam = new MyTeam();
@@ -336,7 +339,7 @@
var lineId = 0;
if (myTeam.mission.mapId == CURRENTMAP_MISSION || myTeam.mission.mapId == NONE_MISSION)
{
- mapId = PlayerDatas.Instance.baseData.MapID;
+ mapId = lastOpenCountryMapRecorder == 0 ? PlayerDatas.Instance.baseData.MapID : lastOpenCountryMapRecorder;
lineId = 0;
}
else
@@ -1097,6 +1100,12 @@
public void OnPlayerLoginOk()
{
serverInited = true;
+
+ var mapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(PlayerDatas.Instance.baseData.MapID);
+ if (mapConfig != null && mapConfig.MapFBType == (int)MapType.OpenCountry)
+ {
+ lastOpenCountryMapRecorder = PlayerDatas.Instance.baseData.MapID;
+ }
}
private void OnMatchingCoolDownEnd()
diff --git a/System/WindowJump/WindowJumpMgr.cs b/System/WindowJump/WindowJumpMgr.cs
index cea4226..2f57a9e 100644
--- a/System/WindowJump/WindowJumpMgr.cs
+++ b/System/WindowJump/WindowJumpMgr.cs
@@ -11,8 +11,8 @@
IsJumpState = false;
funcOpenBagItem = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("OpenBagItem");
StageManager.Instance.onStartStageLoadingEvent += ClearCurRecord;
+ GlobalTimeEvent.Instance.secondEvent += SecondRefresh;
}
-
private Window preWin = null;
private WindowSearchConfig _tagWinSearchModel;
private FuncOpenLVConfig _tagOpenLvModel;
@@ -938,6 +938,20 @@
}
}
+ private void SecondRefresh()
+ {
+ if (DeadModel.playerIsDie && WindowCenter.Instance.CheckOpen<MainInterfaceWin>())
+ {
+ if(!WindowCenter.Instance.CheckOpen<RebornWin>()
+ && !WindowCenter.Instance.CheckOpen<ReliveWin>()
+ && !WindowCenter.Instance.CheckOpen<ElderGodAreaExitWin>()
+ && !WindowCenter.Instance.CheckOpen<ElderGodAreaRebornWin>())
+ {
+ ClearJumpData();
+ DeadModel.PlayerDie(PlayerDatas.Instance.baseData.PlayerID);
+ }
+ }
+ }
public void ClearJumpData()
{
diff --git a/Utility/EnumHelper.cs b/Utility/EnumHelper.cs
index 0435bbf..351d724 100644
--- a/Utility/EnumHelper.cs
+++ b/Utility/EnumHelper.cs
@@ -303,7 +303,7 @@
FairyTask = 18,
RuneTowerSweep = 19,
RuneTower = 21,
- TreasureAwaken = 22,
+ TreasureCollectSoul = 22,
DungeonAssist = 23,
BossHome = 24,
PersonalBoss = 25,
--
Gitblit v1.8.0