From 6d9a990ce3eff793946d7b43e9b48e4f7045c20e Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 05 八月 2025 17:50:32 +0800
Subject: [PATCH] 0312 服务器列表

---
 Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA207_tagSCPackBuyInfo.cs      |   13 +
 Main/System/Login/ServerData.cs                                                          |    8 
 Main/System/KnapSack/PackManager.cs                                                      |  127 ++++++++-------
 Main/System/Login/ServerListWin.cs                                                       |   11 -
 Main/System/Redpoint/MainRedDot.cs                                                       |    2 
 Main/Core/NetworkPackage/ServerPack/HA2_Package/HA207_tagSCPackBuyInfo.cs.meta           |   11 +
 Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs                                     |    1 
 Main/System/GeneralConfig/GeneralDefine.cs                                               |  229 +--------------------------
 Main/Core/NetworkPackage/ServerPack/HA2_Package/HA207_tagSCPackBuyInfo.cs                |   29 +++
 Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA207_tagSCPackBuyInfo.cs.meta |   11 +
 Main/System/KnapSack/New/CommonItemBaisc.cs                                              |   13 -
 Main/System/Team/TeamHero.cs                                                             |    4 
 Main/System/HeroUI/HeroUIManager.cs                                                      |   12 +
 13 files changed, 163 insertions(+), 308 deletions(-)

diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA207_tagSCPackBuyInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA207_tagSCPackBuyInfo.cs
new file mode 100644
index 0000000..dc4e05f
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA207_tagSCPackBuyInfo.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// A2 07 鑳屽寘璐拱鏍煎瓙淇℃伅 #tagSCPackBuyInfo
+
+public class DTCA207_tagSCPackBuyInfo : DtcBasic {
+    public override void Done(GameNetPackBasic vNetPack)
+    {
+        base.Done(vNetPack);
+        HA207_tagSCPackBuyInfo vNetData = vNetPack as HA207_tagSCPackBuyInfo;
+        PackManager.Instance.UpdateBuyPackGirdCount(vNetData);
+    }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA207_tagSCPackBuyInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA207_tagSCPackBuyInfo.cs.meta
new file mode 100644
index 0000000..cbf02a0
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA207_tagSCPackBuyInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 759a621863abbf54296b3ea4121ddda3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
index 50717ca..959a91d 100644
--- a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
+++ b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -103,6 +103,7 @@
         Register(typeof(H0423_tagObjPropertyRefreshView), typeof(DTC0423_tagObjPropertyRefreshView));
         Register(typeof(H0604_tagUseSkillAttack), typeof(DTC0604_tagUseSkillAttack));
         Register(typeof(HB124_tagSCLineupInfo), typeof(DTCB124_tagSCLineupInfo));
+        Register(typeof(HA207_tagSCPackBuyInfo), typeof(DTCA207_tagSCPackBuyInfo));
     }
 
     //涓诲伐绋嬫敞鍐屽皝鍖�
