hch
2025-08-05 6d9a990ce3eff793946d7b43e9b48e4f7045c20e
0312 服务器列表
9个文件已修改
4个文件已添加
471 ■■■■■ 已修改文件
Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA207_tagSCPackBuyInfo.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA207_tagSCPackBuyInfo.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ServerPack/HA2_Package/HA207_tagSCPackBuyInfo.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/ServerPack/HA2_Package/HA207_tagSCPackBuyInfo.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/GeneralConfig/GeneralDefine.cs 229 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroUIManager.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/KnapSack/New/CommonItemBaisc.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/KnapSack/PackManager.cs 127 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Login/ServerData.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Login/ServerListWin.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Redpoint/MainRedDot.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Team/TeamHero.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA207_tagSCPackBuyInfo.cs
New file
@@ -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);
    }
}
Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA207_tagSCPackBuyInfo.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 759a621863abbf54296b3ea4121ddda3
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
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));
    }
    //主工程注册封包
Main/Core/NetworkPackage/ServerPack/HA2_Package/HA207_tagSCPackBuyInfo.cs
New file
@@ -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;        // 已购买次数
    }
}
Main/Core/NetworkPackage/ServerPack/HA2_Package/HA207_tagSCPackBuyInfo.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f653b2261135c964fa493b8afb23b63c
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
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,int ,string 分别表示职业,转生等级,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;
    }
}
Main/System/HeroUI/HeroUIManager.cs
@@ -40,6 +40,18 @@
    public void QueryUnLockHeroPack()
    {
        //解锁更多的武将背包
        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)=>
        {
        });
    }
    //刷新时机, 打开武将界面 或者 关闭功能界面
Main/System/KnapSack/New/CommonItemBaisc.cs
@@ -1,5 +1,6 @@
using 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))
        {
            //代金券
            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
        {
Main/System/KnapSack/PackManager.cs
@@ -8,12 +8,42 @@
public class PackManager : GameSystemManager<PackManager>
{
    public event Action<PackType> refrechPackEvent; //刷新整个背包数据
    //物品(创建)刷新,可能批量创建注意效率; bool:true代表创建 false 刷新; 注意0707物品数量刷新不包含在此事件
    public event Action<PackType, string, bool> ChangeItemEvent; // 背包类型,GUID,是否创建
    //删除物品,可能批量删除注意效率
    public event Action<PackType, string> DeleteItemEvent; // 背包类型,GUID
    // 单物品刷新 在得到新物品、物品数量的改变,清理该物品时均会触发 ; 但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;  //代金券特殊显示 除以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:true代表创建 false 刷新; 注意0707物品数量刷新不包含在此事件
    public event Action<PackType, string, bool> ChangeItemEvent; // 背包类型,GUID,是否创建
    //删除物品,可能批量删除注意效率
    public event Action<PackType, string> DeleteItemEvent; // 背包类型,GUID
    // 单物品刷新 在得到新物品、物品数量的改变,清理该物品时均会触发 ; 但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;
        }
    }
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;
    }
}
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);
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
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;