From ad3f66509d2e61d8dc6630558153b71b774df20c Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 21 二月 2025 01:40:56 +0800
Subject: [PATCH] 0312 10349 【越南】【英文】【BT】【砍树】跨服竞技场优化 - 第一版
---
System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs | 95 ++++++++++++++++++++++++++++-------------------
1 files changed, 57 insertions(+), 38 deletions(-)
diff --git a/System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs b/System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
index 24b1fcc..01b27ee 100644
--- a/System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
+++ b/System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
@@ -10,7 +10,7 @@
{
- public class CrossServerOneVsOneModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, ISwitchAccount, IPlayerLoginOk
+ public class CrossServerOneVsOneModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
{
public string PkResultLocalSaveKey { get; private set; }
public List<CrossServerOneVsOnePkResult> localSaveResults { get; private set; }
@@ -18,29 +18,20 @@
public event Action UpdateDayAwardsEvent;
public const int CrossServerDataMapId = 32010;
DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
- public bool isClickCoolTime { get; set; }
- public event Action UpdateMatchStateEvent;
- private bool _isMatching;
- public bool IsMatching {
- get { return _isMatching; }
- set {
- _isMatching = value;
- if (UpdateMatchStateEvent != null)
- {
- UpdateMatchStateEvent();
- }
- }
- }
- public DateTime matchStartTime { get; set; }
+
public DateTime roundEndTime { get; private set; }
StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
public string LocalSaveThirdTypeKey = string.Empty;
private int recordDataMapId;
private int loadSecond;
+ // 璺ㄦ湇绔炴妧鍦烘敼鎴愬尮閰�3涓璞★紝杩涜閫夋嫨鎸戞垬
+ public List<HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer> matchPlayers = new List<HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer>();
+ public event Action UpdateMatchPlayersEvent;
+ public bool loginQueryMatch = false;
+
public override void Init()
{
- IsMatching = false;
ParseFuncConfig();
SetHonorRedpoint();
}
@@ -59,6 +50,7 @@
dungeonModel.updateMissionEvent -= UpdateFBHelp;
rewardModel.CrossRealmPKAwardStateUpdate -= UpdateDayAwardState;
CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdateDayAwardState;
+ TimeMgr.Instance.OnDayEvent -= OnDay;
InitData();
}
@@ -70,10 +62,6 @@
GetLocalSaveData();
}
- public void OnSwitchAccount()
- {
- IsMatching = false;
- }
public void OnPlayerLoginOk()
{
@@ -88,13 +76,9 @@
rewardModel.CrossRealmPKAwardStateUpdate += UpdateDayAwardState;
CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdateDayAwardState;
dungeonModel.updateMissionEvent += UpdateFBHelp;
+ TimeMgr.Instance.OnDayEvent += OnDay;
UpdateServerOpenDay();
UpdateDayAwardState();
- if (IsMatching && CrossServerOneVsOnePKSeason.Instance.InOpenTime())
- {
- SendCrossMatch(1);
- }
-
UpdateCrossDayAwardsRedpoint();
UpdateCrossMatchRedpoint();
UpdateCanBuyRedpoint();
@@ -111,6 +95,11 @@
CrossServerOneVsOnePlayerInfo.Instance.InitData();
pkResultInfo = new CrossServerOneVsOnePkResult();
oneVsOneHistoryDict.Clear();
+ }
+
+ void OnDay()
+ {
+ loginQueryMatch = false;
}
private void UpdateSecond()
@@ -143,13 +132,6 @@
private void UpdateMinute()
{
UpdateCrossMatchRedpoint();
- if (!IsMatching) return;
-
- if (!CrossServerOneVsOnePKSeason.Instance.isSatisfyMatch)
- {
- IsMatching = false;
- SendCrossMatch(0);
- }
}
public void UpdateDayAwardState()
@@ -292,12 +274,23 @@
}
#region 琛ㄦ暟鎹�
- public int freeMaxMatchNum { get; private set; } //姣忔棩鍏嶈垂鍖归厤娆℃暟
- public int buyMaxMatchNum { get; private set; } //姣忔棩鍙喘涔版鏁�
- public string priceFormula { get; private set; } //璐拱鍖归厤娆℃暟闇�瑕佷环鏍煎叕寮�
+ //鎸戞垬
+ public int freeMaxMatchNum { get; private set; } //姣忔棩鍏嶈垂鍖归厤娆℃暟(鎸戞垬)
+ public int buyMaxMatchNum { get; private set; } //姣忔棩鍙喘涔版鏁�(鎸戞垬)
+ public string priceFormula { get; private set; } //璐拱鍖归厤娆℃暟闇�瑕佷环鏍煎叕寮�(鎸戞垬)
+
+ //鍒锋柊鍖归厤
+ public int freeMaxMatchRefreshNum { get; private set; } //姣忔棩鍏嶈垂鍒锋柊鍖归厤娆℃暟(鍒锋柊)
+ public int buyMaxMatchRefreshNum { get; private set; } //姣忔棩鍙喘涔板埛鏂版鏁�(鍒锋柊)
+ public string priceRefreshFormula { get; private set; } //璐拱鍒锋柊鍖归厤娆℃暟闇�瑕佷环鏍煎叕寮�(鍒锋柊)
+ public int refreshMoneyType { get; private set; } //鍒锋柊鍖归厤娆℃暟娑堣�楄揣甯佺被鍨�(鍒锋柊)
+
+ public int[] winConstScoreArr { get; private set; } //鑳滃埄鍥哄畾绉垎
public string winStreakScoreFormula { get; private set; } //杩炶儨绉垎鍏紡
public List<AwardType> dayAwardTypelist { get; private set; }
public int afterOpenDayOpenCross { get; private set; }
+
+
private void ParseFuncConfig()
{
var CrossRealmPKAward = FuncConfigConfig.Get("CrossRealmPKAward");
@@ -367,7 +360,14 @@
buyMaxMatchNum = int.Parse(CrossRealmPKMatchCount.Numerical2);
priceFormula = CrossRealmPKMatchCount.Numerical3;
- var CrossRealmPKScore = FuncConfigConfig.Get("CrossRealmPKScore");
+ var CrossRealmPKRefreshCount = FuncConfigConfig.Get("CrossRealmPKMatchRefresh");
+ freeMaxMatchRefreshNum = int.Parse(CrossRealmPKRefreshCount.Numerical1);
+ buyMaxMatchRefreshNum = int.Parse(CrossRealmPKRefreshCount.Numerical2);
+ priceRefreshFormula = CrossRealmPKRefreshCount.Numerical3;
+ refreshMoneyType = int.Parse(CrossRealmPKRefreshCount.Numerical4);
+
+ var CrossRealmPKScore = FuncConfigConfig.Get("CrossRealmPKScore2");
+ winConstScoreArr = JsonMapper.ToObject<int[]>(CrossRealmPKScore.Numerical1);
winStreakScoreFormula = CrossRealmPKScore.Numerical3;
var CrossRealmCfg = FuncConfigConfig.Get("CrossRealmCfg");
@@ -449,14 +449,33 @@
}
}
+ public void UpdateOneVSOneMatch(HC001_tagGCCrossRealmPKMatchOK package)
+ {
+ matchPlayers.Clear();
+ for (int i = 0; i < package.MatchPlayerCount; i++)
+ {
+ matchPlayers.Add(package.MatchPlayer[i]);
+ //鏈嶅姟绔病鏈変富鍔ㄦ帹閫佺殑璇濓紝杩欓噷闇�瑕佽姹備竴娆$帺瀹剁紦瀛樻暟鎹�
+ }
+
+ UpdateMatchPlayersEvent?.Invoke();
+ }
+
+
BuffModel buffDatas { get { return ModelCenter.Instance.GetModel<BuffModel>(); } }
/// <summary>
- ///0-鍙栨秷鍖归厤; 1-杩涜鍖归厤
+ /// 0-鏌ヨ鍖归厤锛�1-鍒锋柊鍖归厤
/// </summary>
/// <param name="type"></param>
public void SendCrossMatch(int type)
{
- if (type == 1 && TryGetMatchTip()) return;
+ if (type == 0)
+ {
+ if (loginQueryMatch)
+ return;
+ else
+ loginQueryMatch = true;
+ }
var match = new CC101_tagCMCrossRealmPKMatch();
match.Type = (byte)type;
--
Gitblit v1.8.0