diff --git a/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA207_tagSCPackBuyInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA207_tagSCPackBuyInfo.cs
new file mode 100644
index 0000000..be80f97
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA207_tagSCPackBuyInfo.cs
@@ -0,0 +1,29 @@
+using UnityEngine;
+using System.Collections;
+
+// A2 07 鑳屽寘璐拱鏍煎瓙淇℃伅 #tagSCPackBuyInfo
+
+public class HA207_tagSCPackBuyInfo : GameNetPackBasic {
+    public byte Count;
+    public  tagSCPackBuy[] BuyInfoList;
+
+    public HA207_tagSCPackBuyInfo () {
+        _cmd = (ushort)0xA207;
+    }
+
+    public override void ReadFromBytes (byte[] vBytes) {
+        TransBytes (out Count, vBytes, NetDataType.BYTE);
+        BuyInfoList = new tagSCPackBuy[Count];
+        for (int i = 0; i < Count; i ++) {
+            BuyInfoList[i] = new tagSCPackBuy();
+            TransBytes (out BuyInfoList[i].PackType, vBytes, NetDataType.BYTE);
+            TransBytes (out BuyInfoList[i].BuyCnt, vBytes, NetDataType.WORD);
+        }
+    }
+
+    public struct tagSCPackBuy {
+        public byte PackType;        // 鑳屽寘绫诲瀷
+        public ushort BuyCnt;        // 宸茶喘涔版鏁�
+    }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA207_tagSCPackBuyInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA207_tagSCPackBuyInfo.cs.meta
new file mode 100644
index 0000000..c027b90
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA207_tagSCPackBuyInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f653b2261135c964fa493b8afb23b63c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/System/GeneralConfig/GeneralDefine.cs b/Main/System/GeneralConfig/GeneralDefine.cs
index 39b5caf..d3d89bf 100644
--- a/Main/System/GeneralConfig/GeneralDefine.cs
+++ b/Main/System/GeneralConfig/GeneralDefine.cs
@@ -8,246 +8,45 @@
 
 public class GeneralDefine
 {
-    public const int CrossBattleFieldMapID = 32060;
-    public const int CrossFamilyBattleMapID = 32090;
-    public static int initDepotGridCount { get; private set; }
-    public static int maxDepotGridCount { get; private set; }
-    public static int maxBagGridCount { get; private set; }
-    public static int maxXBGridCount { get; private set; }
+    public static Dictionary<int, int> MoneyDisplayModel { get; private set; }
     public static int playerMaxLevel { get; private set; }
-    public static int[] kylinHomeCollectItems;
-    public static List<int> dailyQuestOpenTime;
-    public static int flyBootItemId { get; private set; }
-    public static int flyBootItemMoney { get; private set; }
-    public static int teamReadyTime { get; private set; }
-    public static int elderGodAreaAngerTotal { get; private set; }
-    public static float petRandomSpeak { get; private set; }
-    public static int[] openJobs { get; private set; }
-    public static int playerNameLength { get; private set; }
-    public static int guardDungeonCageNPCID { get; private set; }
-    public static float guardBubbleInterval { get; private set; }
-    public static List<int> autoOnHookMap { get; private set; }
-    public static float autoRideHorse { get; private set; }
+    
     public static Dictionary<int, string> equipPlaceNameDict { get; private set; }
     public static Dictionary<int, int> moneyDisplayIds { get; private set; }
     public static int expDisplayId { get; private set; }
-    public static float xpGuideDelay { get; private set; }
-    public static float xpGuideDuration { get; private set; }
-    public static Dictionary<int, string> trailBossHeadIcons { get; private set; }
-    public static Dictionary<int, string> godWeaponMobs { get; private set; }
-    public static float ResetComAtkTime { get; private set; }
-    public static int RotateSpeed { get; private set; }
-    public static float CloseNpcDist { get; private set; }
-    public static float FarawayNpcDist { get; private set; }
-    public static List<int> SpecialNpcIDs { get; private set; }
-    public static Dictionary<int, int> wingEquipLimits { get; private set; }
-    public static float PetDanceInterval { get; private set; }
-    public static float FuncNpcDanceInterval { get; private set; }
-    public static float audioScaleWhenFullScreenOn { get; private set; }
-    public static int ruinsTranscriptMapId { get; private set; }
-    public static List<int> GuardianPickUpID { get; private set; }
-    public static List<int> EarlierGetTreasure { get; private set; }
-    public static int BossSound { get; private set; }
-    public static Dictionary<int, int> iceCrystalMonsterScores { get; private set; }
-    public static float PlayBossHurtInterval { get; private set; }
-    public static List<int> NoXpDungeons { get; private set; }
-    public static List<int> RandomJobs { get; private set; }
-    public static int elderGodTalkingTime { get; private set; }
-    public static int elderGodBigBoss { get; private set; }
-    public static List<int> PassiveSkillShow { get; private set; }
-    public static List<int> bossShuntMaps { get; private set; }
-    public static int bossShuntDays { get; private set; }
-    public static Dictionary<int, int[]> itemDropEffect = new Dictionary<int, int[]>();
-    public static Dictionary<int, int[]> xllyDropEffect = new Dictionary<int, int[]>();
-    public static Dictionary<int, int[]> xqryDropEffect = new Dictionary<int, int[]>();
-    public static Dictionary<int, List<int[]>> customDropEffect = new Dictionary<int, List<int[]>>();
-    public static Dictionary<int, int> dropEffectQuality = new Dictionary<int, int>();
-    public static Dictionary<int, int> BuffToHitEffect = new Dictionary<int, int>();
+    
 
     //鍙傛暟int锛宨nt 锛宻tring 鍒嗗埆琛ㄧず鑱屼笟锛岃浆鐢熺瓑绾э紝icon
     static Dictionary<int, Dictionary<int, string>> jobHeadPortrait = new Dictionary<int, Dictionary<int, string>>();
     static Dictionary<int, Dictionary<int, string>> otherjobHeadPortrait = new Dictionary<int, Dictionary<int, string>>();
-    public static Dictionary<int, int> bossWearyValues = new Dictionary<int, int>();
-    public static Dictionary<int, Vector3> NpcPosOffset = new Dictionary<int, Vector3>();
-    public static Dictionary<int, string> propertyIconDict = new Dictionary<int, string>();
-
-    public static int demonJarHintLevelLimit { get; private set; }
-    public static int demonJarHintLineId { get; private set; }
-    public static int skillPanelUnLock { get; private set; }
-    public static int dailyQuestRedpointLevelLimit { get; private set; }
-    public static int lowHpRemind { get; private set; }
-    public static int munekadolockLimit { get; private set; }
-    public static int maxItemDropEffectCount { get; private set; }
-
-    public static int[] autoBuyItemIds;
-    public static int[] autoBuyItemPrices;
-
-    public static List<int> neutralMaps = new List<int>();
-    public static List<int> neutralBossMaps = new List<int>();
-
-    public static int demonJarRedPoint { get; private set; }
-    public static string LoadLV { get; private set; }
-    public static int MasteryLoadingLevelLimit1 { get; private set; }
-    public static int MasteryLoadingLevelLimit2 { get; private set; }
-
-    public static float mainWinSkillResetTime { get; private set; }
-    public static Vector3 heroDialogueOffset { get; private set; }
-    public static Vector3 heroDialogueRotation { get; private set; }
-    public static float heroDialogueScale { get; private set; }
-
-    public static List<int> ancientGrandTotalAchievements { get; private set; }
-    public static List<int> ancientContinueKillAchievements { get; private set; }
-
-    public static int trialDungeonGroupChallengeTipLv { get; private set; }
-    public static int prayerRedpointLimitLv { get; private set; }
-
-    public static int demonJarLevelLimit { get; private set; }
-
-    public static int fairyLandGuideId = 82;
-
-    public static int specialGuide41Mission { get; private set; }
-    public static int specialGuide41Achievement { get; private set; }
-
-    public static int supremeRechargeVipLv { get; private set; }
+    
 
     public static int rechargeRedpointLv { get; private set; }
     public static int rechargeRedpointMinLv { get; private set; }
 
-    public static int runeTowerSweepBuyTimes { get; private set; }
-    public static int runeTowerSweepBuyPrice { get; private set; }
-
-    public static int teamMatchingTimeOut { get; private set; }
+    
     public static List<int> inGameDownLoadLevelCheckPoints = null;
     public static List<int> inGameDownLoadTaskCheckPoints = null;
     public static int inGameDownLoadHighLevel { get; private set; }
-    public static List<int> worldBossNoRebornRemindMaps = null;
-    public static List<int> bossHomeNoRebornRemindMaps = null;
-    public static List<int> elderGodNoRebornRemindMaps = null;
-    public static List<int> demonJarNoRebornRemindMaps = null;
-    public static List<int> dogzNoRebornRemindMaps = null;
-
-    public static string[][] ModeDefaultConfig { get; private set; }
-    public static int[][] PreloadSkillEffect { get; private set; }
-    public static int[] RealmGroup { get; private set; }
-    public static float PrefightAtkRange { get; private set; }
-
-    public static Dictionary<int, string> multipleRealmImgDict { get; private set; }
-    public static int[] ImportantItemType { get; private set; }
-    public static int[] ImportantItemID { get; private set; }
-
-    public static int inGameDownLoadHighestLevelPoint { get; private set; }
-
-    public static List<int> dungeonCanUseMoneyIds { get; private set; }
-    public static int dogzBoxLimit { get; private set; }
-
-    public static Dictionary<int, int> dungeonRebornClientTimes { get; private set; }
+    
     public static int[] CompareEquipPlaces { get; private set; }
-    public static Dictionary<int, int> fairyGrabBossMapLines { get; private set; }
-
-    public static Dictionary<int, List<int>> DropItemEffectMapID { get; private set; }
     public static Dictionary<int, List<int>> itemPutInPackDict { get; private set; }
     public static Dictionary<int, int> itemMoneyCountDict { get; private set; } //鑳屽寘涓敤浜庡睍绀鸿揣甯佹暟閲忕殑鐗╁搧
-    public static List<int> RebornAutoFightMapID { get; private set; }
-
-    public static string teamWorldCall;
-    public static int teamWorldCallInviteCount;
-
-    // public static List<Item> ancientKingAwards = new List<Item>();
-
-    public static int lowQualityEffectCount { get; private set; }
-    public static int medQualityEffectCount { get; private set; }
-    public static int highQualityEffectCount { get; private set; }
-    public static int lowQualityPetCount { get; private set; }
-    public static int medQualityPetCount { get; private set; }
-    public static int highQualityPetCount { get; private set; }
-    public static int lowQualityGuardCount { get; private set; }
-    public static int medQualityGuardCount { get; private set; }
-    public static int highQualityGuardCount { get; private set; }
-    public static int lowQualityPetEffectCount { get; private set; }
-    public static int medQualityPetEffectCount { get; private set; }
-    public static int highQualityPetEffectCount { get; private set; }
-    public static int lowQualityHorseEffectCount { get; private set; }
-    public static int medQualityHorseEffectCount { get; private set; }
-    public static int highQualityHorseEffectCount { get; private set; }
-
-    public static int GatherSoulDZ { get; private set; }
-
-    public static int fairyLandBuffCondition { get; private set; }
-    public static int fairyLandBuffId { get; private set; }
-    public static int achievementEarlierStageLevel { get; private set; }
-    public static int demonJarAutoTime { get; private set; }
-    // public static Dictionary<int, Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>> SgzzRobotEquipDict { get; private set; }
-    public static Dictionary<int, int> SgzcRealm { get; private set; }
-
-    public static int crossServerOneVsOneOpenDay { get; set; }
-    public static int crossServerBattleFieldOpenDay { get; private set; }
+    
     public static int UISpringDecorate { get; private set; }
     public static Dictionary<int, List<int>> skillAttrIDDict { get; private set; }
-    public static int mixServerCustomDays { get; private set; }
-    public static float ClientPvpAttributePer { get; private set; }
-    public static int openServerCustomDays { get; private set; }
-
-    public static int mysteryShopRefreshItem { get; private set; }
-    public static Dictionary<int, int> mysteryShopRefreshItemCount { get; private set; }
-    public static int mysteryShopRefreshItemValue { get; private set; }
-    public static int mysteryShopRefreshInterval { get; private set; }
-    public static Dictionary<int, Dictionary<int, int>> equipStarLimit { get; private set; }
-    public static int equipTrainMustItemId { get; private set; }
-    public static int acutionItemHour { get; private set; }
-
-    public static int mainWinTopCloseTime { get; private set; }
-    public static List<int> equipDecomposeScreen = new List<int>();
-    public static Dictionary<int, float> AtkTypeIncreasePushDis = new Dictionary<int, float>();
-    // public static Dictionary<int, CameraController.LookAtData> NpcDieSetCamera = new Dictionary<int, CameraController.LookAtData>();
-    public static int BlueEquipJumpLevel { get; private set; }
-    public static int[] defenseGetWays { get; private set; }
-    public static Dictionary<int, int> skillYinjis { get; private set; }
-    public static List<int> onlyUsedAtBackpackItems { get; private set; }
-    public static List<int> signInPromoteSkills = new List<int>();
-    public static List<int> chestDisplayItems = new List<int>();
-
-    public static int equipStarUpAmendFactor { get; private set; }
-    public static int equipStarDownAmendFactor { get; private set; }
-
-    public static int normalEquipStarUpgradeRateCeiling { get; private set; }
-    public static int normalEquipStarUpgradeRateFloor { get; private set; }
-
-    public static int suitEquipStarUpgradeRateCeiling { get; private set; }
-    public static int suitEquipStarUpgradeRateFloor { get; private set; }
-
-    public static Dictionary<int, List<int>> BossAssistAward { get; private set; }
-    public static Dictionary<int, List<int>> FBAssistAward { get; private set; }
-
-    //妫�娴嬫槸鍚﹀湪systemsetwin prefab鏄剧ず鍒囨崲鍖烘湇鍜屽垏鎹㈣处鍙�
-    public static List<string> checkShowSwitchAccount = new List<string>();
-    //绔炴妧鍦� 鍒濆绉垎|鏈�楂樼Н鍒�
-    public static List<int> ArenaSetList { get; private set; }
-    //鍩瑰吇瀵瑰簲鐗╁搧鍒楄〃 1.鍩瑰吇涓�2.鍏荤鐭�3.鐗规畩鍩瑰吇
-    public static int[] HorseTrainIDList { get; private set; }
-    public static int[] PetTrainIDList { get; private set; }
-    public static Dictionary<int, List<int>> LingQiTrainIDList { get; private set; }
-
-    //鏁板��1锛氬彲瀵规晫鏂逛娇鐢ㄧ殑闄勫姞鎶�鑳藉垪琛�
-    //鏁板��2锛氬彲瀵硅嚜宸变娇鐢ㄧ殑闄勫姞鎶�鑳藉垪琛�
-    //鏁板��3锛氫笉鍙噴鏀剧殑鎶�鑳�
-    public static int[] WorkForEnemySkills { get; private set; }
-    public static int[] WorkForMeSkills { get; private set; }
-    public static int[] WorkNotSkills { get; private set; }
-    public static Dictionary<int, List<int>> ZhanLingCtgIdDict { get; private set; }
-    public static Dictionary<int, List<int>> ZhanLingCtgIdHDict { get; private set; }
-    public static Dictionary<int, int> OldZhanLingCtgIdDict { get; private set; }
-
-    public static float fightPowerMore; //鎴樺姏瓒呰繃姣斾緥鎵嶅彲蹇�熸寫鎴�
-    public static int[] flashOpenArr; //寮�鍚浄璇涘眰 [澶╂槦濉旓紝澧冪晫濉旓紝绗﹀嵃濉旓紙鎸夌鍑犱釜濉旂畻锛塢
-    public static int[] flashCntMoreArr; //闆疯瘺鏇村娆℃暟灞傞渶姹� [澶╂槦濉旓紝澧冪晫濉旓紝绗﹀嵃濉旓紙鎸夌鍑犱釜濉旂畻锛塢
-    public static int flashKillMaxCount; //闆疯瘺鏈�澶ф鏁�
     
-    public static readonly int HundredMillion = 100000000;//1浜�
+    public static int mysteryShopRefreshInterval { get; private set; }
+    
+    public static int acutionItemHour { get; private set; }
+    public static int maxXBGridCount { get; private set; }
+
 
     public static void Init()
     {
         try
         {
+            MoneyDisplayModel = ConfigParse.ParseIntDict(GetInputString("MoneyDisplayModel", 1));
             // equipStarUpAmendFactor = GetIntArray("EquipStarRate")[0];
             // equipStarDownAmendFactor = GetIntArray("EquipStarRate")[1];
 
@@ -1169,6 +968,6 @@
 
     public static long GetFactValue(uint value, uint valueEx)
     {
-        return (long)valueEx * HundredMillion +(long)value;
+        return (long)valueEx * (long)Constants.ExpPointValue +(long)value;
     }
 }
diff --git a/Main/System/HeroUI/HeroUIManager.cs b/Main/System/HeroUI/HeroUIManager.cs
index 6890863..7ef1281 100644
--- a/Main/System/HeroUI/HeroUIManager.cs
+++ b/Main/System/HeroUI/HeroUIManager.cs
@@ -40,6 +40,18 @@
     public void QueryUnLockHeroPack()
     {
         //瑙i攣鏇村鐨勬灏嗚儗鍖�
+        int canBuyCnt = PackManager.Instance.GetCanBuyPackGirdCount(PackType.Hero);
+        if (canBuyCnt <= 0)
+        {
+            return;
+        }
+
+
+        ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
+        Language.Get("HeroPack1", GeneralDefine.MoneyDisplayModel[1],1, 1), (bool isOK)=>
+        {
+
+        });
     }
 
     //鍒锋柊鏃舵満, 鎵撳紑姝﹀皢鐣岄潰 鎴栬�� 鍏抽棴鍔熻兘鐣岄潰
diff --git a/Main/System/KnapSack/New/CommonItemBaisc.cs b/Main/System/KnapSack/New/CommonItemBaisc.cs
index cd349d3..8583649 100644
--- a/Main/System/KnapSack/New/CommonItemBaisc.cs
+++ b/Main/System/KnapSack/New/CommonItemBaisc.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.Linq;
 using UnityEngine;
 using UnityEngine.UI;
 
@@ -217,21 +218,11 @@
         itemIcon.SetOrgSprite(config.IconKey);
         ItemConfig itemConfig = ItemConfig.Get(itemId);
         bgIcon.SetItemBackGround(ItemLogicUtility.Instance.GetItemQuality(itemId, useDataDic));
-        if (packModel.textCountShow.ContainsKey(itemId))
-        {
-            countText.SetActive(true);
-            countText.text = count > 0 ? packModel.textCountShow[itemId] + "x" + count : packModel.textCountShow[itemId];
-        }
-        else if (packModel.gameCashShow.Contains(itemId))
+        if (packModel.gameCashShow.Contains(itemId))
         {
             //浠i噾鍒�
             countText.SetActive(true);
             countText.text = count > 1000000 ? UIHelper.ReplaceLargeNum(count / 100.0f) : (count / 100.0f).ToString("0.#");
-        }
-        else if (Array.IndexOf(packModel.textCountShow2, itemId) != -1)
-        {
-            countText.SetActive(true);
-            countText.text = UIHelper.ReplaceLargeNum(count * (ulong)config.EffectValueA1);
         }
         else
         {
diff --git a/Main/System/KnapSack/PackManager.cs b/Main/System/KnapSack/PackManager.cs
index b307a4e..dcd15ab 100644
--- a/Main/System/KnapSack/PackManager.cs
+++ b/Main/System/KnapSack/PackManager.cs
@@ -8,12 +8,42 @@
 
 public class PackManager : GameSystemManager<PackManager>
 {
+    public event Action<PackType> refrechPackEvent; //鍒锋柊鏁翠釜鑳屽寘鏁版嵁
+
+    //鐗╁搧锛堝垱寤猴級鍒锋柊锛屽彲鑳芥壒閲忓垱寤烘敞鎰忔晥鐜�; bool锛歵rue浠h〃鍒涘缓 false 鍒锋柊; 娉ㄦ剰0707鐗╁搧鏁伴噺鍒锋柊涓嶅寘鍚湪姝や簨浠�
+    public event Action<PackType, string, bool> ChangeItemEvent; // 鑳屽寘绫诲瀷锛孏UID锛屾槸鍚﹀垱寤�
+
+    //鍒犻櫎鐗╁搧锛屽彲鑳芥壒閲忓垹闄ゆ敞鎰忔晥鐜�
+    public event Action<PackType, string> DeleteItemEvent; // 鑳屽寘绫诲瀷锛孏UID
+
+    // 鍗曠墿鍝佸埛鏂� 鍦ㄥ緱鍒版柊鐗╁搧銆佺墿鍝佹暟閲忕殑鏀瑰彉锛屾竻鐞嗚鐗╁搧鏃跺潎浼氳Е鍙� ; 浣�0725鏁翠釜鑳屽寘鍒锋柊涓嶈Е鍙戯紝濡傛灉鏈夐渶瑕佸崟鐙暟閲忓埛鏂颁簨浠跺彟澶栧鐞�
+    // 瑙﹀彂姣旇緝棰戠箒锛岀晫闈娇鐢ㄦ椂鍙互鍋氫釜姹囨�诲悗寤惰繜鍒锋柊
+    public event Action<PackType, int, int> RefreshItemEvent; //鑳屽寘绫诲瀷锛屼綅缃储寮曪紝鐗╁搧id
+    public event Action<PackType> gridRefreshEvent; //鑳屽寘鍙敤鏍煎瓙鏁板埛鏂�
+    public event Action<int, int> useItemSuccessEvent; //鐗╁搧浣跨敤鎴愬姛 int 浣嶇疆绱㈠紩 int鐗╁搧id
+
+    public event Action<int> refreshItemDayUseCountEvent;  //鍒锋柊鐗╁搧姣忔棩浣跨敤鏁伴噺
+    public event Action<int> refreshItemSumUseCountEvent;  //鍒锋柊鐗╁搧鎬讳娇鐢ㄦ暟閲�
+
+    public bool isPlayBetterEquipEffect { get; set; }  //鏁寸悊鑳屽寘鏃舵槸鍚︽挱鏀剧壒鏁�
+
+    
+    private Dictionary<PackType, SinglePack> playerPackDict = new Dictionary<PackType, SinglePack>();
+    private Dictionary<string, ItemModel> itemGUIDDict = new Dictionary<string, ItemModel>();
+
+    private Dictionary<int, int> PackGirdServerBuyCountDict = new Dictionary<int, int>(); //鑳屽寘绫诲瀷锛氳喘涔版牸瀛愮殑娆℃暟
+
+    //璇昏〃鏁版嵁
     public Dictionary<int, int> PackMaxCountDict = new Dictionary<int, int>(); //鑳屽寘绫诲瀷锛氳儗鍖呮牸瀛愭渶澶ф暟閲�
     public Dictionary<int, int> PackInitCountDict = new Dictionary<int, int>(); //鑳屽寘绫诲瀷锛氬垵濮嬫暟閲�
     public int initBagGridCount { get; private set; } //鍒濆鐗╁搧鑳屽寘鏍煎瓙鏁�
     public int[] itemPackSortTyps { get; private set; }    //鑳屽寘鐗╁搧鐨勬寜绫诲瀷鎺掑簭
     public List<string> composeItemGuidList = new List<string>();  //鍚堟垚鍒楄〃鐗╁搧guid
 
+    //寮�鏍煎瓙
+    public Dictionary<int, int> openGirdMoneyDict = new Dictionary<int, int>(); //鑳屽寘绫诲瀷锛氭秷鑰楄揣甯佺被鍨�
+    public Dictionary<int, int[]> openGirdMoneyValueDict = new Dictionary<int, int[]>(); //鑳屽寘绫诲瀷锛氭秷鑰楄揣甯佸��(鎸夋鏁板畾浠�)
+    public Dictionary<int, int[]> openGirdCountDict = new Dictionary<int, int[]>(); //鑳屽寘绫诲瀷锛氭瘡娆″紑鐨勬牸瀛愭暟閲�
     public static string StrengthAttrShift_RecordKey = "";
     public const string RecordKnapsackTitle = "RecordKnapsackTitle";
 
@@ -23,11 +53,7 @@
     Dictionary<int, List<int>> sharedUseCountItemDict { get; set; }
     bool isUpdatePlayerLv = false;
 
-    //AlchemyModel alchemyModel { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } }
-    //ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
-
-    
-
+    public int[] gameCashShow;  //浠i噾鍒哥壒娈婃樉绀� 闄や互100
     public int[] autoUseItemIDs;
     public override void Init()
     {
@@ -56,9 +82,8 @@
         //     }
         // }
 
-        ParseItemCount();
 
-        autoUseItemIDs = JsonMapper.ToObject<int[]>(FuncConfigConfig.Get("ItemTipsNum").Numerical2);
+        
     }
 
 
@@ -71,23 +96,7 @@
         // SysNotifyMgr.Instance.sysNotifyEvent -= RefreshSysInfo;
     }
 
-    public Dictionary<int, string> textCountShow = new Dictionary<int, string>();
-    public int[] textCountShow2;
-    public List<int> gameCashShow = new List<int>();
-
-    public void ParseItemCount()
-    {
-        var textConfig = FuncConfigConfig.Get("ItemCountShow");
-        var json = JsonMapper.ToObject(textConfig.Numerical1);
-        foreach (var key in json.Keys)
-        {
-            var itemID = int.Parse(key);
-            textCountShow[itemID] = json[key].ToString();
-        }
-
-        textCountShow2 = JsonMapper.ToObject<int[]>(textConfig.Numerical2);
-        gameCashShow = JsonMapper.ToObject<List<int>>(textConfig.Numerical3);
-    }
+    
 
 
     private void OnFuncStateChangeEvent(int id)
@@ -165,28 +174,7 @@
         // }
     }
 
-    public event Action<PackType> refrechPackEvent; //鍒锋柊鏁翠釜鑳屽寘鏁版嵁
-
-    //鐗╁搧锛堝垱寤猴級鍒锋柊锛屽彲鑳芥壒閲忓垱寤烘敞鎰忔晥鐜�; bool锛歵rue浠h〃鍒涘缓 false 鍒锋柊; 娉ㄦ剰0707鐗╁搧鏁伴噺鍒锋柊涓嶅寘鍚湪姝や簨浠�
-    public event Action<PackType, string, bool> ChangeItemEvent; // 鑳屽寘绫诲瀷锛孏UID锛屾槸鍚﹀垱寤�
-
-    //鍒犻櫎鐗╁搧锛屽彲鑳芥壒閲忓垹闄ゆ敞鎰忔晥鐜�
-    public event Action<PackType, string> DeleteItemEvent; // 鑳屽寘绫诲瀷锛孏UID
-
-    // 鍗曠墿鍝佸埛鏂� 鍦ㄥ緱鍒版柊鐗╁搧銆佺墿鍝佹暟閲忕殑鏀瑰彉锛屾竻鐞嗚鐗╁搧鏃跺潎浼氳Е鍙� ; 浣�0725鏁翠釜鑳屽寘鍒锋柊涓嶈Е鍙戯紝濡傛灉鏈夐渶瑕佸崟鐙暟閲忓埛鏂颁簨浠跺彟澶栧鐞�
-    // 瑙﹀彂姣旇緝棰戠箒锛岀晫闈娇鐢ㄦ椂鍙互鍋氫釜姹囨�诲悗寤惰繜鍒锋柊
-    public event Action<PackType, int, int> RefreshItemEvent; //鑳屽寘绫诲瀷锛屼綅缃储寮曪紝鐗╁搧id
-    public event Action<PackType> gridRefreshEvent; //鑳屽寘鍙敤鏍煎瓙鏁板埛鏂�
-    public event Action<int, int> useItemSuccessEvent; //鐗╁搧浣跨敤鎴愬姛 int 浣嶇疆绱㈠紩 int鐗╁搧id
-
-    public event Action<int> refreshItemDayUseCountEvent;  //鍒锋柊鐗╁搧姣忔棩浣跨敤鏁伴噺
-    public event Action<int> refreshItemSumUseCountEvent;  //鍒锋柊鐗╁搧鎬讳娇鐢ㄦ暟閲�
-
-    public bool isPlayBetterEquipEffect { get; set; }  //鏁寸悊鑳屽寘鏃舵槸鍚︽挱鏀剧壒鏁�
-
-    #region 鎺ユ敹鏈嶅姟绔暟鎹�
-    private Dictionary<PackType, SinglePack> playerPackDict = new Dictionary<PackType, SinglePack>();
-    private Dictionary<string, ItemModel> itemGUIDDict = new Dictionary<string, ItemModel>();
+    
 
     public void UpdatePack(H0725_tagRolePackRefreshEx packInfo)
     {
@@ -270,7 +258,18 @@
     }
 
 
+    public void UpdateBuyPackGirdCount(HA207_tagSCPackBuyInfo netPack)
+    {
+        for (int i = 0; i < netPack.BuyInfoList.Length; i++)
+        { 
+            PackGirdServerBuyCountDict[netPack.BuyInfoList[i].PackType] = netPack.BuyInfoList[i].BuyCnt;
+        }
+    }
 
+    public int[] BuyPackGirdNeedData(PackType packType)
+    {
+        return null;
+    }
 
     public void UpdateUnlockedGridCount(H0724_tagRolePackCanUseCount useCount)
     {
@@ -475,20 +474,27 @@
     //     }
     // }
 
-    #endregion
 
     #region 鐜╁瑁呭鐗规畩閫昏緫
     void ParseConfig()
     {
 
-
+        ParsePackConfigIni();
+        autoUseItemIDs = JsonMapper.ToObject<int[]>(FuncConfigConfig.Get("AutoUseItem").Numerical1);
         var config= FuncConfigConfig.Get("InitBagCellCount");
         initBagGridCount = int.Parse(config.Numerical1);
         PackInitCountDict = ConfigParse.ParseIntDict(config.Numerical2);
 
         config = FuncConfigConfig.Get("PackageSortPriority");
         itemPackSortTyps = ConfigParse.GetMultipleStr<int>(config.Numerical1);
-        ParsePackConfigIni();
+
+        config = FuncConfigConfig.Get("OpenPack");
+        openGirdMoneyDict = ConfigParse.ParseIntDict(config.Numerical1);
+        openGirdMoneyValueDict = ConfigParse.ParseIntArrayDict(config.Numerical2);
+        openGirdCountDict = ConfigParse.ParseIntArrayDict(config.Numerical3);
+
+        config = FuncConfigConfig.Get("ItemCountShow");
+        gameCashShow = JsonMapper.ToObject<int[]>(config.Numerical1);
     }
 
     void ParsePackConfigIni()
@@ -526,6 +532,15 @@
         }
 
         return File.ReadAllLines(path);
+    }
+
+    public int GetCanBuyPackGirdCount(PackType type)
+    {
+        if (!PackMaxCountDict.ContainsKey((int)type))
+        { 
+            return 0;
+        }
+        return PackMaxCountDict[(int)type] - GetSinglePack(type).unlockedGridCount;
     }
 
 
@@ -842,9 +857,6 @@
     const int ITEMPACK_REDKEY = 102011003;
     Redpoint redpointItemPack = new Redpoint(MainRedDot.RedPoint_BagFuncKey, ITEMPACK_REDKEY);
 
-    const int LS_REDKEY = 102011015;
-    Redpoint redpointLS = new Redpoint(MainRedDot.RedPoint_BagFuncKey, LS_REDKEY);
-
 
     private void UpdatePackRedpoint(PackType type)
     {
@@ -868,16 +880,7 @@
                 }
 
                 break;
-            case PackType.Warehouse:
-                if (singlePack.GetEmptyGridCount() <= 0)
-                {
-                    MainRedDot.Instance.redPointDepotFunc.state = RedPointState.Full;
-                }
-                else
-                {
-                    MainRedDot.Instance.redPointDepotFunc.state = RedPointState.None;
-                }
-                break;
+
         }
     }
 
