From d341a47ed9bbb740f2ccb9d6d42fd74d5a1c6b5d Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 15 五月 2025 11:05:48 +0800
Subject: [PATCH] update

---
 Main/Battle/BattleObject/CardObject.cs               |    0 
 Main/Utility/ComponentExtersion.cs                   |  468 ++--
 Main/Utility/FileExtersion.cs                        |  414 +-
 Main/Utility/DrawUtility.cs                          |    0 
 Main/Utility/SnxxzUtility.cs                         |    0 
 Main/Utility/UGUIEventListenerContainDrag.cs.meta    |    0 
 Main/Battle/RecordPlayer/RecordAction.cs             |   21 
 Main/Utility/SystemCMD.cs.meta                       |    0 
 Main/Battle/BattleMode.cs                            |    8 
 Main/Utility/EffectRenderSort.cs                     |    0 
 Main/Utility/EnumHelper.cs                           | 3842 ++++++++++++++++----------------
 Main/Utility/PathUtility.cs                          |    0 
 Main/Utility/GameObjectPool.cs.meta                  |    0 
 Main/Utility/UIParamCopyTool.cs.meta                 |    0 
 Main/Utility/LayerUtility.cs.meta                    |    0 
 Main/Utility/MathUtility.cs                          |    0 
 Main/Utility/CameraManager.cs.meta                   |    0 
 Main/Utility/ColorUtility.cs.meta                    |    0 
 Main/Utility/DeviceUtility.cs.meta                   |    0 
 Main/Battle/BattleField/BattleField.cs               |   82 
 Main/Battle/RecordPlayer/RecordActionType.cs         |   10 
 Main/Utility/MathUtility.cs.meta                     |    0 
 Main/Utility/TransformExtension.cs.meta              |    0 
 Main/Utility/VesselExtension.cs.meta                 |    0 
 Main/Utility/FileExtersion.cs.meta                   |    0 
 Main/Utility/MathUtils.cs                            |    0 
 Main/Utility/EnumHelper.cs.meta                      |    0 
 Main/Utility/TAny.cs                                 |    0 
 Main/Utility/DontDestroyOnLoad.cs.meta               |    0 
 Main/Utility/EnumLabelAttribute.cs                   |   58 
 Main/Common/EventBroadcast.cs                        |  271 ++
 Main/Manager/GameSystemManager/BattleManager.cs      |   31 
 Main/Utility/DontDestroyOnLoad.cs                    |   22 
 Main/Utility/VectorUtility.cs.meta                   |    0 
 Main/Utility/Extension.cs                            |    0 
 Main/Utility/ComponentExtersion.cs.meta              |    0 
 Main/Utility/RenderOrder.cs                          |    0 
 Main/Utility/RenderTextureCreator.cs                 |   80 
 Main/Utility/TAny.cs.meta                            |    0 
 Main/Battle/BattleObject/BattleObjMgr.cs             |   83 
 Main/Battle/Motion/MotionBase.cs                     |    2 
 Main/Utility/PathUtility.cs.meta                     |    0 
 Main/Battle/RecordPlayer.meta                        |    8 
 Main/Utility/LocalSave.cs.meta                       |    0 
 Main/Team/TeamBase.cs                                |    5 
 Main/Utility/Bezier.cs.meta                          |    0 
 Main/Utility/Extension.cs.meta                       |    0 
 Main/Utility/BezierMove.cs.meta                      |    0 
 Main/Utility/DeviceUtility.cs                        |  338 +-
 Main/Utility/Datumline.cs.meta                       |    0 
 Main/Battle/RecordPlayer/RecordAction.cs.meta        |    2 
 Main/Utility/ColorUtility.cs                         |    0 
 Main/Utility/FPS.cs                                  |    0 
 Main/Utility/TransformExtension.cs                   |    0 
 Main/Battle/BattleObject/BattleObjectFactory.cs      |   23 
 Main/Utility/Bezier.cs                               |   76 
 Main/Utility/DrawUtility.cs.meta                     |    0 
 Main/Utility/TBlackBoard.cs.meta                     |    0 
 Main/Utility/GenerateUICode.cs                       |    0 
 Main/Battle/BattleMode.cs.meta                       |    2 
 Main/Utility/EffectRenderSort.cs.meta                |    0 
 Main/NetworkPackage/GameNetSystem.cs                 |   14 
 Main/Utility/ResolutionUtility.cs                    |  126 
 Main/Utility/GlobalTimeEvent.cs.meta                 |    0 
 Main/Utility/LocalSave.cs                            |    0 
 Main/Utility/ProfilerPanel.cs.meta                   |    0 
 Main/Utility/EnumLabelAttribute.cs.meta              |    0 
 Main/Utility/Datumline.cs                            |    0 
 Main/Card/CardInfo.Properties.cs                     |   11 
 Main/Battle/RecordPlayer/RecordPlayer.cs.meta        |    2 
 Main/Utility/FPS.cs.meta                             |    0 
 Main/Utility/RenderTextureCreator.cs.meta            |    0 
 Main/Utility/GameObjectPool.cs                       |  198 
 Main/Utility/UIParamCopyTool.cs                      |    0 
 Main/Utility/VectorUtility.cs                        |    0 
 Main/Battle/BattleObject/CardObject.cs.meta          |    2 
 Main/Utility/ProfilerPanel.cs                        |    0 
 Main/Common/EventName.cs                             |    7 
 Main/Utility/FieldPrint.cs.meta                      |    0 
 Main/Utility/GlobalTimeEvent.cs                      |  380 +-
 Main/Common/EventBroadcast.cs.meta                   |    2 
 Main/Utility/SnxxzUtility.cs.meta                    |    0 
 Main/Common/EventName.cs.meta                        |    2 
 Main/Battle/BattleObject/BattleObjectFactory.cs.meta |    2 
 Main/Battle/BattleObject/BattleObject.cs             |  239 -
 Main/Utility/VesselExtension.cs                      |    0 
 Main/Utility/RenderOrder.cs.meta                     |    0 
 Main/Main.cs                                         |    1 
 Main/Battle/BattleObject/BattleObjMgr.cs.meta        |    2 
 Main/Utility/LayerUtility.cs                         |    0 
 Main/Utility/CameraManager.cs                        |    0 
 Main/Utility/GenerateUICode.cs.meta                  |    0 
 Main/Battle/BattleField/BattleField.cs.meta          |    2 
 Main/Utility/ResolutionUtility.cs.meta               |    0 
 Main/Utility.meta                                    |    0 
 Main/Utility/TBlackBoard.cs                          |    0 
 /dev/null                                            |   11 
 Main/Utility/FieldPrint.cs                           |    0 
 Main/Battle/RecordPlayer/RecordActionType.cs.meta    |    2 
 Main/Utility/BezierMove.cs                           |    0 
 Main/Utility/MathUtils.cs.meta                       |    0 
 Main/Battle/RecordPlayer/RecordPlayer.cs             |   59 
 Main/Utility/SystemCMD.cs                            |    0 
 Main/Utility/UGUIEventListenerContainDrag.cs         |    0 
 104 files changed, 3,712 insertions(+), 3,196 deletions(-)

diff --git a/Main/Battle/BattleField/BattleField.cs b/Main/Battle/BattleField/BattleField.cs
new file mode 100644
index 0000000..e503cd8
--- /dev/null
+++ b/Main/Battle/BattleField/BattleField.cs
@@ -0,0 +1,82 @@
+using System.Collections.Generic;
+
+public class BattleField
+{
+    protected int battleId = 0;
+
+    public BattleMode battleMode;
+
+    public BattleObjMgr battleObjMgr;
+
+    public RecordPlayer recordPlayer;
+
+    public int round = 0;
+
+    public BattleField()
+    {
+
+    }
+
+    public void Init(int _battleId, int _levelId, BattleMode _battleMode, TeamBase _redTeam, TeamBase _blueTeam = null)
+    {
+        battleId = _battleId;
+        battleMode = _battleMode;
+
+        battleObjMgr = new BattleObjMgr();
+        battleObjMgr.Init(_levelId, _redTeam, _blueTeam);
+
+        recordPlayer = new RecordPlayer();
+        recordPlayer.Init(this);
+    }
+
+    public void Release()
+    {
+        battleObjMgr.Release();
+    }
+
+    public void Run()
+    {
+        recordPlayer.Run();
+        battleObjMgr.Run();
+    }
+
+    public void SetBattleMode(BattleMode _battleMode)
+    {
+        battleMode = _battleMode;
+    }
+
+    public void PlayRecord(RecordAction recordAction)
+    {
+        recordPlayer.PlayRecord(recordAction);
+    }
+
+    public void PlayRecord(List<RecordAction> recordList)
+    {
+        recordPlayer.PlayRecord(recordList);
+    }
+
+    public void OnActionOver(int attackId)
+    {
+        //
+// 鎵嬪姩鎺ㄧ偣涓�涓嬪彂涓�涓寘 鏀朵竴涓寘 鎾斁涓�娆℃姤鏂� 涔嬪悗灏卞仠浣� 鐩村埌鎴樻枟缁撴潫鐨勫寘鏂�
+// 鑷姩鐨勮瘽 鑷姩鍙戝寘 鎾斁鎶ユ枃 鍚� 璇锋眰涓嬩竴涓寘 寰幆 鐩村埌鎴樻枟缁撴潫鐨勫寘鏂�
+// 鎴樻姤鎾斁灏辨槸涓�鐩存挱鏀炬垬鎶� 鐭ラ亾鎴樻枟缁撴潫鐨勫寘鏂�
+        if (battleMode == BattleMode.Auto)
+        {
+            // Request next action
+        }
+        else if (battleMode == BattleMode.Record)
+        {
+            // Play next record
+        }
+        else
+        {
+            // Wait for user input
+        }
+    }
+
+    public void StartGame()
+    {
+        recordPlayer.StartGame();
+    }
+}
\ No newline at end of file
diff --git a/Main/Common/FieldPrint.cs.meta b/Main/Battle/BattleField/BattleField.cs.meta
similarity index 83%
copy from Main/Common/FieldPrint.cs.meta
copy to Main/Battle/BattleField/BattleField.cs.meta
index 2954907..83d08f0 100644
--- a/Main/Common/FieldPrint.cs.meta
+++ b/Main/Battle/BattleField/BattleField.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: e8426254dd294aa428e2078f8e48cd5e
+guid: a222b256266318646b4bf911fa60ab2e
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Battle/BattleMode.cs b/Main/Battle/BattleMode.cs
new file mode 100644
index 0000000..b03d5bf
--- /dev/null
+++ b/Main/Battle/BattleMode.cs
@@ -0,0 +1,8 @@
+
+
+public enum BattleMode
+{
+    Hand,//鎵嬪姩鎴樻枟
+    Auto,//鑷姩鎴樻枟
+    Record,//鎴樻姤
+}
\ No newline at end of file
diff --git a/Main/Common/FieldPrint.cs.meta b/Main/Battle/BattleMode.cs.meta
similarity index 83%
rename from Main/Common/FieldPrint.cs.meta
rename to Main/Battle/BattleMode.cs.meta
index 2954907..3b182e4 100644
--- a/Main/Common/FieldPrint.cs.meta
+++ b/Main/Battle/BattleMode.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: e8426254dd294aa428e2078f8e48cd5e
+guid: 65a0a52783bfbb94786f267d566ce93a
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Battle/BattleObject/BattleObjMgr.cs b/Main/Battle/BattleObject/BattleObjMgr.cs
new file mode 100644
index 0000000..ddd3892
--- /dev/null
+++ b/Main/Battle/BattleObject/BattleObjMgr.cs
@@ -0,0 +1,83 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class BattleObjMgr : Singleton<BattleObjMgr>
+{
+    private List<BattleObject> redCampList => new List<BattleObject>(redCampDict.Values);
+    private List<BattleObject> blueCampList => new List<BattleObject>(blueCampDict.Values);
+    private Dictionary<int, BattleObject> redCampDict = new Dictionary<int, BattleObject>();
+    private Dictionary<int, BattleObject> blueCampDict = new Dictionary<int, BattleObject>();
+
+    public void Init(int _levelId, TeamBase _redTeam, TeamBase _blueTeam = null)
+    {
+        if (_levelId == 0 && _blueTeam == null)
+        {
+            Debug.LogError("BattleObjMgr Init Error: _levelId == 0 && _blueTeam == null 鍏冲崱id娌℃湁(涓嶆槸PVE) 涔熸病鏈夎摑鑹查槦浼嶄俊鎭紙涔熶笉鏄疨VP锛�)");
+            return;
+        }
+
+        if (_levelId != 0 && _blueTeam != null)
+        {
+            Debug.LogError("BattleObjMgr Init Error: _levelId!= 0 && _blueTeam != null 鍏冲崱id鏈�(鏄疨VE) 涔熸湁钃濊壊闃熶紞淇℃伅锛堜篃涓嶆槸PVP锛�)");
+            return;
+        }
+
+        if (_levelId != 0)
+        {
+            _blueTeam = new TeamBase();
+            _blueTeam.InitByLevelId(_levelId);
+        }
+
+        CreateTeam(redCampDict, _redTeam);
+        CreateTeam(blueCampDict, _blueTeam);
+    } 
+
+    protected void CreateTeam(Dictionary<int, BattleObject> campDict, TeamBase teamBase)
+    {
+        DestroyTeam(campDict);
+        for (int i = 0; i < teamBase.teamCards.Length; i++)
+        {
+            TeamCard teamCard = teamBase.teamCards[i];
+            if (teamCard != null)
+            {
+                BattleObject battleObj = BattleObjectFactory.CreateBattleObject(teamCard);
+                battleObj.Init(teamCard);
+                campDict.Add(teamCard.cardIndex, battleObj);
+            }
+        }
+    }
+
+    protected void DestroyTeam(Dictionary<int, BattleObject> campDict)
+    {
+        foreach (var item in campDict)
+        {
+            BattleObject battleObj = item.Value;
+            if (battleObj!= null)
+            {
+                BattleObjectFactory.DestroyBattleObject(battleObj);
+            }
+        }
+        campDict.Clear();
+    }
+
+    public void Release()
+    {
+        DestroyTeam(redCampDict);
+        DestroyTeam(blueCampDict);
+    }
+
+    public void Run()
+    {
+        foreach (var item in redCampDict)
+        {
+            item.Value.Run();
+            
+        }
+
+        foreach (var item in blueCampDict)
+        {
+            item.Value.Run();
+        }
+    }
+}
\ No newline at end of file
diff --git a/Main/Common/FieldPrint.cs.meta b/Main/Battle/BattleObject/BattleObjMgr.cs.meta
similarity index 83%
copy from Main/Common/FieldPrint.cs.meta
copy to Main/Battle/BattleObject/BattleObjMgr.cs.meta
index 2954907..454527f 100644
--- a/Main/Common/FieldPrint.cs.meta
+++ b/Main/Battle/BattleObject/BattleObjMgr.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: e8426254dd294aa428e2078f8e48cd5e
+guid: bd22d86c92725e347a15a74138ba1896
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Battle/BattleObject/BattleObject.cs b/Main/Battle/BattleObject/BattleObject.cs
index 4d4c725..7569fcd 100644
--- a/Main/Battle/BattleObject/BattleObject.cs
+++ b/Main/Battle/BattleObject/BattleObject.cs
@@ -2,206 +2,129 @@
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
+using DG.Tweening;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins.Options;
 
-/// <summary>
-/// 鎴樻枟瀵硅薄闃佃惀鏋氫妇
-/// </summary>
 public enum BattleCamp
 {
-    Friendly,   // 鍙嬫柟
-    Enemy       // 鏁屾柟
+    Friendly,
+    Enemy
 }
 
-/// <summary>
-/// 鎴樻枟鐘舵�佹灇涓�
-/// </summary>
-[Flags]
 public enum BattleState
 {
     None = 0,
-    Stunned = 1 << 0,     // 鐪╂檿
-    Poisoned = 1 << 1,    // 涓瘨
-    Bleeding = 1 << 2,    // 娴佽
-    Silenced = 1 << 3,    // 娌夐粯
-    Frozen = 1 << 4,      // 鍐板喕
-    Burned = 1 << 5       // 鐏肩儳
+    Stunned = 1 << 0,
+    Poisoned = 1 << 1,
+    Bleeding = 1 << 2,
+    Silenced = 1 << 3,
+    Frozen = 1 << 4,
+    Burned = 1 << 5
 }
 
-/// <summary>
-/// 鎴樻枟瀵硅薄鍩虹被
-/// </summary>
 public class BattleObject
 {
-    /// <summary>
-    /// 鎴樻枟瀵硅薄ID
-    /// </summary>
     public string BattleObjectId { get; protected set; }
     
-    /// <summary>
-    /// 鎴樻枟瀵硅薄闃佃惀
-    /// </summary>
     public BattleCamp Camp { get; protected set; } = BattleCamp.Friendly;
     
-    // Buff绯荤粺
-    // List<BuffInfo> buffList;         // 鎵�鏈塨uff鍒楄〃
-    // List<BuffInfo> gainBuffList;     // 澧炵泭buff鍒楄〃
-    // List<BuffInfo> debuffList;       // 鍑忕泭buff鍒楄〃
+    public TeamCard teamCard { get; protected set; }
+
+    protected MotionBase motionBase;
+
+    protected GameObject cardGO;
     
-    /// <summary>
-    /// 鍒濆鍖栨垬鏂楀璞�
-    /// </summary>
-    /// <param name="id">鎴樻枟瀵硅薄ID</param>
-    /// <param name="camp">鎴樻枟瀵硅薄闃佃惀</param>
-    public virtual void Initialize(string id, BattleCamp camp)
+    public virtual void Init(TeamCard _teamCard)
     {
-        BattleObjectId = id;
-        Camp = camp;
+        this.teamCard = _teamCard;
+        motionBase = new MotionBase();
+    }
+
+    protected void LoadCard()
+    {
         
-        // 鍒濆鍖朆uff鍒楄〃
-        // buffList = new List<BuffInfo>();
-        // gainBuffList = new List<BuffInfo>();
-        // debuffList = new List<BuffInfo>();
     }
     
-    
-    
-    #region Buff绯荤粺锛堝緟瀹炵幇锛�
-    
-    // /// <summary>
-    // /// 娣诲姞Buff
-    // /// </summary>
-    // /// <param name="buff">Buff淇℃伅</param>
-    // public virtual void AddBuff(BuffInfo buff)
-    // {
-    //     // 娣诲姞Buff鍒板垪琛�
-    //     // 鏍规嵁Buff绫诲瀷娣诲姞鍒板搴斿垪琛�
-    //     // 搴旂敤Buff鏁堟灉
-    // }
-    // 
-    // /// <summary>
-    // /// 绉婚櫎Buff
-    // /// </summary>
-    // /// <param name="buffId">Buff ID</param>
-    // public virtual void RemoveBuff(string buffId)
-    // {
-    //     // 浠庡垪琛ㄤ腑绉婚櫎Buff
-    //     // 绉婚櫎Buff鏁堟灉
-    // }
-    // 
-    // /// <summary>
-    // /// 鏇存柊鎵�鏈塀uff
-    // /// </summary>
-    // public virtual void UpdateBuffs()
-    // {
-    //     // 鏇存柊鎵�鏈塀uff鐨勬寔缁椂闂�
-    //     // 绉婚櫎宸茶繃鏈熺殑Buff
-    //     // 搴旂敤Buff鐨勬寔缁晥鏋�
-    // }
-    // 
-    // /// <summary>
-    // /// 鑾峰彇鎵�鏈塀uff
-    // /// </summary>
-    // /// <returns>Buff鍒楄〃</returns>
-    // public virtual List<BuffInfo> GetAllBuffs()
-    // {
-    //     return buffList;
-    // }
-    // 
-    // /// <summary>
-    // /// 鑾峰彇鎵�鏈夊鐩夿uff
-    // /// </summary>
-    // /// <returns>澧炵泭Buff鍒楄〃</returns>
-    // public virtual List<BuffInfo> GetGainBuffs()
-    // {
-    //     return gainBuffList;
-    // }
-    // 
-    // /// <summary>
-    // /// 鑾峰彇鎵�鏈夊噺鐩夿uff
-    // /// </summary>
-    // /// <returns>鍑忕泭Buff鍒楄〃</returns>
-    // public virtual List<BuffInfo> GetDebuffs()
-    // {
-    //     return debuffList;
-    // }
-    
-    #endregion
     
     #region 鎴樻枟鐩稿叧鍑芥暟
     
-    /// <summary>
-    /// 鏀诲嚮鐩爣
-    /// </summary>
-    /// <param name="target">鏀诲嚮鐩爣</param>
-    /// <param name="damage">浼ゅ鍊�</param>
-    /// <param name="isCritical">鏄惁鏆村嚮</param>
-    /// <returns>瀹為檯閫犳垚鐨勪激瀹�</returns>
-    public virtual float AttackTarget(BattleObject target)
+    public virtual void AttackTarget(List<BattleObject> targets)
     {
-        // 瀛愮被瀹炵幇鍏蜂綋閫昏緫
-        return 0;
+        // 鎵剧鑷繁鏈�杩戠殑
+
+        if (0 == targets.Count) return;
+
+        BattleObject target = targets[0];
+
+        if (1 != targets.Count)
+        {
+            for (int i = 1; i < targets.Count; i++)
+            {
+                if (Vector3.Distance(cardGO.transform.position, targets[i].cardGO.transform.position) < Vector3.Distance(cardGO.transform.position, target.cardGO.transform.position))
+                {
+                    target = targets[i];
+                }
+            }
+        }
+
+        Vector3 tempPos = cardGO.transform.position;
+
+        motionBase.OnAttackAnimationComplete = () => {
+            // 鏀诲嚮鍔ㄧ敾缁撴潫涔嬪悗 鍥炲埌鍘熸潵鐨勪綅缃�
+
+            cardGO.transform.DOMove(tempPos, 1f).OnComplete(() => {
+                // motionBase.ClearEvent();// = null;
+
+                //  閫氱煡鏈鏀诲嚮琛屽姩缁撴潫
+                //  閫氳繃battleFieldId鏉ュ憡鐭attleFieldMgr
+            });  
+        };
+
+        cardGO.transform.DOMove(target.cardGO.transform.position, 1f).OnComplete(() => {
+            // 鎾斁鏀诲嚮鍔ㄧ敾
+            motionBase.OnAttackHitEvent = (int attackIndex) => {
+                for (int i = 0; i < targets.Count; i++)
+                {
+                    targets[i].UnderAttack(this);
+                }
+            };
+
+            //鏅敾鏄痟it1
+
+            motionBase.PlayAnimationEx(MotionName.atk1, false, new List<int>(){
+                5//鍋囪鏄�5甯� 鐩墠杩樻病鏈夋暟鎹�
+            });
+        });
+    }
+
+    public virtual void CastSkill(List<BattleObject> targets)
+    {
+        //  闇�涓嶉渶瑕乵ove 鏀诲嚮鐩爣鏄皝 
     }
     
-    /// <summary>
-    /// 琚敾鍑�
-    /// </summary>
-    /// <param name="attacker">鏀诲嚮鑰�</param>
-    /// <param name="damage">浼ゅ鍊�</param>
-    /// <param name="isCritical">鏄惁鏆村嚮</param>
-    /// <returns>瀹為檯鍙楀埌鐨勪激瀹�</returns>
     public virtual float UnderAttack(BattleObject attacker)
     {
-        // 瀛愮被瀹炵幇鍏蜂綋閫昏緫
         return 0;
     }
     
-    /// <summary>
-    /// 娌荤枟鐩爣
-    /// </summary>
-    /// <param name="target">娌荤枟鐩爣</param>
-    /// <param name="healAmount">娌荤枟閲�</param>
-    /// <param name="isCritical">鏄惁鏆村嚮</param>
-    /// <returns>瀹為檯娌荤枟閲�</returns>
     public virtual float HealTargets(List<BattleObject> targets)
     {
-        // 瀛愮被瀹炵幇鍏蜂綋閫昏緫
         return 0;
     }
     
-    /// <summary>
-    /// 琚不鐤�
-    /// </summary>
-    /// <param name="healer">娌荤枟鑰�</param>
-    /// <param name="healAmount">娌荤枟閲�</param>
-    /// <param name="isCritical">鏄惁鏆村嚮</param>
-    /// <returns>瀹為檯琚不鐤楅噺</returns>
     public virtual float BeHealed(BattleObject healer, float healAmount)
     {
-        // 瀛愮被瀹炵幇鍏蜂綋閫昏緫
         return 0;
     }
     
-    /// <summary>
-    /// 澶嶆椿鐩爣
-    /// </summary>
-    /// <param name="target">澶嶆椿鐩爣</param>
-    /// <param name="healthPercent">澶嶆椿鍚庣殑鐢熷懡鍊肩櫨鍒嗘瘮</param>
-    /// <returns>鏄惁澶嶆椿鎴愬姛</returns>
     public virtual bool Revive(BattleObject target)
     {
-        // 瀛愮被瀹炵幇鍏蜂綋閫昏緫
         return false;
     }
     
-    /// <summary>
-    /// 琚娲�
-    /// </summary>
-    /// <param name="reviver">澶嶆椿鑰�</param>
-    /// <param name="healthPercent">澶嶆椿鍚庣殑鐢熷懡鍊肩櫨鍒嗘瘮</param>
-    /// <returns>鏄惁琚娲绘垚鍔�</returns>
     public virtual bool BeRevived(BattleObject reviver, float healthPercent = 0.5f)
     {
-        // 瀛愮被瀹炵幇鍏蜂綋閫昏緫
         return false;
     }
     
@@ -209,35 +132,23 @@
     
     #region 杈呭姪鍑芥暟
     
-    /// <summary>
-    /// 鍒ゆ柇鏄惁涓烘晫瀵瑰叧绯�
-    /// </summary>
-    /// <param name="other">鍏朵粬鎴樻枟瀵硅薄</param>
-    /// <returns>鏄惁涓烘晫瀵瑰叧绯�</returns>
     public virtual bool IsEnemy(BattleObject other)
     {
         if (other == null) return false;
         
-        // 涓嶅悓闃佃惀涓烘晫瀵瑰叧绯�
         return Camp != other.Camp;
     }
     
-    /// <summary>
-    /// 鍒ゆ柇鏄惁涓哄弸濂藉叧绯�
-    /// </summary>
-    /// <param name="other">鍏朵粬鎴樻枟瀵硅薄</param>
-    /// <returns>鏄惁涓哄弸濂藉叧绯�</returns>
     public virtual bool IsFriendly(BattleObject other)
     {
         if (other == null) return false;
         
-        // 鐩稿悓闃佃惀涓哄弸濂藉叧绯�
         return Camp == other.Camp;
     }
 
     public virtual void Run()
     {
-        // 瀛愮被瀹炵幇鍏蜂綋閫昏緫
+        motionBase.Run();
     }
     
     #endregion
diff --git a/Main/Battle/BattleObject/BattleObjectFactory.cs b/Main/Battle/BattleObject/BattleObjectFactory.cs
new file mode 100644
index 0000000..50b8942
--- /dev/null
+++ b/Main/Battle/BattleObject/BattleObjectFactory.cs
@@ -0,0 +1,23 @@
+
+using System.Collections.Generic;
+using System;
+using UnityEngine;
+
+public class BattleObjectFactory
+{
+    public static BattleObject CreateBattleObject(TeamCard teamCard)
+    {
+        BattleObject battleObject = null;
+        // switch (teamCard.cardInfo.cardConfig.)
+        // {
+
+        // }
+
+        return battleObject;
+    }
+
+    public static void DestroyBattleObject(BattleObject battleObj)
+    {
+        
+    }
+}
\ No newline at end of file
diff --git a/Main/Common/FieldPrint.cs.meta b/Main/Battle/BattleObject/BattleObjectFactory.cs.meta
similarity index 83%
copy from Main/Common/FieldPrint.cs.meta
copy to Main/Battle/BattleObject/BattleObjectFactory.cs.meta
index 2954907..b408d72 100644
--- a/Main/Common/FieldPrint.cs.meta
+++ b/Main/Battle/BattleObject/BattleObjectFactory.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: e8426254dd294aa428e2078f8e48cd5e
+guid: c6bc9f2359387db48afd7d6762f5b566
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Battle/BattleObject/CardObject.cs b/Main/Battle/BattleObject/CardObject.cs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Main/Battle/BattleObject/CardObject.cs
diff --git a/Main/Common/FieldPrint.cs.meta b/Main/Battle/BattleObject/CardObject.cs.meta
similarity index 83%
copy from Main/Common/FieldPrint.cs.meta
copy to Main/Battle/BattleObject/CardObject.cs.meta
index 2954907..dd74d90 100644
--- a/Main/Common/FieldPrint.cs.meta
+++ b/Main/Battle/BattleObject/CardObject.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: e8426254dd294aa428e2078f8e48cd5e
+guid: 7379cb2482b831b43bb037d44c4239ec
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Battle/Motion/MotionBase.cs b/Main/Battle/Motion/MotionBase.cs
index a2b8cfe..9c2fddb 100644
--- a/Main/Battle/Motion/MotionBase.cs
+++ b/Main/Battle/Motion/MotionBase.cs
@@ -74,7 +74,7 @@
     /// 鍒濆鍖栧姩鐢荤粍浠�
     /// </summary>
     /// <param name="skeletonGraphic">楠ㄩ鍔ㄧ敾缁勪欢</param>
-    public virtual void Initialize(SkeletonGraphic skeletonGraphic)
+    public virtual void Init(SkeletonGraphic skeletonGraphic)
     {
         this.skeletonGraphic = skeletonGraphic;
         
diff --git a/Main/Battle/RecordPlayer.meta b/Main/Battle/RecordPlayer.meta
new file mode 100644
index 0000000..add8ebe
--- /dev/null
+++ b/Main/Battle/RecordPlayer.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4ee9cd11a2bf7a84fb6ff9b973614dcc
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/Battle/RecordPlayer/RecordAction.cs b/Main/Battle/RecordPlayer/RecordAction.cs
new file mode 100644
index 0000000..e657280
--- /dev/null
+++ b/Main/Battle/RecordPlayer/RecordAction.cs
@@ -0,0 +1,21 @@
+
+using System.Collections.Generic;
+using System;
+
+
+public class RecordAction
+{
+    public RecordActionType actionType;
+    public int casterId;
+
+    public bool IsFinished()
+    {
+        return false;
+    }
+
+    public void Run()
+    {
+        
+    }
+
+}
\ No newline at end of file
diff --git a/Main/Common/FieldPrint.cs.meta b/Main/Battle/RecordPlayer/RecordAction.cs.meta
similarity index 83%
copy from Main/Common/FieldPrint.cs.meta
copy to Main/Battle/RecordPlayer/RecordAction.cs.meta
index 2954907..5dca156 100644
--- a/Main/Common/FieldPrint.cs.meta
+++ b/Main/Battle/RecordPlayer/RecordAction.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: e8426254dd294aa428e2078f8e48cd5e
+guid: a97982175afec5a4cb25b9a2479808d4
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Battle/RecordPlayer/RecordActionType.cs b/Main/Battle/RecordPlayer/RecordActionType.cs
new file mode 100644
index 0000000..e680559
--- /dev/null
+++ b/Main/Battle/RecordPlayer/RecordActionType.cs
@@ -0,0 +1,10 @@
+
+public enum RecordActionType
+{
+    None,
+    Attack,//鏀诲嚮
+    Heal,//娌荤枟
+    Buff,//澧炵泭&鍑忕泭
+    Guard,//鏍兼尅
+    Skill,//鎶�鑳�
+}
diff --git a/Main/Common/FieldPrint.cs.meta b/Main/Battle/RecordPlayer/RecordActionType.cs.meta
similarity index 83%
copy from Main/Common/FieldPrint.cs.meta
copy to Main/Battle/RecordPlayer/RecordActionType.cs.meta
index 2954907..16a1702 100644
--- a/Main/Common/FieldPrint.cs.meta
+++ b/Main/Battle/RecordPlayer/RecordActionType.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: e8426254dd294aa428e2078f8e48cd5e
+guid: 4402c0d2b31ada242a0ed9c262de1d3a
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Battle/RecordPlayer/RecordPlayer.cs b/Main/Battle/RecordPlayer/RecordPlayer.cs
new file mode 100644
index 0000000..be05643
--- /dev/null
+++ b/Main/Battle/RecordPlayer/RecordPlayer.cs
@@ -0,0 +1,59 @@
+using System.Collections.Generic;
+using System;
+using UnityEngine;
+
+public class RecordPlayer
+{
+    protected BattleField battleField;
+
+    private Queue<RecordAction> recordActionQueue = new Queue<RecordAction>();
+
+    protected RecordAction currentRecordAction;
+
+    public void Init(BattleField _battleField)
+    {
+        battleField = _battleField;
+    }
+
+    public void PlayRecord(RecordAction recordAction)
+    {
+        recordActionQueue.Enqueue(recordAction);
+    }
+
+    public void PlayRecord(List<RecordAction> recordActions)
+    {
+        for (int i = 0; i < recordActions.Count; i++)
+        {
+            recordActionQueue.Enqueue(recordActions[i]);
+        }
+    }
+
+    public void StartGame()
+    {
+
+    }
+
+    public void PlayNext()
+    {
+        
+    }
+
+    public void Run()
+    {
+        if (recordActionQueue.Count == 0)
+        {
+            return;
+        }
+
+        if (currentRecordAction == null || currentRecordAction.IsFinished())
+        {
+            currentRecordAction = recordActionQueue.Dequeue();
+        }
+
+        if (currentRecordAction != null)
+        {
+            currentRecordAction.Run();
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/Main/Common/FieldPrint.cs.meta b/Main/Battle/RecordPlayer/RecordPlayer.cs.meta
similarity index 83%
copy from Main/Common/FieldPrint.cs.meta
copy to Main/Battle/RecordPlayer/RecordPlayer.cs.meta
index 2954907..70bace1 100644
--- a/Main/Common/FieldPrint.cs.meta
+++ b/Main/Battle/RecordPlayer/RecordPlayer.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: e8426254dd294aa428e2078f8e48cd5e
+guid: 8379b2c101d7f194f884daf79705726c
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Card/CardInfo.Properties.cs b/Main/Card/CardInfo.Properties.cs
index da0b7ce..6b6c357 100644
--- a/Main/Card/CardInfo.Properties.cs
+++ b/Main/Card/CardInfo.Properties.cs
@@ -8,6 +8,17 @@
     // 鍙嶅嚮鏃跺繀鍛戒腑鐩爣
     // 姝﹀皢灞炴�ч渶鏃舵椂璁$畻锛屾牴鎹妧鑳姐�丅UFF銆佽澶囩瓑灞炴�ф潵婧愭敼鍙樿�屾敼鍙�
 
+    // 鍩虹灞炴��
+    // 鐢熷懡
+    public int hp = 0;
+    // 鏀诲嚮鍔�
+    public int attack = 0;
+    // 闃插尽鍔�
+    public int defense = 0;
+    // 閫熷害
+    public int speed = 0;
+
+
 
     //鎴樻枟灞炴��
     //闂伩姒傜巼
diff --git a/Main/Common/EventBroadcast.cs b/Main/Common/EventBroadcast.cs
new file mode 100644
index 0000000..68e51d8
--- /dev/null
+++ b/Main/Common/EventBroadcast.cs
@@ -0,0 +1,271 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 浜嬩欢骞挎挱绯荤粺
+/// </summary>
+public class EventBroadcast
+{
+    private static EventBroadcast _instance;
+    public static EventBroadcast Instance
+    {
+        get
+        {
+            if (_instance == null)
+            {
+                _instance = new EventBroadcast();
+            }
+            return _instance;
+        }
+    }
+
+    // 浜嬩欢瀛楀吀锛屽瓨鍌ㄤ簨浠禝D鍜屽搴旂殑濮旀墭鍒楄〃
+    private Dictionary<string, Delegate> eventDict = new Dictionary<string, Delegate>();
+
+    // 闃叉澶栭儴瀹炰緥鍖�
+    private EventBroadcast() { }
+
+    #region 娣诲姞鐩戝惉
+
+    /// <summary>
+    /// 娣诲姞鏃犲弬浜嬩欢鐩戝惉
+    /// </summary>
+    /// <param name="eventId">浜嬩欢ID</param>
+    /// <param name="callback">鍥炶皟鍑芥暟</param>
+    public void AddListener(string eventId, Action callback)
+    {
+        OnListenerAdding(eventId, callback);
+        eventDict[eventId] = (Action)eventDict[eventId] + callback;
+    }
+
+    /// <summary>
+    /// 娣诲姞鍗曞弬鏁颁簨浠剁洃鍚�
+    /// </summary>
+    public void AddListener<T>(string eventId, Action<T> callback)
+    {
+        OnListenerAdding(eventId, callback);
+        eventDict[eventId] = (Action<T>)eventDict[eventId] + callback;
+    }
+
+    /// <summary>
+    /// 娣诲姞鍙屽弬鏁颁簨浠剁洃鍚�
+    /// </summary>
+    public void AddListener<T, U>(string eventId, Action<T, U> callback)
+    {
+        OnListenerAdding(eventId, callback);
+        eventDict[eventId] = (Action<T, U>)eventDict[eventId] + callback;
+    }
+
+    /// <summary>
+    /// 娣诲姞涓夊弬鏁颁簨浠剁洃鍚�
+    /// </summary>
+    public void AddListener<T, U, V>(string eventId, Action<T, U, V> callback)
+    {
+        OnListenerAdding(eventId, callback);
+        eventDict[eventId] = (Action<T, U, V>)eventDict[eventId] + callback;
+    }
+
+    #endregion
+
+    #region 绉婚櫎鐩戝惉
+
+    /// <summary>
+    /// 绉婚櫎鏃犲弬浜嬩欢鐩戝惉
+    /// </summary>
+    /// <param name="eventId">浜嬩欢ID</param>
+    /// <param name="callback">鍥炶皟鍑芥暟</param>
+    public void RemoveListener(string eventId, Action callback)
+    {
+        if (OnListenerRemoving(eventId, callback))
+        {
+            eventDict[eventId] = (Action)eventDict[eventId] - callback;
+            OnListenerRemoved(eventId);
+        }
+    }
+
+    /// <summary>
+    /// 绉婚櫎鍗曞弬鏁颁簨浠剁洃鍚�
+    /// </summary>
+    public void RemoveListener<T>(string eventId, Action<T> callback)
+    {
+        if (OnListenerRemoving(eventId, callback))
+        {
+            eventDict[eventId] = (Action<T>)eventDict[eventId] - callback;
+            OnListenerRemoved(eventId);
+        }
+    }
+
+    /// <summary>
+    /// 绉婚櫎鍙屽弬鏁颁簨浠剁洃鍚�
+    /// </summary>
+    public void RemoveListener<T, U>(string eventId, Action<T, U> callback)
+    {
+        if (OnListenerRemoving(eventId, callback))
+        {
+            eventDict[eventId] = (Action<T, U>)eventDict[eventId] - callback;
+            OnListenerRemoved(eventId);
+        }
+    }
+
+    /// <summary>
+    /// 绉婚櫎涓夊弬鏁颁簨浠剁洃鍚�
+    /// </summary>
+    public void RemoveListener<T, U, V>(string eventId, Action<T, U, V> callback)
+    {
+        if (OnListenerRemoving(eventId, callback))
+        {
+            eventDict[eventId] = (Action<T, U, V>)eventDict[eventId] - callback;
+            OnListenerRemoved(eventId);
+        }
+    }
+
+    #endregion
+
+    #region 瑙﹀彂浜嬩欢
+
+    /// <summary>
+    /// 瑙﹀彂鏃犲弬浜嬩欢
+    /// </summary>
+    /// <param name="eventId">浜嬩欢ID</param>
+    public void Broadcast(string eventId)
+    {
+        if (eventDict.TryGetValue(eventId, out Delegate d))
+        {
+            Action callback = d as Action;
+            if (callback != null)
+            {
+                callback();
+            }
+            else
+            {
+                Debug.LogError($"浜嬩欢 {eventId} 鐨勫鎵樼被鍨嬩笉鍖归厤");
+            }
+        }
+    }
+
+    /// <summary>
+    /// 瑙﹀彂鍗曞弬鏁颁簨浠�
+    /// </summary>
+    public void Broadcast<T>(string eventId, T arg)
+    {
+        if (eventDict.TryGetValue(eventId, out Delegate d))
+        {
+            Action<T> callback = d as Action<T>;
+            if (callback != null)
+            {
+                callback(arg);
+            }
+            else
+            {
+                Debug.LogError($"浜嬩欢 {eventId} 鐨勫鎵樼被鍨嬩笉鍖归厤");
+            }
+        }
+    }
+
+    /// <summary>
+    /// 瑙﹀彂鍙屽弬鏁颁簨浠�
+    /// </summary>
+    public void Broadcast<T, U>(string eventId, T arg1, U arg2)
+    {
+        if (eventDict.TryGetValue(eventId, out Delegate d))
+        {
+            Action<T, U> callback = d as Action<T, U>;
+            if (callback != null)
+            {
+                callback(arg1, arg2);
+            }
+            else
+            {
+                Debug.LogError($"浜嬩欢 {eventId} 鐨勫鎵樼被鍨嬩笉鍖归厤");
+            }
+        }
+    }
+
+    /// <summary>
+    /// 瑙﹀彂涓夊弬鏁颁簨浠�
+    /// </summary>
+    public void Broadcast<T, U, V>(string eventId, T arg1, U arg2, V arg3)
+    {
+        if (eventDict.TryGetValue(eventId, out Delegate d))
+        {
+            Action<T, U, V> callback = d as Action<T, U, V>;
+            if (callback != null)
+            {
+                callback(arg1, arg2, arg3);
+            }
+            else
+            {
+                Debug.LogError($"浜嬩欢 {eventId} 鐨勫鎵樼被鍨嬩笉鍖归厤");
+            }
+        }
+    }
+
+    #endregion
+
+    #region 杈呭姪鏂规硶
+
+    /// <summary>
+    /// 娣诲姞鐩戝惉鍓嶇殑澶勭悊
+    /// </summary>
+    private void OnListenerAdding(string eventId, Delegate callback)
+    {
+        if (!eventDict.ContainsKey(eventId))
+        {
+            eventDict.Add(eventId, null);
+        }
+
+        Delegate d = eventDict[eventId];
+        if (d != null && d.GetType() != callback.GetType())
+        {
+            Debug.LogError($"灏濊瘯涓轰簨浠� {eventId} 娣诲姞涓嶅悓绫诲瀷鐨勫鎵橈紝褰撳墠绫诲瀷锛歿d.GetType()}锛屽皾璇曟坊鍔犵被鍨嬶細{callback.GetType()}");
+        }
+    }
+
+    /// <summary>
+    /// 绉婚櫎鐩戝惉鍓嶇殑澶勭悊
+    /// </summary>
+    private bool OnListenerRemoving(string eventId, Delegate callback)
+    {
+        if (!eventDict.ContainsKey(eventId))
+        {
+            Debug.LogWarning($"灏濊瘯绉婚櫎涓嶅瓨鍦ㄧ殑浜嬩欢 {eventId}");
+            return false;
+        }
+
+        Delegate d = eventDict[eventId];
+        if (d == null)
+        {
+            Debug.LogWarning($"灏濊瘯绉婚櫎浜嬩欢 {eventId} 鐨勭┖濮旀墭");
+            return false;
+        }
+        else if (d.GetType() != callback.GetType())
+        {
+            Debug.LogError($"灏濊瘯涓轰簨浠� {eventId} 绉婚櫎涓嶅悓绫诲瀷鐨勫鎵橈紝褰撳墠绫诲瀷锛歿d.GetType()}锛屽皾璇曠Щ闄ょ被鍨嬶細{callback.GetType()}");
+            return false;
+        }
+
+        return true;
+    }
+
+    /// <summary>
+    /// 绉婚櫎鐩戝惉鍚庣殑澶勭悊
+    /// </summary>
+    private void OnListenerRemoved(string eventId)
+    {
+        if (eventDict[eventId] == null)
+        {
+            eventDict.Remove(eventId);
+        }
+    }
+
+    /// <summary>
+    /// 娓呯┖鎵�鏈変簨浠�
+    /// </summary>
+    public void ClearAllEvents()
+    {
+        eventDict.Clear();
+    }
+
+    #endregion
+}
\ No newline at end of file
diff --git a/Main/Common/FieldPrint.cs.meta b/Main/Common/EventBroadcast.cs.meta
similarity index 83%
copy from Main/Common/FieldPrint.cs.meta
copy to Main/Common/EventBroadcast.cs.meta
index 2954907..abbb3c6 100644
--- a/Main/Common/FieldPrint.cs.meta
+++ b/Main/Common/EventBroadcast.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: e8426254dd294aa428e2078f8e48cd5e
+guid: bbd3b492fe5154d4fb0627f43bcdf214
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Common/EventName.cs b/Main/Common/EventName.cs
new file mode 100644
index 0000000..b457b3f
--- /dev/null
+++ b/Main/Common/EventName.cs
@@ -0,0 +1,7 @@
+
+
+public class EventName
+{
+    public const string BATTLE_ACTION_OVER = "BATTLE_ACTION_OVER"; //鎴樻枟 琛屼负缁撴潫浜�(涓�涓垬鎶ユ挱瀹�)
+
+}
\ No newline at end of file
diff --git a/Main/Common/FieldPrint.cs.meta b/Main/Common/EventName.cs.meta
similarity index 83%
copy from Main/Common/FieldPrint.cs.meta
copy to Main/Common/EventName.cs.meta
index 2954907..49062d1 100644
--- a/Main/Common/FieldPrint.cs.meta
+++ b/Main/Common/EventName.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: e8426254dd294aa428e2078f8e48cd5e
+guid: 4ff830a863c35ec4ca5ccdf718064055
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Common/FieldPrint.cs b/Main/Common/FieldPrint.cs
deleted file mode 100644
index 1c7b1ee..0000000
--- a/Main/Common/FieldPrint.cs
+++ /dev/null
@@ -1,100 +0,0 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System;
-
-public class FieldPrint
-{
-
-    public static string PrintFields(object _object)
-    {
-        if (_object == null)
-        {
-            return string.Empty;
-        }
-
-        var fields = _object.GetType().GetFields();
-        var contents = new string[fields.Length];
-        for (int i = 0; i < fields.Length; i++)
-        {
-            var field = fields[i];
-            var fieldContent = field.GetValue(_object);
-            contents[i] = string.Format("\"{0}\":{1}", field.Name, fieldContent);
-        }
-
-        return string.Join(";  ", contents);
-    }
-
-    public static List<string> PrintFieldsExpand(object _object, bool _includeArray)
-    {
-        if (_object == null)
-        {
-            return null;
-        }
-
-        var fields = _object.GetType().GetFields();
-        var contents = new List<string>();
-        for (int i = 0; i < fields.Length; i++)
-        {
-            var field = fields[i];
-            var fieldContent = field.GetValue(_object);
-            if (fieldContent is Array)
-            {
-                contents.AddRange(PrintArray(field.Name, fieldContent));
-            }
-            else
-            {
-                contents.Add(string.Format("\"{0}\":{1}", field.Name, fieldContent));
-            }
-        }
-
-        return contents;
-    }
-
-    private static string[] PrintArray(string _name, object _object)
-    {
-        var objects = _object as Array;
-        var contents = new string[objects.Length];
-        for (int i = 0; i < objects.Length; i++)
-        {
-            var o = objects.GetValue(i);
-            var type = o.GetType();
-
-            if (type.Name == "String")
-            {
-                contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (String)o);
-            }
-            else if (type.Name == "UInt32")
-            {
-                contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (UInt32)o);
-            }
-            else if (type.Name == "Byte")
-            {
-                contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (Byte)o);
-            }
-            else if (type.Name == "UInt16")
-            {
-                contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (UInt16)o);
-            }
-            else if (type.Name == "Single")
-            {
-                contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (float)o);
-            }
-            else if (type.Name == "Boolean")
-            {
-                contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (bool)o);
-            }
-            else if (type.Name == "Int32")
-            {
-                contents[i] = string.Format("\"{0}\"[{1}]-->({2}){3}", _name, i, type.Name, (int)o);
-            }
-            else
-            {
-                contents[i] = string.Format("\"{0}\"[{1}]-->{2}", _name, i, PrintFields(o));
-            }
-        }
-
-        return contents;
-    }
-
-}
diff --git a/Main/Main.cs b/Main/Main.cs
index bee8a07..5cdc543 100644
--- a/Main/Main.cs
+++ b/Main/Main.cs
@@ -55,7 +55,6 @@
         Debug.Log("鍒濆鍖栨父鎴忓満鏅�");
 
         // 鍒濆鍖栨父鎴忕郴缁�
-        managers.Add(PlaceManager.Instance);
         managers.Add(BattleManager.Instance);
 
         foreach (var manager in managers)
diff --git a/Main/Manager/GameSystemManager/BattleManager.cs b/Main/Manager/GameSystemManager/BattleManager.cs
index a52f3c3..5d7aa58 100644
--- a/Main/Manager/GameSystemManager/BattleManager.cs
+++ b/Main/Manager/GameSystemManager/BattleManager.cs
@@ -1,9 +1,17 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+
+
 public class BattleManager : GameSystemManager<BattleManager>
 {
+    protected Dictionary<int, BattleField> battleFields = new Dictionary<int, BattleField>();
+
+
     public override void Init()
     {
         base.Init();
-        
+        EventBroadcast.Instance.AddListener<int, int>(EventName.BATTLE_ACTION_OVER, OnActionOver);
     }
 
     public override void Release()
@@ -11,4 +19,25 @@
         base.Release();
     }
 
+    private void OnActionOver(int battleFieldId, int attackId)
+    {
+        BattleField battleField = null;
+        if (battleFields.TryGetValue(battleFieldId, out battleField))
+        {
+            battleField.OnActionOver(attackId);
+        }
+        else
+        {
+            Debug.LogError("BattleManager OnActionOver battleFieldId:" + battleFieldId + " not find");
+        }
+    }
+
+    public void Run()
+    {
+        foreach (var battleField in battleFields)
+        {
+            battleField.Value.Run();
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/Main/Manager/GameSystemManager/PlaceManager.cs b/Main/Manager/GameSystemManager/PlaceManager.cs
deleted file mode 100644
index 2573e84..0000000
--- a/Main/Manager/GameSystemManager/PlaceManager.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-public class PlaceManager : GameSystemManager<PlaceManager>
-{
-    public PlaceField placeField;
-
-    public override void Init()
-    {
-        base.Init();
-        
-    }
-
-    public override void Release()
-    {
-        base.Release();
-    }
-
-    //  褰撻槦浼嶈窡绔犺妭淇℃伅鏁版嵁閮芥湁涔嬪悗灏卞彲浠ュ垱寤哄満鏅簡
-    public void CreatePlaceField()
-    {   
-
-    }
-}
\ No newline at end of file
diff --git a/Main/Manager/GameSystemManager/PlaceManager.cs.meta b/Main/Manager/GameSystemManager/PlaceManager.cs.meta
deleted file mode 100644
index 6c82cce..0000000
--- a/Main/Manager/GameSystemManager/PlaceManager.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: dc73049956fa1a241a3aeac4d7fdd7af
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/NetworkPackage/GameNetSystem.cs b/Main/NetworkPackage/GameNetSystem.cs
index 9ba9f44..f67a17b 100644
--- a/Main/NetworkPackage/GameNetSystem.cs
+++ b/Main/NetworkPackage/GameNetSystem.cs
@@ -30,9 +30,9 @@
                     case NetState.AccountLogin:
                         accountLoginState.OnExit();
                         break;
-                    case NetState.CreateOrSelectRole:
-                        // createOrSelectRoleState.OnExit();
-                        break;
+                    // case NetState.CreateOrSelectRole:
+                    //     // createOrSelectRoleState.OnExit();
+                    //     break;
                     case NetState.RoleLogin:
                         roleLoginState.OnExit();
                         break;
@@ -53,9 +53,9 @@
                     case NetState.AccountLogin:
                         accountLoginState.OnEnter();
                         break;
-                    case NetState.CreateOrSelectRole:
-                        // createOrSelectRoleState.OnEnter();
-                        break;
+                    // case NetState.CreateOrSelectRole:
+                    //     // createOrSelectRoleState.OnEnter();
+                    //     break;
                     case NetState.RoleLogin:
                         roleLoginState.OnEnter();
                         break;
@@ -409,7 +409,7 @@
     {
         NerverConnect = 1,
         AccountLogin = 2,
-        CreateOrSelectRole = 3,
+        // CreateOrSelectRole = 3,
         RoleLogin = 4,
         Connected = 5,
         DisConnected = 6,
diff --git a/Main/Place/PlaceDataStructs.cs b/Main/Place/PlaceDataStructs.cs
deleted file mode 100644
index 19f5af1..0000000
--- a/Main/Place/PlaceDataStructs.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-/// <summary>
-/// 鍗曚綅鏁版嵁
-/// </summary>
-public class UnitData
-{
-    public int ID { get; set; }
-    public string Name { get; set; }
-    public int HP { get; set; }
-    public int Attack { get; set; }
-    public float AttackSpeed { get; set; }
-    public float MoveSpeed { get; set; }
-    public string PrefabPath { get; set; }
-}
-
-/// <summary>
-/// 绔犺妭鏁版嵁
-/// </summary>
-public class ChapterData
-{
-    public int ID { get; set; }
-    public string Name { get; set; }
-    public int MapId { get; set; }
-    public List<WaveData> Waves { get; set; }
-    
-    /// <summary>
-    /// 鑾峰彇鎸囧畾娉㈡鐨勬晫浜哄垪琛�
-    /// </summary>
-    public List<int> GetEnemiesForWave(int wave)
-    {
-        if (wave <= 0 || wave > Waves.Count)
-            return new List<int>();
-            
-        return Waves[wave - 1].EnemyIds;
-    }
-    
-    /// <summary>
-    /// 鑾峰彇鎸囧畾娉㈡鐨勬帀钀界墿鍝�
-    /// </summary>
-    public List<DropItemData> GetDropsForWave(int wave)
-    {
-        if (wave <= 0 || wave > Waves.Count)
-            return new List<DropItemData>();
-            
-        return Waves[wave - 1].DropItems;
-    }
-}
-
-/// <summary>
-/// 娉㈡鏁版嵁
-/// </summary>
-public class WaveData
-{
-    public int WaveIndex { get; set; }
-    public List<int> EnemyIds { get; set; }
-    public List<DropItemData> DropItems { get; set; }
-}
-
-/// <summary>
-/// 鐗╁搧绫诲瀷
-/// </summary>
-public enum ItemType
-{
-    Gold,
-    Diamond,
-    Item
-}
-
-/// <summary>
-/// 鎺夎惤鐗╁搧鏁版嵁
-/// </summary>
-public class DropItemData
-{
-    public int ID { get; set; }
-    public ItemType ItemType { get; set; }
-    public int ItemId { get; set; }
-    public int Amount { get; set; }
-    public float DropRate { get; set; }
-    public string IconPath { get; set; }
-}
\ No newline at end of file
diff --git a/Main/Place/PlaceDataStructs.cs.meta b/Main/Place/PlaceDataStructs.cs.meta
deleted file mode 100644
index 2064cc8..0000000
--- a/Main/Place/PlaceDataStructs.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 4541140280fac3541b7ec64b9acd2f20
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/Place/PlaceDrop.cs b/Main/Place/PlaceDrop.cs
deleted file mode 100644
index 3abd5e0..0000000
--- a/Main/Place/PlaceDrop.cs
+++ /dev/null
@@ -1,143 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-/// <summary>
-/// 鏀剧疆鎴樻枟鎺夎惤鐗╁搧绫�
-/// </summary>
-public class PlaceDrop
-{
-    // 鎺夎惤鐗╁搧鏁版嵁
-    public DropItemData DropData { get; private set; }
-    
-    // 浣嶇疆
-    public Vector2 Position { get; private set; }
-    
-    // 鐘舵��
-    private enum DropState
-    {
-        Dropping,   // 鎺夎惤涓�
-        Waiting,    // 绛夊緟鏀堕泦
-        Flying      // 椋炲悜UI
-    }
-    
-    private DropState currentState = DropState.Dropping;
-    
-    // 璁℃椂鍣�
-    private float waitTimer = 0f;
-    private float waitDuration = 1.5f; // 绛夊緟1.5绉掑悗鑷姩鏀堕泦
-    
-    // 椋炶鐩稿叧
-    private Vector2 targetPosition;
-    private float flySpeed = 10f;
-    
-    // 鏄惁搴旇琚敹闆�
-    public bool ShouldCollect { get; private set; } = false;
-    
-    // 鎺夎惤鍔ㄧ敾璁℃椂鍣�
-    private float dropAnimTimer = 0f;
-    private float dropAnimDuration = 0.5f;
-    private Vector2 startPosition;
-    private Vector2 endPosition;
-    
-    /// <summary>
-    /// 鏋勯�犲嚱鏁�
-    /// </summary>
-    public PlaceDrop(DropItemData dropData)
-    {
-        DropData = dropData;
-        
-        // 闅忔満鎺夎惤浣嶇疆锛堝湪鍦烘櫙涓績闄勮繎锛�
-        startPosition = new Vector2(Random.Range(-2f, 2f), 5f);
-        endPosition = new Vector2(
-            startPosition.x + Random.Range(-1f, 1f),
-            Random.Range(-1f, 1f)
-        );
-        
-        Position = startPosition;
-        
-        // 璁剧疆椋炲悜鐨勭洰鏍囦綅缃紙UI涓婄殑璐у竵鏍忎綅缃級
-        targetPosition = new Vector2(8f, 4f); // 绀轰緥浣嶇疆锛屽疄闄呭簲璇ユ槸UI涓揣甯佹爮鐨勪笘鐣屽潗鏍�
-    }
-    
-    /// <summary>
-    /// 鏇存柊鎺夎惤鐗╁搧鐘舵��
-    /// </summary>
-    public void Update(float deltaTime)
-    {
-        switch (currentState)
-        {
-            case DropState.Dropping:
-                UpdateDropping(deltaTime);
-                break;
-                
-            case DropState.Waiting:
-                UpdateWaiting(deltaTime);
-                break;
-                
-            case DropState.Flying:
-                UpdateFlying(deltaTime);
-                break;
-        }
-    }
-    
-    /// <summary>
-    /// 鏇存柊鎺夎惤鍔ㄧ敾
-    /// </summary>
-    private void UpdateDropping(float deltaTime)
-    {
-        dropAnimTimer += deltaTime;
-        float t = Mathf.Clamp01(dropAnimTimer / dropAnimDuration);
-        
-        // 浣跨敤浜屾璐濆灏旀洸绾挎ā鎷熸帀钀芥晥鏋�
-        Position = Vector2.Lerp(startPosition, endPosition, t);
-        
-        // 鎺夎惤鍔ㄧ敾瀹屾垚鍚庡垏鎹㈠埌绛夊緟鐘舵��
-        if (t >= 1.0f)
-        {
-            currentState = DropState.Waiting;
-            waitTimer = 0f;
-        }
-    }
-    
-    /// <summary>
-    /// 鏇存柊绛夊緟鐘舵��
-    /// </summary>
-    private void UpdateWaiting(float deltaTime)
-    {
-        // 绛夊緟涓�娈垫椂闂村悗鑷姩鏀堕泦
-        waitTimer += deltaTime;
-        if (waitTimer >= waitDuration)
-        {
-            currentState = DropState.Flying;
-        }
-    }
-    
-    /// <summary>
-    /// 鏇存柊椋炶鐘舵��
-    /// </summary>
-    private void UpdateFlying(float deltaTime)
-    {
-        // 璁$畻椋炶鏂瑰悜
-        Vector2 direction = (targetPosition - Position).normalized;
-        
-        // 鏇存柊浣嶇疆
-        Position += direction * flySpeed * deltaTime;
-        
-        // 妫�鏌ユ槸鍚﹀埌杈剧洰鏍�
-        float distanceToTarget = Vector2.Distance(Position, targetPosition);
-        if (distanceToTarget < 0.1f)
-        {
-            // 鍒拌揪鐩爣锛屾爣璁颁负搴旇琚敹闆�
-            ShouldCollect = true;
-        }
-    }
-    
-    /// <summary>
-    /// 鎵嬪姩鏀堕泦鐗╁搧
-    /// </summary>
-    public void Collect()
-    {
-        currentState = DropState.Flying;
-    }
-}
\ No newline at end of file
diff --git a/Main/Place/PlaceDrop.cs.meta b/Main/Place/PlaceDrop.cs.meta
deleted file mode 100644
index a1ee1ad..0000000
--- a/Main/Place/PlaceDrop.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 070f25c487448bb44ac2134e1290d5f0
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/Place/PlaceField.cs b/Main/Place/PlaceField.cs
deleted file mode 100644
index bf2ab03..0000000
--- a/Main/Place/PlaceField.cs
+++ /dev/null
@@ -1,406 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System;
-
-/// <summary>
-/// 鏀剧疆鎴樻枟鍦哄湴绫伙紝绠$悊鎴樻枟鍦烘櫙涓殑鎵�鏈夊厓绱�
-/// </summary>
-public class PlaceField
-{
-
-    // 褰撳墠绔犺妭淇℃伅
-    private ChapterData currentChapter;
-    
-    // 鍦烘櫙涓殑鎵�鏈夊崟浣�
-    private List<PlaceUnit> allUnits = new List<PlaceUnit>();
-    
-    // 鐜╁鍗曚綅鍒楄〃
-    private List<PlaceUnit> playerUnits = new List<PlaceUnit>();
-    
-    // 鏁屼汉鍗曚綅鍒楄〃
-    private List<PlaceUnit> enemyUnits = new List<PlaceUnit>();
-    
-    // 鍦烘櫙涓殑鎺夎惤鐗╁搧
-    private List<PlaceDrop> dropItems = new List<PlaceDrop>();
-    
-    // 鎴樻枟鐘舵��
-    public enum BattleState
-    {
-        Preparing,  // 鍑嗗涓�
-        Fighting,   // 鎴樻枟涓�
-        Completed,  // 鎴樻枟瀹屾垚
-        Waiting     // 绛夊緟涓嬩竴鍦�
-    }
-    
-    public BattleState CurrentState { get; private set; } = BattleState.Preparing;
-    
-    // 鎴樻枟瀹屾垚浜嬩欢
-    public event Action OnBattleCompleted;
-    
-    // 鎺夎惤鐗╁搧鏀堕泦浜嬩欢
-    public event Action<DropItemData> OnItemCollected;
-    
-    // 绛夊緟璁℃椂鍣�
-    private float waitTimer = 0f;
-    private const float WAIT_DURATION = 2f; // 鎴樻枟缁撴潫鍚庣瓑寰�2绉�
-    
-    /// <summary>
-    /// 鍒濆鍖栨垬鏂楀満鏅�
-    /// </summary>
-    /// <param name="chapterId">绔犺妭ID</param>
-    public void InitBattleField(int chapterId)
-    {
-        Debug.Log($"鍒濆鍖栨垬鏂楀満鍦�: 绔犺妭{chapterId}");
-        
-        // 娓呯┖鍦烘櫙
-        ClearField();
-        
-        // 鍔犺浇绔犺妭鏁版嵁
-        LoadChapterData(chapterId);
-        
-        // 鍔犺浇鍦板浘鑳屾櫙
-        LoadMapBackground();
-        
-        // 鐢熸垚鐜╁闃靛
-        SpawnPlayerUnits();
-        
-        // 鐢熸垚鏁屾柟鍗曚綅
-        SpawnEnemyUnits();
-        
-        // 璁剧疆鎴樻枟鐘舵�佷负鍑嗗涓�
-        CurrentState = BattleState.Preparing;
-    }
-    
-    /// <summary>
-    /// 寮�濮嬫垬鏂�
-    /// </summary>
-    public void StartBattle()
-    {
-        if (CurrentState != BattleState.Preparing && CurrentState != BattleState.Waiting)
-            return;
-            
-        Debug.Log("寮�濮嬫垬鏂�");
-        CurrentState = BattleState.Fighting;
-        
-        // 閫氱煡鎵�鏈夊崟浣嶅紑濮嬫垬鏂�
-        foreach (var unit in allUnits)
-        {
-            unit.StartBattle();
-        }
-    }
-    
-    /// <summary>
-    /// 鏇存柊鎴樺満鐘舵��
-    /// </summary>
-    public void UpdateField(float deltaTime)
-    {
-        switch (CurrentState)
-        {
-            case BattleState.Fighting:
-                UpdateFighting(deltaTime);
-                break;
-                
-            case BattleState.Completed:
-                UpdateCompleted(deltaTime);
-                break;
-                
-            case BattleState.Waiting:
-                UpdateWaiting(deltaTime);
-                break;
-        }
-    }
-    
-    /// <summary>
-    /// 鏇存柊鎴樻枟鐘舵��
-    /// </summary>
-    private void UpdateFighting(float deltaTime)
-    {
-        // 鏇存柊鎵�鏈夊崟浣�
-        for (int i = allUnits.Count - 1; i >= 0; i--)
-        {
-            if (i < allUnits.Count)
-            {
-                allUnits[i].UpdateUnit(deltaTime);
-            }
-        }
-        
-        // 妫�鏌ユ垬鏂楁槸鍚︾粨鏉�
-        CheckBattleEnd();
-        
-        // 鏇存柊鎺夎惤鐗╁搧
-        UpdateDropItems(deltaTime);
-    }
-    
-    /// <summary>
-    /// 鏇存柊鎴樻枟瀹屾垚鐘舵��
-    /// </summary>
-    private void UpdateCompleted(float deltaTime)
-    {
-        // 鏇存柊鎺夎惤鐗╁搧
-        UpdateDropItems(deltaTime);
-        
-        // 妫�鏌ユ槸鍚︽墍鏈夋帀钀界墿鍝侀兘宸叉敹闆�
-        bool allItemsCollected = true;
-        foreach (var item in dropItems)
-        {
-            if (!item.ShouldCollect)
-            {
-                allItemsCollected = false;
-                break;
-            }
-        }
-        
-        // 濡傛灉鎵�鏈夌墿鍝侀兘宸叉敹闆嗭紝杩涘叆绛夊緟鐘舵��
-        if (allItemsCollected && dropItems.Count > 0)
-        {
-            CurrentState = BattleState.Waiting;
-            waitTimer = 0f;
-        }
-        // 濡傛灉娌℃湁鎺夎惤鐗╁搧锛岀洿鎺ヨ繘鍏ョ瓑寰呯姸鎬�
-        else if (dropItems.Count == 0)
-        {
-            CurrentState = BattleState.Waiting;
-            waitTimer = 0f;
-        }
-    }
-    
-    /// <summary>
-    /// 鏇存柊绛夊緟鐘舵��
-    /// </summary>
-    private void UpdateWaiting(float deltaTime)
-    {
-        waitTimer += deltaTime;
-        
-        // 绛夊緟鏃堕棿缁撴潫鍚庯紝寮�濮嬩笅涓�鍦烘垬鏂�
-        if (waitTimer >= WAIT_DURATION)
-        {
-            // 娓呯悊鎴樺満
-            ClearField();
-            
-            // 閲嶆柊鍒濆鍖栨垬鍦�
-            InitBattleField(currentChapter.ID);
-            
-            // 寮�濮嬫柊鐨勬垬鏂�
-            StartBattle();
-        }
-    }
-    
-    /// <summary>
-    /// 鍔犺浇绔犺妭鏁版嵁
-    /// </summary>
-    private void LoadChapterData(int chapterId)
-    {
-        // 浠庨厤缃鐞嗗櫒鍔犺浇绔犺妭鏁版嵁
-        // currentChapter = ConfigManager.Instance.GetChapterData(chapterId);
-        
-        // 涓存椂浠g爜锛屽垱寤轰竴涓祴璇曠珷鑺�
-        currentChapter = new ChapterData
-        {
-            ID = chapterId,
-            Name = $"娴嬭瘯绔犺妭 {chapterId}",
-            MapId = chapterId
-        };
-        
-        Debug.Log($"鍔犺浇绔犺妭鏁版嵁: {currentChapter.Name}");
-    }
-    
-    /// <summary>
-    /// 鍔犺浇鍦板浘鑳屾櫙
-    /// </summary>
-    private void LoadMapBackground()
-    {
-        // 鏍规嵁绔犺妭鏁版嵁鍔犺浇瀵瑰簲鐨勫湴鍥捐儗鏅�
-        // MapManager.Instance.LoadMap(currentChapter.MapId);
-        Debug.Log($"鍔犺浇鍦板浘鑳屾櫙: MapID={currentChapter.MapId}");
-    }
-    
-    /// <summary>
-    /// 鐢熸垚鐜╁闃靛
-    /// </summary>
-    private void SpawnPlayerUnits()
-    {
-        Debug.Log("鐢熸垚鐜╁闃靛");
-        
-        // 浠庣帺瀹舵暟鎹腑鑾峰彇褰撳墠闃靛
-        // var formation = PlayerManager.Instance.CurrentFormation;
-        
-        // 涓存椂浠g爜锛屽垱寤烘祴璇曠帺瀹跺崟浣�
-        for (int i = 0; i < 3; i++)
-        {
-            UnitData unitData = new UnitData
-            {
-                ID = 1000 + i,
-                Name = $"鐜╁瑙掕壊 {i+1}",
-                HP = 100,
-                Attack = 10,
-                AttackSpeed = 1.0f,
-                MoveSpeed = 2.0f,
-                PrefabPath = $"Characters/Player_{i+1}"
-            };
-            
-            PlaceUnit unit = new PlaceUnit(unitData, true);
-            playerUnits.Add(unit);
-            allUnits.Add(unit);
-            
-            Debug.Log($"鐢熸垚鐜╁鍗曚綅: {unit.UnitData.Name}");
-        }
-    }
-    
-    /// <summary>
-    /// 鐢熸垚鏁屾柟鍗曚綅
-    /// </summary>
-    private void SpawnEnemyUnits()
-    {
-        Debug.Log("鐢熸垚鏁屾柟鍗曚綅");
-        
-        // 鏍规嵁绔犺妭鏁版嵁鐢熸垚鏁屾柟鍗曚綅
-        // var enemyIds = currentChapter.GetEnemiesForWave(1);
-        
-        // 涓存椂浠g爜锛屽垱寤烘祴璇曟晫鏂瑰崟浣�
-        for (int i = 0; i < 5; i++)
-        {
-            UnitData unitData = new UnitData
-            {
-                ID = 2000 + i,
-                Name = $"鏁屾柟鍗曚綅 {i+1}",
-                HP = 50,
-                Attack = 5,
-                AttackSpeed = 0.8f,
-                MoveSpeed = 1.5f,
-                PrefabPath = $"Characters/Enemy_{i+1}"
-            };
-            
-            PlaceUnit unit = new PlaceUnit(unitData, false);
-            enemyUnits.Add(unit);
-            allUnits.Add(unit);
-            
-            Debug.Log($"鐢熸垚鏁屾柟鍗曚綅: {unit.UnitData.Name}");
-        }
-    }
-    
-    /// <summary>
-    /// 妫�鏌ユ垬鏂楁槸鍚︾粨鏉�
-    /// </summary>
-    private void CheckBattleEnd()
-    {
-        // 妫�鏌ユ晫鏂瑰崟浣嶆槸鍚﹀叏閮ㄩ樀浜�
-        bool allEnemyDead = true;
-        foreach (var unit in enemyUnits)
-        {
-            if (!unit.IsDead)
-            {
-                allEnemyDead = false;
-                break;
-            }
-        }
-        
-        // 濡傛灉鎵�鏈夋晫浜洪兘宸查樀浜★紝鎴樻枟缁撴潫
-        if (allEnemyDead)
-        {
-            CompleteBattle();
-        }
-    }
-    
-    /// <summary>
-    /// 瀹屾垚鎴樻枟
-    /// </summary>
-    private void CompleteBattle()
-    {
-        Debug.Log("鎴樻枟瀹屾垚");
-        CurrentState = BattleState.Completed;
-        
-        // 鍋滄鎵�鏈夊崟浣嶈鍔�
-        foreach (var unit in allUnits)
-        {
-            unit.StopBattle();
-        }
-        
-        // 鐢熸垚鎺夎惤鐗╁搧
-        GenerateDropItems();
-        
-        // 瑙﹀彂鎴樻枟瀹屾垚浜嬩欢
-        OnBattleCompleted?.Invoke();
-    }
-    
-    /// <summary>
-    /// 鐢熸垚鎺夎惤鐗╁搧
-    /// </summary>
-    private void GenerateDropItems()
-    {
-        Debug.Log("鐢熸垚鎺夎惤鐗╁搧");
-        
-        // 鏍规嵁绔犺妭鎺夎惤琛ㄧ敓鎴愭帀钀界墿鍝�
-        // var dropList = currentChapter.GetDropsForWave(1);
-        
-        // 涓存椂浠g爜锛屽垱寤烘祴璇曟帀钀界墿鍝�
-        for (int i = 0; i < 5; i++)
-        {
-            DropItemData dropData = new DropItemData
-            {
-                ID = i,
-                ItemType = (i % 3 == 0) ? ItemType.Gold : (i % 3 == 1) ? ItemType.Diamond : ItemType.Item,
-                ItemId = i,
-                Amount = UnityEngine.Random.Range(10, 100),
-                DropRate = 1.0f,
-                IconPath = $"Icons/Item_{i}"
-            };
-            
-            // 鍒涘缓鎺夎惤鐗╁搧
-            PlaceDrop drop = new PlaceDrop(dropData);
-            dropItems.Add(drop);
-            
-            Debug.Log($"鐢熸垚鎺夎惤鐗╁搧: 绫诲瀷={dropData.ItemType}, 鏁伴噺={dropData.Amount}");
-        }
-    }
-    
-    /// <summary>
-    /// 鏇存柊鎺夎惤鐗╁搧
-    /// </summary>
-    private void UpdateDropItems(float deltaTime)
-    {
-        for (int i = dropItems.Count - 1; i >= 0; i--)
-        {
-            dropItems[i].Update(deltaTime);
-            
-            // 妫�鏌ユ槸鍚﹂渶瑕佹敹闆嗙墿鍝�
-            if (dropItems[i].ShouldCollect)
-            {
-                // 瑙﹀彂鐗╁搧鏀堕泦浜嬩欢
-                OnItemCollected?.Invoke(dropItems[i].DropData);
-                
-                // 绉婚櫎鐗╁搧
-                dropItems.RemoveAt(i);
-            }
-        }
-    }
-    
-    /// <summary>
-    /// 娓呯┖鎴樺満
-    /// </summary>
-    public void ClearField()
-    {
-        Debug.Log("娓呯┖鎴樺満");
-        allUnits.Clear();
-        playerUnits.Clear();
-        enemyUnits.Clear();
-        dropItems.Clear();
-        CurrentState = BattleState.Preparing;
-    }
-    
-    /// <summary>
-    /// 鑾峰彇鐜╁鍗曚綅鍒楄〃
-    /// </summary>
-    public List<PlaceUnit> GetPlayerUnits()
-    {
-        return new List<PlaceUnit>(playerUnits);
-    }
-    
-    /// <summary>
-    /// 鑾峰彇鏁屾柟鍗曚綅鍒楄〃
-    /// </summary>
-    public List<PlaceUnit> GetEnemyUnits()
-    {
-        return new List<PlaceUnit>(enemyUnits);
-    }
-}
diff --git a/Main/Place/PlaceField.cs.meta b/Main/Place/PlaceField.cs.meta
deleted file mode 100644
index 875ca33..0000000
--- a/Main/Place/PlaceField.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: b82dee68a4dcad54780acf1dad335d8c
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/Place/PlaceUnit.cs b/Main/Place/PlaceUnit.cs
deleted file mode 100644
index fe4eca5..0000000
--- a/Main/Place/PlaceUnit.cs
+++ /dev/null
@@ -1,516 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-/// <summary>
-/// 鏀剧疆鎴樻枟鍗曚綅绫伙紝浠h〃鎴樺満涓婄殑涓�涓鑹�
-/// </summary>
-public class PlaceUnit
-{
-    // 鍗曚綅鏁版嵁
-    public UnitData UnitData { get; private set; }
-    
-    // 鍗曚綅灞炴��
-    public int HP { get; private set; }
-    public int MaxHP { get; private set; }
-    public int Attack { get; private set; }
-    public float AttackSpeed { get; private set; }
-    public float MoveSpeed { get; private set; }
-    
-    // 鍗曚綅鐘舵��
-    public bool IsPlayer { get; private set; }
-    public bool IsDead { get; private set; }
-    
-    // 浣嶇疆鍜屾湞鍚�
-    public Vector2 Position { get; private set; }
-    public Vector2 Direction { get; private set; }
-    
-    // 鎴樻枟鐩稿叧
-    private PlaceUnit targetUnit;
-    private float attackCooldown;
-    
-    // 鍗曚綅琛屼负鐘舵��
-    public enum UnitState
-    {
-        Idle,       // 寰呮満
-        Moving,     // 绉诲姩涓�
-        Attacking,  // 鏀诲嚮涓�
-        Dead        // 姝讳骸
-    }
-    
-    public UnitState CurrentState { get; private set; } = UnitState.Idle;
-    
-    /// <summary>
-    /// 鏋勯�犲嚱鏁�
-    /// </summary>
-    /// <param name="data">鍗曚綅鏁版嵁</param>
-    /// <param name="isPlayer">鏄惁涓虹帺瀹跺崟浣�</param>
-    public PlaceUnit(UnitData data, bool isPlayer)
-    {
-        UnitData = data;
-        IsPlayer = isPlayer;
-        
-        // 鍒濆鍖栧睘鎬�
-        MaxHP = data.HP;
-        HP = MaxHP;
-        Attack = data.Attack;
-        AttackSpeed = data.AttackSpeed;
-        MoveSpeed = data.MoveSpeed;
-        
-        // 鍒濆鍖栨敾鍑诲喎鍗�
-        attackCooldown = Random.Range(0f, 1f / AttackSpeed);
-        
-        // 璁剧疆鍒濆浣嶇疆
-        Position = isPlayer ? new Vector2(-5f + Random.Range(-1f, 1f), Random.Range(-2f, 2f)) : 
-                             new Vector2(5f + Random.Range(-1f, 1f), Random.Range(-2f, 2f));
-        Direction = isPlayer ? Vector2.right : Vector2.left;
-        
-        IsDead = false;
-        CurrentState = UnitState.Idle;
-    }
-    
-    /// <summary>
-    /// 寮�濮嬫垬鏂�
-    /// </summary>
-    public void StartBattle()
-    {
-        if (IsDead) return;
-        
-        CurrentState = UnitState.Idle;
-        FindTarget();
-    }
-    
-    /// <summary>
-    /// 鍋滄鎴樻枟
-    /// </summary>
-    public void StopBattle()
-    {
-        if (IsDead) return;
-        
-        CurrentState = UnitState.Idle;
-        targetUnit = null;
-    }
-    
-    /// <summary>
-    /// 鏇存柊鍗曚綅鐘舵��
-    /// </summary>
-    public void UpdateUnit(float deltaTime)
-    {
-        if (IsDead) return;
-        
-        // 濡傛灉娌℃湁鐩爣锛屽皾璇曞鎵剧洰鏍�
-        if (targetUnit == null || targetUnit.IsDead)
-        {
-            FindTarget();
-            if (targetUnit == null)
-            {
-                CurrentState = UnitState.Idle;
-                return;
-            }
-        }
-        
-        // 鏍规嵁涓庣洰鏍囩殑璺濈鍐冲畾琛屼负
-        float distanceToTarget = Vector2.Distance(Position, targetUnit.Position);
-        float attackRange = 1.5f; // 鏀诲嚮鑼冨洿
-        
-        if (distanceToTarget <= attackRange)
-        {
-            // 鍦ㄦ敾鍑昏寖鍥村唴锛屾墽琛屾敾鍑�
-            AttackTarget(deltaTime);
-        }
-        else
-        {
-            // 涓嶅湪鏀诲嚮鑼冨洿鍐咃紝绉诲姩鎺ヨ繎鐩爣
-            MoveToTarget(deltaTime);
-        }
-    }
-    
-    /// <summary>
-    /// 瀵绘壘鐩爣
-    /// </summary>
-    private void FindTarget()
-    {
-        // 浠庡満鏅腑瀵绘壘鏁屽鍗曚綅浣滀负鐩爣
-        List<PlaceUnit> potentialTargets = IsPlayer ? 
-            PlaceManager.Instance.placeField.GetEnemyUnits() : 
-            PlaceManager.Instance.placeField.GetPlayerUnits();
-            
-        float minDistance = float.MaxValue;
-        PlaceUnit nearestTarget = null;
-        
-        foreach (var unit in potentialTargets)
-        {
-            if (!unit.IsDead)
-            {
-                float distance = Vector2.Distance(Position, unit.Position);
-                if (distance < minDistance)
-                {
-                    minDistance = distance;
-                    nearestTarget = unit;
-                }
-            }
-        }
-        
-        targetUnit = nearestTarget;
-    }
-    
-    /// <summary>
-    /// 绉诲姩鍚戠洰鏍�
-    /// </summary>
-    private void MoveToTarget(float deltaTime)
-    {
-        CurrentState = UnitState.Moving;
-        
-        // 璁$畻绉诲姩鏂瑰悜
-        Vector2 moveDirection = (targetUnit.Position - Position).normalized;
-        
-        // 妫�鏌ユ槸鍚︽湁闅滅鐗╋紝濡傛灉鏈夊垯闇�瑕佸璺�
-        if (HasObstacle(Position, targetUnit.Position))
-        {
-            // 绠�鍗曠殑瀵昏矾閫昏緫
-            moveDirection = FindPathDirection(targetUnit.Position);
-        }
-        
-        // 妫�鏌ユ槸鍚︿笌鍏朵粬鍗曚綅閲嶅彔
-        Vector2 avoidanceDirection = Vector2.zero;
-        int avoidanceCount = 0;
-        
-        // 鑾峰彇鎵�鏈夊崟浣�
-        List<PlaceUnit> allUnits = new List<PlaceUnit>();
-        allUnits.AddRange(PlaceManager.Instance.placeField.GetPlayerUnits());
-        allUnits.AddRange(PlaceManager.Instance.placeField.GetEnemyUnits());
-        
-        // 妫�鏌ラ檮杩戠殑鍗曚綅
-        foreach (var unit in allUnits)
-        {
-            if (unit != this && !unit.IsDead)
-            {
-                float distance = Vector2.Distance(Position, unit.Position);
-                if (distance < 1.0f) // 閬胯璺濈
-                {
-                    // 璁$畻閬胯鏂瑰悜
-                    Vector2 dir = (Position - unit.Position).normalized;
-                    avoidanceDirection += dir;
-                    avoidanceCount++;
-                }
-            }
-        }
-        
-        // 濡傛灉鏈夐渶瑕侀伩璁╃殑鍗曚綅锛岃皟鏁寸Щ鍔ㄦ柟鍚�
-        if (avoidanceCount > 0)
-        {
-            avoidanceDirection /= avoidanceCount;
-            moveDirection = Vector2.Lerp(moveDirection, avoidanceDirection, 0.5f).normalized;
-        }
-        
-        // 鏇存柊浣嶇疆
-        Position += moveDirection * MoveSpeed * deltaTime;
-        
-        // 鏇存柊鏈濆悜
-        Direction = moveDirection;
-    }
-    
-    /// <summary>
-    /// 妫�鏌ユ槸鍚︽湁闅滅鐗�
-    /// </summary>
-    private bool HasObstacle(Vector2 start, Vector2 end)
-    {
-        // 绠�鍗曠殑闅滅鐗╂娴嬶紝瀹為檯椤圭洰涓彲鑳介渶瑕佹洿澶嶆潅鐨勭鎾炴娴�
-        // 杩欓噷鍙互浣跨敤Physics2D.Raycast鏉ユ娴�
-        
-        // 绀轰緥浠g爜
-        // RaycastHit2D hit = Physics2D.Raycast(start, end - start, Vector2.Distance(start, end), obstacleLayer);
-        // return hit.collider != null;
-        
-        // 涓存椂浠g爜锛岄殢鏈虹敓鎴愰殰纰嶇墿
-        return Random.value < 0.1f;
-    }
-    
-    /// <summary>
-    /// 瀵绘壘璺緞鏂瑰悜
-    /// </summary>
-    private Vector2 FindPathDirection(Vector2 target)
-    {
-        // 浣跨敤A*瀵昏矾绠楁硶
-        List<Node> path = AStar(Position, target);
-        
-        if (path != null && path.Count > 0)
-        {
-            // 鑾峰彇涓嬩竴涓妭鐐圭殑鏂瑰悜
-            Vector2 nextNodePos = path[0].position;
-            return (nextNodePos - Position).normalized;
-        }
-        
-        // 濡傛灉瀵昏矾澶辫触锛岀洿鎺ヨ繑鍥炵洰鏍囨柟鍚�
-        return (target - Position).normalized;
-    }
-    
-    /// <summary>
-    /// A*瀵昏矾绠楁硶
-    /// </summary>
-    private List<Node> AStar(Vector2 start, Vector2 goal)
-    {
-        // 缃戞牸澶у皬璁剧疆
-        float gridSize = 0.5f;
-        int gridWidth = 20;
-        int gridHeight = 10;
-        
-        // 鍒涘缓寮�鏀惧垪琛ㄥ拰鍏抽棴鍒楄〃
-        List<Node> openList = new List<Node>();
-        List<Node> closedList = new List<Node>();
-        
-        // 鍒涘缓璧风偣鍜岀粓鐐硅妭鐐�
-        Node startNode = new Node(start, null);
-        Node goalNode = new Node(goal, null);
-        
-        // 璁$畻璧风偣鐨刦銆乬銆乭鍊�
-        startNode.g = 0;
-        startNode.h = CalculateHeuristic(startNode, goalNode);
-        startNode.f = startNode.g + startNode.h;
-        
-        // 灏嗚捣鐐瑰姞鍏ュ紑鏀惧垪琛�
-        openList.Add(startNode);
-        
-        // 寮�濮婣*绠楁硶涓诲惊鐜�
-        while (openList.Count > 0)
-        {
-            // 鎵惧埌寮�鏀惧垪琛ㄤ腑f鍊兼渶灏忕殑鑺傜偣
-            Node currentNode = FindNodeWithLowestF(openList);
-            
-            // 濡傛灉褰撳墠鑺傜偣鏄洰鏍囪妭鐐癸紝鍒欐瀯寤鸿矾寰勫苟杩斿洖
-            if (Vector2.Distance(currentNode.position, goalNode.position) < gridSize)
-            {
-                return BuildPath(currentNode);
-            }
-            
-            // 灏嗗綋鍓嶈妭鐐逛粠寮�鏀惧垪琛ㄧЩ闄わ紝鍔犲叆鍏抽棴鍒楄〃
-            openList.Remove(currentNode);
-            closedList.Add(currentNode);
-            
-            // 鑾峰彇褰撳墠鑺傜偣鐨勭浉閭昏妭鐐�
-            List<Node> neighbors = GetNeighbors(currentNode, gridSize, gridWidth, gridHeight);
-            
-            foreach (Node neighbor in neighbors)
-            {
-                // 濡傛灉鐩搁偦鑺傜偣鍦ㄥ叧闂垪琛ㄤ腑锛屽垯璺宠繃
-                if (IsNodeInList(neighbor, closedList))
-                {
-                    continue;
-                }
-                
-                // 濡傛灉鐩搁偦鑺傜偣浣嶇疆鏈夐殰纰嶇墿锛屽垯璺宠繃
-                if (HasObstacle(currentNode.position, neighbor.position))
-                {
-                    continue;
-                }
-                
-                // 璁$畻浠庤捣鐐圭粡杩囧綋鍓嶈妭鐐瑰埌鐩搁偦鑺傜偣鐨勪唬浠�
-                float tentativeG = currentNode.g + Vector2.Distance(currentNode.position, neighbor.position);
-                
-                // 濡傛灉鐩搁偦鑺傜偣涓嶅湪寮�鏀惧垪琛ㄤ腑锛屾垨鑰呮柊璺緞鏇翠紭锛屽垯鏇存柊鐩搁偦鑺傜偣
-                if (!IsNodeInList(neighbor, openList) || tentativeG < neighbor.g)
-                {
-                    neighbor.parent = currentNode;
-                    neighbor.g = tentativeG;
-                    neighbor.h = CalculateHeuristic(neighbor, goalNode);
-                    neighbor.f = neighbor.g + neighbor.h;
-                    
-                    // 濡傛灉鐩搁偦鑺傜偣涓嶅湪寮�鏀惧垪琛ㄤ腑锛屽垯鍔犲叆寮�鏀惧垪琛�
-                    if (!IsNodeInList(neighbor, openList))
-                    {
-                        openList.Add(neighbor);
-                    }
-                }
-            }
-        }
-        
-        // 濡傛灉寮�鏀惧垪琛ㄤ负绌猴紝鍒欏璺け璐ワ紝杩斿洖null
-        return null;
-    }
-    
-    /// <summary>
-    /// 璁$畻鍚彂寮忓嚱鏁板�硷紙鏇煎搱椤胯窛绂伙級
-    /// </summary>
-    private float CalculateHeuristic(Node node, Node goal)
-    {
-        // 浣跨敤鏇煎搱椤胯窛绂讳綔涓哄惎鍙戝紡鍑芥暟
-        return Mathf.Abs(node.position.x - goal.position.x) + Mathf.Abs(node.position.y - goal.position.y);
-    }
-    
-    /// <summary>
-    /// 鏌ユ壘寮�鏀惧垪琛ㄤ腑f鍊兼渶灏忕殑鑺傜偣
-    /// </summary>
-    private Node FindNodeWithLowestF(List<Node> list)
-    {
-        Node lowestNode = list[0];
-        
-        for (int i = 1; i < list.Count; i++)
-        {
-            if (list[i].f < lowestNode.f)
-            {
-                lowestNode = list[i];
-            }
-        }
-        
-        return lowestNode;
-    }
-    
-    /// <summary>
-    /// 鑾峰彇鑺傜偣鐨勭浉閭昏妭鐐�
-    /// </summary>
-    private List<Node> GetNeighbors(Node node, float gridSize, int gridWidth, int gridHeight)
-    {
-        List<Node> neighbors = new List<Node>();
-        
-        // 8涓柟鍚戠殑鐩搁偦鑺傜偣
-        Vector2[] directions = new Vector2[]
-        {
-            new Vector2(1, 0),    // 鍙�
-            new Vector2(-1, 0),   // 宸�
-            new Vector2(0, 1),    // 涓�
-            new Vector2(0, -1),   // 涓�
-            new Vector2(1, 1),    // 鍙充笂
-            new Vector2(1, -1),   // 鍙充笅
-            new Vector2(-1, 1),   // 宸︿笂
-            new Vector2(-1, -1)   // 宸︿笅
-        };
-        
-        foreach (Vector2 dir in directions)
-        {
-            Vector2 neighborPos = node.position + dir * gridSize;
-            
-            // 妫�鏌ユ槸鍚﹀湪缃戞牸鑼冨洿鍐�
-            if (neighborPos.x >= -gridWidth/2 && neighborPos.x <= gridWidth/2 &&
-                neighborPos.y >= -gridHeight/2 && neighborPos.y <= gridHeight/2)
-            {
-                Node neighbor = new Node(neighborPos, node);
-                neighbors.Add(neighbor);
-            }
-        }
-        
-        return neighbors;
-    }
-    
-    /// <summary>
-    /// 妫�鏌ヨ妭鐐规槸鍚﹀湪鍒楄〃涓�
-    /// </summary>
-    private bool IsNodeInList(Node node, List<Node> list)
-    {
-        foreach (Node n in list)
-        {
-            if (Vector2.Distance(n.position, node.position) < 0.1f)
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    /// <summary>
-    /// 鏋勫缓浠庤捣鐐瑰埌褰撳墠鑺傜偣鐨勮矾寰�
-    /// </summary>
-    private List<Node> BuildPath(Node node)
-    {
-        List<Node> path = new List<Node>();
-        Node currentNode = node;
-        
-        // 浠庣洰鏍囪妭鐐瑰洖婧埌璧风偣
-        while (currentNode.parent != null)
-        {
-            path.Insert(0, currentNode);
-            currentNode = currentNode.parent;
-        }
-        
-        return path;
-    }
-    
-    /// <summary>
-    /// A*瀵昏矾鐨勮妭鐐圭被
-    /// </summary>
-    private class Node
-    {
-        public Vector2 position;  // 鑺傜偣浣嶇疆
-        public Node parent;       // 鐖惰妭鐐�
-        public float g;           // 浠庤捣鐐瑰埌褰撳墠鑺傜偣鐨勪唬浠�
-        public float h;           // 浠庡綋鍓嶈妭鐐瑰埌鐩爣鑺傜偣鐨勪及璁′唬浠�
-        public float f;           // f = g + h锛屾�讳唬浠�
-        
-        public Node(Vector2 pos, Node parent)
-        {
-            this.position = pos;
-            this.parent = parent;
-        }
-    }
-    
-    /// <summary>
-    /// 鏀诲嚮鐩爣
-    /// </summary>
-    private void AttackTarget(float deltaTime)
-    {
-        CurrentState = UnitState.Attacking;
-        
-        // 鏀诲嚮鍐峰嵈
-        attackCooldown -= deltaTime;
-        if (attackCooldown <= 0)
-        {
-            // 鎵ц鏀诲嚮
-            PerformAttack();
-            
-            // 閲嶇疆鍐峰嵈
-            attackCooldown = 1f / AttackSpeed;
-        }
-    }
-    
-    /// <summary>
-    /// 鎵ц鏀诲嚮
-    /// </summary>
-    private void PerformAttack()
-    {
-        if (targetUnit != null && !targetUnit.IsDead)
-        {
-            // 閫犳垚浼ゅ
-            targetUnit.TakeDamage(Attack);
-            
-            // 鎾斁鏀诲嚮鍔ㄧ敾/鐗规晥
-            Debug.Log($"{UnitData.Name} 鏀诲嚮 {targetUnit.UnitData.Name}, 閫犳垚 {Attack} 鐐逛激瀹�");
-        }
-    }
-    
-    /// <summary>
-    /// 鍙楀埌浼ゅ
-    /// </summary>
-    public void TakeDamage(int damage)
-    {
-        if (IsDead) return;
-        
-        // 璁$畻瀹為檯浼ゅ锛堣�冭檻闃插尽绛夊洜绱狅級
-        int defense = Mathf.Max(0, MaxHP / 20); // 绠�鍗曢槻寰¤绠楋紝鍩轰簬鏈�澶х敓鍛藉��
-        int actualDamage = Mathf.Max(1, damage - defense); // 纭繚鑷冲皯閫犳垚1鐐逛激瀹�
-        
-        // 鎵i櫎鐢熷懡鍊�
-        HP -= actualDamage;
-        
-        // 妫�鏌ユ槸鍚︽浜�
-        if (HP <= 0)
-        {
-            HP = 0;
-            Die();
-        }
-        
-        // 鏄剧ず浼ゅ鏁板瓧
-        Debug.Log($"{UnitData.Name} 鍙楀埌 {actualDamage} 鐐逛激瀹�, 鍓╀綑HP: {HP}/{MaxHP}");
-    }
-    
-    /// <summary>
-    /// 姝讳骸澶勭悊
-    /// </summary>
-    private void Die()
-    {
-        IsDead = true;
-        CurrentState = UnitState.Dead;
-        
-        // 鎾斁姝讳骸鍔ㄧ敾
-        Debug.Log($"{UnitData.Name} 姝讳骸");
-    }
-}
\ No newline at end of file
diff --git a/Main/Place/PlaceUnit.cs.meta b/Main/Place/PlaceUnit.cs.meta
deleted file mode 100644
index 34a21a2..0000000
--- a/Main/Place/PlaceUnit.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 84bf5729662617b4582cbe05bad8d53c
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/Team/TeamBase.cs b/Main/Team/TeamBase.cs
index 4aad1e5..7fb61d9 100644
--- a/Main/Team/TeamBase.cs
+++ b/Main/Team/TeamBase.cs
@@ -75,4 +75,9 @@
     {
         return GetTeamCardCount() == 0;
     }
+
+    public void InitByLevelId(int levelId)
+    {
+        
+    }
 }
\ No newline at end of file
diff --git a/Utility.meta b/Main/Utility.meta
similarity index 100%
rename from Utility.meta
rename to Main/Utility.meta
diff --git a/Utility/Bezier.cs b/Main/Utility/Bezier.cs
similarity index 99%
rename from Utility/Bezier.cs
rename to Main/Utility/Bezier.cs
index 316bf5e..ba6fa18 100644
--- a/Utility/Bezier.cs
+++ b/Main/Utility/Bezier.cs
@@ -1,39 +1,39 @@
-锘縰sing UnityEngine;
-
-public class Bezier
-{
-
-    /// <summary>  
-    ///   
-    /// </summary>  
-    /// <param name="P0"></param>  
-    /// <param name="P1"></param>  
-    /// <param name="P2"></param>  
-    /// <param name="t">0.0 >= t <= 1.0 </param>  
-    /// <returns></returns>  
-    public static Vector3 BezierCurve(Vector3 P0, Vector3 P1, Vector3 P2, float t)
-    {
-        var t1 = (1 - t) * (1 - t);
-        var t2 = t * (1 - t);
-        var t3 = t * t;
-        return P0 * t1 + 2 * t2 * P1 + t3 * P2;
-    }
-
-    /// <summary>  
-    ///   
-    /// </summary>  
-    /// <param name="P0"></param>  
-    /// <param name="P1"></param>  
-    /// <param name="P2"></param>  
-    /// <param name="P3"></param>  
-    /// <param name="t">0.0 >= t <= 1.0 </param>  
-    /// <returns></returns>  
-    public static Vector3 BezierCurve(Vector3 P0, Vector3 P1, Vector3 P2, Vector3 P3, float t)
-    {
-        var t1 = (1 - t) * (1 - t) * (1 - t);
-        var t2 = (1 - t) * (1 - t) * t;
-        var t3 = t * t * (1 - t);
-        var t4 = t * t * t;
-        return P0 * t1 + 3 * t2 * P1 + 3 * t3 * P2 + P3 * t4;
-    }
+锘縰sing UnityEngine;
+
+public class Bezier
+{
+
+    /// <summary>  
+    ///   
+    /// </summary>  
+    /// <param name="P0"></param>  
+    /// <param name="P1"></param>  
+    /// <param name="P2"></param>  
+    /// <param name="t">0.0 >= t <= 1.0 </param>  
+    /// <returns></returns>  
+    public static Vector3 BezierCurve(Vector3 P0, Vector3 P1, Vector3 P2, float t)
+    {
+        var t1 = (1 - t) * (1 - t);
+        var t2 = t * (1 - t);
+        var t3 = t * t;
+        return P0 * t1 + 2 * t2 * P1 + t3 * P2;
+    }
+
+    /// <summary>  
+    ///   
+    /// </summary>  
+    /// <param name="P0"></param>  
+    /// <param name="P1"></param>  
+    /// <param name="P2"></param>  
+    /// <param name="P3"></param>  
+    /// <param name="t">0.0 >= t <= 1.0 </param>  
+    /// <returns></returns>  
+    public static Vector3 BezierCurve(Vector3 P0, Vector3 P1, Vector3 P2, Vector3 P3, float t)
+    {
+        var t1 = (1 - t) * (1 - t) * (1 - t);
+        var t2 = (1 - t) * (1 - t) * t;
+        var t3 = t * t * (1 - t);
+        var t4 = t * t * t;
+        return P0 * t1 + 3 * t2 * P1 + 3 * t3 * P2 + P3 * t4;
+    }
 }
\ No newline at end of file
diff --git a/Utility/Bezier.cs.meta b/Main/Utility/Bezier.cs.meta
similarity index 100%
rename from Utility/Bezier.cs.meta
rename to Main/Utility/Bezier.cs.meta
diff --git a/Utility/BezierMove.cs b/Main/Utility/BezierMove.cs
similarity index 100%
rename from Utility/BezierMove.cs
rename to Main/Utility/BezierMove.cs
diff --git a/Utility/BezierMove.cs.meta b/Main/Utility/BezierMove.cs.meta
similarity index 100%
rename from Utility/BezierMove.cs.meta
rename to Main/Utility/BezierMove.cs.meta
diff --git a/Utility/CameraManager.cs b/Main/Utility/CameraManager.cs
similarity index 100%
rename from Utility/CameraManager.cs
rename to Main/Utility/CameraManager.cs
diff --git a/Utility/CameraManager.cs.meta b/Main/Utility/CameraManager.cs.meta
similarity index 100%
rename from Utility/CameraManager.cs.meta
rename to Main/Utility/CameraManager.cs.meta
diff --git a/Utility/ColorUtility.cs b/Main/Utility/ColorUtility.cs
similarity index 100%
rename from Utility/ColorUtility.cs
rename to Main/Utility/ColorUtility.cs
diff --git a/Utility/ColorUtility.cs.meta b/Main/Utility/ColorUtility.cs.meta
similarity index 100%
rename from Utility/ColorUtility.cs.meta
rename to Main/Utility/ColorUtility.cs.meta
diff --git a/Utility/ComponentExtersion.cs b/Main/Utility/ComponentExtersion.cs
similarity index 99%
rename from Utility/ComponentExtersion.cs
rename to Main/Utility/ComponentExtersion.cs
index 7ebd110..6e55ccf 100644
--- a/Utility/ComponentExtersion.cs
+++ b/Main/Utility/ComponentExtersion.cs
@@ -1,234 +1,234 @@
-锘縰sing UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.Events;
-using System;
-
-
-public static class ComponentExtersion
-{
-
-    public static Component FindComponent(this Component _component, string _type, string _path)
-    {
-        try
-        {
-            if (_component == null)
-            {
-                return null;
-            }
-
-            var transform = _component.transform.Find(_path);
-            if (transform == null)
-            {
-                return null;
-            }
-
-            return transform.GetComponent(_type);
-        }
-        catch (Exception ex)
-        {
-            Debug.Log(ex);
-            return null;
-        }
-
-    }
-
-    public static T AddMissingComponent<T>(this Component _compoent) where T : Component
-    {
-        if (_compoent == null)
-        {
-            return null;
-        }
-
-        T component = _compoent.GetComponent<T>();
-        if (component == null)
-        {
-            component = _compoent.gameObject.AddComponent<T>();
-        }
-
-        return component;
-    }
-
-    public static T AddMissingComponent<T>(this Transform _transform) where T : Component
-    {
-        if (_transform == null)
-        {
-            return null;
-        }
-
-        T component = _transform.GetComponent<T>();
-        if (component == null)
-        {
-            component = _transform.gameObject.AddComponent<T>();
-        }
-
-        return component;
-    }
-
-    public static T AddMissingComponent<T>(this GameObject _gameObject) where T : Component
-    {
-        if (_gameObject == null)
-        {
-            return null;
-        }
-
-        T component = _gameObject.GetComponent<T>();
-        if (component == null)
-        {
-            component = _gameObject.AddComponent<T>();
-        }
-
-        return component;
-    }
-
-    
-    public static void AddListener(this Button _button, UnityAction _action)
-    {
-        if (_button == null)
-        {
-            return;
-        }
-        _button.onClick.RemoveAllListeners();
-        //_button.onClick.RemoveListener(_action);
-        _button.onClick.AddListener(_action);
-    }
-
-    
-    public static void RemoveAllListeners(this Button _button)
-    {
-        if (_button == null)
-        {
-            return;
-        }
-        _button.onClick.RemoveAllListeners();
-    }
-
-    
-    public static void SetListener(this Button button, UnityAction action)
-    {
-        if (button == null)
-        {
-            return;
-        }
-
-        button.onClick.RemoveAllListeners();
-        button.AddListener(action);
-    }
-
-    public static void AddListener(this Toggle _toggle, UnityAction<bool> _action)
-    {
-        if (_toggle == null)
-        {
-            return;
-        }
-        _toggle.onValueChanged.AddListener(_action);
-    }
-
-    
-    public static void SetListener(this Toggle toggle, UnityAction<bool> action)
-    {
-        if (toggle == null)
-        {
-            return;
-        }
-
-        toggle.onValueChanged.RemoveAllListeners();
-        toggle.onValueChanged.AddListener(action);
-    }
-
-    public static void RemoveAllListeners(this Toggle _toggle)
-    {
-        if (_toggle == null)
-        {
-            return;
-        }
-        _toggle.onValueChanged.RemoveAllListeners();
-    }
-
-    
-    public static void AddListener(this Slider _slider, UnityAction<float> _action)
-    {
-        if (_slider == null)
-        {
-            return;
-        }
-        _slider.onValueChanged.AddListener(_action);
-    }
-
-    
-    public static void SetListener(this Slider slider, UnityAction<float> action)
-    {
-        if (slider == null)
-        {
-            return;
-        }
-
-        slider.onValueChanged.RemoveAllListeners();
-        slider.onValueChanged.AddListener(action);
-    }
-
-    public static void RemoveAllListeners(this Slider _slider)
-    {
-        if (_slider == null)
-        {
-            return;
-        }
-        _slider.onValueChanged.RemoveAllListeners();
-    }
-
-    
-    public static void AddListener(this InputField _inputField, UnityAction<string> _action)
-    {
-        if (_inputField == null)
-        {
-            return;
-        }
-        _inputField.onValueChanged.AddListener(_action);
-    }
-
-    public static void SetListener(this InputField inputField, UnityAction<string> action)
-    {
-        if (inputField == null)
-        {
-            return;
-        }
-
-        inputField.onValueChanged.RemoveAllListeners();
-        inputField.onValueChanged.AddListener(action);
-    }
-
-    
-    public static void RemoveAllListeners(this InputField _inputField)
-    {
-        if (_inputField == null)
-        {
-            return;
-        }
-        _inputField.onValueChanged.RemoveAllListeners();
-    }
-
-    public static void SetListener(this Dropdown dropdown, UnityAction<int> action)
-    {
-        if (dropdown == null)
-        {
-            return;
-        }
-        dropdown.onValueChanged.RemoveAllListeners();
-        dropdown.onValueChanged.AddListener(action);
-    }
-
-    public static void SetActive(this Component compoent, bool active)
-    {
-        if (compoent != null)
-        {
-            if (active && !compoent.gameObject.activeSelf)
-            {
-                compoent.gameObject.SetActive(true);
-            }
-            else if (!active && compoent.gameObject.activeSelf)
-            {
-                compoent.gameObject.SetActive(false);
-            }
-        }
-    }
-
-}
+锘縰sing UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.Events;
+using System;
+
+
+public static class ComponentExtersion
+{
+
+    public static Component FindComponent(this Component _component, string _type, string _path)
+    {
+        try
+        {
+            if (_component == null)
+            {
+                return null;
+            }
+
+            var transform = _component.transform.Find(_path);
+            if (transform == null)
+            {
+                return null;
+            }
+
+            return transform.GetComponent(_type);
+        }
+        catch (Exception ex)
+        {
+            Debug.Log(ex);
+            return null;
+        }
+
+    }
+
+    public static T AddMissingComponent<T>(this Component _compoent) where T : Component
+    {
+        if (_compoent == null)
+        {
+            return null;
+        }
+
+        T component = _compoent.GetComponent<T>();
+        if (component == null)
+        {
+            component = _compoent.gameObject.AddComponent<T>();
+        }
+
+        return component;
+    }
+
+    public static T AddMissingComponent<T>(this Transform _transform) where T : Component
+    {
+        if (_transform == null)
+        {
+            return null;
+        }
+
+        T component = _transform.GetComponent<T>();
+        if (component == null)
+        {
+            component = _transform.gameObject.AddComponent<T>();
+        }
+
+        return component;
+    }
+
+    public static T AddMissingComponent<T>(this GameObject _gameObject) where T : Component
+    {
+        if (_gameObject == null)
+        {
+            return null;
+        }
+
+        T component = _gameObject.GetComponent<T>();
+        if (component == null)
+        {
+            component = _gameObject.AddComponent<T>();
+        }
+
+        return component;
+    }
+
+    
+    public static void AddListener(this Button _button, UnityAction _action)
+    {
+        if (_button == null)
+        {
+            return;
+        }
+        _button.onClick.RemoveAllListeners();
+        //_button.onClick.RemoveListener(_action);
+        _button.onClick.AddListener(_action);
+    }
+
+    
+    public static void RemoveAllListeners(this Button _button)
+    {
+        if (_button == null)
+        {
+            return;
+        }
+        _button.onClick.RemoveAllListeners();
+    }
+
+    
+    public static void SetListener(this Button button, UnityAction action)
+    {
+        if (button == null)
+        {
+            return;
+        }
+
+        button.onClick.RemoveAllListeners();
+        button.AddListener(action);
+    }
+
+    public static void AddListener(this Toggle _toggle, UnityAction<bool> _action)
+    {
+        if (_toggle == null)
+        {
+            return;
+        }
+        _toggle.onValueChanged.AddListener(_action);
+    }
+
+    
+    public static void SetListener(this Toggle toggle, UnityAction<bool> action)
+    {
+        if (toggle == null)
+        {
+            return;
+        }
+
+        toggle.onValueChanged.RemoveAllListeners();
+        toggle.onValueChanged.AddListener(action);
+    }
+
+    public static void RemoveAllListeners(this Toggle _toggle)
+    {
+        if (_toggle == null)
+        {
+            return;
+        }
+        _toggle.onValueChanged.RemoveAllListeners();
+    }
+
+    
+    public static void AddListener(this Slider _slider, UnityAction<float> _action)
+    {
+        if (_slider == null)
+        {
+            return;
+        }
+        _slider.onValueChanged.AddListener(_action);
+    }
+
+    
+    public static void SetListener(this Slider slider, UnityAction<float> action)
+    {
+        if (slider == null)
+        {
+            return;
+        }
+
+        slider.onValueChanged.RemoveAllListeners();
+        slider.onValueChanged.AddListener(action);
+    }
+
+    public static void RemoveAllListeners(this Slider _slider)
+    {
+        if (_slider == null)
+        {
+            return;
+        }
+        _slider.onValueChanged.RemoveAllListeners();
+    }
+
+    
+    public static void AddListener(this InputField _inputField, UnityAction<string> _action)
+    {
+        if (_inputField == null)
+        {
+            return;
+        }
+        _inputField.onValueChanged.AddListener(_action);
+    }
+
+    public static void SetListener(this InputField inputField, UnityAction<string> action)
+    {
+        if (inputField == null)
+        {
+            return;
+        }
+
+        inputField.onValueChanged.RemoveAllListeners();
+        inputField.onValueChanged.AddListener(action);
+    }
+
+    
+    public static void RemoveAllListeners(this InputField _inputField)
+    {
+        if (_inputField == null)
+        {
+            return;
+        }
+        _inputField.onValueChanged.RemoveAllListeners();
+    }
+
+    public static void SetListener(this Dropdown dropdown, UnityAction<int> action)
+    {
+        if (dropdown == null)
+        {
+            return;
+        }
+        dropdown.onValueChanged.RemoveAllListeners();
+        dropdown.onValueChanged.AddListener(action);
+    }
+
+    public static void SetActive(this Component compoent, bool active)
+    {
+        if (compoent != null)
+        {
+            if (active && !compoent.gameObject.activeSelf)
+            {
+                compoent.gameObject.SetActive(true);
+            }
+            else if (!active && compoent.gameObject.activeSelf)
+            {
+                compoent.gameObject.SetActive(false);
+            }
+        }
+    }
+
+}
diff --git a/Utility/ComponentExtersion.cs.meta b/Main/Utility/ComponentExtersion.cs.meta
similarity index 100%
rename from Utility/ComponentExtersion.cs.meta
rename to Main/Utility/ComponentExtersion.cs.meta
diff --git a/Utility/Datumline.cs b/Main/Utility/Datumline.cs
similarity index 100%
rename from Utility/Datumline.cs
rename to Main/Utility/Datumline.cs
diff --git a/Utility/Datumline.cs.meta b/Main/Utility/Datumline.cs.meta
similarity index 100%
rename from Utility/Datumline.cs.meta
rename to Main/Utility/Datumline.cs.meta
diff --git a/Utility/DeviceUtility.cs b/Main/Utility/DeviceUtility.cs
similarity index 99%
rename from Utility/DeviceUtility.cs
rename to Main/Utility/DeviceUtility.cs
index fb289db..518f4d6 100644
--- a/Utility/DeviceUtility.cs
+++ b/Main/Utility/DeviceUtility.cs
@@ -1,169 +1,169 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System.Net.NetworkInformation;
-using System;
-using System.Net;
-using System.Net.Sockets;
-using System.IO;
-using System.Text.RegularExpressions;
-
-#if UNITY_IOS
-using UnityEngine.iOS;
-#endif
-
-
-public class DeviceUtility
-{
-
-    static string mac = string.Empty;
-    public static string GetMac()
-    {
-        if (string.IsNullOrEmpty(mac))
-        {
-            try
-            {
-                var netInterfaces = NetworkInterface.GetAllNetworkInterfaces();
-                if (netInterfaces != null && netInterfaces.Length > 0)
-                {
-                    mac = netInterfaces[0].GetPhysicalAddress().ToString();
-                }
-            }
-            catch (Exception ex)
-            {
-                Debug.Log(ex);
-            }
-        }
-
-        return mac;
-    }
-
-    static string ipPattern = "[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}";
-    static string ip = string.Empty;
-    public static string GetIp()
-    {
-        try
-        {
-            if (string.IsNullOrEmpty(ip))
-            {
-                string url = "http://pv.sohu.com/cityjson";
-                WebRequest wRequest = WebRequest.Create(url);
-                wRequest.Method = "GET";
-                wRequest.ContentType = "text/html;charset=UTF-8";
-                WebResponse wResponse = wRequest.GetResponse();
-                Stream stream = wResponse.GetResponseStream();
-                StreamReader reader = new StreamReader(stream, System.Text.Encoding.Default);
-                string str = reader.ReadToEnd();
-
-                reader.Close();
-                wResponse.Close();
-
-                var match = Regex.Match(str, ipPattern);
-                if (match != null)
-                {
-                    ip = match.Value;
-                }
-            }
-        }
-        catch (Exception ex)
-        {
-            Debug.Log(ex);
-        }
-
-        return ip;
-    }
-
-    public static string GetDeviceUniquenessIdentify()
-    {
-#if UNITY_IOS
-        return UnityEngine.iOS.Device.advertisingIdentifier;
-#else
-        return SystemInfo.deviceUniqueIdentifier;
-#endif
-    }
-
-    public static string GetDeviceOSLevel()
-    {
-#if UNITY_IOS
-        return UnityEngine.iOS.Device.systemVersion;
-#else
-        return SystemInfo.operatingSystem;
-#endif
-    }
-
-    public static string GetDeviceName()
-    {
-#if UNITY_IOS
-        return UnityEngine.iOS.Device.generation.ToString();
-#else
-        return SystemInfo.deviceName;
-#endif
-    }
-
-    public static string GetDeviceModel()
-    {
-#if UNITY_IOS
-        return UnityEngine.iOS.Device.generation.ToString();
-#else
-        return SystemInfo.deviceModel;
-#endif
-    }
-
-    public static bool IsLowMemory()
-    {
-#if UNITY_IOS
-        if (Application.platform == RuntimePlatform.IPhonePlayer)
-        {
-            switch (Device.generation)
-            {
-                case DeviceGeneration.iPadMini2Gen:
-                case DeviceGeneration.iPhone5S:
-                case DeviceGeneration.iPhone6:
-                case DeviceGeneration.iPhone6Plus:
-                    return true;
-                default:
-                    return false;
-            }
-        }
-        else
-        {
-            return false;
-        }
-#endif
-        return false;
-    }
-
-    public static int cpu = 2;
-    public static int memory = 2 * 1024;
-
-    public static void GetCpuAndMemory(out int _cpu, out int _memory)//鍐呭瓨鍗曚綅鏄疢B
-    {
-        try
-        {
-            _cpu = Environment.ProcessorCount;
-            switch (Application.platform)
-            {
-                case RuntimePlatform.Android:
-                    _memory = 0; //TODO YL collect device memory //ynmbxxjUtil.Instance.Device.totalMemory;
-                    break;
-                case RuntimePlatform.IPhonePlayer:
-                    _memory = IsLowMemory() ? 1 : 2 * 1024;
-                    break;
-                default:
-                    _memory = 4 * 1024;
-                    break;
-            }
-
-            cpu = _cpu;
-            memory = _memory;
-        }
-        catch (Exception ex)
-        {
-            Debug.Log(ex);
-            _cpu = 2;
-            _memory = 2 * 1024;
-        }
-
-    }
-
-}
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System.Net.NetworkInformation;
+using System;
+using System.Net;
+using System.Net.Sockets;
+using System.IO;
+using System.Text.RegularExpressions;
+
+#if UNITY_IOS
+using UnityEngine.iOS;
+#endif
+
+
+public class DeviceUtility
+{
+
+    static string mac = string.Empty;
+    public static string GetMac()
+    {
+        if (string.IsNullOrEmpty(mac))
+        {
+            try
+            {
+                var netInterfaces = NetworkInterface.GetAllNetworkInterfaces();
+                if (netInterfaces != null && netInterfaces.Length > 0)
+                {
+                    mac = netInterfaces[0].GetPhysicalAddress().ToString();
+                }
+            }
+            catch (Exception ex)
+            {
+                Debug.Log(ex);
+            }
+        }
+
+        return mac;
+    }
+
+    static string ipPattern = "[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}";
+    static string ip = string.Empty;
+    public static string GetIp()
+    {
+        try
+        {
+            if (string.IsNullOrEmpty(ip))
+            {
+                string url = "http://pv.sohu.com/cityjson";
+                WebRequest wRequest = WebRequest.Create(url);
+                wRequest.Method = "GET";
+                wRequest.ContentType = "text/html;charset=UTF-8";
+                WebResponse wResponse = wRequest.GetResponse();
+                Stream stream = wResponse.GetResponseStream();
+                StreamReader reader = new StreamReader(stream, System.Text.Encoding.Default);
+                string str = reader.ReadToEnd();
+
+                reader.Close();
+                wResponse.Close();
+
+                var match = Regex.Match(str, ipPattern);
+                if (match != null)
+                {
+                    ip = match.Value;
+                }
+            }
+        }
+        catch (Exception ex)
+        {
+            Debug.Log(ex);
+        }
+
+        return ip;
+    }
+
+    public static string GetDeviceUniquenessIdentify()
+    {
+#if UNITY_IOS
+        return UnityEngine.iOS.Device.advertisingIdentifier;
+#else
+        return SystemInfo.deviceUniqueIdentifier;
+#endif
+    }
+
+    public static string GetDeviceOSLevel()
+    {
+#if UNITY_IOS
+        return UnityEngine.iOS.Device.systemVersion;
+#else
+        return SystemInfo.operatingSystem;
+#endif
+    }
+
+    public static string GetDeviceName()
+    {
+#if UNITY_IOS
+        return UnityEngine.iOS.Device.generation.ToString();
+#else
+        return SystemInfo.deviceName;
+#endif
+    }
+
+    public static string GetDeviceModel()
+    {
+#if UNITY_IOS
+        return UnityEngine.iOS.Device.generation.ToString();
+#else
+        return SystemInfo.deviceModel;
+#endif
+    }
+
+    public static bool IsLowMemory()
+    {
+#if UNITY_IOS
+        if (Application.platform == RuntimePlatform.IPhonePlayer)
+        {
+            switch (Device.generation)
+            {
+                case DeviceGeneration.iPadMini2Gen:
+                case DeviceGeneration.iPhone5S:
+                case DeviceGeneration.iPhone6:
+                case DeviceGeneration.iPhone6Plus:
+                    return true;
+                default:
+                    return false;
+            }
+        }
+        else
+        {
+            return false;
+        }
+#endif
+        return false;
+    }
+
+    public static int cpu = 2;
+    public static int memory = 2 * 1024;
+
+    public static void GetCpuAndMemory(out int _cpu, out int _memory)//鍐呭瓨鍗曚綅鏄疢B
+    {
+        try
+        {
+            _cpu = Environment.ProcessorCount;
+            switch (Application.platform)
+            {
+                case RuntimePlatform.Android:
+                    _memory = 0; //TODO YL collect device memory //ynmbxxjUtil.Instance.Device.totalMemory;
+                    break;
+                case RuntimePlatform.IPhonePlayer:
+                    _memory = IsLowMemory() ? 1 : 2 * 1024;
+                    break;
+                default:
+                    _memory = 4 * 1024;
+                    break;
+            }
+
+            cpu = _cpu;
+            memory = _memory;
+        }
+        catch (Exception ex)
+        {
+            Debug.Log(ex);
+            _cpu = 2;
+            _memory = 2 * 1024;
+        }
+
+    }
+
+}
diff --git a/Utility/DeviceUtility.cs.meta b/Main/Utility/DeviceUtility.cs.meta
similarity index 100%
rename from Utility/DeviceUtility.cs.meta
rename to Main/Utility/DeviceUtility.cs.meta
diff --git a/Utility/DontDestroyOnLoad.cs b/Main/Utility/DontDestroyOnLoad.cs
similarity index 99%
rename from Utility/DontDestroyOnLoad.cs
rename to Main/Utility/DontDestroyOnLoad.cs
index 7f3489e..1ab866d 100644
--- a/Utility/DontDestroyOnLoad.cs
+++ b/Main/Utility/DontDestroyOnLoad.cs
@@ -1,11 +1,11 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class DontDestroyOnLoad : MonoBehaviour
-{
-    void Awake()
-    {
-        DontDestroyOnLoad(gameObject);
-    }
-}
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class DontDestroyOnLoad : MonoBehaviour
+{
+    void Awake()
+    {
+        DontDestroyOnLoad(gameObject);
+    }
+}
diff --git a/Utility/DontDestroyOnLoad.cs.meta b/Main/Utility/DontDestroyOnLoad.cs.meta
similarity index 100%
rename from Utility/DontDestroyOnLoad.cs.meta
rename to Main/Utility/DontDestroyOnLoad.cs.meta
diff --git a/Utility/DrawUtility.cs b/Main/Utility/DrawUtility.cs
similarity index 100%
rename from Utility/DrawUtility.cs
rename to Main/Utility/DrawUtility.cs
diff --git a/Utility/DrawUtility.cs.meta b/Main/Utility/DrawUtility.cs.meta
similarity index 100%
rename from Utility/DrawUtility.cs.meta
rename to Main/Utility/DrawUtility.cs.meta
diff --git a/Utility/EffectRenderSort.cs b/Main/Utility/EffectRenderSort.cs
similarity index 100%
rename from Utility/EffectRenderSort.cs
rename to Main/Utility/EffectRenderSort.cs
diff --git a/Utility/EffectRenderSort.cs.meta b/Main/Utility/EffectRenderSort.cs.meta
similarity index 100%
rename from Utility/EffectRenderSort.cs.meta
rename to Main/Utility/EffectRenderSort.cs.meta
diff --git a/Utility/EnumHelper.cs b/Main/Utility/EnumHelper.cs
similarity index 99%
rename from Utility/EnumHelper.cs
rename to Main/Utility/EnumHelper.cs
index 5d19094..712214c 100644
--- a/Utility/EnumHelper.cs
+++ b/Main/Utility/EnumHelper.cs
@@ -1,1922 +1,1922 @@
-锘�
-
-public enum E_ActorClassType
-{
-    UnDefine,
-    Hero,
-    Player,
-    Guard,
-    NpcFightNorm,
-    NpcFightBoss,
-    NpcSummonFunc,
-    NpcCollect,
-    NpcSummonFight,
-    NpcFunc,
-    Pet,
-    NpcTouchKilled,
-    NpcClientFightNorm,
-    NpcClientFightBoss,
-    NpcClientFunc,
-    NpcFightVirtualPlayer,
-    PlayerXmzz,
-    ClientPlayer,
-    PlayerZZ,
-    PlayerSgzcRobot,
-    PVPClientPlayer,
-    ILClientPlayer,
-    NpcClientCollect,
-    JiaPlayer,
-
-}
-
-
-public enum E_ActorState
-{
-    Idle,
-    CtrlRun,
-    AutoRun,
-    Hurt,
-    Die,
-    CommonAtk,
-    CastSkill,
-    DaZuo,
-    Roll,
-    Mocked,
-
-}
-
-public enum E_4012Status
-{
-    Normal,//鏃� 0
-    Freezed,//瀹氳韩鐘舵�� 1
-    Slow,//鍑忛�熺姸鎬� 2
-    LoseBlood,//鎸佺画鎺夎鐘舵�� 3
-    Shield,//楹掗簾浣戣韩4
-    DamBackShield,//涓滅殗闄勪綋5
-    Sneer,//鍢茶 6
-    Stun,//鏅曠湬鐘舵�� 7
-    AddAtk,//鍔犳敾鐘舵�� 8
-    WeakDef,//鍑忛槻鐘舵�� 9
-    LimitSkill,//绂侀瓟鐘舵�� 10
-    LimitAddHP,//绂佺枟鐘舵�� 11
-    Blind,//鑷寸洸鐘舵�� 12
-    Burn,//鐏肩儳 13
-    LoseBlood2,//鑱屼笟2鎸佺画鎺夎鐘舵�� 14
-    LoseBlood3,//鑱屼笟3鎸佺画鎺夎鐘舵�� 15
-    MissSneerAtk,//瀵瑰槻璁芥敾鍑诲厤鐤〃鐜颁负miss 16
-    BeInAir,//娴┖锛堝仛娉曞悓鐪╂檿绫伙級 17
-    zqdlj,//绱皵涓滄潵閲戠伒鏍规妧鑳界姸鎬� 18
-    Ice,//瀵掑啺鐘舵�侊紙鍚屽噺閫燂級 19
-
-}
-
-
-public enum E_BuffType
-{
-    bfBuff = 1,     // buff
-    bfDeBuff,       // debuff
-    bfAura,         // aura,鍏夌幆
-    bfIncBuff,      // inc buff澧炲�糂UFF 鐜╁涓嶅彲鎵嬪姩娓呴櫎
-    btPassiveBuf,   // 琚姩BUF
-    bfEquipBuff,    // 瑁呭BUF
-    bfMapBuff,      // 鍦烘櫙BUF
-    bfActionBuff,   // 琛屼负Buf
-    bfProcessBuff,  // 涓�瀹氶棿闅斿鐞嗕竴娆℃寔缁竴瀹氭椂闂寸殑Buff
-    bfProcessDeBuff,// 涓�瀹氶棿闅斿鐞嗕竴娆★紝鎸佺画涓�瀹氭椂闂寸殑DeBuff
-
-    btBufMax        // BUF绫诲瀷鏁�
-}
-
-public enum E_MonsterType
-{
-    Normal,//0 鏅�氭��;
-    Elite,//1 绮捐嫳鎬�;
-    BlueBoss,//2 钃滲OSS;
-    PurpleBoss,//3 绱獴OSS;
-    Danger,//4 鍗遍櫓鎬�;
-    DarkGoldBoss,//5 鏆楅噾BOSS,
-    SmallLead,//6 灏忓ご鐩�,
-    MissionBoss,//7 浠诲姟BOSS
-
-}
-
-public enum E_ActorGroup
-{
-    User,
-    Player,
-    Enemy,
-    Neutral,
-    Collect,// 鏀堕泦绫�
-    FuncNpc,// 鍔熻兘鎬pc
-
-}
-
-
-public enum E_ClientNpcType
-{
-    Func,
-    Fight,
-
-}
-
-
-public enum E_NpcType
-{
-    Func = 0,//鍔熻兘NPC濉啓鈥�0鈥�
-    Defend = 1,//瀹堝崼NPC濉啓鈥�1鈥�
-    Fight = 2,//鎴樻枟NPC濉啓鈥�2鈥�
-    Summon = 3,//鍙敜NPC濉啓鈥�3鈥�
-    Ghost = 4,//鐏礜PC濉啓  鈥�4鈥�
-    Trap = 5,//闄烽槺NPC濉啓 "5"
-    Car = 6,//闀栬溅NPC濉啓 "6"
-    Sprite = 7,//绮剧伒NPC濉啓 "7"
-    VirtualPlayer = 8,// 铏氭嫙鍔╂垬鑻遍泟
-    Flag = 9,//鏃楃被NPC濉啓 "9"
-    Collect = 14,//閲囬泦NPC濉畾 "14"
-    Catch = 15,//鍙崟鎹夛籍锛帮迹銆�15
-    Pet = 16,//瀹犵墿         16
-    TouchKilled = 17,//瀹堟姢     17
-    FMBoss = 18,// 灏侀瓟鍧沚oss    18
-    BreakableObj = 19,//鍦烘櫙鍙鏀诲嚮鐗�     19
-    FightAssist = 20,// 鍔╂垬
-    SGZC_FightAssist = 21,// 涓婂彜鎴樺満鍔╂垬
-    MonsterTime = 22,// 鎸夋椂闂存帀琛�
-    PersonalEnemy = 23,// 涓撳睘鏁屼汉
-    PersonalEnemyPVP = 24,// 涓撳睘鏁屼汉
-
-    OpenWorldMap = 99,// 鎵撳紑涓栫晫鍦板浘
-}
-
-
-public enum E_MovingState
-{
-    Normal,
-    Fly,
-    Ride,
-
-}
-
-
-public enum WindowType
-{
-    Base = 0,
-    Normal = 1,
-    Modal = 2,
-    Tip = 3,
-    System = 4,
-    Loading = 5,
-
-    Flag = 99,
-}
-
-
-public enum GestureType
-{
-    Left,
-    Right,
-    Up,
-    Down
-}
-
-
-public enum UnityPlatform
-{
-    Editor,
-    Android,
-    Iphone,
-    Standalone,
-}
-
-
-public enum RoleRenameResult
-{
-    MoneyErr = 0, //閲戦挶涓嶈冻
-    NameRuleErr = 1, //鍚嶅瓧涓嶅悎娉�
-    NameLengErr = 2, //鍚嶅瓧闀垮害閿欒
-    NameRepeatErr = 3, //閲嶅悕
-    RenameFailErr = 4, //鏀瑰悕澶辫触
-    RenameSuccess = 5, //鎴愬姛
-}
-
-
-/// <summary>
-/// <para>鏃犳剰涔� 0</para>
-/// <para>鑷繁 1</para>
-/// <para>闃熶紞 2</para>
-/// <para>鍙嬪ソ 3</para>
-/// <para>鍙敾鍑� 4</para>
-/// <para>鑷繁鍙婂弸濂� 5</para>
-/// <para>鐜╁灏镐綋 6</para>
-/// <para>闈炴浜$帺瀹� 7</para>
-/// <para>鍙敾鍑绘�墿 8</para>
-/// <para>鍙敾鍑荤帺瀹� 9</para>
-/// <para>鎵�鏈夊崟浣� 10</para>
-/// <para>瀹犵墿瀵逛富浜� 11</para>
-/// <para>鍙敜鐗╁涓讳汉 12</para>
-/// <para>灏忔�寘鎷簿鑻� 13</para>
-/// </summary>
-public enum E_SkillCastTarget
-{
-    None,
-    Self,
-    TeamMate,
-    Friend,
-    CanAttacked,
-    SelfAndFriend,
-    PlayerDeadBody,
-    UnDeadPlayer,
-    CanAttackedMonster,
-    CanAttackedPlayer,
-    All,
-    PetToOwner,
-    SummonToOwner,
-    Monster,
-    FriendNpc,
-
-}
-
-
-/// <summary>
-/// 鎶�鑳界被鍨�
-/// </summary>
-public enum E_SkillType
-{
-    Special, // 鐗规畩   0
-    Attack, // 鏀诲嚮绫�   1
-    Recover,// 鎭㈠绫�   2
-    ContinuousGain, // 鎸佺画澧炵泭BUFF  3
-    SustainedReduction,// 鎸佺画鍑忕泭BUFF  4
-    GainBuff,// 澧炵泭BUFF 5
-    ReductionBuff,// 鍑忕泭BUFF 6
-    Passive,// 琚姩鎶�   7
-    Reborn,// 澶嶆椿     8
-    ValueAdded,// 澧炲�兼妧鑳斤紙涓嶅彲娓呴櫎锛�9  
-    Halo,// 鍏夌幆鎶�鑳�  10
-    Equip,// 瑁呭鎶�鑳�  11
-    Area,// 鍖哄煙鎶�鑳�  12
-    Summon,// 鍙敜      13
-    ControlBuff,// 鎺у埗鍨婤UFF 14
-    MutilHurtBuffAtk,// 澶氭浼ゅbuff鏀诲嚮绫诲瀷锛堢被xp鎶�鑳斤級 15
-    PassiveGainBuff,// 琚姩瑙﹀彂澧炵泭绫籦uff 16
-    PassiveReductionBuff,// 琚姩瑙﹀彂鍑忕泭绫籦uff 17
-    PassiveControlBuff,// 琚姩瑙﹀彂鐨勬帶鍒剁被buff 18
-    Property,// 灞炴�х被鎶�鑳� 20锛堝鍧愰獞灞炴�э紝瀹犵墿灞炴�э級
-    PassiveBuff,// 琚姩buff 19锛堟殏鏃朵笉鐭ラ亾骞插暐鐨勶級
-    PassiveContinuousGain,// 琚姩瑙﹀彂鎸佺画绫诲鐩婄被buff 21
-    PassiveSustainedReduction,// 琚姩瑙﹀彂鎸佺画绫诲噺鐩婄被buff 22
-
-}
-
-
-public enum E_SkillFuncType
-{
-    Common,// 0涓洪�氱敤鎶�鑳�
-    FaBaoActiveSkill,// 1涓烘硶瀹濆姛鑳借幏寰楃殑涓诲姩鎶�鑳�
-    FaBaoPassiveSkills,// 2涓烘硶瀹濆姛鑳借幏寰楃殑琚姩鎶�鑳�
-    FaBaoSpSkill,// 3涓烘硶瀹濆姛鑳借幏寰楃殑SP鎶�鑳�
-    TalentSkills,// 4涓哄ぉ璧嬫妧鑳�
-    RiderSkill,// 5涓哄潗楠戞妧鑳�
-    PetSkill,// 6涓哄疇鐗╂妧鑳�
-    GodWeaponSkill,// 7涓虹鍏垫妧鑳�
-    NormalAttack,// 8涓烘櫘鏀�
-    SpLv15Skill,// 9涓簊p15绾ф妧鑳�
-    Roll,// 10涓虹炕婊�
-    RealmSkill,// 11涓哄鐣�
-    MythicalAnimal,// 12涓虹鍏芥妧鑳�
-    ZhuxianSkill,// 13涓鸿瘺浠欐妧鑳�
-
-}
-
-
-/// <summary>
-/// <para>鏃犲璞� 0</para>
-/// <para>鏈夊璞� 1</para>
-/// <para>鍦伴潰 2</para>
-/// </summary>
-public enum E_SkillCastType
-{
-    None,// 鏃犲璞� 0
-    NeedTarget,// 鏈夊璞� 1
-    Ground,// 鍦伴潰 2
-}
-
-
-public enum MapTransferType
-{
-    WorldTransport = 1,
-    BigMapTransport = 2,
-    MissionTransport = 3,
-
-}
-
-
-public enum DropItemType
-{
-    Pattern0 = 0,
-    Pattern1 = 1,
-    Pattern2 = 2,
-    Pattern3 = 3,
-
-}
-
-
-public enum DailyQuestType
-{
-    BountyMission = 1,
-    IceCrystal = 2,
-    FairyFeast = 3,
-    BlastStove = 4,
-    Kirin = 5,
-    FairyLand = 6,
-    GuardSky = 7,
-    Demon = 8,
-    Trial = 9,
-    AncientBattleGround = 10,
-    EmperorRelic = 11,
-    WyTaiChi = 12,
-    FairyLeague = 13,
-    HeavenBattle = 14,
-    Prayer = 15,
-    WorldBoss = 16,
-    DemonJar = 17,
-    FairyTask = 18,
-    RuneTowerSweep = 19,
-    RuneTower = 21,
-    TreasureCollectSoul = 22,
-    BossHome = 24,
-    PersonalBoss = 25,
-    ElderGodArea = 26,
-    FairyGrabBoss = 27,
-    KillMonster = 28,
-    DungeonAssist = 29,
-    GatherSoulDungeon = 30,
-    CrossServerPk = 31,
-    AllianceBoss = 32,
-    RidingPetActivity = 34,
-    HazyRegion = 35,
-    SkyTower = 36,
-    Auction = 37,
-    JadeDynastyBoss = 38,
-    CrossServerBoss = 39,
-    FairyChuanGong = 40, //浠欑洘浼犲姛
-    ActivityPlace = 41, //绉樺鎺㈢储
-    ArenaPK = 43,//绔炴妧鍦篜K
-    //鍚庣画IL寮�鍙戞坊鍔犻璁�
-    default1,
-    default2,
-    default3,   //46 浠欑洘鎵撳潗
-    default4,   //47 鍙ょ鎴樺満
-    default5,   //48 閫氱敤鍓湰
-    default6,   //49 閫氱敤鍓湰
-    default7,   //50 閫氱敤鍓湰
-    default8,   //51 閫氱敤鍓湰
-    default9,   //52 鑱氶瓊閫氱敤鍓湰
-    default10,
-    default11,
-    default12,
-    default13,
-    default14,
-    default15,
-    default16,
-    default17,
-    default18,
-    default19,
-    default20,
-}
-
-
-/// <summary>
-/// 鏈嶅姟绔笅鍙戠殑鍓湰鍊掕鏃剁被鍨�
-/// </summary>
-public enum DungeonCoolDownType
-{
-    LeaveMap = 0,//閫�鍑哄�掕鏃�
-    WaitStart = 1,//寮�濮嬪�掕鏃�
-    FightStart = 2,//鎴樻枟鍊掕鏃�
-    FlagTake = 3,
-    NextRound = 4,//涓嬩竴娉㈠�掕鏃�
-    FBAddTime = 6,
-    ElderGodAreaDeadTime = 7,//鍙ょ绂佸湴鍊掕鏃�
-    PickUpTime = 8,//鍓湰鎹¤澶囧�掕鏃�
-    WaitPlayer = 9, //绛夊緟瀵规墜鍊掕鏃�
-    PlayerLeave = 10, //瀵规墜鎺夌嚎鍊掕鏃�
-
-}
-
-
-/// <summary>
-/// 瑁呭閮ㄤ綅绱㈠紩
-/// </summary>
-public enum RoleEquipType
-{
-    Weapon = 1,         // 涓绘墜
-    Weapon2 = 2,       // 鍓墜
-    Hat = 3,                // 甯藉瓙
-    Clothes = 4,          // 琛f湇
-    Belt = 5,                // 鑵板甫
-    Trousers = 6,         // 瑁ゅ瓙
-    Shoes = 7,             // 闉嬪瓙
-    Glove = 8,              //鎵嬪
-    Neck = 9,               //椤归摼
-    FairyCan1 = 10,      //浠欏櫒
-    FairyCan2 = 11,      //浠欏櫒
-    Jade = 12,              //鐜変僵
-
-    Wing = 13,               //缈呰唨
-    Guard = 14,            //瀹堟姢
-
-    PeerlessWeapon1 = 16,//缁濅笘姝﹀櫒
-    PeerlessWeapon2 = 17,//缁濅笘鍓墜
-
-    Mount = 19,              //褰撳墠鐨勫潗楠�
-
-    FashionWeapon = 20,//鏃惰姝﹀櫒
-    FashionClothes = 21, //鏃惰琛f湇
-    FashionWeapon2 = 22,//鏃惰鍓墜
-
-
-    retMax,
-};
-
-
-
-//tagObjInfoRefresh,鏇存柊鏋氫妇鍊煎繀椤诲悓鏃舵洿鏂版敞閲�
-/**涓昏灞炴�у埛鏂扮被鍨�*/
-public enum PlayerDataType
-{
-    AccountID = 0,             //甯愬彿鍚�   璇ヨ鑹叉墍鍦ㄧ殑甯愬彿鐨勭敤鎴峰悕 0,
-    PlayerID = 1,                     //瑙掕壊ID,1,
-    PlayerName = 2,                   //瑙掕壊鍚�,size , 14  2,
-    Sex = 3,                          //鎬у埆    3,
-    Hair = 4,                         //鍙戝瀷  1.鏍囧噯鍨嬶紙鐢凤級 2.鍚嶄粫鍨� 3.娴瓙鍨� 4.鏍囧噯鍨嬶紙濂筹級 5.椹鍨� 6.濡╁獨鍨�    4,
-    HairColor = 5,                    //澶村彂棰滆壊  5绉�  5,
-    Face = 6,                         //鍩烘湰鑴稿瀷 6,
-    Job = 7,                          //鑱屼笟  
-    LV = 8,                           //绛夌骇 8,
-    TotalExp = 9,                     //鎬荤粡楠�    9,
-    Family = 10,                       //瀹舵棌 10,
-    Country = 11,                       //鍥藉  0.绉﹀浗 1.榄忓浗 2.妤氬浗   闃佃惀   11,
-    TeamHornor = 12,                    //缁勯槦鑽h獕   12,
-    PKValue = 13,                      //PK鍊� 13,
-    FamilyHornor = 14,                  //瀹舵棌璐$尞 14,
-    FamilyActiveValue = 15,             //瀹舵棌娲昏穬搴� 15,
-    CountryHornor = 16,                 //鏈懆鍥藉鑽h獕鍊�   16,
-    Mate = 17,                         //浼翠荆,17,
-    Gold = 18,                          //閲戝瓙   18,
-    GoldPaper = 19,                     //閲戠エ  19,
-    Silver = 20,                       //閾跺瓙 20,
-    SilverPaper = 21,                  //閾剁エ    21,
-    FightPoint = 22,                   //鎴樻枟鍊�  22,
-    HappyPoint = 23,                   //濞变箰鍊�  23,
-    MapID = 24,                        //瑙掕壊鎵�鍦ㄥ湴鍥�  24,
-    PosX = 25,                         //瑙掕壊鍧愭爣 25,
-    PosY = 26,                         //26,
-    State = 27,                        //瑙掕壊鐘舵��   1.灏佸瓨 2.姝讳骸 3.姝e父  浠ュ悗杩樻湁闄嗙画娣诲姞 27,
-    MaxHP = 28,                        //鏈�澶P    28,
-    HP = 29,                           //褰撳墠HP   29,
-    MaxMP = 30,                        //鏈�澶P    30,
-    MP = 31,                           //褰撳墠MP   31,
-    XP = 32,                           //褰撳墠XP   32
-    HPRestoreSetting = 33,             //灏戜簬杩欎釜鍊�%鑷姩鍠濊 33,
-    MPRestoreSetting = 34,             //灏戜簬杩欎釜鍊�%鑷姩鍠濋瓟 34,
-    ExpRate = 35,                      //褰撳墠缁忛獙鍊嶇巼    鍗曚綅涓虹櫨鍒嗘瘮  35,
-    FreePoint = 36,                    //鏈垎閰嶇偣鏁� 36,
-    FreeSkillPoint = 37,               //鏈垎閰嶆妧鑳界偣鏁�   37,
-    STR = 38,                          //鍔涢噺    38,
-    PNE = 39,                          //鐏靛姏    39,
-    PHY = 40,                          //韬硶    40,
-    CON = 41,                          //浣撹川    41,
-    DEF = 42,                          //闃插尽    42,
-    MINATK = 43,                        //澶栨敾鏈�灏� 43
-    MAXATK = 44,                        //澶栨敾鏈�澶� 44
-    MAtkMin = 45,                       //鍐呭姛鏈�澶� 45
-    MAtkMax = 46,                       //鍐呭姛鏈�灏� 46
-    MDef = 47,                          //鍐呴槻     47
-    HIT = 48,                           //鍛戒腑 48
-
-    POISIONATK = 49,                    //姣掓敾 49
-    FIREATK = 50,                       //鐏敾 50
-    REALATK = 51,                        //鐪熷疄浼ゅ 51
-    THUNDERATK = 52,                    //闆锋敾 52
-    WINDATK = 53,                       //椋庢敾 53
-    POISIONDEF = 54,                    //姣掗槻 54
-    FIREDEF = 55,                       //鐏槻 55
-    REALDEF = 56,                        //鐪熷疄鎶垫姉 56
-    THUNDERDEF = 57,                    //闆烽槻 57
-    WINDDEF = 58,                       //椋庨槻 58
-
-    Miss = 59,                         //闂伩   59,
-    SuperHit = 60,                     //鏆村嚮浼ゅ 60,
-    Buff = 61,                         //鏈�澶�12涓狟UFF 濡傛灉瓒呰繃12涓寜鍏堣繘鍏堝嚭鐨勯『搴忚鐩�  61,
-    Skill = 62,                        //璇ョ帺瀹舵墍瀛︿細鐨勫叏閮ㄦ妧鑳� 鐩墠鏈�澶�22涓� 鏃ュ悗鍙兘鍐嶅鍔�   62,
-    Mark = 63,                         //绉板彿璇ョ帺瀹舵墍鎷ユ湁鐨勫叏閮ㄧО鍙凤紝涓婇檺鏈畾   63,
-    SettingH = 64,                     //蹇嵎鏍忥紙妯級   64,
-    SettingV = 65,                     //蹇嵎鏍忥紙绔栵級   65,
-    FightPK = 66,                      //琛¢噺PK鑳藉姏鐨勪竴椤瑰睘鎬� 鐢辨敾闃茶绠楄�屽緱   66,
-    ActiveValue = 67,                  //鍑绘潃鏁屽浗闃佃惀鐜╁鍜孨PC鐨勭粺璁″��    67,
-    PlayerType = 68,                   //瑙掕壊鐨勪簲琛屽睘鎬э紝缁勯槦鐢� 1. 閲� 2. 鏈� 3. 姘� 4. 鍦� 5. 鐏�   68,
-    NameColor = 69,                    //瑙掕壊鍚嶅瓧棰滆壊  69,
-    AtkInterval = 70,                  //鏀诲嚮閫熷害 70,
-    Speed = 71,                        //閫熷害   71,
-    SuperHitRate = 72,                 //鏆村嚮鐜� 72,
-    PickupDist = 73,                   //鎷惧彇璺濈 73,
-    CountryLastWeekHornor = 74,        //涓婂懆鍥藉鑽h獕鍊�   74,
-    LastWeekOnlineTime = 75,           //涓婂懆鍦ㄧ嚎鏃堕棿  75,
-    LastWeekFamilyActiveValue = 76,    //涓婂懆娲昏穬搴�  76,
-    FBID = 77,                         //鐜╁鐨勫壇鏈琁D    77,
-    FamilyLV = 78,                     //瀹舵棌绛夌骇 78,
-    RealMapID = 79,                    //鏁版嵁鍦板浘ID   79,
-    GMLevel = 80,                      //gm绛夌骇鏀瑰彉   80,
-    TeamID = 81,                       //gm绛夌骇鏀瑰彉    81,
-    TeamLV = 82,                       //gm绛夌骇鏀瑰彉    82,
-    FightPower = 83,                    //鎴樻枟鍔�    83,
-    RebornMapID = 84,                   //閲嶇敓鍦板浘ID  84,
-    RebornPosX = 85,                    //閲嶇敓鐐箈   85,
-    RebornPosY = 86,                    //閲嶇敓鐐箉   86,
-    Coin = 87,                         //褰撳墠鐐瑰埜鏁扮洰   87,
-    BillboardLV = 88,                  //鎺掕姒滅瓑绾�  88,
-    Tick = 89,                         //褰撳墠Tick   89,
-    CurrentPlayerType = 90,            //褰撳墠浜旇 90,
-    FriendFavor = 91,                   //濂藉弸浜烘皵鍊煎埛鏂�   91
-    BackpackLV = 92,                    //鑳屽寘绛夌骇   92
-    ReincarnationLV = 93,               //杞敓绛夌骇 93
-    BaseSTR = 94,                      //瑁镐綋鍔涢噺    94,
-    BasePNE = 95,                      //瑁镐綋绮剧    95,
-    BasePHY = 96,                      //瑁镐綋鏁忔嵎    96,
-    BaseCON = 97,                      //瑁镐綋浣撹川    97,
-    //  BaseINT ,                      //瑁镐綋鏅哄姏
-    //  BaseLUCK ,                     //瑁镐綋骞歌繍
-    ReceivedSalary = 98,                //鐜╁鏈棰嗗彇鐨勫伐璧�    98
-    WarehouseLV = 99,                   //浠撳簱绛夌骇   99
-    EquipShowSwitch = 100,               //瑁呭鏄鹃殣寮�鍏�   100
-    LuckValue = 101,                     //骞歌繍鍊�   101
-    ExAttr1 = 102,                       //鎵╁睍灞炴��1   102榄斾粏浼ゅ24
-    ExAttr2 = 103,                       //鎵╁睍灞炴��2   103缁勯槦鏄惁闇�瑕佸鏍�
-    ExAttr3 = 104,                       //鎵╁睍灞炴��3   104鍏冪礌鏀诲嚮26
-    ExAttr4 = 105,                       //鎵╁睍灞炴��4   105鍏冪礌闃插尽27
-    ExAttr5 = 106,                       //鎵╁睍灞炴��5   106
-    Faction = 107,                       //闃佃惀        107
-    InfamyValue = 108,                   //鎭跺悕鍊�      108
-    RealmLevel = 109,                  //瀹橀樁        109
-    IsFindByLabel = 110,                  //鏄惁鍏佽鏍囩妫�绱�        110
-    IsCloseFriendLabel = 111,            //鏄惁鍏抽棴濂藉弸绛惧悕        111
-    ChangeCoinPointTotal = 112,           //鍏戞崲鐨勭偣鏁版�昏        112
-    VIPLv = 113,                          //VIP绛夌骇         113
-    ExAttr6 = 114,                       //鎵╁睍灞炴��6   114娴佽浼ゅ31
-    ExAttr7 = 115,                       //鎵╁睍灞炴��7   娉曞疂sp锛岄潪浜夸綅
-    ExAttr8 = 116,                       //鎵╁睍灞炴��8   娉曞疂sp锛屼嚎浣�
-    ExAttr9 = 117,                       //鎵╁睍灞炴��9   117鎺у埗鎶垫姉34
-    ExAttr10 = 118,                       //鎵╁睍灞炴��10  118杈撳嚭浼ゅ35
-    ModelMark = 119,                       //鍙樺舰妯″瀷Mark  119
-    PrizeCoin = 120,                       //濂栧姳鐐瑰埜鏁�   120
-    ExAttr11 = 121,                       //鎵╁睍灞炴��11  121 鐜伴噾浠e竵锛堜唬閲戝埜锛�
-    ExAttr12 = 122,                       //鎵╁睍灞炴��12 閫�鍑轰粰鐩熸椂闂�
-    ExAttr13 = 123,                       //鎵╁睍灞炴��13 鏈嶅姟鍣ㄧ粍ID
-    ExAttr14 = 124,                       //鎵╁睍灞炴��14  124
-
-    SkillAtkRate = 125,                  ///鎴樻枟灞炴��--鎶�鑳芥敾鍑讳激瀹�     125
-    LuckyHitRate = 126,                  ///鎴樻枟灞炴��--浼氬績涓�鍑绘満鐜囦竾鍒嗙巼  126
-    LuckyHitVal = 127,                   ///鎴樻枟灞炴��--浼氬績涓�鍑婚澶栦激瀹�    127
-    GreatHitRate = 128,                  ///鎴樻枟灞炴��--鍗撹秺涓�鍑绘満鐜囦竾鍒嗙巼  128
-    GreatHitVal = 129,                   ///鎴樻枟灞炴��--鍗撹秺涓�鍑婚澶栦激瀹�    129
-    KillBackHP = 130,                    ///鎴樻枟灞炴��--鏉�鎬洖琛�            130
-    KillBackMP = 131,                    ///鎴樻枟灞炴��--鏉�鎬洖榄�            131
-    DamageReduceRate = 132,              ///娌℃湁浣跨敤
-    DamageBackRate = 133,                ///鎴樻枟灞炴��--鍙嶄激涓囧垎姣�          133
-    GoldFoundRate = 134,                 ///鎴樻枟灞炴��--閲戦挶瀵昏幏鍔犳垚涓囧垎姣�  134
-    IgnoreDefRate = 135,                 ///鎴樻枟灞炴��--鏃犺闃插尽鏈虹巼涓囧垎鐜�  135
-    BattleValEx1 = 136,                  ///鎴樻枟灞炴��--鎵╁睍1 鏀婚��              136
-    BattleValEx2 = 137,                  //鎴樻枟灞炴��--鎵╁睍2   鏀诲嚮鍥炶            137
-    BattleValEx3 = 138,                  //鎴樻枟灞炴��--鎵╁睍3               138  澧炰激
-    BattleValEx4 = 139,                  //鎴樻枟灞炴��--鎵╁睍4               139
-    BattleValEx5 = 140,                  //鎴樻枟灞炴��--鎵╁睍5               140
-    HPRestorePer = 141,                  //鐢熷懡鍥炲                141
-    LVEx = 142,                          //鐜╁绛夌骇鍓湰锛岀敤浜庤浆鐢�        142
-    LV2 = 143,                           //澶у笀绛夌骇                      143
-    ExpPoint = 144,                      //鎵╁睍缁忛獙鐐规暟                  144
-    OperateInfo = 145,                   //鐜╁杩愯惀鍟嗛檮鍔犱俊鎭紝濡俀Q榛勯捇绛�145
-    SuperHitReduce = 146,                //鏆村嚮鎶楁��                   146
-    LuckyHitRateReduce = 147,                //浼氬績涓�鍑绘姉鎬�                   147
-    SkillAtkRateReduce = 148,               ///鎶�鑳藉噺浼�
-    DamagePVP = 149,                      //PVP澧炲姞浼ゅ       149 瀵瑰簲191 PVP澧炲姞鍑忓皯
-    SpeedValue = 150,                  //绉诲姩閫熷害                 150
-    DamagePVE = 151,                  ///鏆傛椂娌$敤                 151
-    PetDamPer = 152,                  //鐏靛吔澧炲姞浼ゅ                 152
-    IgnoreDefRateReduce = 153,                  //鏃犺闃插尽鎶楁��        153
-    DamChanceDef = 154,                  //鎶靛尽        154
-    BleedDamage = 155,                      //娴佽浼ゅ 155
-    FaintRate = 156,                    //鍑绘檿 156
-    FaintDefRate = 157,                       //鎺у埗鎶垫姉 157
-    FinalHurt = 158,                       //杈撳嚭浼ゅ158
-    FinalHurtReduce = 159,                //鍑忓皯鎵垮彈浼ゅ 159
-    DamagePerPVP = 160,              //PVP澧炲姞浼ゅ 160
-    DamagePerPVPReduce = 161,              //PVP鍑忓皯浼ゅ 161
-    ComboDamRate = 162,                    //杩炲嚮鍑犵巼162
-    ComboDamPer = 163,                    //杩炲嚮浼ゅ163
-    MaxProDef = 164,                    //鏈�澶ч槻鎶ゅ�� 164
-    FamilyContribution = 167,              //浠欑洘璐$尞搴�     167
-    FamilyStoreScore = 168,                //鑾峰彇浠欑洘浠撳簱绉垎
-    RuneSplinters = 169,                  //绗﹀嵃绮惧崕        169
-    Rune = 170,                  //绗﹀嵃纰庣墖        170
-    RealmPoint = 171,           //澧冪晫淇偧鐐�       171
-    MagicEssence = 172,//榄旂簿 172
-    UnionLiven = 173, //浠欑洘娲昏穬浠�
-    FBHelpPoint = 174,       //鍓湰鍔╂垬绉垎  174
-    PlayerPKState = 175, //鎴樻枟鐘舵��
-    IsAttackBossState = 176,  //鏄惁鍦ㄦ墦Boss 1 鍦� 0 涓嶅湪
-    BasicsMinimum = 177,//鍩虹鏈�灏忔敾鍑�
-    BasicsMaxAttack = 178,//鍩虹鏈�澶ф敾鍑�
-    BasicsLife = 179,//鍩虹鐢熷懡
-    BasicsDefense = 180,//鍩虹闃插尽
-    BasicsScoreAHit = 181,//鍩虹鍛戒腑
-    BasicsDodge = 182,//鍩虹闂伩
-    OnlyFinalHurt = 183,// 棰濆浼ゅ闄勫姞
-    CDBPlayerRefresh_ForbidenTalk = 184,//绂佽█
-    CDBPlayerRefresh_FuncDef = 185,  // 鍔熻兘灞傞槻寰�  185
-    CDBPlayerRefresh_TreasureScore = 186, //瀵诲疂鍟嗗簵绉垎
-    CDBPlayerRefresh_Danjing = 187,              // 涓圭簿 187
-    CDBPlayerRefresh_NPCHurtAddPer,//瀵规�墿浼ゅ鍔犳垚 188
-    FunalHurtPer = 189,// 鏈�缁堜激瀹冲姞鎴�
-    CDBPlayerRefresh_TalentPoint = 190,
-    CDBPlayerRefresh_GodWeaponLV_1 = 192,
-    CDBPlayerRefresh_GodWeaponLV_2 = 193,
-    CDBPlayerRefresh_GodWeaponLV_3 = 194,
-    CDBPlayerRefresh_GodWeaponLV_4 = 195,
-    CDBPlayerRefresh_SoulDust = 196,//鑱氶瓊-榄傚皹
-    CDBPlayerRefresh_SoulSplinters = 197,//鑱氶瓊-纰庣墖
-    CDBPlayerRefresh_SoulCore = 198,//鑱氶瓊-鏍稿績鐜�
-    CDBPlayerRefresh_Honor = 199, //# 鑽h獕鍊�
-    CDBPlayerRefresh_ZhuxianRate = 200,
-    CDBPlayerRefresh_Mater = 201, //# 鐏垫牴灞炴��-閲�
-    CDBPlayerRefresh_Wood = 202,//# 鐏垫牴灞炴��-鏈�
-    CDBPlayerRefresh_Water = 203,//# 鐏垫牴灞炴��-姘�
-    CDBPlayerRefresh_Fire = 204,//# 鐏垫牴灞炴��-鐏�
-    CDBPlayerRefresh_Earth = 205,//# 鐏垫牴灞炴��-鍦�
-    CDBPlayerRefresh_NormalHurt = 206,////灞炴�ф櫘閫氭敾鍑诲浼わ細鏅�氭敾鍑婚檮鍔犵殑鍥哄畾鍊间激瀹� 
-    CDBPlayerRefresh_NormalHurtPer = 207,////灞炴�ф櫘閫氭敾鍑诲浼わ細鏅�氭敾鍑婚檮鍔犵殑鍥哄畾鍊间激瀹� 
-    CDBPlayerRefresh_FabaoHurt = 208,// //灞炴�ф硶瀹濇妧鑳藉浼わ細娉曞疂鎶�鑳芥敾鍑婚檮鍔犵殑鍥哄畾鍊间激瀹�  
-    CDBPlayerRefresh_FabaoHurtPer = 209,//  //灞炴�ф硶瀹濇妧鑳藉姞鎴愶細娉曞疂鎶�鑳芥敾鍑婚檮鍔犵殑浼ゅ鐧惧垎姣� 
-    CDBPlayerRefresh_SuperHitRateReduce = 210,//鏆村嚮鎶楁��
-    CDBPlayerRefresh_LuckyHitReduce = 211,//浼氬績涓�鍑讳激瀹冲浐瀹氬�煎噺鍏�
-    CDBPlayerRefresh_FinalHurtReducePer = 212,//鏈�缁堜激瀹崇櫨鍒嗘瘮鍑忓皯
-    CDBPlayerRefresh_YinjiTime = 213,//鍗拌鎸佺画鏃堕棿锛屽崟浣嶆绉�
-    CDBPlayerRefresh_YinjiCount = 214,//鍗拌鎸佺画鏃堕棿锛屽崟浣嶆绉�
-
-    CDBPlayerRefresh_SkillAddPerA = 215,//瀹氭捣绁為拡鎶�鑳戒激瀹崇櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillAddPerB = 216, //鐨撴湀鏋妧鑳戒激瀹崇櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillAddPerC = 217, //楝肩墮鍒冩妧鑳戒激瀹崇櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillAddPerD = 218, //纾愰緳鍗版妧鑳戒激瀹崇櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillAddPerE = 219, //鏉忛粍鏃楁妧鑳戒激瀹崇櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillAddPerF = 220,//鍡滃ぉ鏂ф妧鑳戒激瀹崇櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillAddPerG = 221, //灏勬棩绁炲紦鎶�鑳戒激瀹崇櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillReducePerA = 222, //瀹氭捣绁為拡鎶�鑳藉噺浼ょ櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillReducePerB = 223, //鐨撴湀鏋妧鑳藉噺浼ょ櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillReducePerC = 224, //楝肩墮鍒冩妧鑳藉噺浼ょ櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillReducePerD = 225, //纾愰緳鍗版妧鑳藉噺浼ょ櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillReducePerE = 226, //鏉忛粍鏃楁妧鑳藉噺浼ょ櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillReducePerF = 227, //鍡滃ぉ鏂ф妧鑳藉噺浼ょ櫨鍒嗘瘮
-    CDBPlayerRefresh_SkillReducePerG = 228, //灏勬棩绁炲紦鎶�鑳藉噺浼ょ櫨鍒嗘瘮
-
-    //鍚庣画IL寮�鍙戞坊鍔犻璁�
-    default1,   // 229 
-    default2,   //230
-    default3,   // 鍔熻兘鐗规潈浠� 231
-    default4,   //  鐜繚鍊� 232
-    default5,   // 233浠欑帀璐熸暟 
-    default6,   // 234鐏电煶璐熸暟
-    default7,   
-    default8,
-    default9,   // 237 鍦板浘澧冪晫闅惧害
-    default10,  // 238 绂诲紑浠欑洘鏃堕棿鎴筹紙鍖呭惈涓诲姩閫�鍑烘垨琚涪
-    default11,  // 239 浠h〃榄呭姏绛夌骇
-    default12,
-    default13,  // 241 鍙ょ璐у竵
-    default14,  // 242 鍔熷痉鐐�
-    default15,
-    default16,
-    default17,  // 245 鏈虹紭鐐�
-    default18,
-    default19,  // 247 鎴愬氨绉垎
-    default20,  // 248 涓囩晫绉垎
-    default21,
-    default22,
-    default23,
-    default24,
-    default25,
-    default26,
-    default27,
-    default28,
-    default29,
-    default30,
-    default31,
-    default32,
-    default33,
-    default34,  // 262 鍑瘉绉垎
-    default35,  // 263 鑱氶瓊绮惧崕
-    default36,  // 264 Boss鏈�缁堜激瀹冲姞鎴�
-    default37,  // 265 楠戝疇绉垎
-    default38,  // 266 鍙ゅ疂鍏绘垚璐у竵
-    default39,  // 267 澶╅亾甯�
-    default40,
-    default41,  // 269 杩囨湡鍨嬩唬閲戝埜
-    default42,  // 270 浠欑紭绉垎
-    default43,  // 271 骞诲闃佺Н鍒�
-    default44,  
-    default45,
-    default46,
-    default47,
-    default48,
-    default49,
-    default50,
-};
-
-
-/** 鑳屽寘绫诲瀷鐮佸畾涔� */
-public enum PackType
-{
-    Deleted = 0, // 宸插垹闄ょ墿鍝侊紝寮冪敤
-    Equip = 1, // 瑁呭
-    Item = 2, // 鐗╁搧
-    Warehouse = 5, // 浠撳簱
-    Horse = 12, // 鍧愰獞鑳屽寘
-    AnyWhere = 13, // 涓囪兘鑳屽寘
-    InterimPack = 28,//涓存椂浜ゆ崲鑳屽寘
-    Treasure = 30, // 瀵诲疂鑳屽寘
-    PetPack = 31, //瀹犵墿鑳屽寘
-    DogzItem = 32, //绁炲吔鐗╁搧鑳屽寘
-    DogzEquip = 33, //绁炲吔瑁呭鑳屽寘锛堢鍏界┛鎴达級
-
-    //鍚庣画IL寮�鍙戞坊鍔犻璁�
-    default1,   //34 鍨冨溇鍥炴敹
-    default2,
-    default3,
-    default4,
-    default5,
-    default6,
-    default7,
-    default8,
-    default9,
-    default10,
-
-    GatherSoul = 254,//鑱氶瓊
-    RunePack = 255,//绗﹀嵃鑳屽寘
-}
-
-
-public enum ItemType
-{
-    Copper = 1,// 閾滈挶
-    Drugs = 7,// 鑽搧
-    Buff = 9, //Buff绫诲瀷
-    Gemstone = 25,// 瀹濈煶
-    ComposeSuitStone = 35, //濂楄鐭崇鐗�
-    WingsMat = 39,              //鍚堟垚缈呰唨鏉愭枡锛岀窘缈肩簿鐐兼潗鏂�
-    DropCopper = 43,           // 鎺夎惤閾滈挶
-    VipTools = 80,                 //vip閬撳叿
-    Box = 81,                         //瀹濈
-    Equip_Weapon = 101,         // 涓绘墜
-    Equip_Weapon2 = 102,       // 鍓墜
-    Equip_Hat = 103,                // 甯藉瓙
-    Equip_Clothes = 104,          // 琛f湇
-    Equip_Belt = 105,                // 鑵板甫
-    Equip_Trousers = 106,         // 瑁ゅ瓙
-    Equip_Shoes = 107,             // 闉嬪瓙
-    Equip_Glove = 108,              //鎵嬪
-    Equip_Neck = 109,               //椤归摼
-    Equip_FairyCan1 = 110,       //浠欏櫒
-    Equip_FairyCan2 = 111,       //浠欏櫒
-    Equip_Jade = 112,               //鐜変僵
-    Equip_Wing = 113,              // 缈呰唨
-    Guard_1 = 114,                  // 鐏靛畧 1
-    Guard_2 = 115,                   //鐏靛畧 2
-    
-}
-
-
-public enum MakeType
-{
-    OneKeySell = 3,          // 涓�閿嚭鍞洖搴�
-    EquipStarUpgrade = 8,         // 瑁呭鍗囨槦
-    ItemCompound = 13,      // 鐗╁搧鍚堟垚
-    DrugRefine = 18,            // 鐐间腹
-    DrugRecycle = 20, //涓硅嵂鍥炴敹
-    DogzEquipPlus = 21,// 绁炲吔瑁呭寮哄寲 
-    RuneCompound = 22,//绗﹀嵃鍚堟垚
-    GatherSoulCompound = 23,//鑱氶瓊鍚堟垚
-    GatherSoulDecompose = 24,//鑱氶瓊鍒嗚В
-
-}
-
-
-/// <summary>
-/// 绉板彿绫诲瀷
-/// </summary>
-public enum TitleType
-{
-    None = -1,
-    Get = 0,//宸茶幏寰�
-    Activity = 1, //娲诲姩绉板彿
-    Vip = 2,       //VIP绉板彿
-    Achivement = 3, //鎴愬氨绉板彿
-    UserDefined = 4, //鑷畾涔�
-
-}
-
-
-//鍔熻兘寮�鍚檺鍒剁被鍨�
-public enum FuncOpenEnum
-{
-    Strength = 1,//瑁呭寮哄寲
-    Gem = 2,//瀹濈煶闀跺祵
-    Wing = 3,//缈呰唨
-    Pet = 6,//鐏靛疇
-    Treasure = 7,//娉曞疂
-    Mounts = 8,//鍧愰獞
-    Rune = 9,//绗﹀嵃
-    Realm = 12, //澧冪晫
-    Fairy = 15,// 浠欑洘
-    FairyTask = 16,
-    GodWeapon = 20,  //绁炲叺
-    SelfBoss = 22,//涓汉Boss
-    Title = 24, //绉板彿
-    Talent = 149,//澶╄祴鎶�鑳�
-    Suit = 36,//濂楄杩涘寲
-    ExpPray = 60,//缁忛獙绁堟効
-    CoinPray = 61,//閾滈挶绁堟効
-    WorldLv = 71,//涓栫晫绛夌骇
-    Rank = 72,//鎺掕姒�
-    Friend = 73,//濂藉弸
-    TouchSky = 74,//鐧诲ぉ
-    Compose = 75,//鍚堟垚
-    HuntTreasure = 76,//鎵撳疂
-    Market = 77,//甯傚満
-    DayDaily = 78,//鏃ュ父
-    Store = 79,//鍟嗗煄
-    RuneTower = 80,//绗﹀嵃濉�
-    SignIn = 81,//绛惧埌
-    Potential = 82,//娼滃姏鍔犳垚
-    IceCrystal = 83,//鍐版櫠鐭胯剦
-    FairyFest = 84,//浠欑洘瀹翠細
-    Kylin = 85,//楹掗簾涔嬪簻
-    FairyLand = 86,//浠欑晫绉樺
-    BlastFurnace = 87,//鐐间腹
-    Munekado = 88,//瀹楅棬璇曠偧
-    GuardSky = 89,//瀹堝崼浜虹殗
-    WingRefine = 90,//缈呰唨绮剧偧
-    EquipRefine = 91,//瑁呭绮剧偧
-    ElderGods = 92,//鍙ょ绂佸湴
-    EquipCompose = 93,//瑁呭鍚堟垚
-    Guard = 94,//瀹堟姢
-    SkillTreasure = 95,//鎶�鑳芥硶瀹�
-    WingCompose = 97,//缈呰唨鍚堟垚
-    Demon = 98,//娣蜂贡濡栧煙
-    HappyFindTreasure = 99,//娆箰瀵诲疂
-    FightPromote = 100,//鎴樺姏鎻愬崌
-    AncientBattleGround = 101,//涓婂彜鎴樺満
-    Chat = 102,//鑱婂ぉ
-    FairyLeague = 111,//浠欑洘鑱旇禌
-    Recharge = 113,//鍏呭��
-    OpenServerRedEnvelope = 122,//寮�鏈嶇孩鍖�
-    EquipDecompose = 123, //瑁呭鍒嗚В
-    TreasureFindHost = 124, //娉曞疂璁や富
-    Dogz = 138, //绁炲吔
-    ReikiRoot = 145,//鐏垫牴
-    CrossServer = 157, //璺ㄦ湇澶╂璧�
-    CrossServerBoss = 162,
-    HazyRegion = 173,//缂ョ紙浠欏煙
-    DayOnline = 189, //姣忔棩鍦ㄧ嚎
-
-    //鍚庣画IL寮�鍙戞坊鍔犻璁�
-    default1,
-    default2,
-    default3,
-    default4,
-    default5,
-    default6,//绔炴妧鍦�
-    default7,
-    default8,
-    default9,
-    
-}
-
-
-//灞炴�х被鍨�
-public enum PropertyType
-{
-    LV = 1,//绛夌骇
-    POWER = 2,  //鍔涢噺
-    AGILITY = 3, //鏁忔嵎(韬硶)
-    PHYSIQUE = 4,//浣撹川
-    MENTALITY = 5,//鏅哄姏(鐏靛姏)
-    HP = 6, //鐢熷懡
-    ATK = 7, //鏀诲嚮
-    DEF = 8, //闃插尽
-    HIT = 9, //鍛戒腑
-    MISS = 10, //闂伩
-    ATKSPEED = 11,//鏀诲嚮閫熷害
-    CritChance = 12,//鏆村嚮鍑犵巼
-    CritHurt = 13,//鏆村嚮浼ゅ
-    CritResis = 14,//鏆村嚮鍑忎激
-    HeartHit = 15,//浼氬績涓�鍑�
-    HeartHurt = 16,//浼氬績浼ゅ
-    HeartResis = 17,//浼氬績鎶楁��
-    SkillHurt = 18,//鎶�鑳藉姞鎴�
-    PVPAddHurt = 19,//PVP澧炲姞浼ゅ
-    PVPReduceHurt = 20,//PVP鍑忓皯浼ゅ
-    LifeReply = 21,//鐢熷懡鍥炲
-    HurtReflect = 22,//浼ゅ鍙嶅皠
-    MoveSpeed = 23,//绉诲姩閫熷害
-    PetHurt = 24,//鐏靛吔浼ゅ
-    PetAddHurt = 25,//鐏靛吔澧炲姞浼ゅ
-    RealHurt = 26,//鐪熷疄浼ゅ
-    RealResis = 27,//鐪熷疄鎶垫姉
-    DefyDef = 28,//鏃犺闃插尽
-    DefyDefResis = 29,//鏃犺闃插尽鎶楁��
-    DefChance = 30,//闃插尽鍑犵巼
-    BloodHurt = 31,//娴佽浼ゅ
-    AktReplyBlood = 32,//鏀诲嚮鍥炶
-    Stun = 33,//鍑绘檿
-    CtrlResis = 34,//鎺у埗鎶垫姉
-    AddFinalHurt = 35,//闄勫姞浼ゅ
-    ReduceFinalHurt = 36,//闄勫姞浼ゅ鍑忓皯
-    PVPAddHurtPer = 37,//PVP鐧惧垎姣斿鍔犱激瀹�
-    PVPReduceHurtPer = 38,//PVP鐧惧垎姣斾激瀹冲噺灏�
-    DleHitChance = 39,//杩炲嚮鍑犵巼
-    DleHurt = 40,//杩炲嚮浼ゅ
-    BasicAtkPercent = 41, //鍩虹鏀诲嚮鐧惧垎姣�
-    BasicHpPercent = 42, //鍩虹鐢熷懡鐧惧垎姣�
-    BasicDefPercent = 43, //鍩虹闃插尽鐧惧垎姣�
-    HitPercent = 44, //鍛戒腑鐧惧垎姣�
-    DodgePercent = 45,//闂伩鐧惧垎姣�
-    KillMonsExpPercent = 46,//鏉�鎬粡楠岀櫨鍒嗘瘮
-    HorcruxBasicAttrPercent = 48, //榄傚櫒鍩虹灞炴��
-    ReduceSkillHurtPercent = 49, //鎶�鑳藉噺浼�
-    HpPercent = 50,//鐢熷懡鐧惧垎姣�
-    AtkPercent = 51, //鏀诲嚮鐧惧垎姣�
-    EveryLvAddAtk = 52, //姣�1绾�+%s鏀诲嚮
-    EveryLvAddHp = 53, //姣�1绾�+%s鐢熷懡
-    AddEquipDropPrecent = 54, //澧炲姞瑁呭鎺夎惤鐜�
-    AddCoinsPrecent = 55,//澧炲姞閲戝竵
-    AddRealHurtPer = 61,//鐧惧垎姣斿鍔犵湡瀹炰激瀹�
-    ReduceRealHurtPer = 62,//鐧惧垎姣斿噺灏戠湡瀹炰激瀹�
-    ArmorMaxHPPer = 63,//鍩虹瑁呭鐢熷懡
-    WeaponAtkPer = 65,//鍩虹瑁呭鏀诲嚮
-    ArmorDefPer = 66, //闃插叿闃插尽鐧惧垎姣�
-    MinAtk = 67, //鏈�灏忔敾鍑�
-    MaxAtk = 68, //鏈�澶ф敾鍑�
-    DefencePercent = 69,//闃插尽鐧惧垎姣�
-    CritHurtPercent = 70,//鏆村嚮浼ゅ
-    MoveSpeedPercent = 71, //绉诲姩閫熷害鐧惧垎姣�
-    MaxProDef = 72, //闃叉姢鍊�
-    ProDefHPPer = 73,//闃叉姢鍊肩櫨鍒嗘瘮
-    ProDefAbsorb = 74, //鎶ょ浘鍚告敹浼ゅ鐧惧垎姣�
-    BaseHitPer = 75, //鍩虹鍛戒腑鐧惧垎姣�
-    BaseMissPer = 76, //鍩虹闂伩鐧惧垎姣�
-    PetMinAtk = 77, //鐏靛疇鏈�灏忔敾鍑�
-    PetMaxAtk = 78, //鐏靛疇鏈�澶ф敾鍑�
-    OnlyFinalHurt = 79, //棰濆杈撳嚭浼ゅ
-    PVPAtkBackHP = 80, //PVP鏀诲嚮鍥炶
-    ChanceExpRate = 81, //缁忛獙鏆村嚮
-    HorseAtkPer = 82, //鍧愰獞鏀诲嚮
-    StoneBasePer = 83, //瀹濈煶鍩虹灞炴��
-    RealmBasePer = 84, //澧冪晫鍩虹灞炴��
-    PetSkillAtkRate = 85, //瀹犵墿鎶�鑳戒激瀹�
-    WingHPPer = 86, //缈呰唨鐢熷懡
-    SuiteBasePer = 87, //濂楄鍩虹灞炴��  
-    PlusBaseAtkPer = 88,  //寮哄寲鏀诲嚮
-    NpcHurtAddPer = 89,//鐧惧垎姣擯VE鎶�鑳藉姞鎴�
-    JobAHurtAddPer = 90,//瀵归緳榄備激瀹冲鍔犵櫨鍒嗘瘮
-    JobBHurtAddPer = 91,//瀵圭伒鐟朵激瀹冲鍔犵櫨鍒嗘瘮
-    JobCHurtAddPer = 92,//瀵瑰紦绠墜浼ゅ澧炲姞鐧惧垎姣�
-    JobAAtkReducePer = 93,//鎵垮彈榫欓瓊浼ゅ鍑忓皯鐧惧垎姣�
-    JobBAtkReducePer = 94,//鎵垮彈鐏电懚浼ゅ鍑忓皯鐧惧垎姣�
-    JobCAtkReducePer = 95, //鎵垮彈寮撶鎵嬩激瀹冲噺灏戠櫨鍒嗘瘮
-    ZXCloakAttrPer = 96, //璇涗粰路鎶灞炴�х櫨鍒嗘瘮
-    ZXMaskAttrPer = 97, //璇涗粰路闈㈢僵灞炴�х櫨鍒嗘瘮
-    ZXGloveAttrPer = 98,//璇涗粰路鎵嬪灞炴�х櫨鍒嗘瘮
-    ZXRuyiAttrPer = 99,//璇涗粰路濡傛剰灞炴�х櫨鍒嗘瘮
-    ZXPendantAttrPer = 100, //璇涗粰路鍚婂潬灞炴�х櫨鍒嗘瘮
-    ZXRingAttrPer = 101, //璇涗粰路鎴掓寚灞炴�х櫨鍒嗘瘮
-    SkillAddPerA = 102,//瀹氭捣绁為拡鎶�鑳戒激瀹崇櫨鍒嗘瘮
-    SkillAddPerB = 103, //鐨撴湀鏋妧鑳戒激瀹崇櫨鍒嗘瘮
-    SkillAddPerC = 104, //楝肩墮鍒冩妧鑳戒激瀹崇櫨鍒嗘瘮
-    SkillAddPerD = 105, //纾愰緳鍗版妧鑳戒激瀹崇櫨鍒嗘瘮
-    SkillAddPerE = 106, //鏉忛粍鏃楁妧鑳戒激瀹崇櫨鍒嗘瘮
-    SkillAddPerF = 107,//鍡滃ぉ鏂ф妧鑳戒激瀹崇櫨鍒嗘瘮
-    SkillAddPerG = 108, //灏勬棩绁炲紦鎶�鑳戒激瀹崇櫨鍒嗘瘮
-    SkillReducePerA = 109, //瀹氭捣绁為拡鎶�鑳藉噺浼ょ櫨鍒嗘瘮
-    SkillReducePerB = 110, //鐨撴湀鏋妧鑳藉噺浼ょ櫨鍒嗘瘮
-    SkillReducePerC = 111, //楝肩墮鍒冩妧鑳藉噺浼ょ櫨鍒嗘瘮
-    SkillReducePerD = 112, //纾愰緳鍗版妧鑳藉噺浼ょ櫨鍒嗘瘮
-    SkillReducePerE = 113, //鏉忛粍鏃楁妧鑳藉噺浼ょ櫨鍒嗘瘮
-    SkillReducePerF = 114, //鍡滃ぉ鏂ф妧鑳藉噺浼ょ櫨鍒嗘瘮
-    SkillReducePerG = 115, //灏勬棩绁炲紦鎶�鑳藉噺浼ょ櫨鍒嗘瘮
-    Luck = 120,//姘旇繍
-    LuckPer = 133,//姘旇繍鐧惧垎姣�
-
-    AddNormalHurt = 134,//鍥哄畾鍊煎鍔犳櫘閫氭敾鍑讳激瀹�
-    AddNormalHurtPer = 135,//鐧惧垎姣斿鍔犳櫘閫氭敾鍑讳激瀹�
-    AddSkillHurt = 136,//鍥哄畾鍊煎鍔犳妧鑳戒激瀹�
-    AddSkillHurtPer = 137,//鐧惧垎姣斿鍔犳妧鑳戒激瀹�
-
-    ReduceCrit = 138,//鍑忓皯鏆村嚮鐜�
-    ReduceHeartHurtPer = 139,//浼氬績鍑忎激
-    AddHeartHurtPer = 140,//鐧惧垎姣斿鍔犱細蹇冧竴鍑讳激瀹�
-    AddPVEHurt = 141,//鍥哄畾鍊煎鍔爌ve浼ゅ
-    AddFinalHurtPer = 142,//鐧惧垎姣斿鍔犳渶缁堜激瀹�
-    ReduceFinalHurtPer = 143,//鐧惧垎姣斿噺灏戞渶缁堜激瀹�
-
-    ReduceSkillCDPer = 149, //鍑忓皯鎵�鏈夋妧鑳紺D鐧惧垎姣�
-
-    //鍚庣画IL寮�鍙戞坊鍔犻璁�
-    default1,
-    default2,
-    default3,
-    default4,
-    default5,
-    default6,
-    default7,
-    default8,
-    default9,
-    default10,
-    default11,
-    default12,      //161 浠欑洘浜嬪姟閫熷害鍔犳垚
-    default13,      //浠欑洘BOSS浼ゅ鍔犳垚
-    default14,      //浠欑洘鑱旇禌鐢熷懡鍔犳垚
-    default15,      //浠欑洘鑱旇禌鏀诲嚮鍔犳垚
-    default16,      //浠欑洘鎵撳潗缁忛獙鍔犳垚
-    default17,
-
-    Mater = 201,//閲�
-    Wood = 202,//鏈�
-    Water = 203,//姘�
-    Fire = 204,//鐏�
-    Earth = 205,//鍦�
-
-}
-
-
-public enum TextColType
-{
-    None = 0,
-    White = 1,
-    Blue = 2,
-    Purple = 3,
-    Orange = 4,
-    Red = 5,
-    Pink = 6,
-    /// <summary>
-    /// 娣辫鑹� 401c06 (64, 28, 6, 255)
-    /// </summary>
-    NavyBrown,
-    Green = 9,//缁胯壊
-    Black = 10,
-    /// <summary>
-    /// 娣辩豢鑹� 109d06 (16, 157, 6, 255)
-    /// </summary>
-    DarkGreen = 12,
-    NavyYellow = 13,
-    LightGreen = 14,
-    /// <summary>
-    /// fff4cd
-    /// </summary>
-    LightYellow = 15,
-    /// <summary>
-    /// (204, 204, 204, 255)
-    /// </summary>
-    Gray = 16,
-
-}
-
-
-public enum E_ModelResType
-{
-    Weapon = 1, //姝﹀櫒 1
-    Wing, //缈呰唨 2
-    Horse, //鍧愰獞 3
-    Suit, //濂楄 4
-    Pet,// 瀹犵墿5
-    Secondary,// 鍓墜 6
-    Hand,// 鎵嬭噦 7
-    Spirit,//鐏靛櫒 8
-
-}
-
-
-public enum TreasureCategory
-{
-    Human = 1,
-    Demon = 2,
-    Fairy = 3,
-    King = 4,
-    Zerg = 5,
-
-}
-
-
-public enum TreasureState
-{
-    Collected,
-    Collecting,
-    Locked,
-}
-
-
-public enum FunctionUnlockType
-{
-    NoneType = 0,
-    Treasure = 1,
-    Normal = 2,
-    TreasureSkill = 3,
-    Skill = 4,
-    TreasureFunc = 5,
-    TreasureChapter = 6,
-
-}
-
-
-public enum RedPointState
-{
-    None = 0,
-    Simple = 1,
-    Quantity = 2,
-    Full = 3,
-    GetReward = 4,
-}
-
-
-public enum TeamInviteType
-{
-    Friend,
-    Fairy,
-    NearBy,
-
-}
-
-
-public enum TeammatePrepareState
-{
-    UnPrepared = 0,//鏈噯澶�
-    Prepared = 1,//宸插噯澶�
-    Rejected = 2,//鎷掔粷
-}
-
-
-public enum VipPrivilegeType
-{
-    TreasureAtk = 1,
-    GemHole = 2,
-    VipBuff = 3,
-    TradeTax = 4,
-    PrivateClerk = 5,
-    FreeTransfer = 6,
-    AutoFairyMisstion = 7,
-    Gather = 8,
-    Undead = 9,
-    KillMonsterExpUp = 10,
-    Minion = 11,
-    KillMonsterSp = 12,
-    GoldWish = 13,
-    ExpWish = 14,
-    SelfBoss = 15,   //涓汉boss鍩虹娆℃暟
-    BossHome = 16,
-    PetDungeon = 17,
-    BaptizeDungeon = 18,
-    ForbiddenArea = 19,
-    Fane = 20,
-    Chasm = 21,
-    DarkDorr = 22,
-    FairyDaimondGift = 23,
-    MarketPutawayPwd = 24,
-    DemonJar = 25,
-    BossHomeAwardLimit = 27,
-    DemonJarDouble = 28,
-    BindJadeWheel = 30,
-    PrayForDrug = 31,
-    DemonJarAuto = 32,
-    AssistXianYuanCoinsAdd = 33,//鍔╂垬浠欑紭甯佷笂闄愬姞鎴�
-    AssistXianYuanCoinsRatioAdd = 34,//鍔╂垬浠欑紭甯佽幏寰楀�嶇巼鍔犳垚锛堜竾鍒嗘瘮锛�
-    JadeDynastyBoss = 35,
-    BatchAlchemyFairy = 36,//鎵归噺鐐煎埗浠欎腹
-    BossHomeBuyTimes = 37,//boss涔嬪璐拱娆℃暟
-    SelfBossBuyTims = 38, //涓汉boss璐拱娆℃暟
-    
-}
-
-
-public enum E_AttackMode
-{
-    Peace,
-    All,
-    Country,
-    Group,
-    Team,
-    Family,
-    GoodEval,
-    Contest,
-
-}
-
-
-public enum E_ItemColor
-{
-    White = 1,
-    Blue,
-    Purple,
-    Orange,
-    Red,
-    Pink,
-
-}
-
-
-public enum FindPreciousType
-{
-    WorldBoss = 0,
-    BossHome = 1,
-    PersonalBoss = 2,
-    ElderGodArea = 3,
-    DemonJar = 4,
-    CrossServerBoss = 6,
-    JadeDynastyBoss = 7,
-
-    None = 99,
-}
-
-
-public enum GotServerRewardType
-{
-    Def_RewardType_Activity = 0,
-    Def_RewardType_FamilyActivity = 1,
-    Def_RewardType_ChampionFamilyDailyReward = 2,
-    Def_RewardType_XMZZWinCnt = 3,
-    Def_RewardType_FairyDayAward = 4,
-    Def_RewardType_XBXZ = 6, // 浠欏疂瀵讳富濂栧姳6
-    Def_RewardType_DayRealmPoint = 7,//鏃ュ父淇鐐�
-    Def_RewardType_GoldGiftFirst = 8,//棣栧啿绀煎寘
-    Def_RewardType_TreasureSoul = 9,//娉曞疂榄傚鍔�
-    Def_RewardType_ConsumeRebate = 11,//娑堣垂杩斿埄濂栧姳
-    Def_RewardType_BossReborn = 12,//boss澶嶆椿濂栧姳
-    Def_RewardType_FCRecharge = 13,// 浠欑晫鐩涘吀鍏呭�煎ぇ绀�13W
-    Def_RewardType_FCParty = 14,// 浠欑晫鐩涘吀鍏ㄦ皯鏉ュ棬14
-    Def_RewardType_WishingWell = 16,//  璁告効姹犲鍔�16
-    Def_RewardType_OpenFunc = 17,//鍔熻兘棰勫憡濂栧姳
-    Def_RewardType_TotalRecharge = 18,//绱鍏呭�煎鍔�
-    Def_RewardType_IceLodeStar = 19, //鍐版櫠鐭胯剦鏄熺骇濂栧姳19
-    Def_RewardType_WeekPartyAct = 20, //棰嗗彇鍛ㄧ媯娆㈡椿鍔ㄥ鍔�20
-    Def_RewardType_WeekPartyPoint = 21,// 棰嗗彇鍛ㄧ媯娆㈢Н鍒嗗鍔�21
-    Def_RewardType_ActLoginAwardAct = 22,// 棰嗗彇鐧诲綍濂栧姳娲诲姩濂栧姳22
-    Def_RewardType_NewFairyCRecharge = 23, // 鏂颁粰鐣岀洓鍏稿厖鍊煎ぇ绀�23
-    Def_RewardType_NewFairyCParty = 24, // 鏂颁粰鐣岀洓鍏稿叏姘戞潵鍡�24
-    Def_RewardType_FeastWeekPartyAct = 25, //棰嗗彇鑺傛棩宸$ぜ娲诲姩濂栧姳25
-    Def_RewardType_FeastWeekPartyPoint = 26, //棰嗗彇鑺傛棩宸$ぜ绉垎濂栧姳26
-    Def_RewardType_FairyAdventuresAward = 27,//缂ョ紙濂囬亣
-    Def_RewardType_HistoryChargeAward = 28,//绱鍏呭��
-    Def_RewardType_DayPackageFree = 29,//姣忔棩鍏嶈垂绀煎寘
-    Def_RewardType_ActivityPlace = 30,//娲昏穬鏀剧疆濂栧姳
-
-    Def_RewardType_HolidayLogin = 37,//鑺傛棩鐧诲綍濂栧姳
-    Def_RewardType_HolidayTravel = 38,//鑺傛棩娓稿巻濂栧姳
-    
-}
-
-
-public enum MapType
-{
-    OpenCountry = 0,//閲庡鍦板浘
-    SingleFB = 1,        //鍗曚汉鍓湰
-    MultipleFB = 2,    //缁勯槦鍓湰
-    FamilyFB = 3,       //瀹舵棌鍓湰
-    FamilyWarFB = 4, //瀹舵棌鎴樺壇鏈�
-    CountryExam = 5, //鍥藉绛旈
-    CountryFB = 6,      //鍥藉鍓湰
-    AllByCountry = 7,  //闃佃惀鍓湰
-    All = 8,                   //鎵�鏈�
-    VSRoom = 9,         //pk鎴块棿
-    CrossAll = 11,       //璺ㄦ湇鎵�鏈�
-
-}
-
-
-public enum GuideType
-{
-    NewBie = 1,
-    Functional = 2,
-}
-
-
-public enum GuideTriggerType
-{
-    None = 998,//鏃犻檺鍒�
-    FunctionOpen = 1,//鍔熻兘寮�鏀�
-    ManualFunctionOpen = 51,//鎵嬪姩鍔熻兘寮�鏀�
-    Level = 2,               //绛夌骇婊¤冻鏉′欢
-    Treasure = 3,//娉曞疂
-    EquipQuality = 4,//瑁呭鍝佽川
-    Item = 5,//鎸囧畾鐗╁搧
-    TreasureDungeon = 6,//娉曞疂鍓湰
-    Map = 11,//鍦板浘
-    RuneInlay = 12,//绗﹀嵃闀跺祵
-    RealmSitDown = 13,//澧冪晫鎵撳潗
-    ItemCompound = 14,//鐗╁搧鍚堟垚
-    HangUpResult = 15,//鎸傛満缁撶畻
-    TreasureCollectSoul = 16,//娉曞疂闆嗛瓊
-    TreasureAwaken = 17,//娉曞疂瑙夐啋
-    Pray = 18,//绁堟効
-    VIPExperience = 19,//vip浣撻獙
-    FairyLandBuyTimes = 20,//浠欑晫绉樺璐拱娆℃暟
-    TeamAutoAccept = 21,//鑷姩鎺ュ彈缁勯槦閭�璇�
-    TrialExchange = 22,//瀹楅棬璇曠偧鍏戞崲鏉愭枡
-
-    
-
-    QuestCanAccept = 100,//浠诲姟鍙帴
-    MainLineQuestCanDo = 101,//浠诲姟杩涜涓�
-    MainLineQuestCanAward = 102,//浠诲姟鍙濂�
-    MainLineQuestLimit = 106,//浠诲姟琚檺鍒�
-    MainLineQuestContinue = 110,//浠诲姟鍙户缁�
-
-    BranchQuestCando = 201,//鏀嚎浠诲姟鍙仛
-    BranchQuestCanAward = 202,//鏀嚎浠诲姟鍙濂�
-    BranchQuestLimit = 206,//鏀嚎浠诲姟琚檺鍒�
-    BranchQuestContinue = 210,//鏀嚎浠诲姟鍙户缁�
-}
-
-
-public enum FuncPowerType
-{
-    Role = 0,//瑙掕壊
-    Equip = 1,//瑁呭
-    Plus = 2,//寮哄寲
-    Stone = 3,//瀹濈煶
-    Reiki = 4,//鐏垫牴
-    Wing = 5,//缈呰唨
-    Wash = 6,//娲楃偧
-    Pet = 7,//鐏靛疇
-    Horse = 8,//鍧愰獞
-    Realm = 9,//澧冪晫
-    GodWeapon = 10,//绁炲叺
-    Title = 11,//绉板彿
-    Rune = 12,//绗﹀嵃
-    Star = 13,//鍗囨槦
-    Human = 14,//浜烘棌娉曞疂
-    Alchemy = 15,//鍏崷鐐�
-    Demon = 16,//榄旀棌娉曞疂
-    Fairy = 17,//浠欐棌娉曞疂
-    PetSoul = 18,//鐏靛疇榄傜煶
-    HorseSoul = 19,//鍧愰獞榄傜煶
-    Dogz = 21,//绁炲吔
-    GatherSoul = 22,//鑱氶瓊
-    King = 23,//鐜嬭�呮硶瀹�
-    FashionDress = 24,//鏃惰
-    JadeDynastyEquip = 25, //璇涗粰瑁呭
-
-    
-}
-
-
-public enum E_AtkType
-{
-    Special, //0 鐗规畩锛堝皢璧拌繘鍏蜂綋鐨勬妧鑳絀D杩涜澶勭悊锛屾牴鎹晥鏋淚D
-    Single,//1 鍗曚綋鐩爣鎶�鑳芥敾鍑�
-    Multiple,//2 缇や綋鐩爣鎶�鑳芥敾鍑�
-    Transmit,//3 缇や綋鐩爣鎶�鑳芥敾鍑�(閾惧紡) 鏁堟灉1濉激瀹筹紝鏁堟灉2濉�掑锛屾晥鏋�3濉烦鍑犳
-    ClearHatred,//4 娓呬粐鎭� 娓呴櫎鐩爣鍦ㄩ噴鏀捐�呬粐鎭ㄥ垪琛ㄥ唴鐨勪粐鎭ㄧ櫨鍒嗘瘮 NPC浣跨敤
-    SingleHatred,//5 鍗曚綋浠囨仺鎶�鑳�
-    MultipleBuff,//6 缇や綋BUFF
-    Summon,//7 鍙敜锛堝彫鍞ゅ吔鐨勬敾鍑诲姏鍙朜PC琛ㄧ殑鏁板�硷級
-    SingleRecoverAtkPer,//8 鍗曚綋鎭㈠鑷韩鏀诲嚮鐧惧垎姣旇閲忥紙浠呴拡瀵圭灛鍙戞妧鑳�
-    FastMove,//9 鎷︽埅銆佹殫褰辨銆佹潃鎴洓瀹存ā鏉� 闈炵帺瀹朵笉鍙敤 鎶�鑳戒細閫犳垚浼ゅ骞朵笖姝ゆRUSH鏆村嚮鐜囦細鎻愰珮鐨勶紝闇�瑕佸~鏁堟灉AB鍊硷紝鍏朵腑锛氭晥鏋�1 A鍊间激瀹崇櫨鍒嗘瘮锛孊鍊间激瀹冲浐瀹氬�� 鏁堟灉2 A鍊兼毚鍑伙紝B鍊兼毚鍑荤櫨鍒嗘瘮
-    FlashMove,//10 娉曞笀闂幇
-    //11 NPC缁欏彫鍞ゅ吔鍔燘UFF
-    //12 鏈夎搴︾殑缇ゆ敾:鍗婂緞瀛楁涓虹被鍨嬶細1 鐩寸嚎锛�2 5鏍兼暎灏勬敾鍑� 3 6鏍兼暎灏�
-    //13 娓呯┖NPC鑷繁鐨勬渶澶т粐鎭ㄨ��
-    //15 NPC涓撶敤锛屾壘鍒板綋鍓嶄粐鎭ㄥ垪琛ㄤ腑鏈�澶т粐鎭ㄨ�咃紝濡傛灉鍦ㄨ閲庝腑鍒欑灛绉昏繃鍘�
-    //16 鍙敜鍏戒笓鐢紝鍙敜NPC锛堝彫鍞ゅ吔鐨勬敾鍑诲姏鍙栨敾鍑诲彇鐜╁鐨勬敾鍑诲姏锛�
-    //17 鎸夎閲忔坊鍔犱粐鎭紙鑲夊疇锛�
-    //18 鍗曚綋鎭㈠鑷韩姘旇涓婇檺鐧惧垎姣旇閲忥紙閽堝鐬彂鎶�鑳斤級鏁堟灉1a鍊煎~鐧惧垎姣旓紝b鍊煎~鍥哄畾鍊�
-    //19 缇や綋鏀诲嚮鎶�鑳斤紝浼ゅ涓鸿寖鍥村唴鎵�鏈変汉鍒嗘媴
-    //20 瀵圭洰鏍囬�犳垚鐩爣琛�閲忎笂闄愮櫨鍒嗘瘮鐨勪激瀹�
-    //25  
-    //NPC涓撶敤 鍙敜鍏芥妧鑳芥ā鏉� 
-    //鏁堟灉1 A鍊� 鍙敜鍏絅PCID
-    //      B鍊� 鍗曟鍙敜鏁伴噺
-    //      C鍊�  鎬诲彫鍞ゆ暟閲�
-    //21 缇や綋鐧惧垎姣旀墸琛�妯℃澘
-    //28 鍙栨秷鐨勯�変腑鐩爣妯℃澘
-    //30 寮撶鎵嬪Э鎬佹ā鏉�
-    //32 澧炲姞鍚歌鏁堟灉(闈炲惛琛�鎶�鑳�,浣滅敤浜庡惛琛�鏁堟灉涓囧垎姣�),A鍊煎~涓囧垎鐜囩郴鏁�
-    //33 鎵撳嚭鏈�鍚庝竴鍑讳激瀹崇殑X%闄勫姞Y鍊�
-    default11,
-    default12,
-    default13,
-    default14,
-    default15,
-    default16,
-    default17,
-    default18,
-    default19,
-    default20,
-    default21,
-    default22,
-    default23,
-    default24,
-    default25,
-    default26,
-    default27,
-    default28,
-    default29,
-    default30,
-    default31,
-    default32,
-    RushAttack = 34,//34 鍐查攱+浼ゅ锛岀劧鍚庢晥鏋滃崐寰勯厤0鏃�=鍗曟敾浼ゅ锛岄厤>0鏃�=缇ゆ敾鏍煎瓙鏁帮紝閰�5灏辩瓑浜庤缇ゆ敾5*5
-    //35 钃勫姏妯℃澘锛屾惌閰嶆晥鏋滃�� 鏁堟灉ID 1206  A鍊间负鑳介噺娆℃暟 
-    default35,
-    
-}
-
-
-public enum GameObjType
-{
-    /** 鏈畾涔� */
-    gotNone = 0,
-    /** 鐜╁ */
-    gotPlayer,
-    /** NPC */
-    gotNPC,
-    /** 鐗╁搧 */
-    gotItem,
-    /** 椋炶鐗╀欢 */
-    gotFlyObj,
-
-    /** 姝ゆ灇涓剧殑鍊肩被鍨嬬殑鍊间笂闄� */
-    gotMax
-}
-
-
-/** 浼ゅ绫诲瀷 */
-public enum HurtAttackType
-{
-    /** 鏅�氫激瀹� */
-    Normal = 1,
-    /** 鎭㈠ */
-    Recovery = 2,
-    /** 鍙嶅脊浼ゅ */
-    BounceHurt = 3,
-    /** 鐣欒 */
-    Bleed = 4,
-    /** 鎶靛尽 */
-    Parry = 5,
-    /** 杩炲嚮 */
-    DoubleHit = 6,
-    /** 鏆村嚮 */
-    SuperHit = 7,
-    /** 浼氬績涓�鍑� */
-    LuckyHit = 8,
-    /** 闂伩 */
-    Miss = 9,
-    /** 鍏嶇柅 */
-    Immune = 10,
-    /** 鍘嬪埗 */
-    Suppress = 11,
-    /**鏂╂潃**/
-    ZhanSha = 12,
-    /** 璇涗粰涓�鍑� */
-    ZhuXianAtk = 13,
-    /** 缁堟瀬鏂╂潃 */
-    FinalKill = 14,
-    /*鑷村懡涓�鍑�*/
-    DeadlyHit = 15,
-    ThumpHit = 16,// 閲嶅嚮
-    Yinji = 17,// 鍗拌
-    Burning = 18,// 鐏肩儳
-
-
-}
-
-
-public enum DungeonTargetType
-{
-    NPC = 1,
-    Exp = 2,
-    Score = 3,
-    Money = 4,
-    Wave = 5,
-    NpcTotal = 6,
-    Stage = 7,
-    NPCDialogue = 8,    //npc瀵硅瘽
-    VictorySumCnt = 9, //锛堜粰榄旇儨鍒╂�诲満鏁帮級
-    StageVictoryCnt = 10, //锛堥樁娈佃儨鍒╁満鏁帮級
-    Collect = 11,
-    AttackCount = 12,
-
-
-}
-
-
-public enum AchievementType
-{
-    Level = 1,
-    FightPower = 2,
-    MainLine = 3,
-    KillMonster = 4,
-    DailyQuest = 5,
-    FairyQuest = 6,
-    JobRank = 7,
-    MagicWeaponLevel = 8,
-    MountCount = 9,
-    MountLevel = 10,
-    PetCount = 11,
-    PetLevel = 12,
-    CollectGold = 13,
-    CollectBindDiamond = 14,
-    CollectDiamond = 15,
-    AccumulativeSignIn = 16,
-    ContinuousSignIn = 17,
-    PackbackGrid = 18,
-    FriendCount = 19,
-    WorldChat = 20,
-    SaleItem = 21,
-    BuyItem = 22,
-    Dead = 23,
-    ClearRedName = 24,
-    KillPlayer = 25,
-    StrengthenCount = 26,
-    EquipStrengthenLevel = 27,
-    WorldBoss = 28,
-    CircleQuest = 29,
-    TreasureDungeon = 30,
-    JoinGuild = 31,
-    JoinTeam = 32,
-    CollectTreasure = 33,
-    BeKilledCount = 34,
-    PrayCount = 35,
-    KillNPC = 36,
-    FindWorldMap = 37,
-    PutonEquipPlace = 38,
-    PutonEquipQuality = 39,
-    MissionTranfer = 40,
-    PropertyAdd = 41,
-    RuneTower = 42,
-    Mount = 43,
-    GetRune = 44,
-    RuneLevel = 45,
-    FairyArea = 46,
-    ComposeItem = 47,
-    InlayGem = 48,
-    Kylin = 49,
-    Realm = 50,
-    RefiningDan = 51,
-    ActivevalueAward = 52,
-    TreasureLevel = 53,
-    AncientBattleGroundKillCnt = 55,
-    AncientBattleGroundMultiKill = 56,
-    UnLockPet = 57,
-    PetRank = 58,
-    PetRanks = 59,
-    LifeGemInlay = 60,
-    AttackGemInlay = 61,
-    FairylandExp = 62,
-    NuwaGradeS = 63,
-    AnyMountLevel = 64,
-    DvsFWinningStreak = 65,
-
-}
-
-
-/// <summary>
-/// 鐗╁搧浣跨敤鑰愪箙搴﹂檺鍒剁被鍨�
-/// </summary>
-public enum ItemTimeType
-{
-    EquipedTime = 3,              //鏃堕棿锛堣澶囩殑鏃跺��-1锛屾鍚庢瘡鍒嗛挓-1锛�
-    RealityTime = 9,                //鐜板疄鏃堕棿鎵h�愪箙
-
-
-
-}
-
-
-public enum TitleBtnState
-{
-    Normal,
-    Click,
-    Locked,
-}
-
-
-public enum LegendAttrType
-{
-    Normal = 0, //涓�鑸�
-    Pursuit = 1, //杩芥眰
-    Fixed = 2, //鍥哄畾
-}
-
-
-public enum ServerState
-{
-    Maintain = 0,
-    Normal = 1,
-    Busy = 2,
-    Hot = 3,
-    Predicted = 4,
-}
-
-
-public enum ItemUseDataKey
-{
-    mapLoaction = 15,  // 鐗╁搧璁板綍鍦板浘鍧愭爣[mapid, posx, posy]
-    legendAttrID = 17,  //鐗╁搧浼犲灞炴�D鍒楄〃
-    itemCount = 18,  // 鐗╁搧涓暟锛屾敮鎸�20浜匡紝鐩墠浠呯壒娈婅浆鍖栫墿鍝佷細鐢ㄥ埌
-    legendAttrValue = 19,  //鐗╁搧浼犲灞炴�у�煎垪琛�
-    outOfPrintAttrID = 21,  //鐗╁搧缁濈増灞炴�D鍒楄〃
-    outOfPrintAttrValue = 23,  //鐗╁搧缁濈増灞炴�у�煎垪琛�
-
-    itemColor = 16,  //鐗╁搧棰滆壊锛屽鏋滆鍊兼病鏈夊氨鍙栫墿鍝�
-    cancelUseLimit = 20,  //鐗╁搧鍙栨秷浣跨敤闄愬埗
-    source = 24,  // 鐗╁搧鏉ユ簮 1-瀵诲疂锛�2-鍟嗗簵璐拱锛�3-鍟嗗簵鍏戞崲锛�4-鍑绘潃铏氭嫙鎺夎惤
-    wingMaterialItemID = 27,  //缈呰唨绮剧偧鏉愭枡ID鍒楄〃
-    wingMaterialItemCount = 29,  //缈呰唨绮剧偧鏉愭枡涓暟鍒楄〃
-
-    suiteLV = 30,  //濂楄绛夌骇
-    dogzEquipPlus = 31,  // 绁炲吔瑁呭寮哄寲淇℃伅鍒楄〃 [寮哄寲绛夌骇, 寮哄寲鐔熺粌搴
-    hasOpenCnt = 32,  // 鐗╁搧绱Н寮�鍚鏁�
-    itemDecompound = 33,  //鍚堟垚鐗╁搧鎷嗚В杩旇繕鐗╁搧鍒楄〃 [瑁呭ID,鏉愭枡1ID,涓暟,鏄惁缁戝畾,鏉愭枡2ID,涓暟,鏄惁缁戝畾,...]
-    createItemLoginDay = 34,  //鍒涘缓鐗╁搧鏃剁殑鐧诲綍澶╂暟
-    lastOpenItemLoginDay = 36,  //涓婁竴娆″紑鍚墿鍝佹椂鐨勭櫥褰曞ぉ鏁�
-    equipSkills = 37, //瑁呭鎶�鑳斤紝娌℃湁璁板綍鍒欒鍙栬〃
-    runeLV = 38,  // 绗﹀嵃绛夌骇
-    birthChartLV = 40,  // 鍛芥牸绛夌骇
-    wingProgressValue = 42, //缇界考绮剧偧鍊�
-    createTime = 44, // 鏃舵晥鐗╁搧鐨勫垱寤烘椂闂�
-    totalTime = 48, // 鏃舵晥鐗╁搧鐨勫墿浣欐椂闂�
-    auctionItemCreateTime = 50,//鎷嶅搧鍒涘缓鏃堕棿
-
-    // 绁炶灞炴��
-    shenAttrID = 51,  //鐗╁搧绁炲搧灞炴�D鍒楄〃
-    xianAttrID = 53,  //鐗╁搧浠欏搧灞炴�D鍒楄〃
-    jiAttrID = 55,  //鐗╁搧鏋佸搧灞炴�D鍒楄〃
-
-    shenAttrValue = 61,  //鐗╁搧绁炲搧灞炴�у�煎垪琛�
-    xianAttrValue = 63,  //鐗╁搧浠欏搧灞炴�у�煎垪琛�
-    jiAttrValue = 65,  //鐗╁搧鏋佸搧灞炴�у�煎垪琛�
-
-    //鍚庣画IL寮�鍙戞坊鍔犻璁�
-    default1,
-    default2,
-    default3,
-    default4,
-    default5,
-    default6,
-    default7,
-    default8,
-    default9,
-    default10,
-
-
-    #region 200~300 瀹犵墿鏁版嵁鐢�
-    pet_NPCID = 200,  //npcID
-    pet_Skill = 201,  //鎶�鑳藉垪琛�
-    pet_ClassLV = 202,  // 闃剁骇
-    pet_State = 204,  // 褰撳墠鐘舵��, 瀵瑰簲 Def_PetStateList
-    pet_QualityLV = 206,  // 鍝佽川
-
-    default81,
-    default82,
-    default83,
-    default84,
-    default85,
-    default86,
-    default87,
-    default88,
-    default89,
-    default90,
-    default91,
-    default92,
-    default93,
-    default94,
-    default95,
-    default96,
-    default97,
-    default98,
-    default99,
-    default100,
-    #endregion
-}
-
-
-public enum ItemOperateType
-{
-    makeUse, //浣跨敤
-    putOn, //绌夸笂
-    dismantle, //鎷嗚В鍚堟垚瑁呭
-    split, //鎷嗗垎
-    putAway,//涓婃灦
-    compose,//鍚堟垚
-    sell, //鍑哄敭
-    putOff, //鑴变笅
-    putIn, //鏀惧叆
-    putOut, //鍙栧嚭
-    exchange,//鍏戞崲
-    buy,//璐拱
-    putItemout,//鐗╁搧涓嬫灦
-    renewal,//缁垂
-    refine, //绮剧偧
-    LevelUp,//鍗囩骇
-    Resolve,//鍒嗚В
-    Wear,//浣╂埓
-    Replace,//鏇挎崲
-
-    gotoPuton,//鍓嶅線绌夸笂
-    strength, //寮哄寲
-    inlay, //闀跺祵
-    train,//娲楃偧
-    star,//鍗囨槦
-    lsExchange, //鐏电煶鍏戞崲
-
-    //鍚庣画IL寮�鍙戞坊鍔犻璁�
-    default1, //鍗囬樁
-    default2,
-    default3,
-    
-}
-
-
-public enum ItemWinType
-{
-    itemWin, //鏅�氱墿鍝佸脊妗�
-    boxWin, //瀹濈寮规
-    equipWin,  //瑁呭寮规
-    wingsWin,  //缈呰唨寮规
-    guardWin,//瀹堟姢寮规
-    buyItemWin, //璐拱鐗╁搧寮规
-    buyBoxWin,  //璐拱瀹濈寮规
-    petMatWin,  //瑙i攣瀹犵墿鍜屽潗楠戦亾鍏峰脊妗�
-    buyPetMatWin,  //璐拱瑙i攣瀹犵墿鍜屽潗楠戦亾鍏峰脊妗�
-    gatherSoul,//鑱氶瓊
-    kingTreasure, //鐜嬭�呮硶瀹�
-
-}
-
-
-public enum ItemTipChildType
-{
-    Normal, //鏅�氱殑瑁呭寮规
-    Buy, //璐拱寮规
-    UnionWarehouseDonation, //鎹愮尞瑁呭
-    UnionWarehouseExchange, //鍏戞崲瑁呭
-    GetEquipPath,  //瑁呭鑾峰彇閫斿緞
-    GetWingsPath,//缈呰唨鑾峰彇閫斿緞
-
-
-}
-
-
-public enum InstalledAsset
-{
-    NullAsset = 0,
-    HalfAsset = 1,
-    FullAsset = 2,
-    IngoreDownLoad = 3,
-}
-
-
-public enum VersionAuthority
-{
-    InterTest = 0,
-    Release = 1,
-}
-
-
-public enum FootAudioType
-{
-    Walk = 1,
-    Ride = 2,
-    Fly = 3,
-
-
-}
-
-
-public enum AttackFailType
-{
-    SkillFail_Other,      // 鍏朵粬
-    SkillFail_CD,      // 鎶�鑳紺D
-    SkillFail_AtkInterval, // 鏀诲嚮闂撮殧
-
-
-}
-
-
-public enum DungeonFightStage
-{
-    None,
-    Prepare,
-    Normal,
-    PickUp,
-    ExitPrepare,
-    ElderGodAreaNearDead,
-
-
-}
-
-
-public enum RankType
-{
-    FightPower = 0,
-    Job1FightPower = 1,
-    Job2FightPower = 2,
-    Job3FightPower = 3,
-    Level = 4,
-    Mount = 5,
-    Pet = 6,
-    RuneTower = 7,
-    OfflineExp = 8,
-    Realm = 9,
-    OpenServerStrengthen = 11,
-    OpenServerMount = 12,
-    OpenServerGem = 13,
-    OpenServerLv = 14,
-    OpenServerRealm = 15,
-    OpenServerFightPower = 16,
-    Def_BT_FCCostGold = 17,  //娑堣垂鎺掕姒�(浠欑晫鐩涘吀)
-    OpenServerRune = 18,
-    Assist = 19,//鍔╂垬姒�
-    OpenServerGodWeapon = 20,
-    OpenServerRecharge = 21,
-    OpenServerPet = 22,
-    Def_BT_NewFCCostGold = 23, //娑堣垂鎺掕姒�(鏂颁粰鐣岀洓鍏�)  23
-    OpenServerReikiPoint = 24,//鐏垫牴鐐�
-    OpenServerStartLevel = 25,
-    OpenServereEquipTrain = 26, //瑁呭娲楃粌
-
-    default1,
-    default2,
-    default3,
-    default4,
-}
-
-
-public enum PetOrMount
-{
-    None,
-    Pet,
-    Mount,
-}
-
-//OpenServerActivityCenter.ActivityType.AT_Activity2鐨勬椿鍔�  鍘嗗彶鍘熷洜涓嶈鐢�100
-public enum NewDayActivityID
-{
-    BossTrial = 200,    //boss鍑瘉
-    LoginAct = 201, //鐧诲綍娲诲姩
-    MissionAct = 202,   //浠诲姟娲诲姩
-    RechargeGiftAct = 203,  //鍏呭�肩ぜ鍖咃紙鍏呭�兼鏁板鍔憋級
-    CrossBossTrial = 204,   //璺ㄦ湇boss鍑瘉 蹇呴』鍜孊ossTrial 涓�璧�
-    FamilyRechargeConnAct = 205, //浠欑洘鍗忓姪
-    CustomizedGiftWin = 206, //鑷�夌ぜ鍖�
-    SecretPlaceXB = 207, //绉樺瀵诲疂
-    SecretPlaceXBCross = 208, //绉樺瀵诲疂 璺ㄦ湇
-    RechargeGiftAct31 = 209,  //鑷�夊厖鍊� + 鍟嗗簵绀煎寘
-    PetHorseAct = 210,  //瀹犵墿鍧愰獞娲诲姩
-    PetHorseActCross = 211,  //瀹犵墿鍧愰獞娲诲姩 璺ㄦ湇
-    TreasurePavilionAct = 212,  //鍙ゅ疂娲诲姩
-    TreasurePavilionActCross = 213,  //鍙ゅ疂娲诲姩 璺ㄦ湇
-    FairyAffinityLoginAct = 214,  //浠欑紭鐧婚檰娲诲姩
-    FairyAffinityMissionAct = 215,  //浠欑紭浠诲姟娲诲姩
-    FairyAffinityRechargeGiftAct = 216,  //浠欑紭绀煎寘娲诲姩
-    CycleHallAct = 217,  //杞洖娈挎椿鍔�
-    YunShiXBAct = 218,  //杩愬娍瀵诲疂娲诲姩
-    YunShiMissionAct = 219,  //杩愬娍浠诲姟娲诲姩
-    YunShiRechargeGiftAct = 220,  //杩愬娍绀煎寘娲诲姩
-    LianQiActCross = 221,    //浠欏尃澶т細娲诲姩 璺ㄦ湇
-    LianQiRechargeGiftActCross = 222, //浠欏尃澶т細绀煎寘娲诲姩 璺ㄦ湇
-}
-
-//浠欑帀璐拱鐨勪簩娆$‘璁ゆ绫诲瀷
-public enum BuyStoreItemCheckType
-{
-    All = 0,    //榛樿鍏ㄥ眬, 闈炵壒娈婂彲浠ョ粺涓�鐢ㄨ繖涓�
-    ActGift = 1, //娲诲姩绀煎寘
-    MJXB = 2,   //绉樺瀵诲疂
-    GatherSoulXB = 3,   //鑱氶瓊瀵诲疂
-    TreasurePavilion = 4,   //鍙ゅ疂瀵诲疂
-    BestXB = 5,   //鏋佸搧瀵诲疂
-    RuneXB = 6,   //绗︽枃瀵诲疂
-}
-
-//鏌ヨ鍏朵粬鐜╁鏁版嵁 鐢ㄩ�旂被鍨�
-public enum ViewPlayerType
-{
-    viewPlayerEquip = 0,    //鏌ョ湅鐜╁鍩烘湰淇℃伅锛堣澶囩敱璇锋眰澶у鐣岄樁鍐冲畾锛夛紝骞舵墦寮�鐣岄潰
-    viewPlayerFightPower = 1,  //鏌ョ湅鐜╁鎴樺姏璇︽儏锛屽苟鎵撳紑鐣岄潰
-    viewPlayerData = 2,  //鏌ョ湅鐜╁鍩烘湰淇℃伅锛屽叕鐢�
-    viewPlayerDataZZ = 3,  //鍔╂垬鍦烘櫙浣跨敤
-    viewPlayerDataArena = 4,  //鏈湇绔炴妧鍦哄満鏅娇鐢�
-    viewPlayerDataFairyKing = 5,  //浠欑洘鑱旇禌鐜嬭�匲I浣跨敤
-
-    //鏌ヨ璺ㄦ湇鏁版嵁浠�100寮�濮�
-    viewCrossPlayerEquip = 100,    //鏌ョ湅鐜╁鍩烘湰淇℃伅锛堣澶囩敱璇锋眰澶у鐣岄樁鍐冲畾锛夛紝骞舵墦寮�鐣岄潰
-    viewCrossPlayerFightPower = 101,  //鏌ョ湅鐜╁鎴樺姏璇︽儏锛屽苟鎵撳紑鐣岄潰
-    viewCrossPlayerData = 102,  //鏌ョ湅鐜╁鍩烘湰淇℃伅锛屽叕鐢�
-    viewCrossPlayerDataBlessedLand = 103,  //绂忓湴椹辫刀
+锘�
+
+public enum E_ActorClassType
+{
+    UnDefine,
+    Hero,
+    Player,
+    Guard,
+    NpcFightNorm,
+    NpcFightBoss,
+    NpcSummonFunc,
+    NpcCollect,
+    NpcSummonFight,
+    NpcFunc,
+    Pet,
+    NpcTouchKilled,
+    NpcClientFightNorm,
+    NpcClientFightBoss,
+    NpcClientFunc,
+    NpcFightVirtualPlayer,
+    PlayerXmzz,
+    ClientPlayer,
+    PlayerZZ,
+    PlayerSgzcRobot,
+    PVPClientPlayer,
+    ILClientPlayer,
+    NpcClientCollect,
+    JiaPlayer,
+
+}
+
+
+public enum E_ActorState
+{
+    Idle,
+    CtrlRun,
+    AutoRun,
+    Hurt,
+    Die,
+    CommonAtk,
+    CastSkill,
+    DaZuo,
+    Roll,
+    Mocked,
+
+}
+
+public enum E_4012Status
+{
+    Normal,//鏃� 0
+    Freezed,//瀹氳韩鐘舵�� 1
+    Slow,//鍑忛�熺姸鎬� 2
+    LoseBlood,//鎸佺画鎺夎鐘舵�� 3
+    Shield,//楹掗簾浣戣韩4
+    DamBackShield,//涓滅殗闄勪綋5
+    Sneer,//鍢茶 6
+    Stun,//鏅曠湬鐘舵�� 7
+    AddAtk,//鍔犳敾鐘舵�� 8
+    WeakDef,//鍑忛槻鐘舵�� 9
+    LimitSkill,//绂侀瓟鐘舵�� 10
+    LimitAddHP,//绂佺枟鐘舵�� 11
+    Blind,//鑷寸洸鐘舵�� 12
+    Burn,//鐏肩儳 13
+    LoseBlood2,//鑱屼笟2鎸佺画鎺夎鐘舵�� 14
+    LoseBlood3,//鑱屼笟3鎸佺画鎺夎鐘舵�� 15
+    MissSneerAtk,//瀵瑰槻璁芥敾鍑诲厤鐤〃鐜颁负miss 16
+    BeInAir,//娴┖锛堝仛娉曞悓鐪╂檿绫伙級 17
+    zqdlj,//绱皵涓滄潵閲戠伒鏍规妧鑳界姸鎬� 18
+    Ice,//瀵掑啺鐘舵�侊紙鍚屽噺閫燂級 19
+
+}
+
+
+public enum E_BuffType
+{
+    bfBuff = 1,     // buff
+    bfDeBuff,       // debuff
+    bfAura,         // aura,鍏夌幆
+    bfIncBuff,      // inc buff澧炲�糂UFF 鐜╁涓嶅彲鎵嬪姩娓呴櫎
+    btPassiveBuf,   // 琚姩BUF
+    bfEquipBuff,    // 瑁呭BUF
+    bfMapBuff,      // 鍦烘櫙BUF
+    bfActionBuff,   // 琛屼负Buf
+    bfProcessBuff,  // 涓�瀹氶棿闅斿鐞嗕竴娆℃寔缁竴瀹氭椂闂寸殑Buff
+    bfProcessDeBuff,// 涓�瀹氶棿闅斿鐞嗕竴娆★紝鎸佺画涓�瀹氭椂闂寸殑DeBuff
+
+    btBufMax        // BUF绫诲瀷鏁�
+}
+
+public enum E_MonsterType
+{
+    Normal,//0 鏅�氭��;
+    Elite,//1 绮捐嫳鎬�;
+    BlueBoss,//2 钃滲OSS;
+    PurpleBoss,//3 绱獴OSS;
+    Danger,//4 鍗遍櫓鎬�;
+    DarkGoldBoss,//5 鏆楅噾BOSS,
+    SmallLead,//6 灏忓ご鐩�,
+    MissionBoss,//7 浠诲姟BOSS
+
+}
+
+public enum E_ActorGroup
+{
+    User,
+    Player,
+    Enemy,
+    Neutral,
+    Collect,// 鏀堕泦绫�
+    FuncNpc,// 鍔熻兘鎬pc
+
+}
+
+
+public enum E_ClientNpcType
+{
+    Func,
+    Fight,
+
+}
+
+
+public enum E_NpcType
+{
+    Func = 0,//鍔熻兘NPC濉啓鈥�0鈥�
+    Defend = 1,//瀹堝崼NPC濉啓鈥�1鈥�
+    Fight = 2,//鎴樻枟NPC濉啓鈥�2鈥�
+    Summon = 3,//鍙敜NPC濉啓鈥�3鈥�
+    Ghost = 4,//鐏礜PC濉啓  鈥�4鈥�
+    Trap = 5,//闄烽槺NPC濉啓 "5"
+    Car = 6,//闀栬溅NPC濉啓 "6"
+    Sprite = 7,//绮剧伒NPC濉啓 "7"
+    VirtualPlayer = 8,// 铏氭嫙鍔╂垬鑻遍泟
+    Flag = 9,//鏃楃被NPC濉啓 "9"
+    Collect = 14,//閲囬泦NPC濉畾 "14"
+    Catch = 15,//鍙崟鎹夛籍锛帮迹銆�15
+    Pet = 16,//瀹犵墿         16
+    TouchKilled = 17,//瀹堟姢     17
+    FMBoss = 18,// 灏侀瓟鍧沚oss    18
+    BreakableObj = 19,//鍦烘櫙鍙鏀诲嚮鐗�     19
+    FightAssist = 20,// 鍔╂垬
+    SGZC_FightAssist = 21,// 涓婂彜鎴樺満鍔╂垬
+    MonsterTime = 22,// 鎸夋椂闂存帀琛�
+    PersonalEnemy = 23,// 涓撳睘鏁屼汉
+    PersonalEnemyPVP = 24,// 涓撳睘鏁屼汉
+
+    OpenWorldMap = 99,// 鎵撳紑涓栫晫鍦板浘
+}
+
+
+public enum E_MovingState
+{
+    Normal,
+    Fly,
+    Ride,
+
+}
+
+
+public enum WindowType
+{
+    Base = 0,
+    Normal = 1,
+    Modal = 2,
+    Tip = 3,
+    System = 4,
+    Loading = 5,
+
+    Flag = 99,
+}
+
+
+public enum GestureType
+{
+    Left,
+    Right,
+    Up,
+    Down
+}
+
+
+public enum UnityPlatform
+{
+    Editor,
+    Android,
+    Iphone,
+    Standalone,
+}
+
+
+public enum RoleRenameResult
+{
+    MoneyErr = 0, //閲戦挶涓嶈冻
+    NameRuleErr = 1, //鍚嶅瓧涓嶅悎娉�
+    NameLengErr = 2, //鍚嶅瓧闀垮害閿欒
+    NameRepeatErr = 3, //閲嶅悕
+    RenameFailErr = 4, //鏀瑰悕澶辫触
+    RenameSuccess = 5, //鎴愬姛
+}
+
+
+/// <summary>
+/// <para>鏃犳剰涔� 0</para>
+/// <para>鑷繁 1</para>
+/// <para>闃熶紞 2</para>
+/// <para>鍙嬪ソ 3</para>
+/// <para>鍙敾鍑� 4</para>
+/// <para>鑷繁鍙婂弸濂� 5</para>
+/// <para>鐜╁灏镐綋 6</para>
+/// <para>闈炴浜$帺瀹� 7</para>
+/// <para>鍙敾鍑绘�墿 8</para>
+/// <para>鍙敾鍑荤帺瀹� 9</para>
+/// <para>鎵�鏈夊崟浣� 10</para>
+/// <para>瀹犵墿瀵逛富浜� 11</para>
+/// <para>鍙敜鐗╁涓讳汉 12</para>
+/// <para>灏忔�寘鎷簿鑻� 13</para>
+/// </summary>
+public enum E_SkillCastTarget
+{
+    None,
+    Self,
+    TeamMate,
+    Friend,
+    CanAttacked,
+    SelfAndFriend,
+    PlayerDeadBody,
+    UnDeadPlayer,
+    CanAttackedMonster,
+    CanAttackedPlayer,
+    All,
+    PetToOwner,
+    SummonToOwner,
+    Monster,
+    FriendNpc,
+
+}
+
+
+/// <summary>
+/// 鎶�鑳界被鍨�
+/// </summary>
+public enum E_SkillType
+{
+    Special, // 鐗规畩   0
+    Attack, // 鏀诲嚮绫�   1
+    Recover,// 鎭㈠绫�   2
+    ContinuousGain, // 鎸佺画澧炵泭BUFF  3
+    SustainedReduction,// 鎸佺画鍑忕泭BUFF  4
+    GainBuff,// 澧炵泭BUFF 5
+    ReductionBuff,// 鍑忕泭BUFF 6
+    Passive,// 琚姩鎶�   7
+    Reborn,// 澶嶆椿     8
+    ValueAdded,// 澧炲�兼妧鑳斤紙涓嶅彲娓呴櫎锛�9  
+    Halo,// 鍏夌幆鎶�鑳�  10
+    Equip,// 瑁呭鎶�鑳�  11
+    Area,// 鍖哄煙鎶�鑳�  12
+    Summon,// 鍙敜      13
+    ControlBuff,// 鎺у埗鍨婤UFF 14
+    MutilHurtBuffAtk,// 澶氭浼ゅbuff鏀诲嚮绫诲瀷锛堢被xp鎶�鑳斤級 15
+    PassiveGainBuff,// 琚姩瑙﹀彂澧炵泭绫籦uff 16
+    PassiveReductionBuff,// 琚姩瑙﹀彂鍑忕泭绫籦uff 17
+    PassiveControlBuff,// 琚姩瑙﹀彂鐨勬帶鍒剁被buff 18
+    Property,// 灞炴�х被鎶�鑳� 20锛堝鍧愰獞灞炴�э紝瀹犵墿灞炴�э級
+    PassiveBuff,// 琚姩buff 19锛堟殏鏃朵笉鐭ラ亾骞插暐鐨勶級
+    PassiveContinuousGain,// 琚姩瑙﹀彂鎸佺画绫诲鐩婄被buff 21
+    PassiveSustainedReduction,// 琚姩瑙﹀彂鎸佺画绫诲噺鐩婄被buff 22
+
+}
+
+
+public enum E_SkillFuncType
+{
+    Common,// 0涓洪�氱敤鎶�鑳�
+    FaBaoActiveSkill,// 1涓烘硶瀹濆姛鑳借幏寰楃殑涓诲姩鎶�鑳�
+    FaBaoPassiveSkills,// 2涓烘硶瀹濆姛鑳借幏寰楃殑琚姩鎶�鑳�
+    FaBaoSpSkill,// 3涓烘硶瀹濆姛鑳借幏寰楃殑SP鎶�鑳�
+    TalentSkills,// 4涓哄ぉ璧嬫妧鑳�
+    RiderSkill,// 5涓哄潗楠戞妧鑳�
+    PetSkill,// 6涓哄疇鐗╂妧鑳�
+    GodWeaponSkill,// 7涓虹鍏垫妧鑳�
+    NormalAttack,// 8涓烘櫘鏀�
+    SpLv15Skill,// 9涓簊p15绾ф妧鑳�
+    Roll,// 10涓虹炕婊�
+    RealmSkill,// 11涓哄鐣�
+    MythicalAnimal,// 12涓虹鍏芥妧鑳�
+    ZhuxianSkill,// 13涓鸿瘺浠欐妧鑳�
+
+}
+
+
+/// <summary>
+/// <para>鏃犲璞� 0</para>
+/// <para>鏈夊璞� 1</para>
+/// <para>鍦伴潰 2</para>
+/// </summary>
+public enum E_SkillCastType
+{
+    None,// 鏃犲璞� 0
+    NeedTarget,// 鏈夊璞� 1
+    Ground,// 鍦伴潰 2
+}
+
+
+public enum MapTransferType
+{
+    WorldTransport = 1,
+    BigMapTransport = 2,
+    MissionTransport = 3,
+
+}
+
+
+public enum DropItemType
+{
+    Pattern0 = 0,
+    Pattern1 = 1,
+    Pattern2 = 2,
+    Pattern3 = 3,
+
+}
+
+
+public enum DailyQuestType
+{
+    BountyMission = 1,
+    IceCrystal = 2,
+    FairyFeast = 3,
+    BlastStove = 4,
+    Kirin = 5,
+    FairyLand = 6,
+    GuardSky = 7,
+    Demon = 8,
+    Trial = 9,
+    AncientBattleGround = 10,
+    EmperorRelic = 11,
+    WyTaiChi = 12,
+    FairyLeague = 13,
+    HeavenBattle = 14,
+    Prayer = 15,
+    WorldBoss = 16,
+    DemonJar = 17,
+    FairyTask = 18,
+    RuneTowerSweep = 19,
+    RuneTower = 21,
+    TreasureCollectSoul = 22,
+    BossHome = 24,
+    PersonalBoss = 25,
+    ElderGodArea = 26,
+    FairyGrabBoss = 27,
+    KillMonster = 28,
+    DungeonAssist = 29,
+    GatherSoulDungeon = 30,
+    CrossServerPk = 31,
+    AllianceBoss = 32,
+    RidingPetActivity = 34,
+    HazyRegion = 35,
+    SkyTower = 36,
+    Auction = 37,
+    JadeDynastyBoss = 38,
+    CrossServerBoss = 39,
+    FairyChuanGong = 40, //浠欑洘浼犲姛
+    ActivityPlace = 41, //绉樺鎺㈢储
+    ArenaPK = 43,//绔炴妧鍦篜K
+    //鍚庣画IL寮�鍙戞坊鍔犻璁�
+    default1,
+    default2,
+    default3,   //46 浠欑洘鎵撳潗
+    default4,   //47 鍙ょ鎴樺満
+    default5,   //48 閫氱敤鍓湰
+    default6,   //49 閫氱敤鍓湰
+    default7,   //50 閫氱敤鍓湰
+    default8,   //51 閫氱敤鍓湰
+    default9,   //52 鑱氶瓊閫氱敤鍓湰
+    default10,
+    default11,
+    default12,
+    default13,
+    default14,
+    default15,
+    default16,
+    default17,
+    default18,
+    default19,
+    default20,
+}
+
+
+/// <summary>
+/// 鏈嶅姟绔笅鍙戠殑鍓湰鍊掕鏃剁被鍨�
+/// </summary>
+public enum DungeonCoolDownType
+{
+    LeaveMap = 0,//閫�鍑哄�掕鏃�
+    WaitStart = 1,//寮�濮嬪�掕鏃�
+    FightStart = 2,//鎴樻枟鍊掕鏃�
+    FlagTake = 3,
+    NextRound = 4,//涓嬩竴娉㈠�掕鏃�
+    FBAddTime = 6,
+    ElderGodAreaDeadTime = 7,//鍙ょ绂佸湴鍊掕鏃�
+    PickUpTime = 8,//鍓湰鎹¤澶囧�掕鏃�
+    WaitPlayer = 9, //绛夊緟瀵规墜鍊掕鏃�
+    PlayerLeave = 10, //瀵规墜鎺夌嚎鍊掕鏃�
+
+}
+
+
+/// <summary>
+/// 瑁呭閮ㄤ綅绱㈠紩
+/// </summary>
+public enum RoleEquipType
+{
+    Weapon = 1,         // 涓绘墜
+    Weapon2 = 2,       // 鍓墜
+    Hat = 3,                // 甯藉瓙
+    Clothes = 4,          // 琛f湇
+    Belt = 5,                // 鑵板甫
+    Trousers = 6,         // 瑁ゅ瓙
+    Shoes = 7,             // 闉嬪瓙
+    Glove = 8,              //鎵嬪
+    Neck = 9,               //椤归摼
+    FairyCan1 = 10,      //浠欏櫒
+    FairyCan2 = 11,      //浠欏櫒
+    Jade = 12,              //鐜変僵
+
+    Wing = 13,               //缈呰唨
+    Guard = 14,            //瀹堟姢
+
+    PeerlessWeapon1 = 16,//缁濅笘姝﹀櫒
+    PeerlessWeapon2 = 17,//缁濅笘鍓墜
+
+    Mount = 19,              //褰撳墠鐨勫潗楠�
+
+    FashionWeapon = 20,//鏃惰姝﹀櫒
+    FashionClothes = 21, //鏃惰琛f湇
+    FashionWeapon2 = 22,//鏃惰鍓墜
+
+
+    retMax,
+};
+
+
+
+//tagObjInfoRefresh,鏇存柊鏋氫妇鍊煎繀椤诲悓鏃舵洿鏂版敞閲�
+/**涓昏灞炴�у埛鏂扮被鍨�*/
+public enum PlayerDataType
+{
+    AccountID = 0,             //甯愬彿鍚�   璇ヨ鑹叉墍鍦ㄧ殑甯愬彿鐨勭敤鎴峰悕 0,
+    PlayerID = 1,                     //瑙掕壊ID,1,
+    PlayerName = 2,                   //瑙掕壊鍚�,size , 14  2,
+    Sex = 3,                          //鎬у埆    3,
+    Hair = 4,                         //鍙戝瀷  1.鏍囧噯鍨嬶紙鐢凤級 2.鍚嶄粫鍨� 3.娴瓙鍨� 4.鏍囧噯鍨嬶紙濂筹級 5.椹鍨� 6.濡╁獨鍨�    4,
+    HairColor = 5,                    //澶村彂棰滆壊  5绉�  5,
+    Face = 6,                         //鍩烘湰鑴稿瀷 6,
+    Job = 7,                          //鑱屼笟  
+    LV = 8,                           //绛夌骇 8,
+    TotalExp = 9,                     //鎬荤粡楠�    9,
+    Family = 10,                       //瀹舵棌 10,
+    Country = 11,                       //鍥藉  0.绉﹀浗 1.榄忓浗 2.妤氬浗   闃佃惀   11,
+    TeamHornor = 12,                    //缁勯槦鑽h獕   12,
+    PKValue = 13,                      //PK鍊� 13,
+    FamilyHornor = 14,                  //瀹舵棌璐$尞 14,
+    FamilyActiveValue = 15,             //瀹舵棌娲昏穬搴� 15,
+    CountryHornor = 16,                 //鏈懆鍥藉鑽h獕鍊�   16,
+    Mate = 17,                         //浼翠荆,17,
+    Gold = 18,                          //閲戝瓙   18,
+    GoldPaper = 19,                     //閲戠エ  19,
+    Silver = 20,                       //閾跺瓙 20,
+    SilverPaper = 21,                  //閾剁エ    21,
+    FightPoint = 22,                   //鎴樻枟鍊�  22,
+    HappyPoint = 23,                   //濞变箰鍊�  23,
+    MapID = 24,                        //瑙掕壊鎵�鍦ㄥ湴鍥�  24,
+    PosX = 25,                         //瑙掕壊鍧愭爣 25,
+    PosY = 26,                         //26,
+    State = 27,                        //瑙掕壊鐘舵��   1.灏佸瓨 2.姝讳骸 3.姝e父  浠ュ悗杩樻湁闄嗙画娣诲姞 27,
+    MaxHP = 28,                        //鏈�澶P    28,
+    HP = 29,                           //褰撳墠HP   29,
+    MaxMP = 30,                        //鏈�澶P    30,
+    MP = 31,                           //褰撳墠MP   31,
+    XP = 32,                           //褰撳墠XP   32
+    HPRestoreSetting = 33,             //灏戜簬杩欎釜鍊�%鑷姩鍠濊 33,
+    MPRestoreSetting = 34,             //灏戜簬杩欎釜鍊�%鑷姩鍠濋瓟 34,
+    ExpRate = 35,                      //褰撳墠缁忛獙鍊嶇巼    鍗曚綅涓虹櫨鍒嗘瘮  35,
+    FreePoint = 36,                    //鏈垎閰嶇偣鏁� 36,
+    FreeSkillPoint = 37,               //鏈垎閰嶆妧鑳界偣鏁�   37,
+    STR = 38,                          //鍔涢噺    38,
+    PNE = 39,                          //鐏靛姏    39,
+    PHY = 40,                          //韬硶    40,
+    CON = 41,                          //浣撹川    41,
+    DEF = 42,                          //闃插尽    42,
+    MINATK = 43,                        //澶栨敾鏈�灏� 43
+    MAXATK = 44,                        //澶栨敾鏈�澶� 44
+    MAtkMin = 45,                       //鍐呭姛鏈�澶� 45
+    MAtkMax = 46,                       //鍐呭姛鏈�灏� 46
+    MDef = 47,                          //鍐呴槻     47
+    HIT = 48,                           //鍛戒腑 48
+
+    POISIONATK = 49,                    //姣掓敾 49
+    FIREATK = 50,                       //鐏敾 50
+    REALATK = 51,                        //鐪熷疄浼ゅ 51
+    THUNDERATK = 52,                    //闆锋敾 52
+    WINDATK = 53,                       //椋庢敾 53
+    POISIONDEF = 54,                    //姣掗槻 54
+    FIREDEF = 55,                       //鐏槻 55
+    REALDEF = 56,                        //鐪熷疄鎶垫姉 56
+    THUNDERDEF = 57,                    //闆烽槻 57
+    WINDDEF = 58,                       //椋庨槻 58
+
+    Miss = 59,                         //闂伩   59,
+    SuperHit = 60,                     //鏆村嚮浼ゅ 60,
+    Buff = 61,                         //鏈�澶�12涓狟UFF 濡傛灉瓒呰繃12涓寜鍏堣繘鍏堝嚭鐨勯『搴忚鐩�  61,
+    Skill = 62,                        //璇ョ帺瀹舵墍瀛︿細鐨勫叏閮ㄦ妧鑳� 鐩墠鏈�澶�22涓� 鏃ュ悗鍙兘鍐嶅鍔�   62,
+    Mark = 63,                         //绉板彿璇ョ帺瀹舵墍鎷ユ湁鐨勫叏閮ㄧО鍙凤紝涓婇檺鏈畾   63,
+    SettingH = 64,                     //蹇嵎鏍忥紙妯級   64,
+    SettingV = 65,                     //蹇嵎鏍忥紙绔栵級   65,
+    FightPK = 66,                      //琛¢噺PK鑳藉姏鐨勪竴椤瑰睘鎬� 鐢辨敾闃茶绠楄�屽緱   66,
+    ActiveValue = 67,                  //鍑绘潃鏁屽浗闃佃惀鐜╁鍜孨PC鐨勭粺璁″��    67,
+    PlayerType = 68,                   //瑙掕壊鐨勪簲琛屽睘鎬э紝缁勯槦鐢� 1. 閲� 2. 鏈� 3. 姘� 4. 鍦� 5. 鐏�   68,
+    NameColor = 69,                    //瑙掕壊鍚嶅瓧棰滆壊  69,
+    AtkInterval = 70,                  //鏀诲嚮閫熷害 70,
+    Speed = 71,                        //閫熷害   71,
+    SuperHitRate = 72,                 //鏆村嚮鐜� 72,
+    PickupDist = 73,                   //鎷惧彇璺濈 73,
+    CountryLastWeekHornor = 74,        //涓婂懆鍥藉鑽h獕鍊�   74,
+    LastWeekOnlineTime = 75,           //涓婂懆鍦ㄧ嚎鏃堕棿  75,
+    LastWeekFamilyActiveValue = 76,    //涓婂懆娲昏穬搴�  76,
+    FBID = 77,                         //鐜╁鐨勫壇鏈琁D    77,
+    FamilyLV = 78,                     //瀹舵棌绛夌骇 78,
+    RealMapID = 79,                    //鏁版嵁鍦板浘ID   79,
+    GMLevel = 80,                      //gm绛夌骇鏀瑰彉   80,
+    TeamID = 81,                       //gm绛夌骇鏀瑰彉    81,
+    TeamLV = 82,                       //gm绛夌骇鏀瑰彉    82,
+    FightPower = 83,                    //鎴樻枟鍔�    83,
+    RebornMapID = 84,                   //閲嶇敓鍦板浘ID  84,
+    RebornPosX = 85,                    //閲嶇敓鐐箈   85,
+    RebornPosY = 86,                    //閲嶇敓鐐箉   86,
+    Coin = 87,                         //褰撳墠鐐瑰埜鏁扮洰   87,
+    BillboardLV = 88,                  //鎺掕姒滅瓑绾�  88,
+    Tick = 89,                         //褰撳墠Tick   89,
+    CurrentPlayerType = 90,            //褰撳墠浜旇 90,
+    FriendFavor = 91,                   //濂藉弸浜烘皵鍊煎埛鏂�   91
+    BackpackLV = 92,                    //鑳屽寘绛夌骇   92
+    ReincarnationLV = 93,               //杞敓绛夌骇 93
+    BaseSTR = 94,                      //瑁镐綋鍔涢噺    94,
+    BasePNE = 95,                      //瑁镐綋绮剧    95,
+    BasePHY = 96,                      //瑁镐綋鏁忔嵎    96,
+    BaseCON = 97,                      //瑁镐綋浣撹川    97,
+    //  BaseINT ,                      //瑁镐綋鏅哄姏
+    //  BaseLUCK ,                     //瑁镐綋骞歌繍
+    ReceivedSalary = 98,                //鐜╁鏈棰嗗彇鐨勫伐璧�    98
+    WarehouseLV = 99,                   //浠撳簱绛夌骇   99
+    EquipShowSwitch = 100,               //瑁呭鏄鹃殣寮�鍏�   100
+    LuckValue = 101,                     //骞歌繍鍊�   101
+    ExAttr1 = 102,                       //鎵╁睍灞炴��1   102榄斾粏浼ゅ24
+    ExAttr2 = 103,                       //鎵╁睍灞炴��2   103缁勯槦鏄惁闇�瑕佸鏍�
+    ExAttr3 = 104,                       //鎵╁睍灞炴��3   104鍏冪礌鏀诲嚮26
+    ExAttr4 = 105,                       //鎵╁睍灞炴��4   105鍏冪礌闃插尽27
+    ExAttr5 = 106,                       //鎵╁睍灞炴��5   106
+    Faction = 107,                       //闃佃惀        107
+    InfamyValue = 108,                   //鎭跺悕鍊�      108
+    RealmLevel = 109,                  //瀹橀樁        109
+    IsFindByLabel = 110,                  //鏄惁鍏佽鏍囩妫�绱�        110
+    IsCloseFriendLabel = 111,            //鏄惁鍏抽棴濂藉弸绛惧悕        111
+    ChangeCoinPointTotal = 112,           //鍏戞崲鐨勭偣鏁版�昏        112
+    VIPLv = 113,                          //VIP绛夌骇         113
+    ExAttr6 = 114,                       //鎵╁睍灞炴��6   114娴佽浼ゅ31
+    ExAttr7 = 115,                       //鎵╁睍灞炴��7   娉曞疂sp锛岄潪浜夸綅
+    ExAttr8 = 116,                       //鎵╁睍灞炴��8   娉曞疂sp锛屼嚎浣�
+    ExAttr9 = 117,                       //鎵╁睍灞炴��9   117鎺у埗鎶垫姉34
+    ExAttr10 = 118,                       //鎵╁睍灞炴��10  118杈撳嚭浼ゅ35
+    ModelMark = 119,                       //鍙樺舰妯″瀷Mark  119
+    PrizeCoin = 120,                       //濂栧姳鐐瑰埜鏁�   120
+    ExAttr11 = 121,                       //鎵╁睍灞炴��11  121 鐜伴噾浠e竵锛堜唬閲戝埜锛�
+    ExAttr12 = 122,                       //鎵╁睍灞炴��12 閫�鍑轰粰鐩熸椂闂�
+    ExAttr13 = 123,                       //鎵╁睍灞炴��13 鏈嶅姟鍣ㄧ粍ID
+    ExAttr14 = 124,                       //鎵╁睍灞炴��14  124
+
+    SkillAtkRate = 125,                  ///鎴樻枟灞炴��--鎶�鑳芥敾鍑讳激瀹�     125
+    LuckyHitRate = 126,                  ///鎴樻枟灞炴��--浼氬績涓�鍑绘満鐜囦竾鍒嗙巼  126
+    LuckyHitVal = 127,                   ///鎴樻枟灞炴��--浼氬績涓�鍑婚澶栦激瀹�    127
+    GreatHitRate = 128,                  ///鎴樻枟灞炴��--鍗撹秺涓�鍑绘満鐜囦竾鍒嗙巼  128
+    GreatHitVal = 129,                   ///鎴樻枟灞炴��--鍗撹秺涓�鍑婚澶栦激瀹�    129
+    KillBackHP = 130,                    ///鎴樻枟灞炴��--鏉�鎬洖琛�            130
+    KillBackMP = 131,                    ///鎴樻枟灞炴��--鏉�鎬洖榄�            131
+    DamageReduceRate = 132,              ///娌℃湁浣跨敤
+    DamageBackRate = 133,                ///鎴樻枟灞炴��--鍙嶄激涓囧垎姣�          133
+    GoldFoundRate = 134,                 ///鎴樻枟灞炴��--閲戦挶瀵昏幏鍔犳垚涓囧垎姣�  134
+    IgnoreDefRate = 135,                 ///鎴樻枟灞炴��--鏃犺闃插尽鏈虹巼涓囧垎鐜�  135
+    BattleValEx1 = 136,                  ///鎴樻枟灞炴��--鎵╁睍1 鏀婚��              136
+    BattleValEx2 = 137,                  //鎴樻枟灞炴��--鎵╁睍2   鏀诲嚮鍥炶            137
+    BattleValEx3 = 138,                  //鎴樻枟灞炴��--鎵╁睍3               138  澧炰激
+    BattleValEx4 = 139,                  //鎴樻枟灞炴��--鎵╁睍4               139
+    BattleValEx5 = 140,                  //鎴樻枟灞炴��--鎵╁睍5               140
+    HPRestorePer = 141,                  //鐢熷懡鍥炲                141
+    LVEx = 142,                          //鐜╁绛夌骇鍓湰锛岀敤浜庤浆鐢�        142
+    LV2 = 143,                           //澶у笀绛夌骇                      143
+    ExpPoint = 144,                      //鎵╁睍缁忛獙鐐规暟                  144
+    OperateInfo = 145,                   //鐜╁杩愯惀鍟嗛檮鍔犱俊鎭紝濡俀Q榛勯捇绛�145
+    SuperHitReduce = 146,                //鏆村嚮鎶楁��                   146
+    LuckyHitRateReduce = 147,                //浼氬績涓�鍑绘姉鎬�                   147
+    SkillAtkRateReduce = 148,               ///鎶�鑳藉噺浼�
+    DamagePVP = 149,                      //PVP澧炲姞浼ゅ       149 瀵瑰簲191 PVP澧炲姞鍑忓皯
+    SpeedValue = 150,                  //绉诲姩閫熷害                 150
+    DamagePVE = 151,                  ///鏆傛椂娌$敤                 151
+    PetDamPer = 152,                  //鐏靛吔澧炲姞浼ゅ                 152
+    IgnoreDefRateReduce = 153,                  //鏃犺闃插尽鎶楁��        153
+    DamChanceDef = 154,                  //鎶靛尽        154
+    BleedDamage = 155,                      //娴佽浼ゅ 155
+    FaintRate = 156,                    //鍑绘檿 156
+    FaintDefRate = 157,                       //鎺у埗鎶垫姉 157
+    FinalHurt = 158,                       //杈撳嚭浼ゅ158
+    FinalHurtReduce = 159,                //鍑忓皯鎵垮彈浼ゅ 159
+    DamagePerPVP = 160,              //PVP澧炲姞浼ゅ 160
+    DamagePerPVPReduce = 161,              //PVP鍑忓皯浼ゅ 161
+    ComboDamRate = 162,                    //杩炲嚮鍑犵巼162
+    ComboDamPer = 163,                    //杩炲嚮浼ゅ163
+    MaxProDef = 164,                    //鏈�澶ч槻鎶ゅ�� 164
+    FamilyContribution = 167,              //浠欑洘璐$尞搴�     167
+    FamilyStoreScore = 168,                //鑾峰彇浠欑洘浠撳簱绉垎
+    RuneSplinters = 169,                  //绗﹀嵃绮惧崕        169
+    Rune = 170,                  //绗﹀嵃纰庣墖        170
+    RealmPoint = 171,           //澧冪晫淇偧鐐�       171
+    MagicEssence = 172,//榄旂簿 172
+    UnionLiven = 173, //浠欑洘娲昏穬浠�
+    FBHelpPoint = 174,       //鍓湰鍔╂垬绉垎  174
+    PlayerPKState = 175, //鎴樻枟鐘舵��
+    IsAttackBossState = 176,  //鏄惁鍦ㄦ墦Boss 1 鍦� 0 涓嶅湪
+    BasicsMinimum = 177,//鍩虹鏈�灏忔敾鍑�
+    BasicsMaxAttack = 178,//鍩虹鏈�澶ф敾鍑�
+    BasicsLife = 179,//鍩虹鐢熷懡
+    BasicsDefense = 180,//鍩虹闃插尽
+    BasicsScoreAHit = 181,//鍩虹鍛戒腑
+    BasicsDodge = 182,//鍩虹闂伩
+    OnlyFinalHurt = 183,// 棰濆浼ゅ闄勫姞
+    CDBPlayerRefresh_ForbidenTalk = 184,//绂佽█
+    CDBPlayerRefresh_FuncDef = 185,  // 鍔熻兘灞傞槻寰�  185
+    CDBPlayerRefresh_TreasureScore = 186, //瀵诲疂鍟嗗簵绉垎
+    CDBPlayerRefresh_Danjing = 187,              // 涓圭簿 187
+    CDBPlayerRefresh_NPCHurtAddPer,//瀵规�墿浼ゅ鍔犳垚 188
+    FunalHurtPer = 189,// 鏈�缁堜激瀹冲姞鎴�
+    CDBPlayerRefresh_TalentPoint = 190,
+    CDBPlayerRefresh_GodWeaponLV_1 = 192,
+    CDBPlayerRefresh_GodWeaponLV_2 = 193,
+    CDBPlayerRefresh_GodWeaponLV_3 = 194,
+    CDBPlayerRefresh_GodWeaponLV_4 = 195,
+    CDBPlayerRefresh_SoulDust = 196,//鑱氶瓊-榄傚皹
+    CDBPlayerRefresh_SoulSplinters = 197,//鑱氶瓊-纰庣墖
+    CDBPlayerRefresh_SoulCore = 198,//鑱氶瓊-鏍稿績鐜�
+    CDBPlayerRefresh_Honor = 199, //# 鑽h獕鍊�
+    CDBPlayerRefresh_ZhuxianRate = 200,
+    CDBPlayerRefresh_Mater = 201, //# 鐏垫牴灞炴��-閲�
+    CDBPlayerRefresh_Wood = 202,//# 鐏垫牴灞炴��-鏈�
+    CDBPlayerRefresh_Water = 203,//# 鐏垫牴灞炴��-姘�
+    CDBPlayerRefresh_Fire = 204,//# 鐏垫牴灞炴��-鐏�
+    CDBPlayerRefresh_Earth = 205,//# 鐏垫牴灞炴��-鍦�
+    CDBPlayerRefresh_NormalHurt = 206,////灞炴�ф櫘閫氭敾鍑诲浼わ細鏅�氭敾鍑婚檮鍔犵殑鍥哄畾鍊间激瀹� 
+    CDBPlayerRefresh_NormalHurtPer = 207,////灞炴�ф櫘閫氭敾鍑诲浼わ細鏅�氭敾鍑婚檮鍔犵殑鍥哄畾鍊间激瀹� 
+    CDBPlayerRefresh_FabaoHurt = 208,// //灞炴�ф硶瀹濇妧鑳藉浼わ細娉曞疂鎶�鑳芥敾鍑婚檮鍔犵殑鍥哄畾鍊间激瀹�  
+    CDBPlayerRefresh_FabaoHurtPer = 209,//  //灞炴�ф硶瀹濇妧鑳藉姞鎴愶細娉曞疂鎶�鑳芥敾鍑婚檮鍔犵殑浼ゅ鐧惧垎姣� 
+    CDBPlayerRefresh_SuperHitRateReduce = 210,//鏆村嚮鎶楁��
+    CDBPlayerRefresh_LuckyHitReduce = 211,//浼氬績涓�鍑讳激瀹冲浐瀹氬�煎噺鍏�
+    CDBPlayerRefresh_FinalHurtReducePer = 212,//鏈�缁堜激瀹崇櫨鍒嗘瘮鍑忓皯
+    CDBPlayerRefresh_YinjiTime = 213,//鍗拌鎸佺画鏃堕棿锛屽崟浣嶆绉�
+    CDBPlayerRefresh_YinjiCount = 214,//鍗拌鎸佺画鏃堕棿锛屽崟浣嶆绉�
+
+    CDBPlayerRefresh_SkillAddPerA = 215,//瀹氭捣绁為拡鎶�鑳戒激瀹崇櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillAddPerB = 216, //鐨撴湀鏋妧鑳戒激瀹崇櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillAddPerC = 217, //楝肩墮鍒冩妧鑳戒激瀹崇櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillAddPerD = 218, //纾愰緳鍗版妧鑳戒激瀹崇櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillAddPerE = 219, //鏉忛粍鏃楁妧鑳戒激瀹崇櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillAddPerF = 220,//鍡滃ぉ鏂ф妧鑳戒激瀹崇櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillAddPerG = 221, //灏勬棩绁炲紦鎶�鑳戒激瀹崇櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillReducePerA = 222, //瀹氭捣绁為拡鎶�鑳藉噺浼ょ櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillReducePerB = 223, //鐨撴湀鏋妧鑳藉噺浼ょ櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillReducePerC = 224, //楝肩墮鍒冩妧鑳藉噺浼ょ櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillReducePerD = 225, //纾愰緳鍗版妧鑳藉噺浼ょ櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillReducePerE = 226, //鏉忛粍鏃楁妧鑳藉噺浼ょ櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillReducePerF = 227, //鍡滃ぉ鏂ф妧鑳藉噺浼ょ櫨鍒嗘瘮
+    CDBPlayerRefresh_SkillReducePerG = 228, //灏勬棩绁炲紦鎶�鑳藉噺浼ょ櫨鍒嗘瘮
+
+    //鍚庣画IL寮�鍙戞坊鍔犻璁�
+    default1,   // 229 
+    default2,   //230
+    default3,   // 鍔熻兘鐗规潈浠� 231
+    default4,   //  鐜繚鍊� 232
+    default5,   // 233浠欑帀璐熸暟 
+    default6,   // 234鐏电煶璐熸暟
+    default7,   
+    default8,
+    default9,   // 237 鍦板浘澧冪晫闅惧害
+    default10,  // 238 绂诲紑浠欑洘鏃堕棿鎴筹紙鍖呭惈涓诲姩閫�鍑烘垨琚涪
+    default11,  // 239 浠h〃榄呭姏绛夌骇
+    default12,
+    default13,  // 241 鍙ょ璐у竵
+    default14,  // 242 鍔熷痉鐐�
+    default15,
+    default16,
+    default17,  // 245 鏈虹紭鐐�
+    default18,
+    default19,  // 247 鎴愬氨绉垎
+    default20,  // 248 涓囩晫绉垎
+    default21,
+    default22,
+    default23,
+    default24,
+    default25,
+    default26,
+    default27,
+    default28,
+    default29,
+    default30,
+    default31,
+    default32,
+    default33,
+    default34,  // 262 鍑瘉绉垎
+    default35,  // 263 鑱氶瓊绮惧崕
+    default36,  // 264 Boss鏈�缁堜激瀹冲姞鎴�
+    default37,  // 265 楠戝疇绉垎
+    default38,  // 266 鍙ゅ疂鍏绘垚璐у竵
+    default39,  // 267 澶╅亾甯�
+    default40,
+    default41,  // 269 杩囨湡鍨嬩唬閲戝埜
+    default42,  // 270 浠欑紭绉垎
+    default43,  // 271 骞诲闃佺Н鍒�
+    default44,  
+    default45,
+    default46,
+    default47,
+    default48,
+    default49,
+    default50,
+};
+
+
+/** 鑳屽寘绫诲瀷鐮佸畾涔� */
+public enum PackType
+{
+    Deleted = 0, // 宸插垹闄ょ墿鍝侊紝寮冪敤
+    Equip = 1, // 瑁呭
+    Item = 2, // 鐗╁搧
+    Warehouse = 5, // 浠撳簱
+    Horse = 12, // 鍧愰獞鑳屽寘
+    AnyWhere = 13, // 涓囪兘鑳屽寘
+    InterimPack = 28,//涓存椂浜ゆ崲鑳屽寘
+    Treasure = 30, // 瀵诲疂鑳屽寘
+    PetPack = 31, //瀹犵墿鑳屽寘
+    DogzItem = 32, //绁炲吔鐗╁搧鑳屽寘
+    DogzEquip = 33, //绁炲吔瑁呭鑳屽寘锛堢鍏界┛鎴达級
+
+    //鍚庣画IL寮�鍙戞坊鍔犻璁�
+    default1,   //34 鍨冨溇鍥炴敹
+    default2,
+    default3,
+    default4,
+    default5,
+    default6,
+    default7,
+    default8,
+    default9,
+    default10,
+
+    GatherSoul = 254,//鑱氶瓊
+    RunePack = 255,//绗﹀嵃鑳屽寘
+}
+
+
+public enum ItemType
+{
+    Copper = 1,// 閾滈挶
+    Drugs = 7,// 鑽搧
+    Buff = 9, //Buff绫诲瀷
+    Gemstone = 25,// 瀹濈煶
+    ComposeSuitStone = 35, //濂楄鐭崇鐗�
+    WingsMat = 39,              //鍚堟垚缈呰唨鏉愭枡锛岀窘缈肩簿鐐兼潗鏂�
+    DropCopper = 43,           // 鎺夎惤閾滈挶
+    VipTools = 80,                 //vip閬撳叿
+    Box = 81,                         //瀹濈
+    Equip_Weapon = 101,         // 涓绘墜
+    Equip_Weapon2 = 102,       // 鍓墜
+    Equip_Hat = 103,                // 甯藉瓙
+    Equip_Clothes = 104,          // 琛f湇
+    Equip_Belt = 105,                // 鑵板甫
+    Equip_Trousers = 106,         // 瑁ゅ瓙
+    Equip_Shoes = 107,             // 闉嬪瓙
+    Equip_Glove = 108,              //鎵嬪
+    Equip_Neck = 109,               //椤归摼
+    Equip_FairyCan1 = 110,       //浠欏櫒
+    Equip_FairyCan2 = 111,       //浠欏櫒
+    Equip_Jade = 112,               //鐜変僵
+    Equip_Wing = 113,              // 缈呰唨
+    Guard_1 = 114,                  // 鐏靛畧 1
+    Guard_2 = 115,                   //鐏靛畧 2
+    
+}
+
+
+public enum MakeType
+{
+    OneKeySell = 3,          // 涓�閿嚭鍞洖搴�
+    EquipStarUpgrade = 8,         // 瑁呭鍗囨槦
+    ItemCompound = 13,      // 鐗╁搧鍚堟垚
+    DrugRefine = 18,            // 鐐间腹
+    DrugRecycle = 20, //涓硅嵂鍥炴敹
+    DogzEquipPlus = 21,// 绁炲吔瑁呭寮哄寲 
+    RuneCompound = 22,//绗﹀嵃鍚堟垚
+    GatherSoulCompound = 23,//鑱氶瓊鍚堟垚
+    GatherSoulDecompose = 24,//鑱氶瓊鍒嗚В
+
+}
+
+
+/// <summary>
+/// 绉板彿绫诲瀷
+/// </summary>
+public enum TitleType
+{
+    None = -1,
+    Get = 0,//宸茶幏寰�
+    Activity = 1, //娲诲姩绉板彿
+    Vip = 2,       //VIP绉板彿
+    Achivement = 3, //鎴愬氨绉板彿
+    UserDefined = 4, //鑷畾涔�
+
+}
+
+
+//鍔熻兘寮�鍚檺鍒剁被鍨�
+public enum FuncOpenEnum
+{
+    Strength = 1,//瑁呭寮哄寲
+    Gem = 2,//瀹濈煶闀跺祵
+    Wing = 3,//缈呰唨
+    Pet = 6,//鐏靛疇
+    Treasure = 7,//娉曞疂
+    Mounts = 8,//鍧愰獞
+    Rune = 9,//绗﹀嵃
+    Realm = 12, //澧冪晫
+    Fairy = 15,// 浠欑洘
+    FairyTask = 16,
+    GodWeapon = 20,  //绁炲叺
+    SelfBoss = 22,//涓汉Boss
+    Title = 24, //绉板彿
+    Talent = 149,//澶╄祴鎶�鑳�
+    Suit = 36,//濂楄杩涘寲
+    ExpPray = 60,//缁忛獙绁堟効
+    CoinPray = 61,//閾滈挶绁堟効
+    WorldLv = 71,//涓栫晫绛夌骇
+    Rank = 72,//鎺掕姒�
+    Friend = 73,//濂藉弸
+    TouchSky = 74,//鐧诲ぉ
+    Compose = 75,//鍚堟垚
+    HuntTreasure = 76,//鎵撳疂
+    Market = 77,//甯傚満
+    DayDaily = 78,//鏃ュ父
+    Store = 79,//鍟嗗煄
+    RuneTower = 80,//绗﹀嵃濉�
+    SignIn = 81,//绛惧埌
+    Potential = 82,//娼滃姏鍔犳垚
+    IceCrystal = 83,//鍐版櫠鐭胯剦
+    FairyFest = 84,//浠欑洘瀹翠細
+    Kylin = 85,//楹掗簾涔嬪簻
+    FairyLand = 86,//浠欑晫绉樺
+    BlastFurnace = 87,//鐐间腹
+    Munekado = 88,//瀹楅棬璇曠偧
+    GuardSky = 89,//瀹堝崼浜虹殗
+    WingRefine = 90,//缈呰唨绮剧偧
+    EquipRefine = 91,//瑁呭绮剧偧
+    ElderGods = 92,//鍙ょ绂佸湴
+    EquipCompose = 93,//瑁呭鍚堟垚
+    Guard = 94,//瀹堟姢
+    SkillTreasure = 95,//鎶�鑳芥硶瀹�
+    WingCompose = 97,//缈呰唨鍚堟垚
+    Demon = 98,//娣蜂贡濡栧煙
+    HappyFindTreasure = 99,//娆箰瀵诲疂
+    FightPromote = 100,//鎴樺姏鎻愬崌
+    AncientBattleGround = 101,//涓婂彜鎴樺満
+    Chat = 102,//鑱婂ぉ
+    FairyLeague = 111,//浠欑洘鑱旇禌
+    Recharge = 113,//鍏呭��
+    OpenServerRedEnvelope = 122,//寮�鏈嶇孩鍖�
+    EquipDecompose = 123, //瑁呭鍒嗚В
+    TreasureFindHost = 124, //娉曞疂璁や富
+    Dogz = 138, //绁炲吔
+    ReikiRoot = 145,//鐏垫牴
+    CrossServer = 157, //璺ㄦ湇澶╂璧�
+    CrossServerBoss = 162,
+    HazyRegion = 173,//缂ョ紙浠欏煙
+    DayOnline = 189, //姣忔棩鍦ㄧ嚎
+
+    //鍚庣画IL寮�鍙戞坊鍔犻璁�
+    default1,
+    default2,
+    default3,
+    default4,
+    default5,
+    default6,//绔炴妧鍦�
+    default7,
+    default8,
+    default9,
+    
+}
+
+
+//灞炴�х被鍨�
+public enum PropertyType
+{
+    LV = 1,//绛夌骇
+    POWER = 2,  //鍔涢噺
+    AGILITY = 3, //鏁忔嵎(韬硶)
+    PHYSIQUE = 4,//浣撹川
+    MENTALITY = 5,//鏅哄姏(鐏靛姏)
+    HP = 6, //鐢熷懡
+    ATK = 7, //鏀诲嚮
+    DEF = 8, //闃插尽
+    HIT = 9, //鍛戒腑
+    MISS = 10, //闂伩
+    ATKSPEED = 11,//鏀诲嚮閫熷害
+    CritChance = 12,//鏆村嚮鍑犵巼
+    CritHurt = 13,//鏆村嚮浼ゅ
+    CritResis = 14,//鏆村嚮鍑忎激
+    HeartHit = 15,//浼氬績涓�鍑�
+    HeartHurt = 16,//浼氬績浼ゅ
+    HeartResis = 17,//浼氬績鎶楁��
+    SkillHurt = 18,//鎶�鑳藉姞鎴�
+    PVPAddHurt = 19,//PVP澧炲姞浼ゅ
+    PVPReduceHurt = 20,//PVP鍑忓皯浼ゅ
+    LifeReply = 21,//鐢熷懡鍥炲
+    HurtReflect = 22,//浼ゅ鍙嶅皠
+    MoveSpeed = 23,//绉诲姩閫熷害
+    PetHurt = 24,//鐏靛吔浼ゅ
+    PetAddHurt = 25,//鐏靛吔澧炲姞浼ゅ
+    RealHurt = 26,//鐪熷疄浼ゅ
+    RealResis = 27,//鐪熷疄鎶垫姉
+    DefyDef = 28,//鏃犺闃插尽
+    DefyDefResis = 29,//鏃犺闃插尽鎶楁��
+    DefChance = 30,//闃插尽鍑犵巼
+    BloodHurt = 31,//娴佽浼ゅ
+    AktReplyBlood = 32,//鏀诲嚮鍥炶
+    Stun = 33,//鍑绘檿
+    CtrlResis = 34,//鎺у埗鎶垫姉
+    AddFinalHurt = 35,//闄勫姞浼ゅ
+    ReduceFinalHurt = 36,//闄勫姞浼ゅ鍑忓皯
+    PVPAddHurtPer = 37,//PVP鐧惧垎姣斿鍔犱激瀹�
+    PVPReduceHurtPer = 38,//PVP鐧惧垎姣斾激瀹冲噺灏�
+    DleHitChance = 39,//杩炲嚮鍑犵巼
+    DleHurt = 40,//杩炲嚮浼ゅ
+    BasicAtkPercent = 41, //鍩虹鏀诲嚮鐧惧垎姣�
+    BasicHpPercent = 42, //鍩虹鐢熷懡鐧惧垎姣�
+    BasicDefPercent = 43, //鍩虹闃插尽鐧惧垎姣�
+    HitPercent = 44, //鍛戒腑鐧惧垎姣�
+    DodgePercent = 45,//闂伩鐧惧垎姣�
+    KillMonsExpPercent = 46,//鏉�鎬粡楠岀櫨鍒嗘瘮
+    HorcruxBasicAttrPercent = 48, //榄傚櫒鍩虹灞炴��
+    ReduceSkillHurtPercent = 49, //鎶�鑳藉噺浼�
+    HpPercent = 50,//鐢熷懡鐧惧垎姣�
+    AtkPercent = 51, //鏀诲嚮鐧惧垎姣�
+    EveryLvAddAtk = 52, //姣�1绾�+%s鏀诲嚮
+    EveryLvAddHp = 53, //姣�1绾�+%s鐢熷懡
+    AddEquipDropPrecent = 54, //澧炲姞瑁呭鎺夎惤鐜�
+    AddCoinsPrecent = 55,//澧炲姞閲戝竵
+    AddRealHurtPer = 61,//鐧惧垎姣斿鍔犵湡瀹炰激瀹�
+    ReduceRealHurtPer = 62,//鐧惧垎姣斿噺灏戠湡瀹炰激瀹�
+    ArmorMaxHPPer = 63,//鍩虹瑁呭鐢熷懡
+    WeaponAtkPer = 65,//鍩虹瑁呭鏀诲嚮
+    ArmorDefPer = 66, //闃插叿闃插尽鐧惧垎姣�
+    MinAtk = 67, //鏈�灏忔敾鍑�
+    MaxAtk = 68, //鏈�澶ф敾鍑�
+    DefencePercent = 69,//闃插尽鐧惧垎姣�
+    CritHurtPercent = 70,//鏆村嚮浼ゅ
+    MoveSpeedPercent = 71, //绉诲姩閫熷害鐧惧垎姣�
+    MaxProDef = 72, //闃叉姢鍊�
+    ProDefHPPer = 73,//闃叉姢鍊肩櫨鍒嗘瘮
+    ProDefAbsorb = 74, //鎶ょ浘鍚告敹浼ゅ鐧惧垎姣�
+    BaseHitPer = 75, //鍩虹鍛戒腑鐧惧垎姣�
+    BaseMissPer = 76, //鍩虹闂伩鐧惧垎姣�
+    PetMinAtk = 77, //鐏靛疇鏈�灏忔敾鍑�
+    PetMaxAtk = 78, //鐏靛疇鏈�澶ф敾鍑�
+    OnlyFinalHurt = 79, //棰濆杈撳嚭浼ゅ
+    PVPAtkBackHP = 80, //PVP鏀诲嚮鍥炶
+    ChanceExpRate = 81, //缁忛獙鏆村嚮
+    HorseAtkPer = 82, //鍧愰獞鏀诲嚮
+    StoneBasePer = 83, //瀹濈煶鍩虹灞炴��
+    RealmBasePer = 84, //澧冪晫鍩虹灞炴��
+    PetSkillAtkRate = 85, //瀹犵墿鎶�鑳戒激瀹�
+    WingHPPer = 86, //缈呰唨鐢熷懡
+    SuiteBasePer = 87, //濂楄鍩虹灞炴��  
+    PlusBaseAtkPer = 88,  //寮哄寲鏀诲嚮
+    NpcHurtAddPer = 89,//鐧惧垎姣擯VE鎶�鑳藉姞鎴�
+    JobAHurtAddPer = 90,//瀵归緳榄備激瀹冲鍔犵櫨鍒嗘瘮
+    JobBHurtAddPer = 91,//瀵圭伒鐟朵激瀹冲鍔犵櫨鍒嗘瘮
+    JobCHurtAddPer = 92,//瀵瑰紦绠墜浼ゅ澧炲姞鐧惧垎姣�
+    JobAAtkReducePer = 93,//鎵垮彈榫欓瓊浼ゅ鍑忓皯鐧惧垎姣�
+    JobBAtkReducePer = 94,//鎵垮彈鐏电懚浼ゅ鍑忓皯鐧惧垎姣�
+    JobCAtkReducePer = 95, //鎵垮彈寮撶鎵嬩激瀹冲噺灏戠櫨鍒嗘瘮
+    ZXCloakAttrPer = 96, //璇涗粰路鎶灞炴�х櫨鍒嗘瘮
+    ZXMaskAttrPer = 97, //璇涗粰路闈㈢僵灞炴�х櫨鍒嗘瘮
+    ZXGloveAttrPer = 98,//璇涗粰路鎵嬪灞炴�х櫨鍒嗘瘮
+    ZXRuyiAttrPer = 99,//璇涗粰路濡傛剰灞炴�х櫨鍒嗘瘮
+    ZXPendantAttrPer = 100, //璇涗粰路鍚婂潬灞炴�х櫨鍒嗘瘮
+    ZXRingAttrPer = 101, //璇涗粰路鎴掓寚灞炴�х櫨鍒嗘瘮
+    SkillAddPerA = 102,//瀹氭捣绁為拡鎶�鑳戒激瀹崇櫨鍒嗘瘮
+    SkillAddPerB = 103, //鐨撴湀鏋妧鑳戒激瀹崇櫨鍒嗘瘮
+    SkillAddPerC = 104, //楝肩墮鍒冩妧鑳戒激瀹崇櫨鍒嗘瘮
+    SkillAddPerD = 105, //纾愰緳鍗版妧鑳戒激瀹崇櫨鍒嗘瘮
+    SkillAddPerE = 106, //鏉忛粍鏃楁妧鑳戒激瀹崇櫨鍒嗘瘮
+    SkillAddPerF = 107,//鍡滃ぉ鏂ф妧鑳戒激瀹崇櫨鍒嗘瘮
+    SkillAddPerG = 108, //灏勬棩绁炲紦鎶�鑳戒激瀹崇櫨鍒嗘瘮
+    SkillReducePerA = 109, //瀹氭捣绁為拡鎶�鑳藉噺浼ょ櫨鍒嗘瘮
+    SkillReducePerB = 110, //鐨撴湀鏋妧鑳藉噺浼ょ櫨鍒嗘瘮
+    SkillReducePerC = 111, //楝肩墮鍒冩妧鑳藉噺浼ょ櫨鍒嗘瘮
+    SkillReducePerD = 112, //纾愰緳鍗版妧鑳藉噺浼ょ櫨鍒嗘瘮
+    SkillReducePerE = 113, //鏉忛粍鏃楁妧鑳藉噺浼ょ櫨鍒嗘瘮
+    SkillReducePerF = 114, //鍡滃ぉ鏂ф妧鑳藉噺浼ょ櫨鍒嗘瘮
+    SkillReducePerG = 115, //灏勬棩绁炲紦鎶�鑳藉噺浼ょ櫨鍒嗘瘮
+    Luck = 120,//姘旇繍
+    LuckPer = 133,//姘旇繍鐧惧垎姣�
+
+    AddNormalHurt = 134,//鍥哄畾鍊煎鍔犳櫘閫氭敾鍑讳激瀹�
+    AddNormalHurtPer = 135,//鐧惧垎姣斿鍔犳櫘閫氭敾鍑讳激瀹�
+    AddSkillHurt = 136,//鍥哄畾鍊煎鍔犳妧鑳戒激瀹�
+    AddSkillHurtPer = 137,//鐧惧垎姣斿鍔犳妧鑳戒激瀹�
+
+    ReduceCrit = 138,//鍑忓皯鏆村嚮鐜�
+    ReduceHeartHurtPer = 139,//浼氬績鍑忎激
+    AddHeartHurtPer = 140,//鐧惧垎姣斿鍔犱細蹇冧竴鍑讳激瀹�
+    AddPVEHurt = 141,//鍥哄畾鍊煎鍔爌ve浼ゅ
+    AddFinalHurtPer = 142,//鐧惧垎姣斿鍔犳渶缁堜激瀹�
+    ReduceFinalHurtPer = 143,//鐧惧垎姣斿噺灏戞渶缁堜激瀹�
+
+    ReduceSkillCDPer = 149, //鍑忓皯鎵�鏈夋妧鑳紺D鐧惧垎姣�
+
+    //鍚庣画IL寮�鍙戞坊鍔犻璁�
+    default1,
+    default2,
+    default3,
+    default4,
+    default5,
+    default6,
+    default7,
+    default8,
+    default9,
+    default10,
+    default11,
+    default12,      //161 浠欑洘浜嬪姟閫熷害鍔犳垚
+    default13,      //浠欑洘BOSS浼ゅ鍔犳垚
+    default14,      //浠欑洘鑱旇禌鐢熷懡鍔犳垚
+    default15,      //浠欑洘鑱旇禌鏀诲嚮鍔犳垚
+    default16,      //浠欑洘鎵撳潗缁忛獙鍔犳垚
+    default17,
+
+    Mater = 201,//閲�
+    Wood = 202,//鏈�
+    Water = 203,//姘�
+    Fire = 204,//鐏�
+    Earth = 205,//鍦�
+
+}
+
+
+public enum TextColType
+{
+    None = 0,
+    White = 1,
+    Blue = 2,
+    Purple = 3,
+    Orange = 4,
+    Red = 5,
+    Pink = 6,
+    /// <summary>
+    /// 娣辫鑹� 401c06 (64, 28, 6, 255)
+    /// </summary>
+    NavyBrown,
+    Green = 9,//缁胯壊
+    Black = 10,
+    /// <summary>
+    /// 娣辩豢鑹� 109d06 (16, 157, 6, 255)
+    /// </summary>
+    DarkGreen = 12,
+    NavyYellow = 13,
+    LightGreen = 14,
+    /// <summary>
+    /// fff4cd
+    /// </summary>
+    LightYellow = 15,
+    /// <summary>
+    /// (204, 204, 204, 255)
+    /// </summary>
+    Gray = 16,
+
+}
+
+
+public enum E_ModelResType
+{
+    Weapon = 1, //姝﹀櫒 1
+    Wing, //缈呰唨 2
+    Horse, //鍧愰獞 3
+    Suit, //濂楄 4
+    Pet,// 瀹犵墿5
+    Secondary,// 鍓墜 6
+    Hand,// 鎵嬭噦 7
+    Spirit,//鐏靛櫒 8
+
+}
+
+
+public enum TreasureCategory
+{
+    Human = 1,
+    Demon = 2,
+    Fairy = 3,
+    King = 4,
+    Zerg = 5,
+
+}
+
+
+public enum TreasureState
+{
+    Collected,
+    Collecting,
+    Locked,
+}
+
+
+public enum FunctionUnlockType
+{
+    NoneType = 0,
+    Treasure = 1,
+    Normal = 2,
+    TreasureSkill = 3,
+    Skill = 4,
+    TreasureFunc = 5,
+    TreasureChapter = 6,
+
+}
+
+
+public enum RedPointState
+{
+    None = 0,
+    Simple = 1,
+    Quantity = 2,
+    Full = 3,
+    GetReward = 4,
+}
+
+
+public enum TeamInviteType
+{
+    Friend,
+    Fairy,
+    NearBy,
+
+}
+
+
+public enum TeammatePrepareState
+{
+    UnPrepared = 0,//鏈噯澶�
+    Prepared = 1,//宸插噯澶�
+    Rejected = 2,//鎷掔粷
+}
+
+
+public enum VipPrivilegeType
+{
+    TreasureAtk = 1,
+    GemHole = 2,
+    VipBuff = 3,
+    TradeTax = 4,
+    PrivateClerk = 5,
+    FreeTransfer = 6,
+    AutoFairyMisstion = 7,
+    Gather = 8,
+    Undead = 9,
+    KillMonsterExpUp = 10,
+    Minion = 11,
+    KillMonsterSp = 12,
+    GoldWish = 13,
+    ExpWish = 14,
+    SelfBoss = 15,   //涓汉boss鍩虹娆℃暟
+    BossHome = 16,
+    PetDungeon = 17,
+    BaptizeDungeon = 18,
+    ForbiddenArea = 19,
+    Fane = 20,
+    Chasm = 21,
+    DarkDorr = 22,
+    FairyDaimondGift = 23,
+    MarketPutawayPwd = 24,
+    DemonJar = 25,
+    BossHomeAwardLimit = 27,
+    DemonJarDouble = 28,
+    BindJadeWheel = 30,
+    PrayForDrug = 31,
+    DemonJarAuto = 32,
+    AssistXianYuanCoinsAdd = 33,//鍔╂垬浠欑紭甯佷笂闄愬姞鎴�
+    AssistXianYuanCoinsRatioAdd = 34,//鍔╂垬浠欑紭甯佽幏寰楀�嶇巼鍔犳垚锛堜竾鍒嗘瘮锛�
+    JadeDynastyBoss = 35,
+    BatchAlchemyFairy = 36,//鎵归噺鐐煎埗浠欎腹
+    BossHomeBuyTimes = 37,//boss涔嬪璐拱娆℃暟
+    SelfBossBuyTims = 38, //涓汉boss璐拱娆℃暟
+    
+}
+
+
+public enum E_AttackMode
+{
+    Peace,
+    All,
+    Country,
+    Group,
+    Team,
+    Family,
+    GoodEval,
+    Contest,
+
+}
+
+
+public enum E_ItemColor
+{
+    White = 1,
+    Blue,
+    Purple,
+    Orange,
+    Red,
+    Pink,
+
+}
+
+
+public enum FindPreciousType
+{
+    WorldBoss = 0,
+    BossHome = 1,
+    PersonalBoss = 2,
+    ElderGodArea = 3,
+    DemonJar = 4,
+    CrossServerBoss = 6,
+    JadeDynastyBoss = 7,
+
+    None = 99,
+}
+
+
+public enum GotServerRewardType
+{
+    Def_RewardType_Activity = 0,
+    Def_RewardType_FamilyActivity = 1,
+    Def_RewardType_ChampionFamilyDailyReward = 2,
+    Def_RewardType_XMZZWinCnt = 3,
+    Def_RewardType_FairyDayAward = 4,
+    Def_RewardType_XBXZ = 6, // 浠欏疂瀵讳富濂栧姳6
+    Def_RewardType_DayRealmPoint = 7,//鏃ュ父淇鐐�
+    Def_RewardType_GoldGiftFirst = 8,//棣栧啿绀煎寘
+    Def_RewardType_TreasureSoul = 9,//娉曞疂榄傚鍔�
+    Def_RewardType_ConsumeRebate = 11,//娑堣垂杩斿埄濂栧姳
+    Def_RewardType_BossReborn = 12,//boss澶嶆椿濂栧姳
+    Def_RewardType_FCRecharge = 13,// 浠欑晫鐩涘吀鍏呭�煎ぇ绀�13W
+    Def_RewardType_FCParty = 14,// 浠欑晫鐩涘吀鍏ㄦ皯鏉ュ棬14
+    Def_RewardType_WishingWell = 16,//  璁告効姹犲鍔�16
+    Def_RewardType_OpenFunc = 17,//鍔熻兘棰勫憡濂栧姳
+    Def_RewardType_TotalRecharge = 18,//绱鍏呭�煎鍔�
+    Def_RewardType_IceLodeStar = 19, //鍐版櫠鐭胯剦鏄熺骇濂栧姳19
+    Def_RewardType_WeekPartyAct = 20, //棰嗗彇鍛ㄧ媯娆㈡椿鍔ㄥ鍔�20
+    Def_RewardType_WeekPartyPoint = 21,// 棰嗗彇鍛ㄧ媯娆㈢Н鍒嗗鍔�21
+    Def_RewardType_ActLoginAwardAct = 22,// 棰嗗彇鐧诲綍濂栧姳娲诲姩濂栧姳22
+    Def_RewardType_NewFairyCRecharge = 23, // 鏂颁粰鐣岀洓鍏稿厖鍊煎ぇ绀�23
+    Def_RewardType_NewFairyCParty = 24, // 鏂颁粰鐣岀洓鍏稿叏姘戞潵鍡�24
+    Def_RewardType_FeastWeekPartyAct = 25, //棰嗗彇鑺傛棩宸$ぜ娲诲姩濂栧姳25
+    Def_RewardType_FeastWeekPartyPoint = 26, //棰嗗彇鑺傛棩宸$ぜ绉垎濂栧姳26
+    Def_RewardType_FairyAdventuresAward = 27,//缂ョ紙濂囬亣
+    Def_RewardType_HistoryChargeAward = 28,//绱鍏呭��
+    Def_RewardType_DayPackageFree = 29,//姣忔棩鍏嶈垂绀煎寘
+    Def_RewardType_ActivityPlace = 30,//娲昏穬鏀剧疆濂栧姳
+
+    Def_RewardType_HolidayLogin = 37,//鑺傛棩鐧诲綍濂栧姳
+    Def_RewardType_HolidayTravel = 38,//鑺傛棩娓稿巻濂栧姳
+    
+}
+
+
+public enum MapType
+{
+    OpenCountry = 0,//閲庡鍦板浘
+    SingleFB = 1,        //鍗曚汉鍓湰
+    MultipleFB = 2,    //缁勯槦鍓湰
+    FamilyFB = 3,       //瀹舵棌鍓湰
+    FamilyWarFB = 4, //瀹舵棌鎴樺壇鏈�
+    CountryExam = 5, //鍥藉绛旈
+    CountryFB = 6,      //鍥藉鍓湰
+    AllByCountry = 7,  //闃佃惀鍓湰
+    All = 8,                   //鎵�鏈�
+    VSRoom = 9,         //pk鎴块棿
+    CrossAll = 11,       //璺ㄦ湇鎵�鏈�
+
+}
+
+
+public enum GuideType
+{
+    NewBie = 1,
+    Functional = 2,
+}
+
+
+public enum GuideTriggerType
+{
+    None = 998,//鏃犻檺鍒�
+    FunctionOpen = 1,//鍔熻兘寮�鏀�
+    ManualFunctionOpen = 51,//鎵嬪姩鍔熻兘寮�鏀�
+    Level = 2,               //绛夌骇婊¤冻鏉′欢
+    Treasure = 3,//娉曞疂
+    EquipQuality = 4,//瑁呭鍝佽川
+    Item = 5,//鎸囧畾鐗╁搧
+    TreasureDungeon = 6,//娉曞疂鍓湰
+    Map = 11,//鍦板浘
+    RuneInlay = 12,//绗﹀嵃闀跺祵
+    RealmSitDown = 13,//澧冪晫鎵撳潗
+    ItemCompound = 14,//鐗╁搧鍚堟垚
+    HangUpResult = 15,//鎸傛満缁撶畻
+    TreasureCollectSoul = 16,//娉曞疂闆嗛瓊
+    TreasureAwaken = 17,//娉曞疂瑙夐啋
+    Pray = 18,//绁堟効
+    VIPExperience = 19,//vip浣撻獙
+    FairyLandBuyTimes = 20,//浠欑晫绉樺璐拱娆℃暟
+    TeamAutoAccept = 21,//鑷姩鎺ュ彈缁勯槦閭�璇�
+    TrialExchange = 22,//瀹楅棬璇曠偧鍏戞崲鏉愭枡
+
+    
+
+    QuestCanAccept = 100,//浠诲姟鍙帴
+    MainLineQuestCanDo = 101,//浠诲姟杩涜涓�
+    MainLineQuestCanAward = 102,//浠诲姟鍙濂�
+    MainLineQuestLimit = 106,//浠诲姟琚檺鍒�
+    MainLineQuestContinue = 110,//浠诲姟鍙户缁�
+
+    BranchQuestCando = 201,//鏀嚎浠诲姟鍙仛
+    BranchQuestCanAward = 202,//鏀嚎浠诲姟鍙濂�
+    BranchQuestLimit = 206,//鏀嚎浠诲姟琚檺鍒�
+    BranchQuestContinue = 210,//鏀嚎浠诲姟鍙户缁�
+}
+
+
+public enum FuncPowerType
+{
+    Role = 0,//瑙掕壊
+    Equip = 1,//瑁呭
+    Plus = 2,//寮哄寲
+    Stone = 3,//瀹濈煶
+    Reiki = 4,//鐏垫牴
+    Wing = 5,//缈呰唨
+    Wash = 6,//娲楃偧
+    Pet = 7,//鐏靛疇
+    Horse = 8,//鍧愰獞
+    Realm = 9,//澧冪晫
+    GodWeapon = 10,//绁炲叺
+    Title = 11,//绉板彿
+    Rune = 12,//绗﹀嵃
+    Star = 13,//鍗囨槦
+    Human = 14,//浜烘棌娉曞疂
+    Alchemy = 15,//鍏崷鐐�
+    Demon = 16,//榄旀棌娉曞疂
+    Fairy = 17,//浠欐棌娉曞疂
+    PetSoul = 18,//鐏靛疇榄傜煶
+    HorseSoul = 19,//鍧愰獞榄傜煶
+    Dogz = 21,//绁炲吔
+    GatherSoul = 22,//鑱氶瓊
+    King = 23,//鐜嬭�呮硶瀹�
+    FashionDress = 24,//鏃惰
+    JadeDynastyEquip = 25, //璇涗粰瑁呭
+
+    
+}
+
+
+public enum E_AtkType
+{
+    Special, //0 鐗规畩锛堝皢璧拌繘鍏蜂綋鐨勬妧鑳絀D杩涜澶勭悊锛屾牴鎹晥鏋淚D
+    Single,//1 鍗曚綋鐩爣鎶�鑳芥敾鍑�
+    Multiple,//2 缇や綋鐩爣鎶�鑳芥敾鍑�
+    Transmit,//3 缇や綋鐩爣鎶�鑳芥敾鍑�(閾惧紡) 鏁堟灉1濉激瀹筹紝鏁堟灉2濉�掑锛屾晥鏋�3濉烦鍑犳
+    ClearHatred,//4 娓呬粐鎭� 娓呴櫎鐩爣鍦ㄩ噴鏀捐�呬粐鎭ㄥ垪琛ㄥ唴鐨勪粐鎭ㄧ櫨鍒嗘瘮 NPC浣跨敤
+    SingleHatred,//5 鍗曚綋浠囨仺鎶�鑳�
+    MultipleBuff,//6 缇や綋BUFF
+    Summon,//7 鍙敜锛堝彫鍞ゅ吔鐨勬敾鍑诲姏鍙朜PC琛ㄧ殑鏁板�硷級
+    SingleRecoverAtkPer,//8 鍗曚綋鎭㈠鑷韩鏀诲嚮鐧惧垎姣旇閲忥紙浠呴拡瀵圭灛鍙戞妧鑳�
+    FastMove,//9 鎷︽埅銆佹殫褰辨銆佹潃鎴洓瀹存ā鏉� 闈炵帺瀹朵笉鍙敤 鎶�鑳戒細閫犳垚浼ゅ骞朵笖姝ゆRUSH鏆村嚮鐜囦細鎻愰珮鐨勶紝闇�瑕佸~鏁堟灉AB鍊硷紝鍏朵腑锛氭晥鏋�1 A鍊间激瀹崇櫨鍒嗘瘮锛孊鍊间激瀹冲浐瀹氬�� 鏁堟灉2 A鍊兼毚鍑伙紝B鍊兼毚鍑荤櫨鍒嗘瘮
+    FlashMove,//10 娉曞笀闂幇
+    //11 NPC缁欏彫鍞ゅ吔鍔燘UFF
+    //12 鏈夎搴︾殑缇ゆ敾:鍗婂緞瀛楁涓虹被鍨嬶細1 鐩寸嚎锛�2 5鏍兼暎灏勬敾鍑� 3 6鏍兼暎灏�
+    //13 娓呯┖NPC鑷繁鐨勬渶澶т粐鎭ㄨ��
+    //15 NPC涓撶敤锛屾壘鍒板綋鍓嶄粐鎭ㄥ垪琛ㄤ腑鏈�澶т粐鎭ㄨ�咃紝濡傛灉鍦ㄨ閲庝腑鍒欑灛绉昏繃鍘�
+    //16 鍙敜鍏戒笓鐢紝鍙敜NPC锛堝彫鍞ゅ吔鐨勬敾鍑诲姏鍙栨敾鍑诲彇鐜╁鐨勬敾鍑诲姏锛�
+    //17 鎸夎閲忔坊鍔犱粐鎭紙鑲夊疇锛�
+    //18 鍗曚綋鎭㈠鑷韩姘旇涓婇檺鐧惧垎姣旇閲忥紙閽堝鐬彂鎶�鑳斤級鏁堟灉1a鍊煎~鐧惧垎姣旓紝b鍊煎~鍥哄畾鍊�
+    //19 缇や綋鏀诲嚮鎶�鑳斤紝浼ゅ涓鸿寖鍥村唴鎵�鏈変汉鍒嗘媴
+    //20 瀵圭洰鏍囬�犳垚鐩爣琛�閲忎笂闄愮櫨鍒嗘瘮鐨勪激瀹�
+    //25  
+    //NPC涓撶敤 鍙敜鍏芥妧鑳芥ā鏉� 
+    //鏁堟灉1 A鍊� 鍙敜鍏絅PCID
+    //      B鍊� 鍗曟鍙敜鏁伴噺
+    //      C鍊�  鎬诲彫鍞ゆ暟閲�
+    //21 缇や綋鐧惧垎姣旀墸琛�妯℃澘
+    //28 鍙栨秷鐨勯�変腑鐩爣妯℃澘
+    //30 寮撶鎵嬪Э鎬佹ā鏉�
+    //32 澧炲姞鍚歌鏁堟灉(闈炲惛琛�鎶�鑳�,浣滅敤浜庡惛琛�鏁堟灉涓囧垎姣�),A鍊煎~涓囧垎鐜囩郴鏁�
+    //33 鎵撳嚭鏈�鍚庝竴鍑讳激瀹崇殑X%闄勫姞Y鍊�
+    default11,
+    default12,
+    default13,
+    default14,
+    default15,
+    default16,
+    default17,
+    default18,
+    default19,
+    default20,
+    default21,
+    default22,
+    default23,
+    default24,
+    default25,
+    default26,
+    default27,
+    default28,
+    default29,
+    default30,
+    default31,
+    default32,
+    RushAttack = 34,//34 鍐查攱+浼ゅ锛岀劧鍚庢晥鏋滃崐寰勯厤0鏃�=鍗曟敾浼ゅ锛岄厤>0鏃�=缇ゆ敾鏍煎瓙鏁帮紝閰�5灏辩瓑浜庤缇ゆ敾5*5
+    //35 钃勫姏妯℃澘锛屾惌閰嶆晥鏋滃�� 鏁堟灉ID 1206  A鍊间负鑳介噺娆℃暟 
+    default35,
+    
+}
+
+
+public enum GameObjType
+{
+    /** 鏈畾涔� */
+    gotNone = 0,
+    /** 鐜╁ */
+    gotPlayer,
+    /** NPC */
+    gotNPC,
+    /** 鐗╁搧 */
+    gotItem,
+    /** 椋炶鐗╀欢 */
+    gotFlyObj,
+
+    /** 姝ゆ灇涓剧殑鍊肩被鍨嬬殑鍊间笂闄� */
+    gotMax
+}
+
+
+/** 浼ゅ绫诲瀷 */
+public enum HurtAttackType
+{
+    /** 鏅�氫激瀹� */
+    Normal = 1,
+    /** 鎭㈠ */
+    Recovery = 2,
+    /** 鍙嶅脊浼ゅ */
+    BounceHurt = 3,
+    /** 鐣欒 */
+    Bleed = 4,
+    /** 鎶靛尽 */
+    Parry = 5,
+    /** 杩炲嚮 */
+    DoubleHit = 6,
+    /** 鏆村嚮 */
+    SuperHit = 7,
+    /** 浼氬績涓�鍑� */
+    LuckyHit = 8,
+    /** 闂伩 */
+    Miss = 9,
+    /** 鍏嶇柅 */
+    Immune = 10,
+    /** 鍘嬪埗 */
+    Suppress = 11,
+    /**鏂╂潃**/
+    ZhanSha = 12,
+    /** 璇涗粰涓�鍑� */
+    ZhuXianAtk = 13,
+    /** 缁堟瀬鏂╂潃 */
+    FinalKill = 14,
+    /*鑷村懡涓�鍑�*/
+    DeadlyHit = 15,
+    ThumpHit = 16,// 閲嶅嚮
+    Yinji = 17,// 鍗拌
+    Burning = 18,// 鐏肩儳
+
+
+}
+
+
+public enum DungeonTargetType
+{
+    NPC = 1,
+    Exp = 2,
+    Score = 3,
+    Money = 4,
+    Wave = 5,
+    NpcTotal = 6,
+    Stage = 7,
+    NPCDialogue = 8,    //npc瀵硅瘽
+    VictorySumCnt = 9, //锛堜粰榄旇儨鍒╂�诲満鏁帮級
+    StageVictoryCnt = 10, //锛堥樁娈佃儨鍒╁満鏁帮級
+    Collect = 11,
+    AttackCount = 12,
+
+
+}
+
+
+public enum AchievementType
+{
+    Level = 1,
+    FightPower = 2,
+    MainLine = 3,
+    KillMonster = 4,
+    DailyQuest = 5,
+    FairyQuest = 6,
+    JobRank = 7,
+    MagicWeaponLevel = 8,
+    MountCount = 9,
+    MountLevel = 10,
+    PetCount = 11,
+    PetLevel = 12,
+    CollectGold = 13,
+    CollectBindDiamond = 14,
+    CollectDiamond = 15,
+    AccumulativeSignIn = 16,
+    ContinuousSignIn = 17,
+    PackbackGrid = 18,
+    FriendCount = 19,
+    WorldChat = 20,
+    SaleItem = 21,
+    BuyItem = 22,
+    Dead = 23,
+    ClearRedName = 24,
+    KillPlayer = 25,
+    StrengthenCount = 26,
+    EquipStrengthenLevel = 27,
+    WorldBoss = 28,
+    CircleQuest = 29,
+    TreasureDungeon = 30,
+    JoinGuild = 31,
+    JoinTeam = 32,
+    CollectTreasure = 33,
+    BeKilledCount = 34,
+    PrayCount = 35,
+    KillNPC = 36,
+    FindWorldMap = 37,
+    PutonEquipPlace = 38,
+    PutonEquipQuality = 39,
+    MissionTranfer = 40,
+    PropertyAdd = 41,
+    RuneTower = 42,
+    Mount = 43,
+    GetRune = 44,
+    RuneLevel = 45,
+    FairyArea = 46,
+    ComposeItem = 47,
+    InlayGem = 48,
+    Kylin = 49,
+    Realm = 50,
+    RefiningDan = 51,
+    ActivevalueAward = 52,
+    TreasureLevel = 53,
+    AncientBattleGroundKillCnt = 55,
+    AncientBattleGroundMultiKill = 56,
+    UnLockPet = 57,
+    PetRank = 58,
+    PetRanks = 59,
+    LifeGemInlay = 60,
+    AttackGemInlay = 61,
+    FairylandExp = 62,
+    NuwaGradeS = 63,
+    AnyMountLevel = 64,
+    DvsFWinningStreak = 65,
+
+}
+
+
+/// <summary>
+/// 鐗╁搧浣跨敤鑰愪箙搴﹂檺鍒剁被鍨�
+/// </summary>
+public enum ItemTimeType
+{
+    EquipedTime = 3,              //鏃堕棿锛堣澶囩殑鏃跺��-1锛屾鍚庢瘡鍒嗛挓-1锛�
+    RealityTime = 9,                //鐜板疄鏃堕棿鎵h�愪箙
+
+
+
+}
+
+
+public enum TitleBtnState
+{
+    Normal,
+    Click,
+    Locked,
+}
+
+
+public enum LegendAttrType
+{
+    Normal = 0, //涓�鑸�
+    Pursuit = 1, //杩芥眰
+    Fixed = 2, //鍥哄畾
+}
+
+
+public enum ServerState
+{
+    Maintain = 0,
+    Normal = 1,
+    Busy = 2,
+    Hot = 3,
+    Predicted = 4,
+}
+
+
+public enum ItemUseDataKey
+{
+    mapLoaction = 15,  // 鐗╁搧璁板綍鍦板浘鍧愭爣[mapid, posx, posy]
+    legendAttrID = 17,  //鐗╁搧浼犲灞炴�D鍒楄〃
+    itemCount = 18,  // 鐗╁搧涓暟锛屾敮鎸�20浜匡紝鐩墠浠呯壒娈婅浆鍖栫墿鍝佷細鐢ㄥ埌
+    legendAttrValue = 19,  //鐗╁搧浼犲灞炴�у�煎垪琛�
+    outOfPrintAttrID = 21,  //鐗╁搧缁濈増灞炴�D鍒楄〃
+    outOfPrintAttrValue = 23,  //鐗╁搧缁濈増灞炴�у�煎垪琛�
+
+    itemColor = 16,  //鐗╁搧棰滆壊锛屽鏋滆鍊兼病鏈夊氨鍙栫墿鍝�
+    cancelUseLimit = 20,  //鐗╁搧鍙栨秷浣跨敤闄愬埗
+    source = 24,  // 鐗╁搧鏉ユ簮 1-瀵诲疂锛�2-鍟嗗簵璐拱锛�3-鍟嗗簵鍏戞崲锛�4-鍑绘潃铏氭嫙鎺夎惤
+    wingMaterialItemID = 27,  //缈呰唨绮剧偧鏉愭枡ID鍒楄〃
+    wingMaterialItemCount = 29,  //缈呰唨绮剧偧鏉愭枡涓暟鍒楄〃
+
+    suiteLV = 30,  //濂楄绛夌骇
+    dogzEquipPlus = 31,  // 绁炲吔瑁呭寮哄寲淇℃伅鍒楄〃 [寮哄寲绛夌骇, 寮哄寲鐔熺粌搴
+    hasOpenCnt = 32,  // 鐗╁搧绱Н寮�鍚鏁�
+    itemDecompound = 33,  //鍚堟垚鐗╁搧鎷嗚В杩旇繕鐗╁搧鍒楄〃 [瑁呭ID,鏉愭枡1ID,涓暟,鏄惁缁戝畾,鏉愭枡2ID,涓暟,鏄惁缁戝畾,...]
+    createItemLoginDay = 34,  //鍒涘缓鐗╁搧鏃剁殑鐧诲綍澶╂暟
+    lastOpenItemLoginDay = 36,  //涓婁竴娆″紑鍚墿鍝佹椂鐨勭櫥褰曞ぉ鏁�
+    equipSkills = 37, //瑁呭鎶�鑳斤紝娌℃湁璁板綍鍒欒鍙栬〃
+    runeLV = 38,  // 绗﹀嵃绛夌骇
+    birthChartLV = 40,  // 鍛芥牸绛夌骇
+    wingProgressValue = 42, //缇界考绮剧偧鍊�
+    createTime = 44, // 鏃舵晥鐗╁搧鐨勫垱寤烘椂闂�
+    totalTime = 48, // 鏃舵晥鐗╁搧鐨勫墿浣欐椂闂�
+    auctionItemCreateTime = 50,//鎷嶅搧鍒涘缓鏃堕棿
+
+    // 绁炶灞炴��
+    shenAttrID = 51,  //鐗╁搧绁炲搧灞炴�D鍒楄〃
+    xianAttrID = 53,  //鐗╁搧浠欏搧灞炴�D鍒楄〃
+    jiAttrID = 55,  //鐗╁搧鏋佸搧灞炴�D鍒楄〃
+
+    shenAttrValue = 61,  //鐗╁搧绁炲搧灞炴�у�煎垪琛�
+    xianAttrValue = 63,  //鐗╁搧浠欏搧灞炴�у�煎垪琛�
+    jiAttrValue = 65,  //鐗╁搧鏋佸搧灞炴�у�煎垪琛�
+
+    //鍚庣画IL寮�鍙戞坊鍔犻璁�
+    default1,
+    default2,
+    default3,
+    default4,
+    default5,
+    default6,
+    default7,
+    default8,
+    default9,
+    default10,
+
+
+    #region 200~300 瀹犵墿鏁版嵁鐢�
+    pet_NPCID = 200,  //npcID
+    pet_Skill = 201,  //鎶�鑳藉垪琛�
+    pet_ClassLV = 202,  // 闃剁骇
+    pet_State = 204,  // 褰撳墠鐘舵��, 瀵瑰簲 Def_PetStateList
+    pet_QualityLV = 206,  // 鍝佽川
+
+    default81,
+    default82,
+    default83,
+    default84,
+    default85,
+    default86,
+    default87,
+    default88,
+    default89,
+    default90,
+    default91,
+    default92,
+    default93,
+    default94,
+    default95,
+    default96,
+    default97,
+    default98,
+    default99,
+    default100,
+    #endregion
+}
+
+
+public enum ItemOperateType
+{
+    makeUse, //浣跨敤
+    putOn, //绌夸笂
+    dismantle, //鎷嗚В鍚堟垚瑁呭
+    split, //鎷嗗垎
+    putAway,//涓婃灦
+    compose,//鍚堟垚
+    sell, //鍑哄敭
+    putOff, //鑴变笅
+    putIn, //鏀惧叆
+    putOut, //鍙栧嚭
+    exchange,//鍏戞崲
+    buy,//璐拱
+    putItemout,//鐗╁搧涓嬫灦
+    renewal,//缁垂
+    refine, //绮剧偧
+    LevelUp,//鍗囩骇
+    Resolve,//鍒嗚В
+    Wear,//浣╂埓
+    Replace,//鏇挎崲
+
+    gotoPuton,//鍓嶅線绌夸笂
+    strength, //寮哄寲
+    inlay, //闀跺祵
+    train,//娲楃偧
+    star,//鍗囨槦
+    lsExchange, //鐏电煶鍏戞崲
+
+    //鍚庣画IL寮�鍙戞坊鍔犻璁�
+    default1, //鍗囬樁
+    default2,
+    default3,
+    
+}
+
+
+public enum ItemWinType
+{
+    itemWin, //鏅�氱墿鍝佸脊妗�
+    boxWin, //瀹濈寮规
+    equipWin,  //瑁呭寮规
+    wingsWin,  //缈呰唨寮规
+    guardWin,//瀹堟姢寮规
+    buyItemWin, //璐拱鐗╁搧寮规
+    buyBoxWin,  //璐拱瀹濈寮规
+    petMatWin,  //瑙i攣瀹犵墿鍜屽潗楠戦亾鍏峰脊妗�
+    buyPetMatWin,  //璐拱瑙i攣瀹犵墿鍜屽潗楠戦亾鍏峰脊妗�
+    gatherSoul,//鑱氶瓊
+    kingTreasure, //鐜嬭�呮硶瀹�
+
+}
+
+
+public enum ItemTipChildType
+{
+    Normal, //鏅�氱殑瑁呭寮规
+    Buy, //璐拱寮规
+    UnionWarehouseDonation, //鎹愮尞瑁呭
+    UnionWarehouseExchange, //鍏戞崲瑁呭
+    GetEquipPath,  //瑁呭鑾峰彇閫斿緞
+    GetWingsPath,//缈呰唨鑾峰彇閫斿緞
+
+
+}
+
+
+public enum InstalledAsset
+{
+    NullAsset = 0,
+    HalfAsset = 1,
+    FullAsset = 2,
+    IngoreDownLoad = 3,
+}
+
+
+public enum VersionAuthority
+{
+    InterTest = 0,
+    Release = 1,
+}
+
+
+public enum FootAudioType
+{
+    Walk = 1,
+    Ride = 2,
+    Fly = 3,
+
+
+}
+
+
+public enum AttackFailType
+{
+    SkillFail_Other,      // 鍏朵粬
+    SkillFail_CD,      // 鎶�鑳紺D
+    SkillFail_AtkInterval, // 鏀诲嚮闂撮殧
+
+
+}
+
+
+public enum DungeonFightStage
+{
+    None,
+    Prepare,
+    Normal,
+    PickUp,
+    ExitPrepare,
+    ElderGodAreaNearDead,
+
+
+}
+
+
+public enum RankType
+{
+    FightPower = 0,
+    Job1FightPower = 1,
+    Job2FightPower = 2,
+    Job3FightPower = 3,
+    Level = 4,
+    Mount = 5,
+    Pet = 6,
+    RuneTower = 7,
+    OfflineExp = 8,
+    Realm = 9,
+    OpenServerStrengthen = 11,
+    OpenServerMount = 12,
+    OpenServerGem = 13,
+    OpenServerLv = 14,
+    OpenServerRealm = 15,
+    OpenServerFightPower = 16,
+    Def_BT_FCCostGold = 17,  //娑堣垂鎺掕姒�(浠欑晫鐩涘吀)
+    OpenServerRune = 18,
+    Assist = 19,//鍔╂垬姒�
+    OpenServerGodWeapon = 20,
+    OpenServerRecharge = 21,
+    OpenServerPet = 22,
+    Def_BT_NewFCCostGold = 23, //娑堣垂鎺掕姒�(鏂颁粰鐣岀洓鍏�)  23
+    OpenServerReikiPoint = 24,//鐏垫牴鐐�
+    OpenServerStartLevel = 25,
+    OpenServereEquipTrain = 26, //瑁呭娲楃粌
+
+    default1,
+    default2,
+    default3,
+    default4,
+}
+
+
+public enum PetOrMount
+{
+    None,
+    Pet,
+    Mount,
+}
+
+//OpenServerActivityCenter.ActivityType.AT_Activity2鐨勬椿鍔�  鍘嗗彶鍘熷洜涓嶈鐢�100
+public enum NewDayActivityID
+{
+    BossTrial = 200,    //boss鍑瘉
+    LoginAct = 201, //鐧诲綍娲诲姩
+    MissionAct = 202,   //浠诲姟娲诲姩
+    RechargeGiftAct = 203,  //鍏呭�肩ぜ鍖咃紙鍏呭�兼鏁板鍔憋級
+    CrossBossTrial = 204,   //璺ㄦ湇boss鍑瘉 蹇呴』鍜孊ossTrial 涓�璧�
+    FamilyRechargeConnAct = 205, //浠欑洘鍗忓姪
+    CustomizedGiftWin = 206, //鑷�夌ぜ鍖�
+    SecretPlaceXB = 207, //绉樺瀵诲疂
+    SecretPlaceXBCross = 208, //绉樺瀵诲疂 璺ㄦ湇
+    RechargeGiftAct31 = 209,  //鑷�夊厖鍊� + 鍟嗗簵绀煎寘
+    PetHorseAct = 210,  //瀹犵墿鍧愰獞娲诲姩
+    PetHorseActCross = 211,  //瀹犵墿鍧愰獞娲诲姩 璺ㄦ湇
+    TreasurePavilionAct = 212,  //鍙ゅ疂娲诲姩
+    TreasurePavilionActCross = 213,  //鍙ゅ疂娲诲姩 璺ㄦ湇
+    FairyAffinityLoginAct = 214,  //浠欑紭鐧婚檰娲诲姩
+    FairyAffinityMissionAct = 215,  //浠欑紭浠诲姟娲诲姩
+    FairyAffinityRechargeGiftAct = 216,  //浠欑紭绀煎寘娲诲姩
+    CycleHallAct = 217,  //杞洖娈挎椿鍔�
+    YunShiXBAct = 218,  //杩愬娍瀵诲疂娲诲姩
+    YunShiMissionAct = 219,  //杩愬娍浠诲姟娲诲姩
+    YunShiRechargeGiftAct = 220,  //杩愬娍绀煎寘娲诲姩
+    LianQiActCross = 221,    //浠欏尃澶т細娲诲姩 璺ㄦ湇
+    LianQiRechargeGiftActCross = 222, //浠欏尃澶т細绀煎寘娲诲姩 璺ㄦ湇
+}
+
+//浠欑帀璐拱鐨勪簩娆$‘璁ゆ绫诲瀷
+public enum BuyStoreItemCheckType
+{
+    All = 0,    //榛樿鍏ㄥ眬, 闈炵壒娈婂彲浠ョ粺涓�鐢ㄨ繖涓�
+    ActGift = 1, //娲诲姩绀煎寘
+    MJXB = 2,   //绉樺瀵诲疂
+    GatherSoulXB = 3,   //鑱氶瓊瀵诲疂
+    TreasurePavilion = 4,   //鍙ゅ疂瀵诲疂
+    BestXB = 5,   //鏋佸搧瀵诲疂
+    RuneXB = 6,   //绗︽枃瀵诲疂
+}
+
+//鏌ヨ鍏朵粬鐜╁鏁版嵁 鐢ㄩ�旂被鍨�
+public enum ViewPlayerType
+{
+    viewPlayerEquip = 0,    //鏌ョ湅鐜╁鍩烘湰淇℃伅锛堣澶囩敱璇锋眰澶у鐣岄樁鍐冲畾锛夛紝骞舵墦寮�鐣岄潰
+    viewPlayerFightPower = 1,  //鏌ョ湅鐜╁鎴樺姏璇︽儏锛屽苟鎵撳紑鐣岄潰
+    viewPlayerData = 2,  //鏌ョ湅鐜╁鍩烘湰淇℃伅锛屽叕鐢�
+    viewPlayerDataZZ = 3,  //鍔╂垬鍦烘櫙浣跨敤
+    viewPlayerDataArena = 4,  //鏈湇绔炴妧鍦哄満鏅娇鐢�
+    viewPlayerDataFairyKing = 5,  //浠欑洘鑱旇禌鐜嬭�匲I浣跨敤
+
+    //鏌ヨ璺ㄦ湇鏁版嵁浠�100寮�濮�
+    viewCrossPlayerEquip = 100,    //鏌ョ湅鐜╁鍩烘湰淇℃伅锛堣澶囩敱璇锋眰澶у鐣岄樁鍐冲畾锛夛紝骞舵墦寮�鐣岄潰
+    viewCrossPlayerFightPower = 101,  //鏌ョ湅鐜╁鎴樺姏璇︽儏锛屽苟鎵撳紑鐣岄潰
+    viewCrossPlayerData = 102,  //鏌ョ湅鐜╁鍩烘湰淇℃伅锛屽叕鐢�
+    viewCrossPlayerDataBlessedLand = 103,  //绂忓湴椹辫刀
 }
\ No newline at end of file
diff --git a/Utility/EnumHelper.cs.meta b/Main/Utility/EnumHelper.cs.meta
similarity index 100%
rename from Utility/EnumHelper.cs.meta
rename to Main/Utility/EnumHelper.cs.meta
diff --git a/Utility/EnumLabelAttribute.cs b/Main/Utility/EnumLabelAttribute.cs
similarity index 99%
rename from Utility/EnumLabelAttribute.cs
rename to Main/Utility/EnumLabelAttribute.cs
index f2adab0..7e011de 100644
--- a/Utility/EnumLabelAttribute.cs
+++ b/Main/Utility/EnumLabelAttribute.cs
@@ -1,4 +1,4 @@
-锘縰sing System;
+锘縰sing System;
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
@@ -8,40 +8,40 @@
 #endif
 
 [AttributeUsage(AttributeTargets.Field)]
-public class EnumLabelAttribute : PropertyAttribute
+public class EnumLabelAttribute : PropertyAttribute
 {
     public readonly Type enumType;
-    public EnumLabelAttribute(Type type)
-    {
-        this.enumType = type;
+    public EnumLabelAttribute(Type type)
+    {
+        this.enumType = type;
     }
 }
 
 #if UNITY_EDITOR
 [CustomPropertyDrawer(typeof(EnumLabelAttribute))]
-public class EnumLabelPropertyDrawer : PropertyDrawer
-{
-    List<string> m_EnumLabels = new List<string>();
-    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
-    {
-        var customAttribute = (EnumLabelAttribute)attribute;
-        if (m_EnumLabels.Count != property.enumNames.Length)
-        {
-            m_EnumLabels.Clear();
-            var enumtype = customAttribute.enumType;
-            foreach (var enumName in property.enumNames)
-            {
-                var enumfield = enumtype.GetField(enumName);
-                var customAttributes = enumfield.GetCustomAttributes(typeof(HeaderAttribute), false);
-                m_EnumLabels.Add(customAttributes.Length <= 0 ? enumName : ((HeaderAttribute)customAttributes[0]).header);
-            }
-        }
-        EditorGUI.BeginChangeCheck();
-        var value = EditorGUI.Popup(position, fieldInfo.Name, property.enumValueIndex, m_EnumLabels.ToArray());
-        if (EditorGUI.EndChangeCheck())
-        {
-            property.enumValueIndex = value;
-        }
-    }
+public class EnumLabelPropertyDrawer : PropertyDrawer
+{
+    List<string> m_EnumLabels = new List<string>();
+    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
+    {
+        var customAttribute = (EnumLabelAttribute)attribute;
+        if (m_EnumLabels.Count != property.enumNames.Length)
+        {
+            m_EnumLabels.Clear();
+            var enumtype = customAttribute.enumType;
+            foreach (var enumName in property.enumNames)
+            {
+                var enumfield = enumtype.GetField(enumName);
+                var customAttributes = enumfield.GetCustomAttributes(typeof(HeaderAttribute), false);
+                m_EnumLabels.Add(customAttributes.Length <= 0 ? enumName : ((HeaderAttribute)customAttributes[0]).header);
+            }
+        }
+        EditorGUI.BeginChangeCheck();
+        var value = EditorGUI.Popup(position, fieldInfo.Name, property.enumValueIndex, m_EnumLabels.ToArray());
+        if (EditorGUI.EndChangeCheck())
+        {
+            property.enumValueIndex = value;
+        }
+    }
 }
 #endif
diff --git a/Utility/EnumLabelAttribute.cs.meta b/Main/Utility/EnumLabelAttribute.cs.meta
similarity index 100%
rename from Utility/EnumLabelAttribute.cs.meta
rename to Main/Utility/EnumLabelAttribute.cs.meta
diff --git a/Utility/Extension.cs b/Main/Utility/Extension.cs
similarity index 100%
rename from Utility/Extension.cs
rename to Main/Utility/Extension.cs
diff --git a/Utility/Extension.cs.meta b/Main/Utility/Extension.cs.meta
similarity index 100%
rename from Utility/Extension.cs.meta
rename to Main/Utility/Extension.cs.meta
diff --git a/Utility/FPS.cs b/Main/Utility/FPS.cs
similarity index 100%
rename from Utility/FPS.cs
rename to Main/Utility/FPS.cs
diff --git a/Utility/FPS.cs.meta b/Main/Utility/FPS.cs.meta
similarity index 100%
rename from Utility/FPS.cs.meta
rename to Main/Utility/FPS.cs.meta
diff --git a/Utility/FieldPrint.cs b/Main/Utility/FieldPrint.cs
similarity index 100%
rename from Utility/FieldPrint.cs
rename to Main/Utility/FieldPrint.cs
diff --git a/Utility/FieldPrint.cs.meta b/Main/Utility/FieldPrint.cs.meta
similarity index 100%
rename from Utility/FieldPrint.cs.meta
rename to Main/Utility/FieldPrint.cs.meta
diff --git a/Utility/FileExtersion.cs b/Main/Utility/FileExtersion.cs
similarity index 99%
rename from Utility/FileExtersion.cs
rename to Main/Utility/FileExtersion.cs
index 3d0be1d..b69959b 100644
--- a/Utility/FileExtersion.cs
+++ b/Main/Utility/FileExtersion.cs
@@ -1,207 +1,207 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using System;
-using System.IO;
-using System.Security.Cryptography;
-using System.Text;
-
-
-public class FileExtersion
-{
-    public readonly static string lineSplit = "\r\n"; //琛岄棿闅斾綋
-
-    //鍒涘缓瀵瑰簲鐨勬枃浠舵枃浠跺す璺緞
-    public static void MakeSureDirectory(string filePath)
-    {
-        string dir = Path.GetDirectoryName(filePath);
-        if (!Directory.Exists(dir))
-        {
-            Directory.CreateDirectory(dir);
-        }
-    }
-
-    public static List<FileInfo> GetFileInfos(string _path, string[] _searchPatterns)
-    {
-        if (_searchPatterns == null)
-        {
-            return null;
-        }
-
-        if (!Directory.Exists(_path))
-        {
-            return null;
-        }
-
-        var fileInfoes = new List<FileInfo>();
-        var directoryInfo = new DirectoryInfo(_path);
-
-        for (int i = 0; i < _searchPatterns.Length; i++)
-        {
-            fileInfoes.AddRange(directoryInfo.GetFiles(_searchPatterns[i], SearchOption.AllDirectories));
-        }
-
-        return fileInfoes;
-    }
-
-    public static void GetAllDirectoryFileInfos(string _path, List<FileInfo> _fileInfos)
-    {
-        var directoryInfo = new DirectoryInfo(_path);
-        var allFileSystemInfos = directoryInfo.GetFileSystemInfos();
-
-        for (int i = 0; i < allFileSystemInfos.Length; i++)
-        {
-            var fileSystemInfo = allFileSystemInfos[i];
-            if (fileSystemInfo is DirectoryInfo)
-            {
-                GetAllDirectoryFileInfos(fileSystemInfo.FullName, _fileInfos);
-            }
-
-            if (fileSystemInfo is FileInfo)
-            {
-                _fileInfos.Add(fileSystemInfo as FileInfo);
-            }
-        }
-    }
-
-    public static string GetFileRelativePath(string _root, string _fileFullName)
-    {
-        _root = _root.Replace("\\", "/");
-        _fileFullName = _fileFullName.Replace("\\", "/");
-        var relativePath = _fileFullName.Replace(_root, "");
-        if (relativePath.StartsWith("/"))
-        {
-            relativePath = relativePath.Substring(1, relativePath.Length - 1);
-        }
-
-        return relativePath;
-    }
-
-    public static int GetVersionFromFileName(string _fileName)
-    {
-        var index = _fileName.IndexOf("_version_");
-
-        if (index == -1)
-        {
-            return 0;
-        }
-        else
-        {
-            var version = 0;
-            int.TryParse(_fileName.Substring(0, index), out version);
-            return version;
-        }
-    }
-
-    public static string RemoveVersionFromFileFullName(string _fullName)
-    {
-        var fileName = Path.GetFileName(_fullName);
-        var index = fileName.IndexOf("_version_");
-
-        if (index != -1)
-        {
-            var startIndex = index + 9;
-            fileName = fileName.Substring(startIndex, fileName.Length - startIndex);
-            return StringUtility.Contact(Path.GetDirectoryName(_fullName), Path.DirectorySeparatorChar, fileName);
-        }
-        else
-        {
-            return _fullName;
-        }
-    }
-
-    public static string AddVersionToFileFullName(string _fullName, int _version)
-    {
-        var fileName = Path.GetFileName(_fullName);
-        var index = fileName.IndexOf("_version_");
-
-        if (index != -1)
-        {
-            fileName = fileName.Substring(0, index);
-        }
-
-        return StringUtility.Contact(Path.GetDirectoryName(_fullName), Path.DirectorySeparatorChar, _version, "_version_", fileName);
-    }
-
-    public static void DirectoryCopy(string _from, string _to)
-    {
-        if (!Directory.Exists(_from))
-        {
-            return;
-        }
-
-        if (!Directory.Exists(_to))
-        {
-            Directory.CreateDirectory(_to);
-        }
-
-        var files = Directory.GetFiles(_from);
-        foreach (var formFileName in files)
-        {
-            string fileName = Path.GetFileName(formFileName);
-            string toFileName = Path.Combine(_to, fileName);
-            File.Copy(formFileName, toFileName, true);
-        }
-
-        var fromDirs = Directory.GetDirectories(_from);
-        foreach (var fromDirName in fromDirs)
-        {
-            var dirName = Path.GetFileName(fromDirName);
-            var toDirName = Path.Combine(_to, dirName);
-            DirectoryCopy(fromDirName, toDirName);
-        }
-    }
-
-    public static string GetMD5HashFromFile(string fileName)
-    {
-        try
-        {
-            var file = new FileStream(fileName, System.IO.FileMode.Open);
-            var md5 = new MD5CryptoServiceProvider();
-            var retVal = md5.ComputeHash(file);
-            file.Close();
-            var sb = new StringBuilder();
-            for (int i = 0; i < retVal.Length; i++)
-            {
-                sb.Append(retVal[i].ToString("x2"));
-            }
-            return sb.ToString();
-        }
-        catch (Exception ex)
-        {
-            throw new Exception("GetMD5HashFromFile() fail,error:" + ex.Message);
-        }
-    }
-
-    public static string GetStringMD5Hash(string str)
-    {
-        try
-        {
-            var bytes = Encoding.UTF8.GetBytes(str);
-            var md5 = new MD5CryptoServiceProvider();
-            var retVal = md5.ComputeHash(bytes);
-            var sb = new StringBuilder();
-            for (int i = 0; i < retVal.Length; i++)
-            {
-                sb.Append(retVal[i].ToString("x2"));
-            }
-            return sb.ToString();
-        }
-        catch (Exception ex)
-        {
-            throw new Exception("GetMD5HashFromFile() fail,error:" + ex.Message);
-        }
-    }
-
-    public static LuaConfigData ReadFileAllLines(string path)
-    {
-        var lines = File.ReadAllLines(path);
-        return new LuaConfigData() { length = lines.Length, lines = lines };
-    }
-
-    public struct LuaConfigData
-    {
-        public int length;
-        public string[] lines;
-    }
-
-}
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using System;
+using System.IO;
+using System.Security.Cryptography;
+using System.Text;
+
+
+public class FileExtersion
+{
+    public readonly static string lineSplit = "\r\n"; //琛岄棿闅斾綋
+
+    //鍒涘缓瀵瑰簲鐨勬枃浠舵枃浠跺す璺緞
+    public static void MakeSureDirectory(string filePath)
+    {
+        string dir = Path.GetDirectoryName(filePath);
+        if (!Directory.Exists(dir))
+        {
+            Directory.CreateDirectory(dir);
+        }
+    }
+
+    public static List<FileInfo> GetFileInfos(string _path, string[] _searchPatterns)
+    {
+        if (_searchPatterns == null)
+        {
+            return null;
+        }
+
+        if (!Directory.Exists(_path))
+        {
+            return null;
+        }
+
+        var fileInfoes = new List<FileInfo>();
+        var directoryInfo = new DirectoryInfo(_path);
+
+        for (int i = 0; i < _searchPatterns.Length; i++)
+        {
+            fileInfoes.AddRange(directoryInfo.GetFiles(_searchPatterns[i], SearchOption.AllDirectories));
+        }
+
+        return fileInfoes;
+    }
+
+    public static void GetAllDirectoryFileInfos(string _path, List<FileInfo> _fileInfos)
+    {
+        var directoryInfo = new DirectoryInfo(_path);
+        var allFileSystemInfos = directoryInfo.GetFileSystemInfos();
+
+        for (int i = 0; i < allFileSystemInfos.Length; i++)
+        {
+            var fileSystemInfo = allFileSystemInfos[i];
+            if (fileSystemInfo is DirectoryInfo)
+            {
+                GetAllDirectoryFileInfos(fileSystemInfo.FullName, _fileInfos);
+            }
+
+            if (fileSystemInfo is FileInfo)
+            {
+                _fileInfos.Add(fileSystemInfo as FileInfo);
+            }
+        }
+    }
+
+    public static string GetFileRelativePath(string _root, string _fileFullName)
+    {
+        _root = _root.Replace("\\", "/");
+        _fileFullName = _fileFullName.Replace("\\", "/");
+        var relativePath = _fileFullName.Replace(_root, "");
+        if (relativePath.StartsWith("/"))
+        {
+            relativePath = relativePath.Substring(1, relativePath.Length - 1);
+        }
+
+        return relativePath;
+    }
+
+    public static int GetVersionFromFileName(string _fileName)
+    {
+        var index = _fileName.IndexOf("_version_");
+
+        if (index == -1)
+        {
+            return 0;
+        }
+        else
+        {
+            var version = 0;
+            int.TryParse(_fileName.Substring(0, index), out version);
+            return version;
+        }
+    }
+
+    public static string RemoveVersionFromFileFullName(string _fullName)
+    {
+        var fileName = Path.GetFileName(_fullName);
+        var index = fileName.IndexOf("_version_");
+
+        if (index != -1)
+        {
+            var startIndex = index + 9;
+            fileName = fileName.Substring(startIndex, fileName.Length - startIndex);
+            return StringUtility.Contact(Path.GetDirectoryName(_fullName), Path.DirectorySeparatorChar, fileName);
+        }
+        else
+        {
+            return _fullName;
+        }
+    }
+
+    public static string AddVersionToFileFullName(string _fullName, int _version)
+    {
+        var fileName = Path.GetFileName(_fullName);
+        var index = fileName.IndexOf("_version_");
+
+        if (index != -1)
+        {
+            fileName = fileName.Substring(0, index);
+        }
+
+        return StringUtility.Contact(Path.GetDirectoryName(_fullName), Path.DirectorySeparatorChar, _version, "_version_", fileName);
+    }
+
+    public static void DirectoryCopy(string _from, string _to)
+    {
+        if (!Directory.Exists(_from))
+        {
+            return;
+        }
+
+        if (!Directory.Exists(_to))
+        {
+            Directory.CreateDirectory(_to);
+        }
+
+        var files = Directory.GetFiles(_from);
+        foreach (var formFileName in files)
+        {
+            string fileName = Path.GetFileName(formFileName);
+            string toFileName = Path.Combine(_to, fileName);
+            File.Copy(formFileName, toFileName, true);
+        }
+
+        var fromDirs = Directory.GetDirectories(_from);
+        foreach (var fromDirName in fromDirs)
+        {
+            var dirName = Path.GetFileName(fromDirName);
+            var toDirName = Path.Combine(_to, dirName);
+            DirectoryCopy(fromDirName, toDirName);
+        }
+    }
+
+    public static string GetMD5HashFromFile(string fileName)
+    {
+        try
+        {
+            var file = new FileStream(fileName, System.IO.FileMode.Open);
+            var md5 = new MD5CryptoServiceProvider();
+            var retVal = md5.ComputeHash(file);
+            file.Close();
+            var sb = new StringBuilder();
+            for (int i = 0; i < retVal.Length; i++)
+            {
+                sb.Append(retVal[i].ToString("x2"));
+            }
+            return sb.ToString();
+        }
+        catch (Exception ex)
+        {
+            throw new Exception("GetMD5HashFromFile() fail,error:" + ex.Message);
+        }
+    }
+
+    public static string GetStringMD5Hash(string str)
+    {
+        try
+        {
+            var bytes = Encoding.UTF8.GetBytes(str);
+            var md5 = new MD5CryptoServiceProvider();
+            var retVal = md5.ComputeHash(bytes);
+            var sb = new StringBuilder();
+            for (int i = 0; i < retVal.Length; i++)
+            {
+                sb.Append(retVal[i].ToString("x2"));
+            }
+            return sb.ToString();
+        }
+        catch (Exception ex)
+        {
+            throw new Exception("GetMD5HashFromFile() fail,error:" + ex.Message);
+        }
+    }
+
+    public static LuaConfigData ReadFileAllLines(string path)
+    {
+        var lines = File.ReadAllLines(path);
+        return new LuaConfigData() { length = lines.Length, lines = lines };
+    }
+
+    public struct LuaConfigData
+    {
+        public int length;
+        public string[] lines;
+    }
+
+}
diff --git a/Utility/FileExtersion.cs.meta b/Main/Utility/FileExtersion.cs.meta
similarity index 100%
rename from Utility/FileExtersion.cs.meta
rename to Main/Utility/FileExtersion.cs.meta
diff --git a/Utility/GameObjectPool.cs b/Main/Utility/GameObjectPool.cs
similarity index 99%
rename from Utility/GameObjectPool.cs
rename to Main/Utility/GameObjectPool.cs
index f79a1be..5f294d8 100644
--- a/Utility/GameObjectPool.cs
+++ b/Main/Utility/GameObjectPool.cs
@@ -1,99 +1,99 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-
-public class GameObjectPool
-{
-
-    private List<GameObject> m_FreeList;
-    private List<GameObject> m_ActiveList;
-    private GameObject m_Prefab;
-
-    public int nameHashCode;
-    public string name;
-
-    public GameObjectPool(GameObject prefab)
-    {
-        name = prefab.name;
-        nameHashCode = name.GetHashCode();
-
-        m_Prefab = prefab;
-        m_FreeList = new List<GameObject>();
-        m_ActiveList = new List<GameObject>();
-    }
-
-    public GameObject Request()
-    {
-        GameObject _gameObject = null;
-        if (m_FreeList.Count == 0)
-        {
-            _gameObject = Object.Instantiate(m_Prefab);
-            _gameObject.name = name;
-        }
-        else
-        {
-            _gameObject = m_FreeList[0];
-            m_FreeList.RemoveAt(0);
-        }
-        m_ActiveList.Add(_gameObject);
-        return _gameObject;
-    }
-
-    public void Release(GameObject gameObject)
-    {
-        if (m_ActiveList.Contains(gameObject))
-        {
-            m_ActiveList.Remove(gameObject);
-        }
-        else
-        {
-            Debug.LogWarningFormat("鎵�鍥炴敹鐨刧o瀵硅薄 {0} 骞朵笉鏄粠姹犻噷鍙栧緱鐨�...", gameObject.name);
-        }
-        m_FreeList.Add(gameObject);
-       
-    }
-
-    public void Clear()
-    {
-        foreach (var _item in m_FreeList)
-        {
-            Object.Destroy(_item);
-        }
-        foreach (var _item in m_ActiveList)
-        {
-            Object.Destroy(_item);
-        }
-        m_FreeList.Clear();
-        m_ActiveList.Clear();
-    }
-
-    public void Destroy()
-    {
-
-        Clear();
-
-        m_Prefab = null;
-
-        m_FreeList = null;
-        m_ActiveList = null;
-    }
-
-#if UNITY_EDITOR
-    public void ForeachActive(System.Action<GameObject> method)
-    {
-        for (int i = m_ActiveList.Count - 1; i >= 0; --i)
-        {
-            method(m_ActiveList[i]);
-        }
-    }
-
-    public void ForeachFree(System.Action<GameObject> method)
-    {
-        for (int i = m_FreeList.Count - 1; i >= 0; --i)
-        {
-            method(m_FreeList[i]);
-        }
-    }
-#endif
-}
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+public class GameObjectPool
+{
+
+    private List<GameObject> m_FreeList;
+    private List<GameObject> m_ActiveList;
+    private GameObject m_Prefab;
+
+    public int nameHashCode;
+    public string name;
+
+    public GameObjectPool(GameObject prefab)
+    {
+        name = prefab.name;
+        nameHashCode = name.GetHashCode();
+
+        m_Prefab = prefab;
+        m_FreeList = new List<GameObject>();
+        m_ActiveList = new List<GameObject>();
+    }
+
+    public GameObject Request()
+    {
+        GameObject _gameObject = null;
+        if (m_FreeList.Count == 0)
+        {
+            _gameObject = Object.Instantiate(m_Prefab);
+            _gameObject.name = name;
+        }
+        else
+        {
+            _gameObject = m_FreeList[0];
+            m_FreeList.RemoveAt(0);
+        }
+        m_ActiveList.Add(_gameObject);
+        return _gameObject;
+    }
+
+    public void Release(GameObject gameObject)
+    {
+        if (m_ActiveList.Contains(gameObject))
+        {
+            m_ActiveList.Remove(gameObject);
+        }
+        else
+        {
+            Debug.LogWarningFormat("鎵�鍥炴敹鐨刧o瀵硅薄 {0} 骞朵笉鏄粠姹犻噷鍙栧緱鐨�...", gameObject.name);
+        }
+        m_FreeList.Add(gameObject);
+       
+    }
+
+    public void Clear()
+    {
+        foreach (var _item in m_FreeList)
+        {
+            Object.Destroy(_item);
+        }
+        foreach (var _item in m_ActiveList)
+        {
+            Object.Destroy(_item);
+        }
+        m_FreeList.Clear();
+        m_ActiveList.Clear();
+    }
+
+    public void Destroy()
+    {
+
+        Clear();
+
+        m_Prefab = null;
+
+        m_FreeList = null;
+        m_ActiveList = null;
+    }
+
+#if UNITY_EDITOR
+    public void ForeachActive(System.Action<GameObject> method)
+    {
+        for (int i = m_ActiveList.Count - 1; i >= 0; --i)
+        {
+            method(m_ActiveList[i]);
+        }
+    }
+
+    public void ForeachFree(System.Action<GameObject> method)
+    {
+        for (int i = m_FreeList.Count - 1; i >= 0; --i)
+        {
+            method(m_FreeList[i]);
+        }
+    }
+#endif
+}
diff --git a/Utility/GameObjectPool.cs.meta b/Main/Utility/GameObjectPool.cs.meta
similarity index 100%
rename from Utility/GameObjectPool.cs.meta
rename to Main/Utility/GameObjectPool.cs.meta
diff --git a/Utility/GenerateUICode.cs b/Main/Utility/GenerateUICode.cs
similarity index 100%
rename from Utility/GenerateUICode.cs
rename to Main/Utility/GenerateUICode.cs
diff --git a/Utility/GenerateUICode.cs.meta b/Main/Utility/GenerateUICode.cs.meta
similarity index 100%
rename from Utility/GenerateUICode.cs.meta
rename to Main/Utility/GenerateUICode.cs.meta
diff --git a/Utility/GlobalTimeEvent.cs b/Main/Utility/GlobalTimeEvent.cs
similarity index 99%
rename from Utility/GlobalTimeEvent.cs
rename to Main/Utility/GlobalTimeEvent.cs
index 501c125..66d9296 100644
--- a/Utility/GlobalTimeEvent.cs
+++ b/Main/Utility/GlobalTimeEvent.cs
@@ -1,190 +1,190 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System;
-
-
-public class GlobalTimeEvent : SingletonMonobehaviour<GlobalTimeEvent>
-
-{
-    public event Action secondEvent;
-    public event Action fiveSecondEvent;
-    public event Action minuteEvent;
-    public event Action fiveMinuteEvent;
-    public event Action tenMinuteEvent;
-    public event Action halfHourEvent;
-    public event Action hourEvent;
-    public event Action halfMinuteEvent;
-
-    int secondBuf = -1;
-    int fiveSecondBuf = -1;
-    int minuteBuf = -1;
-    int fiveMinuteBuf = -1;
-    int tenMinuteBuf = -1;
-    int halfHourBuf = -1;
-    int hourBuf = -1;
-    int halfMinuteBuf = -1;
-
-    public void Begin()
-    {
-
-    }
-
-    private void Update()
-    {
-        var second = DateTime.Now.Second;
-        if (second != secondBuf)
-        {
-            if (secondEvent != null)
-            {
-                secondEvent();
-            }
-
-            secondBuf = second;
-        }
-
-
-        var fiveSecond = second / 5;
-        if (fiveSecondBuf != fiveSecond)
-        {
-            try
-            {
-                if (fiveSecondEvent != null)
-                {
-                    fiveSecondEvent();
-                }
-            }
-            catch (Exception ex)
-            {
-                Debug.LogException(ex);
-            }
-            finally
-            {
-                fiveSecondBuf = fiveSecond;
-            }
-        }
-
-        var minute = DateTime.Now.Minute;
-        if (minuteBuf != minute)
-        {
-            try
-            {
-                if (minuteEvent != null)
-                {
-                    minuteEvent();
-                }
-            }
-            catch (Exception ex)
-            {
-                Debug.LogException(ex);
-            }
-            finally
-            {
-                minuteBuf = minute;
-            }
-        }
-
-        var thirtySeconds = second / 30;
-        if (halfMinuteBuf != thirtySeconds)
-        {
-            try
-            {
-                if (halfMinuteEvent != null)
-                {
-                    halfMinuteEvent();
-                }
-            }
-            catch (Exception ex)
-            {
-                Debug.LogException(ex);
-            }
-            finally
-            {
-                halfMinuteBuf = thirtySeconds;
-            }
-        }
-
-        var fiveMinute = minute / 5;
-        if (fiveMinuteBuf != fiveMinute)
-        {
-            try
-            {
-                if (fiveMinuteEvent != null)
-                {
-                    fiveMinuteEvent();
-                }
-            }
-            catch (Exception ex)
-            {
-                Debug.LogException(ex);
-            }
-            finally
-            {
-                fiveMinuteBuf = fiveMinute;
-            }
-        }
-
-        var tenMinute = minute / 10;
-        if (tenMinuteBuf != tenMinute)
-        {
-            try
-            {
-                if (tenMinuteEvent != null)
-                {
-                    tenMinuteEvent();
-                }
-            }
-            catch (Exception ex)
-            {
-                Debug.LogException(ex);
-            }
-            finally
-            {
-                tenMinuteBuf = tenMinute;
-            }
-        }
-
-        var thirtyMinute = minute / 30;
-        if (halfHourBuf != thirtyMinute)
-        {
-            try
-            {
-                if (halfHourEvent != null)
-                {
-                    halfHourEvent();
-                }
-            }
-            catch (Exception ex)
-            {
-                Debug.LogException(ex);
-            }
-            finally
-            {
-                halfHourBuf = thirtyMinute;
-            }
-        }
-
-        var hour = DateTime.Now.Hour;
-        if (hourBuf != hour)
-        {
-            try
-            {
-                if (hourEvent != null)
-                {
-                    hourEvent();
-                }
-            }
-            catch (Exception ex)
-            {
-                Debug.LogException(ex);
-            }
-            finally
-            {
-                hourBuf = hour;
-            }
-        }
-
-    }
-
-
-}
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System;
+
+
+public class GlobalTimeEvent : SingletonMonobehaviour<GlobalTimeEvent>
+
+{
+    public event Action secondEvent;
+    public event Action fiveSecondEvent;
+    public event Action minuteEvent;
+    public event Action fiveMinuteEvent;
+    public event Action tenMinuteEvent;
+    public event Action halfHourEvent;
+    public event Action hourEvent;
+    public event Action halfMinuteEvent;
+
+    int secondBuf = -1;
+    int fiveSecondBuf = -1;
+    int minuteBuf = -1;
+    int fiveMinuteBuf = -1;
+    int tenMinuteBuf = -1;
+    int halfHourBuf = -1;
+    int hourBuf = -1;
+    int halfMinuteBuf = -1;
+
+    public void Begin()
+    {
+
+    }
+
+    private void Update()
+    {
+        var second = DateTime.Now.Second;
+        if (second != secondBuf)
+        {
+            if (secondEvent != null)
+            {
+                secondEvent();
+            }
+
+            secondBuf = second;
+        }
+
+
+        var fiveSecond = second / 5;
+        if (fiveSecondBuf != fiveSecond)
+        {
+            try
+            {
+                if (fiveSecondEvent != null)
+                {
+                    fiveSecondEvent();
+                }
+            }
+            catch (Exception ex)
+            {
+                Debug.LogException(ex);
+            }
+            finally
+            {
+                fiveSecondBuf = fiveSecond;
+            }
+        }
+
+        var minute = DateTime.Now.Minute;
+        if (minuteBuf != minute)
+        {
+            try
+            {
+                if (minuteEvent != null)
+                {
+                    minuteEvent();
+                }
+            }
+            catch (Exception ex)
+            {
+                Debug.LogException(ex);
+            }
+            finally
+            {
+                minuteBuf = minute;
+            }
+        }
+
+        var thirtySeconds = second / 30;
+        if (halfMinuteBuf != thirtySeconds)
+        {
+            try
+            {
+                if (halfMinuteEvent != null)
+                {
+                    halfMinuteEvent();
+                }
+            }
+            catch (Exception ex)
+            {
+                Debug.LogException(ex);
+            }
+            finally
+            {
+                halfMinuteBuf = thirtySeconds;
+            }
+        }
+
+        var fiveMinute = minute / 5;
+        if (fiveMinuteBuf != fiveMinute)
+        {
+            try
+            {
+                if (fiveMinuteEvent != null)
+                {
+                    fiveMinuteEvent();
+                }
+            }
+            catch (Exception ex)
+            {
+                Debug.LogException(ex);
+            }
+            finally
+            {
+                fiveMinuteBuf = fiveMinute;
+            }
+        }
+
+        var tenMinute = minute / 10;
+        if (tenMinuteBuf != tenMinute)
+        {
+            try
+            {
+                if (tenMinuteEvent != null)
+                {
+                    tenMinuteEvent();
+                }
+            }
+            catch (Exception ex)
+            {
+                Debug.LogException(ex);
+            }
+            finally
+            {
+                tenMinuteBuf = tenMinute;
+            }
+        }
+
+        var thirtyMinute = minute / 30;
+        if (halfHourBuf != thirtyMinute)
+        {
+            try
+            {
+                if (halfHourEvent != null)
+                {
+                    halfHourEvent();
+                }
+            }
+            catch (Exception ex)
+            {
+                Debug.LogException(ex);
+            }
+            finally
+            {
+                halfHourBuf = thirtyMinute;
+            }
+        }
+
+        var hour = DateTime.Now.Hour;
+        if (hourBuf != hour)
+        {
+            try
+            {
+                if (hourEvent != null)
+                {
+                    hourEvent();
+                }
+            }
+            catch (Exception ex)
+            {
+                Debug.LogException(ex);
+            }
+            finally
+            {
+                hourBuf = hour;
+            }
+        }
+
+    }
+
+
+}
diff --git a/Utility/GlobalTimeEvent.cs.meta b/Main/Utility/GlobalTimeEvent.cs.meta
similarity index 100%
rename from Utility/GlobalTimeEvent.cs.meta
rename to Main/Utility/GlobalTimeEvent.cs.meta
diff --git a/Utility/LayerUtility.cs b/Main/Utility/LayerUtility.cs
similarity index 100%
rename from Utility/LayerUtility.cs
rename to Main/Utility/LayerUtility.cs
diff --git a/Utility/LayerUtility.cs.meta b/Main/Utility/LayerUtility.cs.meta
similarity index 100%
rename from Utility/LayerUtility.cs.meta
rename to Main/Utility/LayerUtility.cs.meta
diff --git a/Utility/LocalSave.cs b/Main/Utility/LocalSave.cs
similarity index 100%
rename from Utility/LocalSave.cs
rename to Main/Utility/LocalSave.cs
diff --git a/Utility/LocalSave.cs.meta b/Main/Utility/LocalSave.cs.meta
similarity index 100%
rename from Utility/LocalSave.cs.meta
rename to Main/Utility/LocalSave.cs.meta
diff --git a/Utility/MathUtility.cs b/Main/Utility/MathUtility.cs
similarity index 100%
rename from Utility/MathUtility.cs
rename to Main/Utility/MathUtility.cs
diff --git a/Utility/MathUtility.cs.meta b/Main/Utility/MathUtility.cs.meta
similarity index 100%
rename from Utility/MathUtility.cs.meta
rename to Main/Utility/MathUtility.cs.meta
diff --git a/Utility/MathUtils.cs b/Main/Utility/MathUtils.cs
similarity index 100%
rename from Utility/MathUtils.cs
rename to Main/Utility/MathUtils.cs
diff --git a/Utility/MathUtils.cs.meta b/Main/Utility/MathUtils.cs.meta
similarity index 100%
rename from Utility/MathUtils.cs.meta
rename to Main/Utility/MathUtils.cs.meta
diff --git a/Utility/PathUtility.cs b/Main/Utility/PathUtility.cs
similarity index 100%
rename from Utility/PathUtility.cs
rename to Main/Utility/PathUtility.cs
diff --git a/Utility/PathUtility.cs.meta b/Main/Utility/PathUtility.cs.meta
similarity index 100%
rename from Utility/PathUtility.cs.meta
rename to Main/Utility/PathUtility.cs.meta
diff --git a/Utility/ProfilerPanel.cs b/Main/Utility/ProfilerPanel.cs
similarity index 100%
rename from Utility/ProfilerPanel.cs
rename to Main/Utility/ProfilerPanel.cs
diff --git a/Utility/ProfilerPanel.cs.meta b/Main/Utility/ProfilerPanel.cs.meta
similarity index 100%
rename from Utility/ProfilerPanel.cs.meta
rename to Main/Utility/ProfilerPanel.cs.meta
diff --git a/Utility/RenderOrder.cs b/Main/Utility/RenderOrder.cs
similarity index 100%
rename from Utility/RenderOrder.cs
rename to Main/Utility/RenderOrder.cs
diff --git a/Utility/RenderOrder.cs.meta b/Main/Utility/RenderOrder.cs.meta
similarity index 100%
rename from Utility/RenderOrder.cs.meta
rename to Main/Utility/RenderOrder.cs.meta
diff --git a/Utility/RenderTextureCreator.cs b/Main/Utility/RenderTextureCreator.cs
similarity index 99%
rename from Utility/RenderTextureCreator.cs
rename to Main/Utility/RenderTextureCreator.cs
index 4c64184..e1f4080 100644
--- a/Utility/RenderTextureCreator.cs
+++ b/Main/Utility/RenderTextureCreator.cs
@@ -2,7 +2,7 @@
 using System.Collections.Generic;
 using UnityEngine;
 
-public class RenderTextureCreator : MonoBehaviour
+public class RenderTextureCreator : MonoBehaviour
 {
     [SerializeField] Vector2 m_Size;
     [SerializeField] Camera m_TargetCamera;
@@ -10,47 +10,47 @@
 
     static Dictionary<Vector2, RenderTexture> m_RenderTexDict = new Dictionary<Vector2, RenderTexture>();
 
-    private void Awake()
-    {
-        if (m_TargetCamera != null && m_TargetCamera.targetTexture == null)
-        {
-            RenderTexture rt;
-            if (m_Reuse && GetRenderTexture(m_Size, out rt))
-            {
-                m_TargetCamera.targetTexture = rt;
-                return;
-            }
-
-            rt = new RenderTexture(Mathf.RoundToInt(m_Size.x), Mathf.RoundToInt(m_Size.y), 16);
-            switch (Application.platform)
-            {
-                case RuntimePlatform.OSXEditor:
-                case RuntimePlatform.WindowsEditor:
-                case RuntimePlatform.WindowsPlayer:
-                    rt.format = RenderTextureFormat.ARGB32;
-                    break;
-                default:
-                    rt.format = RenderTextureFormat.ARGB4444;
-                    break;
-            }
-
-            rt.useMipMap = false;
-            rt.wrapMode = TextureWrapMode.Clamp;
-            rt.filterMode = FilterMode.Bilinear;
-
-            m_TargetCamera.targetTexture = rt;
-
-            if (!m_RenderTexDict.ContainsKey(m_Size))
-            {
-                m_RenderTexDict.Add(m_Size, rt);
-            }
-        }
-
+    private void Awake()
+    {
+        if (m_TargetCamera != null && m_TargetCamera.targetTexture == null)
+        {
+            RenderTexture rt;
+            if (m_Reuse && GetRenderTexture(m_Size, out rt))
+            {
+                m_TargetCamera.targetTexture = rt;
+                return;
+            }
+
+            rt = new RenderTexture(Mathf.RoundToInt(m_Size.x), Mathf.RoundToInt(m_Size.y), 16);
+            switch (Application.platform)
+            {
+                case RuntimePlatform.OSXEditor:
+                case RuntimePlatform.WindowsEditor:
+                case RuntimePlatform.WindowsPlayer:
+                    rt.format = RenderTextureFormat.ARGB32;
+                    break;
+                default:
+                    rt.format = RenderTextureFormat.ARGB4444;
+                    break;
+            }
+
+            rt.useMipMap = false;
+            rt.wrapMode = TextureWrapMode.Clamp;
+            rt.filterMode = FilterMode.Bilinear;
+
+            m_TargetCamera.targetTexture = rt;
+
+            if (!m_RenderTexDict.ContainsKey(m_Size))
+            {
+                m_RenderTexDict.Add(m_Size, rt);
+            }
+        }
+
     }
 
-    public static bool GetRenderTexture(Vector2 _Size, out RenderTexture _tex)
-    {
-        return m_RenderTexDict.TryGetValue(_Size, out _tex);
+    public static bool GetRenderTexture(Vector2 _Size, out RenderTexture _tex)
+    {
+        return m_RenderTexDict.TryGetValue(_Size, out _tex);
     }
 
 }
diff --git a/Utility/RenderTextureCreator.cs.meta b/Main/Utility/RenderTextureCreator.cs.meta
similarity index 100%
rename from Utility/RenderTextureCreator.cs.meta
rename to Main/Utility/RenderTextureCreator.cs.meta
diff --git a/Utility/ResolutionUtility.cs b/Main/Utility/ResolutionUtility.cs
similarity index 99%
rename from Utility/ResolutionUtility.cs
rename to Main/Utility/ResolutionUtility.cs
index d76eac2..ba5dc52 100644
--- a/Utility/ResolutionUtility.cs
+++ b/Main/Utility/ResolutionUtility.cs
@@ -1,64 +1,64 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System.Diagnostics;
-
-public class ResolutionUtility
-{
-    public static readonly Vector2 originalResolution = new Vector2(Screen.width, Screen.height);
-    public static Vector2 currentResolution = new Vector2(Screen.width, Screen.height);
-
-    [Conditional("UNITY_ANDROID")]
-    public static void AdjustResolution()
-    {
-        Screen.SetResolution(Mathf.RoundToInt(currentResolution.x), Mathf.RoundToInt(currentResolution.y), true);
-    }
-
-    // public static void AdjustResolution(GameQuality _quality)
-    // {
-    //     switch (_quality)
-    //     {
-    //         case GameQuality.Low:
-    //             currentResolution = ConvertResolution(new Vector2(1280, 720));
-    //             break;
-    //         case GameQuality.Medium:
-    //             currentResolution = ConvertResolution(new Vector2(1920, 1080));
-    //             break;
-    //         case GameQuality.High:
-    //             currentResolution = ConvertResolution(new Vector2(1920, 1080));
-    //             break;
-    //     }
-
-    //     Screen.SetResolution(Mathf.RoundToInt(currentResolution.x), Mathf.RoundToInt(currentResolution.y), true);
-    // }
-
-    static Vector2 ConvertResolution(Vector2 _inputResolution)
-    {
-        var resolution = Screen.currentResolution;
-        var ratio = (resolution.width / (float)resolution.height) / ((float)16 / 9);
-
-        var height = 0f;
-        var width = 0f;
-        if (ratio > 1)
-        {
-            height = _inputResolution[1];
-            width = Mathf.RoundToInt(resolution.width / (float)resolution.height * height);
-        }
-        else
-        {
-            width = _inputResolution[0];
-            height = Mathf.RoundToInt((float)resolution.height / resolution.width * width);
-        }
-
-        if (height * width - originalResolution.x * originalResolution.y > 10)
-        {
-            return originalResolution;
-        }
-        else
-        {
-            return new Vector2(width, height);
-        }
-
-    }
-
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System.Diagnostics;
+
+public class ResolutionUtility
+{
+    public static readonly Vector2 originalResolution = new Vector2(Screen.width, Screen.height);
+    public static Vector2 currentResolution = new Vector2(Screen.width, Screen.height);
+
+    [Conditional("UNITY_ANDROID")]
+    public static void AdjustResolution()
+    {
+        Screen.SetResolution(Mathf.RoundToInt(currentResolution.x), Mathf.RoundToInt(currentResolution.y), true);
+    }
+
+    // public static void AdjustResolution(GameQuality _quality)
+    // {
+    //     switch (_quality)
+    //     {
+    //         case GameQuality.Low:
+    //             currentResolution = ConvertResolution(new Vector2(1280, 720));
+    //             break;
+    //         case GameQuality.Medium:
+    //             currentResolution = ConvertResolution(new Vector2(1920, 1080));
+    //             break;
+    //         case GameQuality.High:
+    //             currentResolution = ConvertResolution(new Vector2(1920, 1080));
+    //             break;
+    //     }
+
+    //     Screen.SetResolution(Mathf.RoundToInt(currentResolution.x), Mathf.RoundToInt(currentResolution.y), true);
+    // }
+
+    static Vector2 ConvertResolution(Vector2 _inputResolution)
+    {
+        var resolution = Screen.currentResolution;
+        var ratio = (resolution.width / (float)resolution.height) / ((float)16 / 9);
+
+        var height = 0f;
+        var width = 0f;
+        if (ratio > 1)
+        {
+            height = _inputResolution[1];
+            width = Mathf.RoundToInt(resolution.width / (float)resolution.height * height);
+        }
+        else
+        {
+            width = _inputResolution[0];
+            height = Mathf.RoundToInt((float)resolution.height / resolution.width * width);
+        }
+
+        if (height * width - originalResolution.x * originalResolution.y > 10)
+        {
+            return originalResolution;
+        }
+        else
+        {
+            return new Vector2(width, height);
+        }
+
+    }
+
 }
\ No newline at end of file
diff --git a/Utility/ResolutionUtility.cs.meta b/Main/Utility/ResolutionUtility.cs.meta
similarity index 100%
rename from Utility/ResolutionUtility.cs.meta
rename to Main/Utility/ResolutionUtility.cs.meta
diff --git a/Utility/SnxxzUtility.cs b/Main/Utility/SnxxzUtility.cs
similarity index 100%
rename from Utility/SnxxzUtility.cs
rename to Main/Utility/SnxxzUtility.cs
diff --git a/Utility/SnxxzUtility.cs.meta b/Main/Utility/SnxxzUtility.cs.meta
similarity index 100%
rename from Utility/SnxxzUtility.cs.meta
rename to Main/Utility/SnxxzUtility.cs.meta
diff --git a/Utility/SystemCMD.cs b/Main/Utility/SystemCMD.cs
similarity index 100%
rename from Utility/SystemCMD.cs
rename to Main/Utility/SystemCMD.cs
diff --git a/Utility/SystemCMD.cs.meta b/Main/Utility/SystemCMD.cs.meta
similarity index 100%
rename from Utility/SystemCMD.cs.meta
rename to Main/Utility/SystemCMD.cs.meta
diff --git a/Utility/TAny.cs b/Main/Utility/TAny.cs
similarity index 100%
rename from Utility/TAny.cs
rename to Main/Utility/TAny.cs
diff --git a/Utility/TAny.cs.meta b/Main/Utility/TAny.cs.meta
similarity index 100%
rename from Utility/TAny.cs.meta
rename to Main/Utility/TAny.cs.meta
diff --git a/Utility/TBlackBoard.cs b/Main/Utility/TBlackBoard.cs
similarity index 100%
rename from Utility/TBlackBoard.cs
rename to Main/Utility/TBlackBoard.cs
diff --git a/Utility/TBlackBoard.cs.meta b/Main/Utility/TBlackBoard.cs.meta
similarity index 100%
rename from Utility/TBlackBoard.cs.meta
rename to Main/Utility/TBlackBoard.cs.meta
diff --git a/Utility/TransformExtension.cs b/Main/Utility/TransformExtension.cs
similarity index 100%
rename from Utility/TransformExtension.cs
rename to Main/Utility/TransformExtension.cs
diff --git a/Utility/TransformExtension.cs.meta b/Main/Utility/TransformExtension.cs.meta
similarity index 100%
rename from Utility/TransformExtension.cs.meta
rename to Main/Utility/TransformExtension.cs.meta
diff --git a/Utility/UGUIEventListenerContainDrag.cs b/Main/Utility/UGUIEventListenerContainDrag.cs
similarity index 100%
rename from Utility/UGUIEventListenerContainDrag.cs
rename to Main/Utility/UGUIEventListenerContainDrag.cs
diff --git a/Utility/UGUIEventListenerContainDrag.cs.meta b/Main/Utility/UGUIEventListenerContainDrag.cs.meta
similarity index 100%
rename from Utility/UGUIEventListenerContainDrag.cs.meta
rename to Main/Utility/UGUIEventListenerContainDrag.cs.meta
diff --git a/Utility/UIParamCopyTool.cs b/Main/Utility/UIParamCopyTool.cs
similarity index 100%
rename from Utility/UIParamCopyTool.cs
rename to Main/Utility/UIParamCopyTool.cs
diff --git a/Utility/UIParamCopyTool.cs.meta b/Main/Utility/UIParamCopyTool.cs.meta
similarity index 100%
rename from Utility/UIParamCopyTool.cs.meta
rename to Main/Utility/UIParamCopyTool.cs.meta
diff --git a/Utility/VectorUtility.cs b/Main/Utility/VectorUtility.cs
similarity index 100%
rename from Utility/VectorUtility.cs
rename to Main/Utility/VectorUtility.cs
diff --git a/Utility/VectorUtility.cs.meta b/Main/Utility/VectorUtility.cs.meta
similarity index 100%
rename from Utility/VectorUtility.cs.meta
rename to Main/Utility/VectorUtility.cs.meta
diff --git a/Utility/VesselExtension.cs b/Main/Utility/VesselExtension.cs
similarity index 100%
rename from Utility/VesselExtension.cs
rename to Main/Utility/VesselExtension.cs
diff --git a/Utility/VesselExtension.cs.meta b/Main/Utility/VesselExtension.cs.meta
similarity index 100%
rename from Utility/VesselExtension.cs.meta
rename to Main/Utility/VesselExtension.cs.meta

--
Gitblit v1.8.0