From 9914a39516a2479a02dd59584884e01e6d3ed7b2 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 27 十一月 2025 15:43:13 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/Battle/BattleConst.cs | 8 ++++
Main/System/Battle/BattleManager.cs | 16 +++++--
Main/Config/Configs/FuncOpenLVConfig.cs | 13 ++++--
Main/System/Battle/BaseBattleWin.cs | 47 ++++++++++++++++++++---
Main/Component/UI/Common/FuncOpen.cs | 10 +++++
5 files changed, 78 insertions(+), 16 deletions(-)
diff --git a/Main/Component/UI/Common/FuncOpen.cs b/Main/Component/UI/Common/FuncOpen.cs
index f39df6b..52491df 100644
--- a/Main/Component/UI/Common/FuncOpen.cs
+++ b/Main/Component/UI/Common/FuncOpen.cs
@@ -154,6 +154,11 @@
errorCode = 1;
return false;
}
+ if (config.ManLevel > 0 && PlayerDatas.Instance.baseData.ExAttr1 < config.ManLevel)
+ {
+ errorCode = 5;
+ return false;
+ }
return true;
// return false;
}
@@ -212,6 +217,9 @@
case 4:
SysNotifyMgr.Instance.ShowStringTip(Language.Get("FuncLimit_Mission", TaskManager.Instance.GetNeedFinishTaskCount(config.LimitMissionID)));
break;
+ case 5:
+ SysNotifyMgr.Instance.ShowStringTip(Language.Get("FuncLimit_ManLevel", config.ManLevel/10000, config.ManLevel/100%100, config.ManLevel%100));
+ break;
}
}
}
@@ -252,6 +260,8 @@
return Language.Get("FuncLimit_Realm", RealmConfig.Get(config.LimiRealmLV).Name);
case 4:
return Language.Get("FuncLimit_Mission", TaskManager.Instance.GetNeedFinishTaskCount(config.LimitMissionID));
+ case 5:
+ return Language.Get("FuncLimit_ManLevel", config.ManLevel/10000, config.ManLevel/100%100, config.ManLevel%100);
}
}
return string.Empty;
diff --git a/Main/Config/Configs/FuncOpenLVConfig.cs b/Main/Config/Configs/FuncOpenLVConfig.cs
index 880e8a1..6c1ca9b 100644
--- a/Main/Config/Configs/FuncOpenLVConfig.cs
+++ b/Main/Config/Configs/FuncOpenLVConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�8鏈�28鏃�
+// [ Date ]: Thursday, November 27, 2025
//--------------------------------------------------------
using System.Collections.Generic;
@@ -21,6 +21,7 @@
public int LimiRealmLV;
public int LimitMissionID;
public int OpenDay;
+ public int ManLevel;
public string Name;
public string Desc;
public string Icon;
@@ -46,13 +47,15 @@
int.TryParse(tables[4],out OpenDay);
- Name = tables[5];
+ int.TryParse(tables[5],out ManLevel);
- Desc = tables[6];
+ Name = tables[6];
- Icon = tables[7];
+ Desc = tables[7];
- Award = ConfigParse.ParseIntArray2Dict(tables[8]);
+ Icon = tables[8];
+
+ Award = ConfigParse.ParseIntArray2Dict(tables[9].Replace("(", "[").Replace(")", "]"));
}
catch (Exception exception)
{
diff --git a/Main/System/Battle/BaseBattleWin.cs b/Main/System/Battle/BaseBattleWin.cs
index 1880e9e..604ec76 100644
--- a/Main/System/Battle/BaseBattleWin.cs
+++ b/Main/System/Battle/BaseBattleWin.cs
@@ -194,17 +194,49 @@
if (!FuncOpen.Instance.IsFuncOpen(BattleManager.Instance.passFuncId, true))
return;
- //涓荤嚎Boss涔嬪鐨勬垬鏂楁敮鎸佹案涔呯壒鏉冭烦杩�
+ int passRound = BattleManager.Instance.defaultPassRound;
var name = battleField.ToString();
- bool isStoryBossBattleField = name == "StoryBossBattleField";
+
+ // 妫�鏌ユ槸鍚︿负姘镐箙鐗规潈鍗$帺瀹�
bool hasForeverPrivilege = InvestModel.Instance.IsInvested(InvestModel.foreverCardType);
- if (hasForeverPrivilege && !isStoryBossBattleField)
+
+ if (hasForeverPrivilege)
{
- battleField.ForceFinish();
- return;
+ // 姘镐箙鐗规潈鍗$帺瀹堕�昏緫
+ if (BattleConst.FieldNameToIndex.ContainsKey(name))
+ {
+ int index = BattleConst.FieldNameToIndex[name];
+ if (BattleManager.Instance.foreverPrivilegePassDict.ContainsKey(index))
+ {
+ passRound = BattleManager.Instance.foreverPrivilegePassDict[index];
+ }
+ else
+ {
+ // 鏈厤缃殑鎴樺満绫诲瀷锛屼娇鐢ㄦ櫘閫氱帺瀹惰鍒�
+ if (BattleManager.Instance.passDict.ContainsKey(index))
+ {
+ passRound = BattleManager.Instance.passDict[index];
+ }
+ // 鍚﹀垯浣跨敤榛樿閰嶇疆
+ }
+ }
+ // 濡傛灉鎴樺満绫诲瀷涓嶅湪 FieldNameToIndex 涓紝浣跨敤榛樿閰嶇疆
+ }
+ else
+ {
+ // 鏅�氱帺瀹堕�昏緫
+ if (BattleConst.FieldNameToIndex.ContainsKey(name))
+ {
+ int index = BattleConst.FieldNameToIndex[name];
+ if (BattleManager.Instance.passDict.ContainsKey(index))
+ {
+ passRound = BattleManager.Instance.passDict[index];
+ }
+ // 鍚﹀垯浣跨敤榛樿閰嶇疆
+ }
+ // 濡傛灉鎴樺満绫诲瀷涓嶅湪 FieldNameToIndex 涓紝浣跨敤榛樿閰嶇疆
}
- int passRound = BattleManager.Instance.passRound;
int nowRound = battleField.round;
if (nowRound < passRound)
{
@@ -214,6 +246,9 @@
battleField.ForceFinish();
}
+
+
+
/// <summary>
/// 鏀瑰彉閫熷害
/// </summary>
diff --git a/Main/System/Battle/BattleConst.cs b/Main/System/Battle/BattleConst.cs
index daf90bc..93e01e6 100644
--- a/Main/System/Battle/BattleConst.cs
+++ b/Main/System/Battle/BattleConst.cs
@@ -22,6 +22,14 @@
{ "TianziBillboradBattleField", "TianziBillboradBattleWin" },
};
+ public static Dictionary<string, int> FieldNameToIndex = new Dictionary<string, int>()
+ {
+ { "StoryBossBattleField", 1 },
+ { "ArenaBattleField", 2 },
+ { "BoneBattleField", 3},
+ { "TianziBillboradBattleField", 4 },
+ };
+
public const int BattleStartEffectID = 1001; // Example effect ID for battle start
public const int skillMotionFps = 30;
diff --git a/Main/System/Battle/BattleManager.cs b/Main/System/Battle/BattleManager.cs
index 2d4093e..6257ef5 100644
--- a/Main/System/Battle/BattleManager.cs
+++ b/Main/System/Battle/BattleManager.cs
@@ -26,7 +26,11 @@
}
public readonly int[] speedIndexfuncIdArr = new int[] { 34, 35, 36 }; // 鎴樻枟鍊嶆暟瀵瑰簲鐨勫姛鑳絀D
public readonly int passFuncId = 33; // 璺宠繃鎴樻枟瀵瑰簲鐨勫姛鑳絀D
- public int passRound; // 瓒呰繃X鍥炲悎鍙烦杩�
+
+ public int defaultPassRound;
+ public Dictionary<int, int> passDict = new Dictionary<int, int>();
+ public Dictionary<int, int> foreverPrivilegePassDict = new Dictionary<int, int>();
+
public int fightGuideID;
public int fightGuideMainLevelLimit;
public int fightGuideNoClickSeconds;
@@ -46,7 +50,7 @@
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerInit;
ParseConfig();
-
+
}
void ParseConfig()
@@ -61,7 +65,9 @@
challengeBossGuides = JsonMapper.ToObject<int[]>(config.Numerical4);
config = FuncConfigConfig.Get("BattleButton");
- passRound= int.Parse(config.Numerical1);
+ defaultPassRound = int.Parse(config.Numerical1);
+ passDict = ConfigParse.ParseIntDict(config.Numerical2);
+ foreverPrivilegePassDict = ConfigParse.ParseIntDict(config.Numerical3);
}
@@ -269,9 +275,9 @@
packQueue.Enqueue(pack);
}
-
- // packQueue = new Queue<GameNetPackBasic>(newPackList);
+
+ // packQueue = new Queue<GameNetPackBasic>(newPackList);
DistributeNextPackage();
}
--
Gitblit v1.8.0