diff --git a/Main/System/Login/ServerData.cs b/Main/System/Login/ServerData.cs
index aefa345..fab893a 100644
--- a/Main/System/Login/ServerData.cs
+++ b/Main/System/Login/ServerData.cs
@@ -126,19 +126,13 @@
 public struct ServerDataCouple
 {
     public ServerData serverData1;
-    //public ServerData serverData2;
 
     public ServerDataCouple(ServerData _data1)
     {
         serverData1 = _data1;
-        //serverData2 = default(ServerData);
     }
 
-    public ServerDataCouple(ServerData _data1, ServerData _data2)
-    {
-        serverData1 = _data1;
-        //serverData2 = _data2;
-    }
+
 }
 
 
diff --git a/Main/System/Login/ServerListWin.cs b/Main/System/Login/ServerListWin.cs
index 0e7d3f2..dd38056 100644
--- a/Main/System/Login/ServerListWin.cs
+++ b/Main/System/Login/ServerListWin.cs
@@ -82,16 +82,9 @@
 
                 serverDataList.Sort(ServerData.Compare);
                 var max = serverDataList.Count;
-                for (int i = 0; i < max; i++, i++)
+                for (int i = 0; i < max; i++)
                 {
-                    if (i + 1 < max)
-                    {
-                        groupDatas.Add(new ServerDataCouple(serverDataList[i], serverDataList[i + 1]));
-                    }
-                    else
-                    {
-                        groupDatas.Add(new ServerDataCouple(serverDataList[i]));
-                    }
+                    groupDatas.Add(new ServerDataCouple(serverDataList[i]));
                 }
 
                 m_ServerScroll.Init(groupDatas);
diff --git a/Main/System/Redpoint/MainRedDot.cs b/Main/System/Redpoint/MainRedDot.cs
index 1cfbc13..8e66132 100644
--- a/Main/System/Redpoint/MainRedDot.cs
+++ b/Main/System/Redpoint/MainRedDot.cs
@@ -44,10 +44,8 @@
     #region 鑳屽寘绾㈢偣
     public const int RedPoint_MainPackKey = 102;
     public const int RedPoint_BagFuncKey = 10201;
-    public const int RedPoint_DepotFuncKey = 10204;
     public Redpoint redPointMainPack = new Redpoint(RedPoint_MainPackKey);
     public Redpoint redPointBagFunc = new Redpoint(RedPoint_MainPackKey, RedPoint_BagFuncKey);
-    public Redpoint redPointDepotFunc = new Redpoint(RedPoint_MainPackKey, RedPoint_DepotFuncKey);
     #endregion
 
 
diff --git a/Main/System/Team/TeamHero.cs b/Main/System/Team/TeamHero.cs
index 0597344..4fc8964 100644
--- a/Main/System/Team/TeamHero.cs
+++ b/Main/System/Team/TeamHero.cs
@@ -37,8 +37,8 @@
 
         // HPEx * 1浜� + HP
 
-        curHp = (long)fightObj.HPEx * GeneralDefine.HundredMillion + (long)fightObj.HP;
-        maxHp = (long)fightObj.MaxHPEx * GeneralDefine.HundredMillion + (long)fightObj.MaxHP;
+        curHp = (long)fightObj.HPEx * (long)Constants.ExpPointValue + (long)fightObj.HP;
+        maxHp = (long)fightObj.MaxHPEx * (long)Constants.ExpPointValue + (long)fightObj.MaxHP;
         rage = (int)fightObj.AngreXP;
 
         positionNum = fightObj.PosNum - 1;

--
Gitblit v1.8.0