From c8e3a97e4e02e7328d70dbc3dc69c3d4230a5a37 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期三, 15 五月 2019 10:36:47 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 Lua/Gen/SnxxzUIRedpointCenterWrap.cs     |    2 
 Lua/Gen/SnxxzUIConfirmCancelWrap.cs.meta |   12 
 Lua/Gen/SnxxzUIConfirmCancelWrap.cs      |  917 +++
 Lua/Gen/SnxxzUIReikiRootModelWrap.cs     |   31 
 Lua/Gen/SnxxzUIFunctionButtonWrap.cs     |    2 
 Lua/Gen/SnxxzUIDungeonModelWrap.cs       |    2 
 Lua/Gen/EnumWrap.cs                      | 9180 +++++++++++++++++++++++++++++++
 Lua/Gen/SnxxzUIImpactRankModelWrap.cs    |    4 
 Lua/Gen/SnxxzUIWindowCenterWrap.cs       |    2 
 Lua/Gen/DelegatesGensBridge.cs           |  204 
 Lua/Gen/ComposeWinModelWrap.cs           |    2 
 Lua/Gen/TaskFeedbackConfigWrap.cs.meta   |   12 
 Lua/Gen/link.xml                         |   65 
 Lua/Gen/XLuaGenAutoRegister.cs           |  243 
 Lua/Gen/SnxxzUIItemTipsModelWrap.cs      |    2 
 Lua/Gen/SnxxzUITeamModelWrap.cs          |    2 
 Lua/Gen/SnxxzUIFindPreciousModelWrap.cs  |    2 
 Lua/Gen/WrapPusher.cs                    | 6111 +++++++++++++++++++++
 Lua/Gen/SnxxzUITreasureModelWrap.cs      |    2 
 System/Tip/ConfirmCancel.cs              |    1 
 Lua/Gen/TaskFeedbackConfigWrap.cs        |  372 +
 Lua/Gen/SnxxzUIRedpointWrap.cs           |    2 
 22 files changed, 17,039 insertions(+), 133 deletions(-)

diff --git a/Lua/Gen/ComposeWinModelWrap.cs b/Lua/Gen/ComposeWinModelWrap.cs
index 1f93435..a39db6d 100644
--- a/Lua/Gen/ComposeWinModelWrap.cs
+++ b/Lua/Gen/ComposeWinModelWrap.cs
@@ -791,7 +791,7 @@
                     int[] _makeIds = (int[])translator.GetObject(L, 2, typeof(int[]));
                     
                         PackType gen_ret = gen_to_be_invoked.GetPackTypeByMakerId( _makeIds );
-                        translator.Push(L, gen_ret);
+                        translator.PushPackType(L, gen_ret);
                     
                     
                     
diff --git a/Lua/Gen/DelegatesGensBridge.cs b/Lua/Gen/DelegatesGensBridge.cs
index 52caf07..66e18b4 100644
--- a/Lua/Gen/DelegatesGensBridge.cs
+++ b/Lua/Gen/DelegatesGensBridge.cs
@@ -1038,7 +1038,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushPlayerDataType(L, p1);
                 
                 PCall(L, 2, 0, errFunc);
                 
@@ -1703,7 +1703,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushVipPrivilegeType(L, p1);
                 
                 PCall(L, 2, 1, errFunc);
                 
@@ -2301,7 +2301,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushDungeonCoolDownType(L, p1);
                 
                 PCall(L, 2, 0, errFunc);
                 
@@ -2509,7 +2509,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushPackType(L, p1);
                 LuaAPI.xlua_pushinteger(L, p2);
                 LuaAPI.xlua_pushinteger(L, p3);
                 
@@ -4210,7 +4210,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushPackType(L, p1);
                 LuaAPI.xlua_pushinteger(L, p2);
                 
                 PCall(L, 3, 0, errFunc);
@@ -4371,7 +4371,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushPackType(L, p1);
                 
                 PCall(L, 2, 0, errFunc);
                 
@@ -4517,7 +4517,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushItemOperateType(L, p1);
                 translator.PushAny(L, p2);
                 
                 PCall(L, 3, 0, errFunc);
@@ -4710,7 +4710,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushPackType(L, p1);
                 
                 PCall(L, 2, 1, errFunc);
                 
@@ -4733,7 +4733,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushPackType(L, p1);
                 
                 PCall(L, 2, 1, errFunc);
                 
@@ -4756,7 +4756,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushPackType(L, p1);
                 LuaAPI.xlua_pushinteger(L, p2);
                 
                 PCall(L, 3, 1, errFunc);
@@ -4780,7 +4780,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushPackType(L, p1);
                 translator.Push(L, p2);
                 
                 PCall(L, 3, 1, errFunc);
@@ -4805,7 +4805,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushPackType(L, p1);
                 
                 PCall(L, 2, 2, errFunc);
                 
@@ -4829,7 +4829,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushPackType(L, p1);
                 translator.Push(L, p2);
                 translator.PushAny(L, p3);
                 
@@ -5397,7 +5397,7 @@
 #endif
 		}
         
-		public void __Gen_Delegate_Imp233(object p0, TreasureCategory p1)
+		public Snxxz.UI.ReikiRootModel __Gen_Delegate_Imp233(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5407,7 +5407,29 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                
+                PCall(L, 1, 1, errFunc);
+                
+                
+                Snxxz.UI.ReikiRootModel __gen_ret = (Snxxz.UI.ReikiRootModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.ReikiRootModel));
+                LuaAPI.lua_settop(L, errFunc - 1);
+                return  __gen_ret;
+#if THREAD_SAFE || HOTFIX_ENABLE
+            }
+#endif
+		}
+        
+		public void __Gen_Delegate_Imp234(object p0, TreasureCategory p1)
+		{
+#if THREAD_SAFE || HOTFIX_ENABLE
+            lock (luaEnv.luaEnvLock)
+            {
+#endif
+                RealStatePtr L = luaEnv.rawL;
+                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
+                ObjectTranslator translator = luaEnv.translator;
+                translator.PushAny(L, p0);
+                translator.PushTreasureCategory(L, p1);
                 
                 PCall(L, 2, 0, errFunc);
                 
@@ -5420,7 +5442,7 @@
 #endif
 		}
         
-		public System.Collections.IEnumerator __Gen_Delegate_Imp234(object p0, int p1, int p2)
+		public System.Collections.IEnumerator __Gen_Delegate_Imp235(object p0, int p1, int p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5444,7 +5466,7 @@
 #endif
 		}
         
-		public PlayerDeadModel __Gen_Delegate_Imp235(object p0)
+		public PlayerDeadModel __Gen_Delegate_Imp236(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5466,7 +5488,7 @@
 #endif
 		}
         
-		public Snxxz.UI.LuckyTreasureModel __Gen_Delegate_Imp236(object p0)
+		public Snxxz.UI.LuckyTreasureModel __Gen_Delegate_Imp237(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5488,7 +5510,7 @@
 #endif
 		}
         
-		public LoginRewardModel __Gen_Delegate_Imp237(object p0)
+		public LoginRewardModel __Gen_Delegate_Imp238(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5510,7 +5532,7 @@
 #endif
 		}
         
-		public string __Gen_Delegate_Imp238(object p0, int p1)
+		public string __Gen_Delegate_Imp239(object p0, int p1)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5533,7 +5555,7 @@
 #endif
 		}
         
-		public Snxxz.UI.FestivalRedpackModel __Gen_Delegate_Imp239(object p0)
+		public Snxxz.UI.FestivalRedpackModel __Gen_Delegate_Imp240(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5555,7 +5577,7 @@
 #endif
 		}
         
-		public Snxxz.UI.AchievementModel __Gen_Delegate_Imp240(object p0)
+		public Snxxz.UI.AchievementModel __Gen_Delegate_Imp241(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5577,7 +5599,7 @@
 #endif
 		}
         
-		public Snxxz.UI.RedEnvelopeModel __Gen_Delegate_Imp241(object p0)
+		public Snxxz.UI.RedEnvelopeModel __Gen_Delegate_Imp242(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5599,7 +5621,7 @@
 #endif
 		}
         
-		public System.DateTime __Gen_Delegate_Imp242(object p0, object p1)
+		public System.DateTime __Gen_Delegate_Imp243(object p0, object p1)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5622,7 +5644,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp243(object p0, object p1, int p2)
+		public bool __Gen_Delegate_Imp244(object p0, object p1, int p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5646,7 +5668,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp244(object p0, int p1, out Snxxz.UI.FestivalRedpack p2)
+		public bool __Gen_Delegate_Imp245(object p0, int p1, out Snxxz.UI.FestivalRedpack p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5670,7 +5692,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp245(object p0, int p1, out System.Collections.Generic.List<Snxxz.UI.FestivalRedpackAchievement> p2)
+		public bool __Gen_Delegate_Imp246(object p0, int p1, out System.Collections.Generic.List<Snxxz.UI.FestivalRedpackAchievement> p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5694,7 +5716,7 @@
 #endif
 		}
         
-		public void __Gen_Delegate_Imp246(object p0, Snxxz.UI.Operation p1, int p2)
+		public void __Gen_Delegate_Imp247(object p0, Snxxz.UI.Operation p1, int p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5718,7 +5740,7 @@
 #endif
 		}
         
-		public Snxxz.UI.FlashSaleModel __Gen_Delegate_Imp247(object p0)
+		public Snxxz.UI.FlashSaleModel __Gen_Delegate_Imp248(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5740,7 +5762,7 @@
 #endif
 		}
         
-		public void __Gen_Delegate_Imp248(object p0, Snxxz.UI.OperationFlashSale.FlashSaleGift p1)
+		public void __Gen_Delegate_Imp249(object p0, Snxxz.UI.OperationFlashSale.FlashSaleGift p1)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5763,7 +5785,7 @@
 #endif
 		}
         
-		public OpenServiceAchievementModel __Gen_Delegate_Imp249(object p0)
+		public OpenServiceAchievementModel __Gen_Delegate_Imp250(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5785,7 +5807,7 @@
 #endif
 		}
         
-		public Snxxz.UI.OperationLuckyTreasure __Gen_Delegate_Imp250(object p0)
+		public Snxxz.UI.OperationLuckyTreasure __Gen_Delegate_Imp251(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5807,7 +5829,7 @@
 #endif
 		}
         
-		public void __Gen_Delegate_Imp251(object p0, Snxxz.UI.Operation p1)
+		public void __Gen_Delegate_Imp252(object p0, Snxxz.UI.Operation p1)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5830,7 +5852,7 @@
 #endif
 		}
         
-		public Snxxz.UI.OperationLuckyTreasure.LuckyTreasureItem __Gen_Delegate_Imp252(object p0)
+		public Snxxz.UI.OperationLuckyTreasure.LuckyTreasureItem __Gen_Delegate_Imp253(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5852,7 +5874,7 @@
 #endif
 		}
         
-		public Snxxz.UI.MysticalPurchaseModel __Gen_Delegate_Imp253(object p0)
+		public Snxxz.UI.MysticalPurchaseModel __Gen_Delegate_Imp254(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5874,7 +5896,7 @@
 #endif
 		}
         
-		public Snxxz.UI.ImpactRankModel __Gen_Delegate_Imp254(object p0)
+		public Snxxz.UI.ImpactRankModel __Gen_Delegate_Imp255(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5896,7 +5918,7 @@
 #endif
 		}
         
-		public Snxxz.UI.OSRedEnvelopeModel __Gen_Delegate_Imp255(object p0)
+		public Snxxz.UI.OSRedEnvelopeModel __Gen_Delegate_Imp256(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5918,7 +5940,7 @@
 #endif
 		}
         
-		public Snxxz.UI.FairyLeagueModel __Gen_Delegate_Imp256(object p0)
+		public Snxxz.UI.FairyLeagueModel __Gen_Delegate_Imp257(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5940,7 +5962,7 @@
 #endif
 		}
         
-		public Snxxz.UI.FairyGrabBossModel __Gen_Delegate_Imp257(object p0)
+		public Snxxz.UI.FairyGrabBossModel __Gen_Delegate_Imp258(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5962,7 +5984,7 @@
 #endif
 		}
         
-		public Snxxz.UI.OSGiftModel __Gen_Delegate_Imp258(object p0)
+		public Snxxz.UI.OSGiftModel __Gen_Delegate_Imp259(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -5984,7 +6006,7 @@
 #endif
 		}
         
-		public Snxxz.UI.VipModel __Gen_Delegate_Imp259(object p0)
+		public Snxxz.UI.VipModel __Gen_Delegate_Imp260(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6006,7 +6028,7 @@
 #endif
 		}
         
-		public void __Gen_Delegate_Imp260(object p0, int p1, object p2, int p3, int p4)
+		public void __Gen_Delegate_Imp261(object p0, int p1, object p2, int p3, int p4)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6032,7 +6054,7 @@
 #endif
 		}
         
-		public SpringFestivalModel __Gen_Delegate_Imp261(object p0)
+		public SpringFestivalModel __Gen_Delegate_Imp262(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6054,7 +6076,7 @@
 #endif
 		}
         
-		public Snxxz.UI.ActivateShow.ActivateFunc __Gen_Delegate_Imp262()
+		public Snxxz.UI.ActivateShow.ActivateFunc __Gen_Delegate_Imp263()
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6075,7 +6097,7 @@
 #endif
 		}
         
-		public void __Gen_Delegate_Imp263(Snxxz.UI.ActivateShow.ActivateFunc p0)
+		public void __Gen_Delegate_Imp264(Snxxz.UI.ActivateShow.ActivateFunc p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6097,7 +6119,7 @@
 #endif
 		}
         
-		public string __Gen_Delegate_Imp264()
+		public string __Gen_Delegate_Imp265()
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6118,7 +6140,7 @@
 #endif
 		}
         
-		public void __Gen_Delegate_Imp265(int p0, int p1, int p2)
+		public void __Gen_Delegate_Imp266(int p0, int p1, int p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6142,7 +6164,7 @@
 #endif
 		}
         
-		public Snxxz.UI.RidingPetBossModel __Gen_Delegate_Imp266(object p0)
+		public Snxxz.UI.RidingPetBossModel __Gen_Delegate_Imp267(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6164,7 +6186,7 @@
 #endif
 		}
         
-		public Snxxz.UI.MagicianModel __Gen_Delegate_Imp267()
+		public Snxxz.UI.MagicianModel __Gen_Delegate_Imp268()
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6185,7 +6207,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp268(uint p0, out System.Collections.Generic.Dictionary<int, int> p1)
+		public bool __Gen_Delegate_Imp269(uint p0, out System.Collections.Generic.Dictionary<int, int> p1)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6208,7 +6230,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp269(uint p0, int p1, out int p2)
+		public bool __Gen_Delegate_Imp270(uint p0, int p1, out int p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6232,7 +6254,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp270(Snxxz.UI.EquipShowSwitch.EquipShowSwitchType p0, uint p1)
+		public bool __Gen_Delegate_Imp271(Snxxz.UI.EquipShowSwitch.EquipShowSwitchType p0, uint p1)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6255,7 +6277,7 @@
 #endif
 		}
         
-		public void __Gen_Delegate_Imp271(uint p0)
+		public void __Gen_Delegate_Imp272(uint p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6277,7 +6299,7 @@
 #endif
 		}
         
-		public System.Collections.Generic.Dictionary<int, string> __Gen_Delegate_Imp272(object p0)
+		public System.Collections.Generic.Dictionary<int, string> __Gen_Delegate_Imp273(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6299,7 +6321,7 @@
 #endif
 		}
         
-		public int[] __Gen_Delegate_Imp273(object p0)
+		public int[] __Gen_Delegate_Imp274(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6321,7 +6343,7 @@
 #endif
 		}
         
-		public int[] __Gen_Delegate_Imp274(object p0, int p1)
+		public int[] __Gen_Delegate_Imp275(object p0, int p1)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6344,7 +6366,7 @@
 #endif
 		}
         
-		public Snxxz.UI.GodWeaponInfo __Gen_Delegate_Imp275(object p0, int p1)
+		public Snxxz.UI.GodWeaponInfo __Gen_Delegate_Imp276(object p0, int p1)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6367,7 +6389,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp276(object p0, int p1, out System.Collections.Generic.List<Snxxz.UI.GodWeaponCondition> p2)
+		public bool __Gen_Delegate_Imp277(object p0, int p1, out System.Collections.Generic.List<Snxxz.UI.GodWeaponCondition> p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6391,7 +6413,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp277(object p0, int p1, out Snxxz.UI.AutoHammerCost p2)
+		public bool __Gen_Delegate_Imp278(object p0, int p1, out Snxxz.UI.AutoHammerCost p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6415,7 +6437,7 @@
 #endif
 		}
         
-		public System.Collections.Generic.List<int> __Gen_Delegate_Imp278(object p0, int p1)
+		public System.Collections.Generic.List<int> __Gen_Delegate_Imp279(object p0, int p1)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6438,7 +6460,7 @@
 #endif
 		}
         
-		public void __Gen_Delegate_Imp279(object p0, object p1, object p2)
+		public void __Gen_Delegate_Imp280(object p0, object p1, object p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6462,7 +6484,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp280(object p0, int p1, out int p2, out int p3)
+		public bool __Gen_Delegate_Imp281(object p0, int p1, out int p2, out int p3)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6487,7 +6509,7 @@
 #endif
 		}
         
-		public string __Gen_Delegate_Imp281(object p0, int p1, int p2)
+		public string __Gen_Delegate_Imp282(object p0, int p1, int p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6511,7 +6533,7 @@
 #endif
 		}
         
-		public void __Gen_Delegate_Imp282(object p0, TextColType p1, bool p2)
+		public void __Gen_Delegate_Imp283(object p0, TextColType p1, bool p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6521,7 +6543,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushTextColType(L, p1);
                 LuaAPI.lua_pushboolean(L, p2);
                 
                 PCall(L, 3, 0, errFunc);
@@ -6535,7 +6557,7 @@
 #endif
 		}
         
-		public uint __Gen_Delegate_Imp283(object p0)
+		public uint __Gen_Delegate_Imp284(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6557,7 +6579,7 @@
 #endif
 		}
         
-		public void __Gen_Delegate_Imp284(object p0, uint p1)
+		public void __Gen_Delegate_Imp285(object p0, uint p1)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6580,7 +6602,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp285(object p0, int p1, out Snxxz.UI.RuneItem p2)
+		public bool __Gen_Delegate_Imp286(object p0, int p1, out Snxxz.UI.RuneItem p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6604,7 +6626,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp286(object p0, int p1, out Snxxz.UI.RuneHoleCondition p2)
+		public bool __Gen_Delegate_Imp287(object p0, int p1, out Snxxz.UI.RuneHoleCondition p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6628,7 +6650,7 @@
 #endif
 		}
         
-		public int __Gen_Delegate_Imp287(object p0, int p1, out Snxxz.UI.RuneItem p2)
+		public int __Gen_Delegate_Imp288(object p0, int p1, out Snxxz.UI.RuneItem p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6652,7 +6674,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp288(object p0, int p1, out Snxxz.UI.RuneModel.RuneHoleRedpoint p2)
+		public bool __Gen_Delegate_Imp289(object p0, int p1, out Snxxz.UI.RuneModel.RuneHoleRedpoint p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6676,7 +6698,7 @@
 #endif
 		}
         
-		public int __Gen_Delegate_Imp289(object p0, int p1, float p2)
+		public int __Gen_Delegate_Imp290(object p0, int p1, float p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6700,7 +6722,7 @@
 #endif
 		}
         
-		public bool __Gen_Delegate_Imp290(object p0, int p1, uint p2)
+		public bool __Gen_Delegate_Imp291(object p0, int p1, uint p2)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6724,7 +6746,7 @@
 #endif
 		}
         
-		public Snxxz.UI.RuneResolveModel __Gen_Delegate_Imp291(object p0)
+		public Snxxz.UI.RuneResolveModel __Gen_Delegate_Imp292(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6746,7 +6768,7 @@
 #endif
 		}
         
-		public Snxxz.UI.RuneModel __Gen_Delegate_Imp292(object p0)
+		public Snxxz.UI.RuneModel __Gen_Delegate_Imp293(object p0)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6768,7 +6790,7 @@
 #endif
 		}
         
-		public float __Gen_Delegate_Imp293(object p0, int p1, int p2, bool p3)
+		public float __Gen_Delegate_Imp294(object p0, int p1, int p2, bool p3)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6793,7 +6815,7 @@
 #endif
 		}
         
-		public float __Gen_Delegate_Imp294(object p0, int p1)
+		public float __Gen_Delegate_Imp295(object p0, int p1)
 		{
 #if THREAD_SAFE || HOTFIX_ENABLE
             lock (luaEnv.luaEnvLock)
@@ -6809,28 +6831,6 @@
                 
                 
                 float __gen_ret = (float)LuaAPI.lua_tonumber(L, errFunc + 1);
-                LuaAPI.lua_settop(L, errFunc - 1);
-                return  __gen_ret;
-#if THREAD_SAFE || HOTFIX_ENABLE
-            }
-#endif
-		}
-        
-		public Snxxz.UI.ReikiRootModel __Gen_Delegate_Imp295(object p0)
-		{
-#if THREAD_SAFE || HOTFIX_ENABLE
-            lock (luaEnv.luaEnvLock)
-            {
-#endif
-                RealStatePtr L = luaEnv.rawL;
-                int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
-                ObjectTranslator translator = luaEnv.translator;
-                translator.PushAny(L, p0);
-                
-                PCall(L, 1, 1, errFunc);
-                
-                
-                Snxxz.UI.ReikiRootModel __gen_ret = (Snxxz.UI.ReikiRootModel)translator.GetObject(L, errFunc + 1, typeof(Snxxz.UI.ReikiRootModel));
                 LuaAPI.lua_settop(L, errFunc - 1);
                 return  __gen_ret;
 #if THREAD_SAFE || HOTFIX_ENABLE
@@ -7139,7 +7139,7 @@
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
                 LuaAPI.lua_pushboolean(L, p1);
-                translator.Push(L, p2);
+                translator.PushTreasureCategory(L, p2);
                 
                 PCall(L, 3, 0, errFunc);
                 
@@ -7162,7 +7162,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushTreasureCategory(L, p1);
                 translator.PushAny(L, p2);
                 
                 PCall(L, 3, 1, errFunc);
@@ -7186,7 +7186,7 @@
                 int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference);
                 ObjectTranslator translator = luaEnv.translator;
                 translator.PushAny(L, p0);
-                translator.Push(L, p1);
+                translator.PushTreasureCategory(L, p1);
                 LuaAPI.lua_pushboolean(L, p2);
                 
                 PCall(L, 3, 0, errFunc);
diff --git a/Lua/Gen/EnumWrap.cs b/Lua/Gen/EnumWrap.cs
index 8dad8cc..a917940 100644
--- a/Lua/Gen/EnumWrap.cs
+++ b/Lua/Gen/EnumWrap.cs
@@ -16,4 +16,9184 @@
 {
     using Utils = XLua.Utils;
     
+    public class E_ActorClassTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_ActorClassType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_ActorClassType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_ActorClassType), L, null, 23, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "UnDefine", E_ActorClassType.UnDefine);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Hero", E_ActorClassType.Hero);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Player", E_ActorClassType.Player);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Guard", E_ActorClassType.Guard);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcFightNorm", E_ActorClassType.NpcFightNorm);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcFightBoss", E_ActorClassType.NpcFightBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcSummonFunc", E_ActorClassType.NpcSummonFunc);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcCollect", E_ActorClassType.NpcCollect);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcSummonFight", E_ActorClassType.NpcSummonFight);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcFunc", E_ActorClassType.NpcFunc);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pet", E_ActorClassType.Pet);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcTouchKilled", E_ActorClassType.NpcTouchKilled);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcClientFightNorm", E_ActorClassType.NpcClientFightNorm);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcClientFightBoss", E_ActorClassType.NpcClientFightBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcClientFunc", E_ActorClassType.NpcClientFunc);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcFightVirtualPlayer", E_ActorClassType.NpcFightVirtualPlayer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PlayerXmzz", E_ActorClassType.PlayerXmzz);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ClientPlayer", E_ActorClassType.ClientPlayer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PlayerZZ", E_ActorClassType.PlayerZZ);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PlayerSgzcRobot", E_ActorClassType.PlayerSgzcRobot);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PVPClientPlayer", E_ActorClassType.PVPClientPlayer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcClientCollect", E_ActorClassType.NpcClientCollect);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_ActorClassType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_ActorClassType(L, (E_ActorClassType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "UnDefine"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.UnDefine);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Hero"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.Hero);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Player"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.Player);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Guard"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.Guard);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcFightNorm"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.NpcFightNorm);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcFightBoss"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.NpcFightBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcSummonFunc"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.NpcSummonFunc);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcCollect"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.NpcCollect);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcSummonFight"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.NpcSummonFight);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcFunc"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.NpcFunc);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pet"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.Pet);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcTouchKilled"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.NpcTouchKilled);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcClientFightNorm"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.NpcClientFightNorm);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcClientFightBoss"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.NpcClientFightBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcClientFunc"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.NpcClientFunc);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcFightVirtualPlayer"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.NpcFightVirtualPlayer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PlayerXmzz"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.PlayerXmzz);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ClientPlayer"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.ClientPlayer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PlayerZZ"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.PlayerZZ);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PlayerSgzcRobot"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.PlayerSgzcRobot);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PVPClientPlayer"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.PVPClientPlayer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcClientCollect"))
+                {
+                    translator.PushE_ActorClassType(L, E_ActorClassType.NpcClientCollect);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_ActorClassType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_ActorClassType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_ActorStateWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_ActorState), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_ActorState), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_ActorState), L, null, 11, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Idle", E_ActorState.Idle);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CtrlRun", E_ActorState.CtrlRun);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AutoRun", E_ActorState.AutoRun);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Hurt", E_ActorState.Hurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Die", E_ActorState.Die);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CommonAtk", E_ActorState.CommonAtk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CastSkill", E_ActorState.CastSkill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DaZuo", E_ActorState.DaZuo);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Roll", E_ActorState.Roll);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Mocked", E_ActorState.Mocked);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_ActorState), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_ActorState(L, (E_ActorState)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Idle"))
+                {
+                    translator.PushE_ActorState(L, E_ActorState.Idle);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CtrlRun"))
+                {
+                    translator.PushE_ActorState(L, E_ActorState.CtrlRun);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AutoRun"))
+                {
+                    translator.PushE_ActorState(L, E_ActorState.AutoRun);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Hurt"))
+                {
+                    translator.PushE_ActorState(L, E_ActorState.Hurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Die"))
+                {
+                    translator.PushE_ActorState(L, E_ActorState.Die);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CommonAtk"))
+                {
+                    translator.PushE_ActorState(L, E_ActorState.CommonAtk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CastSkill"))
+                {
+                    translator.PushE_ActorState(L, E_ActorState.CastSkill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DaZuo"))
+                {
+                    translator.PushE_ActorState(L, E_ActorState.DaZuo);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Roll"))
+                {
+                    translator.PushE_ActorState(L, E_ActorState.Roll);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Mocked"))
+                {
+                    translator.PushE_ActorState(L, E_ActorState.Mocked);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_ActorState!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_ActorState! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_BuffTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_BuffType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_BuffType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_BuffType), L, null, 12, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "bfBuff", E_BuffType.bfBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "bfDeBuff", E_BuffType.bfDeBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "bfAura", E_BuffType.bfAura);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "bfIncBuff", E_BuffType.bfIncBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "btPassiveBuf", E_BuffType.btPassiveBuf);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "bfEquipBuff", E_BuffType.bfEquipBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "bfMapBuff", E_BuffType.bfMapBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "bfActionBuff", E_BuffType.bfActionBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "bfProcessBuff", E_BuffType.bfProcessBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "bfProcessDeBuff", E_BuffType.bfProcessDeBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "btBufMax", E_BuffType.btBufMax);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_BuffType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_BuffType(L, (E_BuffType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "bfBuff"))
+                {
+                    translator.PushE_BuffType(L, E_BuffType.bfBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "bfDeBuff"))
+                {
+                    translator.PushE_BuffType(L, E_BuffType.bfDeBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "bfAura"))
+                {
+                    translator.PushE_BuffType(L, E_BuffType.bfAura);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "bfIncBuff"))
+                {
+                    translator.PushE_BuffType(L, E_BuffType.bfIncBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "btPassiveBuf"))
+                {
+                    translator.PushE_BuffType(L, E_BuffType.btPassiveBuf);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "bfEquipBuff"))
+                {
+                    translator.PushE_BuffType(L, E_BuffType.bfEquipBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "bfMapBuff"))
+                {
+                    translator.PushE_BuffType(L, E_BuffType.bfMapBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "bfActionBuff"))
+                {
+                    translator.PushE_BuffType(L, E_BuffType.bfActionBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "bfProcessBuff"))
+                {
+                    translator.PushE_BuffType(L, E_BuffType.bfProcessBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "bfProcessDeBuff"))
+                {
+                    translator.PushE_BuffType(L, E_BuffType.bfProcessDeBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "btBufMax"))
+                {
+                    translator.PushE_BuffType(L, E_BuffType.btBufMax);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_BuffType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_BuffType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_ClientNpcTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_ClientNpcType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_ClientNpcType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_ClientNpcType), L, null, 3, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Func", E_ClientNpcType.Func);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Fight", E_ClientNpcType.Fight);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_ClientNpcType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_ClientNpcType(L, (E_ClientNpcType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Func"))
+                {
+                    translator.PushE_ClientNpcType(L, E_ClientNpcType.Func);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Fight"))
+                {
+                    translator.PushE_ClientNpcType(L, E_ClientNpcType.Fight);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_ClientNpcType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_ClientNpcType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_NpcTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_NpcType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_NpcType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_NpcType), L, null, 22, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Func", E_NpcType.Func);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Defend", E_NpcType.Defend);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Fight", E_NpcType.Fight);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Summon", E_NpcType.Summon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Ghost", E_NpcType.Ghost);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Trap", E_NpcType.Trap);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Car", E_NpcType.Car);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Sprite", E_NpcType.Sprite);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "VirtualPlayer", E_NpcType.VirtualPlayer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Flag", E_NpcType.Flag);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Collect", E_NpcType.Collect);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Catch", E_NpcType.Catch);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pet", E_NpcType.Pet);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TouchKilled", E_NpcType.TouchKilled);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FMBoss", E_NpcType.FMBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BreakableObj", E_NpcType.BreakableObj);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FightAssist", E_NpcType.FightAssist);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SGZC_FightAssist", E_NpcType.SGZC_FightAssist);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MonsterTime", E_NpcType.MonsterTime);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PersonalEnemy", E_NpcType.PersonalEnemy);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenWorldMap", E_NpcType.OpenWorldMap);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_NpcType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_NpcType(L, (E_NpcType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Func"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.Func);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Defend"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.Defend);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Fight"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.Fight);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Summon"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.Summon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Ghost"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.Ghost);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Trap"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.Trap);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Car"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.Car);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Sprite"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.Sprite);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "VirtualPlayer"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.VirtualPlayer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Flag"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.Flag);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Collect"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.Collect);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Catch"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.Catch);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pet"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.Pet);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TouchKilled"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.TouchKilled);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FMBoss"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.FMBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BreakableObj"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.BreakableObj);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FightAssist"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.FightAssist);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SGZC_FightAssist"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.SGZC_FightAssist);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MonsterTime"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.MonsterTime);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PersonalEnemy"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.PersonalEnemy);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OpenWorldMap"))
+                {
+                    translator.PushE_NpcType(L, E_NpcType.OpenWorldMap);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_NpcType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_NpcType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_MovingStateWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_MovingState), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_MovingState), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_MovingState), L, null, 4, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Normal", E_MovingState.Normal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Fly", E_MovingState.Fly);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Ride", E_MovingState.Ride);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_MovingState), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_MovingState(L, (E_MovingState)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Normal"))
+                {
+                    translator.PushE_MovingState(L, E_MovingState.Normal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Fly"))
+                {
+                    translator.PushE_MovingState(L, E_MovingState.Fly);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Ride"))
+                {
+                    translator.PushE_MovingState(L, E_MovingState.Ride);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_MovingState!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_MovingState! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class WindowTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(WindowType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(WindowType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(WindowType), L, null, 8, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Base", WindowType.Base);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Normal", WindowType.Normal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Modal", WindowType.Modal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Tip", WindowType.Tip);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "System", WindowType.System);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Loading", WindowType.Loading);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Flag", WindowType.Flag);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(WindowType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushWindowType(L, (WindowType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Base"))
+                {
+                    translator.PushWindowType(L, WindowType.Base);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Normal"))
+                {
+                    translator.PushWindowType(L, WindowType.Normal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Modal"))
+                {
+                    translator.PushWindowType(L, WindowType.Modal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Tip"))
+                {
+                    translator.PushWindowType(L, WindowType.Tip);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "System"))
+                {
+                    translator.PushWindowType(L, WindowType.System);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Loading"))
+                {
+                    translator.PushWindowType(L, WindowType.Loading);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Flag"))
+                {
+                    translator.PushWindowType(L, WindowType.Flag);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for WindowType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for WindowType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class GestureTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(GestureType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(GestureType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(GestureType), L, null, 5, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Left", GestureType.Left);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Right", GestureType.Right);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Up", GestureType.Up);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Down", GestureType.Down);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(GestureType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushGestureType(L, (GestureType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Left"))
+                {
+                    translator.PushGestureType(L, GestureType.Left);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Right"))
+                {
+                    translator.PushGestureType(L, GestureType.Right);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Up"))
+                {
+                    translator.PushGestureType(L, GestureType.Up);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Down"))
+                {
+                    translator.PushGestureType(L, GestureType.Down);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for GestureType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for GestureType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class UnityPlatformWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(UnityPlatform), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(UnityPlatform), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(UnityPlatform), L, null, 5, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Editor", UnityPlatform.Editor);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Android", UnityPlatform.Android);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Iphone", UnityPlatform.Iphone);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Standalone", UnityPlatform.Standalone);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(UnityPlatform), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushUnityPlatform(L, (UnityPlatform)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Editor"))
+                {
+                    translator.PushUnityPlatform(L, UnityPlatform.Editor);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Android"))
+                {
+                    translator.PushUnityPlatform(L, UnityPlatform.Android);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Iphone"))
+                {
+                    translator.PushUnityPlatform(L, UnityPlatform.Iphone);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Standalone"))
+                {
+                    translator.PushUnityPlatform(L, UnityPlatform.Standalone);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for UnityPlatform!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for UnityPlatform! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class RoleRenameResultWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(RoleRenameResult), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(RoleRenameResult), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(RoleRenameResult), L, null, 7, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MoneyErr", RoleRenameResult.MoneyErr);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NameRuleErr", RoleRenameResult.NameRuleErr);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NameLengErr", RoleRenameResult.NameLengErr);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NameRepeatErr", RoleRenameResult.NameRepeatErr);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RenameFailErr", RoleRenameResult.RenameFailErr);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RenameSuccess", RoleRenameResult.RenameSuccess);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(RoleRenameResult), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushRoleRenameResult(L, (RoleRenameResult)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "MoneyErr"))
+                {
+                    translator.PushRoleRenameResult(L, RoleRenameResult.MoneyErr);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NameRuleErr"))
+                {
+                    translator.PushRoleRenameResult(L, RoleRenameResult.NameRuleErr);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NameLengErr"))
+                {
+                    translator.PushRoleRenameResult(L, RoleRenameResult.NameLengErr);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NameRepeatErr"))
+                {
+                    translator.PushRoleRenameResult(L, RoleRenameResult.NameRepeatErr);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RenameFailErr"))
+                {
+                    translator.PushRoleRenameResult(L, RoleRenameResult.RenameFailErr);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RenameSuccess"))
+                {
+                    translator.PushRoleRenameResult(L, RoleRenameResult.RenameSuccess);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for RoleRenameResult!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for RoleRenameResult! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_SkillCastTargetWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_SkillCastTarget), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_SkillCastTarget), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_SkillCastTarget), L, null, 16, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "None", E_SkillCastTarget.None);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Self", E_SkillCastTarget.Self);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TeamMate", E_SkillCastTarget.TeamMate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Friend", E_SkillCastTarget.Friend);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CanAttacked", E_SkillCastTarget.CanAttacked);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SelfAndFriend", E_SkillCastTarget.SelfAndFriend);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PlayerDeadBody", E_SkillCastTarget.PlayerDeadBody);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "UnDeadPlayer", E_SkillCastTarget.UnDeadPlayer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CanAttackedMonster", E_SkillCastTarget.CanAttackedMonster);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CanAttackedPlayer", E_SkillCastTarget.CanAttackedPlayer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "All", E_SkillCastTarget.All);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetToOwner", E_SkillCastTarget.PetToOwner);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SummonToOwner", E_SkillCastTarget.SummonToOwner);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Monster", E_SkillCastTarget.Monster);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FriendNpc", E_SkillCastTarget.FriendNpc);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_SkillCastTarget), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_SkillCastTarget(L, (E_SkillCastTarget)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "None"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.None);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Self"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.Self);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TeamMate"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.TeamMate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Friend"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.Friend);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CanAttacked"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.CanAttacked);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SelfAndFriend"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.SelfAndFriend);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PlayerDeadBody"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.PlayerDeadBody);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "UnDeadPlayer"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.UnDeadPlayer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CanAttackedMonster"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.CanAttackedMonster);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CanAttackedPlayer"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.CanAttackedPlayer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "All"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.All);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetToOwner"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.PetToOwner);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SummonToOwner"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.SummonToOwner);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Monster"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.Monster);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FriendNpc"))
+                {
+                    translator.PushE_SkillCastTarget(L, E_SkillCastTarget.FriendNpc);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_SkillCastTarget!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_SkillCastTarget! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_SkillTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_SkillType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_SkillType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_SkillType), L, null, 24, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Special", E_SkillType.Special);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Attack", E_SkillType.Attack);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Recover", E_SkillType.Recover);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ContinuousGain", E_SkillType.ContinuousGain);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SustainedReduction", E_SkillType.SustainedReduction);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GainBuff", E_SkillType.GainBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ReductionBuff", E_SkillType.ReductionBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Passive", E_SkillType.Passive);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Reborn", E_SkillType.Reborn);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ValueAdded", E_SkillType.ValueAdded);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Halo", E_SkillType.Halo);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip", E_SkillType.Equip);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Area", E_SkillType.Area);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Summon", E_SkillType.Summon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ControlBuff", E_SkillType.ControlBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MutilHurtBuffAtk", E_SkillType.MutilHurtBuffAtk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PassiveGainBuff", E_SkillType.PassiveGainBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PassiveReductionBuff", E_SkillType.PassiveReductionBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PassiveControlBuff", E_SkillType.PassiveControlBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Property", E_SkillType.Property);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PassiveBuff", E_SkillType.PassiveBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PassiveContinuousGain", E_SkillType.PassiveContinuousGain);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PassiveSustainedReduction", E_SkillType.PassiveSustainedReduction);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_SkillType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_SkillType(L, (E_SkillType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Special"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.Special);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Attack"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.Attack);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Recover"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.Recover);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ContinuousGain"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.ContinuousGain);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SustainedReduction"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.SustainedReduction);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GainBuff"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.GainBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ReductionBuff"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.ReductionBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Passive"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.Passive);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Reborn"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.Reborn);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ValueAdded"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.ValueAdded);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Halo"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.Halo);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.Equip);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Area"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.Area);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Summon"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.Summon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ControlBuff"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.ControlBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MutilHurtBuffAtk"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.MutilHurtBuffAtk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PassiveGainBuff"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.PassiveGainBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PassiveReductionBuff"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.PassiveReductionBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PassiveControlBuff"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.PassiveControlBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Property"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.Property);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PassiveBuff"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.PassiveBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PassiveContinuousGain"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.PassiveContinuousGain);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PassiveSustainedReduction"))
+                {
+                    translator.PushE_SkillType(L, E_SkillType.PassiveSustainedReduction);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_SkillType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_SkillType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_SkillFuncTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_SkillFuncType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_SkillFuncType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_SkillFuncType), L, null, 15, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Common", E_SkillFuncType.Common);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FaBaoActiveSkill", E_SkillFuncType.FaBaoActiveSkill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FaBaoPassiveSkills", E_SkillFuncType.FaBaoPassiveSkills);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FaBaoSpSkill", E_SkillFuncType.FaBaoSpSkill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TalentSkills", E_SkillFuncType.TalentSkills);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RiderSkill", E_SkillFuncType.RiderSkill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetSkill", E_SkillFuncType.PetSkill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GodWeaponSkill", E_SkillFuncType.GodWeaponSkill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NormalAttack", E_SkillFuncType.NormalAttack);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SpLv15Skill", E_SkillFuncType.SpLv15Skill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Roll", E_SkillFuncType.Roll);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RealmSkill", E_SkillFuncType.RealmSkill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MythicalAnimal", E_SkillFuncType.MythicalAnimal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ZhuxianSkill", E_SkillFuncType.ZhuxianSkill);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_SkillFuncType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_SkillFuncType(L, (E_SkillFuncType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Common"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.Common);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FaBaoActiveSkill"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.FaBaoActiveSkill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FaBaoPassiveSkills"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.FaBaoPassiveSkills);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FaBaoSpSkill"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.FaBaoSpSkill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TalentSkills"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.TalentSkills);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RiderSkill"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.RiderSkill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetSkill"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.PetSkill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GodWeaponSkill"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.GodWeaponSkill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NormalAttack"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.NormalAttack);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SpLv15Skill"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.SpLv15Skill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Roll"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.Roll);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RealmSkill"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.RealmSkill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MythicalAnimal"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.MythicalAnimal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ZhuxianSkill"))
+                {
+                    translator.PushE_SkillFuncType(L, E_SkillFuncType.ZhuxianSkill);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_SkillFuncType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_SkillFuncType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_SkillCastTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_SkillCastType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_SkillCastType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_SkillCastType), L, null, 4, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "None", E_SkillCastType.None);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NeedTarget", E_SkillCastType.NeedTarget);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Ground", E_SkillCastType.Ground);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_SkillCastType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_SkillCastType(L, (E_SkillCastType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "None"))
+                {
+                    translator.PushE_SkillCastType(L, E_SkillCastType.None);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NeedTarget"))
+                {
+                    translator.PushE_SkillCastType(L, E_SkillCastType.NeedTarget);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Ground"))
+                {
+                    translator.PushE_SkillCastType(L, E_SkillCastType.Ground);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_SkillCastType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_SkillCastType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class MapTransferTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(MapTransferType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(MapTransferType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(MapTransferType), L, null, 4, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WorldTransport", MapTransferType.WorldTransport);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BigMapTransport", MapTransferType.BigMapTransport);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MissionTransport", MapTransferType.MissionTransport);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(MapTransferType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushMapTransferType(L, (MapTransferType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "WorldTransport"))
+                {
+                    translator.PushMapTransferType(L, MapTransferType.WorldTransport);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BigMapTransport"))
+                {
+                    translator.PushMapTransferType(L, MapTransferType.BigMapTransport);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MissionTransport"))
+                {
+                    translator.PushMapTransferType(L, MapTransferType.MissionTransport);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for MapTransferType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for MapTransferType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class DropItemTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(DropItemType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(DropItemType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(DropItemType), L, null, 5, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pattern0", DropItemType.Pattern0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pattern1", DropItemType.Pattern1);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pattern2", DropItemType.Pattern2);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pattern3", DropItemType.Pattern3);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(DropItemType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushDropItemType(L, (DropItemType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Pattern0"))
+                {
+                    translator.PushDropItemType(L, DropItemType.Pattern0);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pattern1"))
+                {
+                    translator.PushDropItemType(L, DropItemType.Pattern1);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pattern2"))
+                {
+                    translator.PushDropItemType(L, DropItemType.Pattern2);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pattern3"))
+                {
+                    translator.PushDropItemType(L, DropItemType.Pattern3);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for DropItemType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for DropItemType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class DailyQuestTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(DailyQuestType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(DailyQuestType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(DailyQuestType), L, null, 34, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BountyMission", DailyQuestType.BountyMission);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "IceCrystal", DailyQuestType.IceCrystal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyFeast", DailyQuestType.FairyFeast);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BlastStove", DailyQuestType.BlastStove);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Kirin", DailyQuestType.Kirin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyLand", DailyQuestType.FairyLand);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GuardSky", DailyQuestType.GuardSky);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Demon", DailyQuestType.Demon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Trial", DailyQuestType.Trial);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AncientBattleGround", DailyQuestType.AncientBattleGround);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "EmperorRelic", DailyQuestType.EmperorRelic);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WyTaiChi", DailyQuestType.WyTaiChi);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyLeague", DailyQuestType.FairyLeague);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HeavenBattle", DailyQuestType.HeavenBattle);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Prayer", DailyQuestType.Prayer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WorldBoss", DailyQuestType.WorldBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DemonJar", DailyQuestType.DemonJar);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyTask", DailyQuestType.FairyTask);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RuneTowerSweep", DailyQuestType.RuneTowerSweep);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RuneTower", DailyQuestType.RuneTower);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TreasureCollectSoul", DailyQuestType.TreasureCollectSoul);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BossHome", DailyQuestType.BossHome);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PersonalBoss", DailyQuestType.PersonalBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ElderGodArea", DailyQuestType.ElderGodArea);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyGrabBoss", DailyQuestType.FairyGrabBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "KillMonster", DailyQuestType.KillMonster);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DungeonAssist", DailyQuestType.DungeonAssist);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GatherSoulDungeon", DailyQuestType.GatherSoulDungeon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CrossServerPk", DailyQuestType.CrossServerPk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AllianceBoss", DailyQuestType.AllianceBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RidingPetActivity", DailyQuestType.RidingPetActivity);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HazyRegion", DailyQuestType.HazyRegion);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkyTower", DailyQuestType.SkyTower);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(DailyQuestType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushDailyQuestType(L, (DailyQuestType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "BountyMission"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.BountyMission);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "IceCrystal"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.IceCrystal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyFeast"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.FairyFeast);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BlastStove"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.BlastStove);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Kirin"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.Kirin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyLand"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.FairyLand);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GuardSky"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.GuardSky);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Demon"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.Demon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Trial"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.Trial);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AncientBattleGround"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.AncientBattleGround);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "EmperorRelic"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.EmperorRelic);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WyTaiChi"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.WyTaiChi);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyLeague"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.FairyLeague);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HeavenBattle"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.HeavenBattle);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Prayer"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.Prayer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WorldBoss"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.WorldBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DemonJar"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.DemonJar);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyTask"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.FairyTask);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RuneTowerSweep"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.RuneTowerSweep);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RuneTower"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.RuneTower);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TreasureCollectSoul"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.TreasureCollectSoul);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BossHome"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.BossHome);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PersonalBoss"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.PersonalBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ElderGodArea"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.ElderGodArea);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyGrabBoss"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.FairyGrabBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "KillMonster"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.KillMonster);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DungeonAssist"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.DungeonAssist);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GatherSoulDungeon"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.GatherSoulDungeon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CrossServerPk"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.CrossServerPk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AllianceBoss"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.AllianceBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RidingPetActivity"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.RidingPetActivity);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HazyRegion"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.HazyRegion);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkyTower"))
+                {
+                    translator.PushDailyQuestType(L, DailyQuestType.SkyTower);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for DailyQuestType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for DailyQuestType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class DungeonCoolDownTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(DungeonCoolDownType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(DungeonCoolDownType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(DungeonCoolDownType), L, null, 11, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LeaveMap", DungeonCoolDownType.LeaveMap);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WaitStart", DungeonCoolDownType.WaitStart);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FightStart", DungeonCoolDownType.FightStart);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FlagTake", DungeonCoolDownType.FlagTake);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NextRound", DungeonCoolDownType.NextRound);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FBAddTime", DungeonCoolDownType.FBAddTime);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ElderGodAreaDeadTime", DungeonCoolDownType.ElderGodAreaDeadTime);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PickUpTime", DungeonCoolDownType.PickUpTime);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WaitPlayer", DungeonCoolDownType.WaitPlayer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PlayerLeave", DungeonCoolDownType.PlayerLeave);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(DungeonCoolDownType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushDungeonCoolDownType(L, (DungeonCoolDownType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "LeaveMap"))
+                {
+                    translator.PushDungeonCoolDownType(L, DungeonCoolDownType.LeaveMap);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WaitStart"))
+                {
+                    translator.PushDungeonCoolDownType(L, DungeonCoolDownType.WaitStart);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FightStart"))
+                {
+                    translator.PushDungeonCoolDownType(L, DungeonCoolDownType.FightStart);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FlagTake"))
+                {
+                    translator.PushDungeonCoolDownType(L, DungeonCoolDownType.FlagTake);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NextRound"))
+                {
+                    translator.PushDungeonCoolDownType(L, DungeonCoolDownType.NextRound);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FBAddTime"))
+                {
+                    translator.PushDungeonCoolDownType(L, DungeonCoolDownType.FBAddTime);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ElderGodAreaDeadTime"))
+                {
+                    translator.PushDungeonCoolDownType(L, DungeonCoolDownType.ElderGodAreaDeadTime);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PickUpTime"))
+                {
+                    translator.PushDungeonCoolDownType(L, DungeonCoolDownType.PickUpTime);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WaitPlayer"))
+                {
+                    translator.PushDungeonCoolDownType(L, DungeonCoolDownType.WaitPlayer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PlayerLeave"))
+                {
+                    translator.PushDungeonCoolDownType(L, DungeonCoolDownType.PlayerLeave);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for DungeonCoolDownType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for DungeonCoolDownType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class RoleEquipTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(RoleEquipType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(RoleEquipType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(RoleEquipType), L, null, 22, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Weapon", RoleEquipType.Weapon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Weapon2", RoleEquipType.Weapon2);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Hat", RoleEquipType.Hat);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Clothes", RoleEquipType.Clothes);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Belt", RoleEquipType.Belt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Trousers", RoleEquipType.Trousers);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Shoes", RoleEquipType.Shoes);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Glove", RoleEquipType.Glove);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Neck", RoleEquipType.Neck);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyCan1", RoleEquipType.FairyCan1);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyCan2", RoleEquipType.FairyCan2);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Jade", RoleEquipType.Jade);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Wing", RoleEquipType.Wing);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Guard", RoleEquipType.Guard);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PeerlessWeapon1", RoleEquipType.PeerlessWeapon1);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PeerlessWeapon2", RoleEquipType.PeerlessWeapon2);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Mount", RoleEquipType.Mount);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FashionWeapon", RoleEquipType.FashionWeapon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FashionClothes", RoleEquipType.FashionClothes);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FashionWeapon2", RoleEquipType.FashionWeapon2);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "retMax", RoleEquipType.retMax);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(RoleEquipType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushRoleEquipType(L, (RoleEquipType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Weapon"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Weapon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Weapon2"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Weapon2);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Hat"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Hat);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Clothes"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Clothes);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Belt"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Belt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Trousers"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Trousers);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Shoes"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Shoes);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Glove"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Glove);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Neck"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Neck);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyCan1"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.FairyCan1);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyCan2"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.FairyCan2);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Jade"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Jade);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Wing"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Wing);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Guard"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Guard);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PeerlessWeapon1"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.PeerlessWeapon1);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PeerlessWeapon2"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.PeerlessWeapon2);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Mount"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.Mount);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FashionWeapon"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.FashionWeapon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FashionClothes"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.FashionClothes);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FashionWeapon2"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.FashionWeapon2);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "retMax"))
+                {
+                    translator.PushRoleEquipType(L, RoleEquipType.retMax);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for RoleEquipType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for RoleEquipType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class PlayerDataTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(PlayerDataType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(PlayerDataType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(PlayerDataType), L, null, 213, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AccountID", PlayerDataType.AccountID);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PlayerID", PlayerDataType.PlayerID);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PlayerName", PlayerDataType.PlayerName);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Sex", PlayerDataType.Sex);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Hair", PlayerDataType.Hair);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HairColor", PlayerDataType.HairColor);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Face", PlayerDataType.Face);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Job", PlayerDataType.Job);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LV", PlayerDataType.LV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TotalExp", PlayerDataType.TotalExp);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Family", PlayerDataType.Family);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Country", PlayerDataType.Country);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TeamHornor", PlayerDataType.TeamHornor);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PKValue", PlayerDataType.PKValue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FamilyHornor", PlayerDataType.FamilyHornor);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FamilyActiveValue", PlayerDataType.FamilyActiveValue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CountryHornor", PlayerDataType.CountryHornor);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Mate", PlayerDataType.Mate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Gold", PlayerDataType.Gold);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GoldPaper", PlayerDataType.GoldPaper);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Silver", PlayerDataType.Silver);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SilverPaper", PlayerDataType.SilverPaper);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FightPoint", PlayerDataType.FightPoint);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HappyPoint", PlayerDataType.HappyPoint);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MapID", PlayerDataType.MapID);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PosX", PlayerDataType.PosX);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PosY", PlayerDataType.PosY);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "State", PlayerDataType.State);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MaxHP", PlayerDataType.MaxHP);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HP", PlayerDataType.HP);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MaxMP", PlayerDataType.MaxMP);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MP", PlayerDataType.MP);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "XP", PlayerDataType.XP);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HPRestoreSetting", PlayerDataType.HPRestoreSetting);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MPRestoreSetting", PlayerDataType.MPRestoreSetting);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExpRate", PlayerDataType.ExpRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FreePoint", PlayerDataType.FreePoint);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FreeSkillPoint", PlayerDataType.FreeSkillPoint);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "STR", PlayerDataType.STR);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PNE", PlayerDataType.PNE);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PHY", PlayerDataType.PHY);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CON", PlayerDataType.CON);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DEF", PlayerDataType.DEF);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MINATK", PlayerDataType.MINATK);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MAXATK", PlayerDataType.MAXATK);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MAtkMin", PlayerDataType.MAtkMin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MAtkMax", PlayerDataType.MAtkMax);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MDef", PlayerDataType.MDef);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HIT", PlayerDataType.HIT);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "POISIONATK", PlayerDataType.POISIONATK);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FIREATK", PlayerDataType.FIREATK);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "REALATK", PlayerDataType.REALATK);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "THUNDERATK", PlayerDataType.THUNDERATK);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WINDATK", PlayerDataType.WINDATK);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "POISIONDEF", PlayerDataType.POISIONDEF);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FIREDEF", PlayerDataType.FIREDEF);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "REALDEF", PlayerDataType.REALDEF);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "THUNDERDEF", PlayerDataType.THUNDERDEF);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WINDDEF", PlayerDataType.WINDDEF);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Miss", PlayerDataType.Miss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SuperHit", PlayerDataType.SuperHit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Buff", PlayerDataType.Buff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Skill", PlayerDataType.Skill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Mark", PlayerDataType.Mark);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SettingH", PlayerDataType.SettingH);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SettingV", PlayerDataType.SettingV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FightPK", PlayerDataType.FightPK);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ActiveValue", PlayerDataType.ActiveValue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PlayerType", PlayerDataType.PlayerType);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NameColor", PlayerDataType.NameColor);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AtkInterval", PlayerDataType.AtkInterval);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Speed", PlayerDataType.Speed);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SuperHitRate", PlayerDataType.SuperHitRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PickupDist", PlayerDataType.PickupDist);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CountryLastWeekHornor", PlayerDataType.CountryLastWeekHornor);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LastWeekOnlineTime", PlayerDataType.LastWeekOnlineTime);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LastWeekFamilyActiveValue", PlayerDataType.LastWeekFamilyActiveValue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FBID", PlayerDataType.FBID);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FamilyLV", PlayerDataType.FamilyLV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RealMapID", PlayerDataType.RealMapID);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GMLevel", PlayerDataType.GMLevel);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TeamID", PlayerDataType.TeamID);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TeamLV", PlayerDataType.TeamLV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FightPower", PlayerDataType.FightPower);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RebornMapID", PlayerDataType.RebornMapID);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RebornPosX", PlayerDataType.RebornPosX);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RebornPosY", PlayerDataType.RebornPosY);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Coin", PlayerDataType.Coin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BillboardLV", PlayerDataType.BillboardLV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Tick", PlayerDataType.Tick);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CurrentPlayerType", PlayerDataType.CurrentPlayerType);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FriendFavor", PlayerDataType.FriendFavor);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BackpackLV", PlayerDataType.BackpackLV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ReincarnationLV", PlayerDataType.ReincarnationLV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BaseSTR", PlayerDataType.BaseSTR);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BasePNE", PlayerDataType.BasePNE);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BasePHY", PlayerDataType.BasePHY);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BaseCON", PlayerDataType.BaseCON);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ReceivedSalary", PlayerDataType.ReceivedSalary);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WarehouseLV", PlayerDataType.WarehouseLV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "EquipShowSwitch", PlayerDataType.EquipShowSwitch);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LuckValue", PlayerDataType.LuckValue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr1", PlayerDataType.ExAttr1);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr2", PlayerDataType.ExAttr2);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr3", PlayerDataType.ExAttr3);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr4", PlayerDataType.ExAttr4);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr5", PlayerDataType.ExAttr5);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Faction", PlayerDataType.Faction);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "InfamyValue", PlayerDataType.InfamyValue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RealmLevel", PlayerDataType.RealmLevel);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "IsFindByLabel", PlayerDataType.IsFindByLabel);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "IsCloseFriendLabel", PlayerDataType.IsCloseFriendLabel);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ChangeCoinPointTotal", PlayerDataType.ChangeCoinPointTotal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "VIPLv", PlayerDataType.VIPLv);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr6", PlayerDataType.ExAttr6);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr7", PlayerDataType.ExAttr7);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr8", PlayerDataType.ExAttr8);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr9", PlayerDataType.ExAttr9);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr10", PlayerDataType.ExAttr10);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ModelMark", PlayerDataType.ModelMark);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PrizeCoin", PlayerDataType.PrizeCoin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr11", PlayerDataType.ExAttr11);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr12", PlayerDataType.ExAttr12);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr13", PlayerDataType.ExAttr13);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExAttr14", PlayerDataType.ExAttr14);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillAtkRate", PlayerDataType.SkillAtkRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LuckyHitRate", PlayerDataType.LuckyHitRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LuckyHitVal", PlayerDataType.LuckyHitVal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GreatHitRate", PlayerDataType.GreatHitRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GreatHitVal", PlayerDataType.GreatHitVal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "KillBackHP", PlayerDataType.KillBackHP);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "KillBackMP", PlayerDataType.KillBackMP);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DamageReduceRate", PlayerDataType.DamageReduceRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DamageBackRate", PlayerDataType.DamageBackRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GoldFoundRate", PlayerDataType.GoldFoundRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "IgnoreDefRate", PlayerDataType.IgnoreDefRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BattleValEx1", PlayerDataType.BattleValEx1);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BattleValEx2", PlayerDataType.BattleValEx2);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BattleValEx3", PlayerDataType.BattleValEx3);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BattleValEx4", PlayerDataType.BattleValEx4);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BattleValEx5", PlayerDataType.BattleValEx5);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HPRestorePer", PlayerDataType.HPRestorePer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LVEx", PlayerDataType.LVEx);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LV2", PlayerDataType.LV2);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExpPoint", PlayerDataType.ExpPoint);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OperateInfo", PlayerDataType.OperateInfo);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SuperHitReduce", PlayerDataType.SuperHitReduce);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LuckyHitRateReduce", PlayerDataType.LuckyHitRateReduce);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillAtkRateReduce", PlayerDataType.SkillAtkRateReduce);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DamagePVP", PlayerDataType.DamagePVP);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SpeedValue", PlayerDataType.SpeedValue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DamagePVE", PlayerDataType.DamagePVE);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetDamPer", PlayerDataType.PetDamPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "IgnoreDefRateReduce", PlayerDataType.IgnoreDefRateReduce);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DamChanceDef", PlayerDataType.DamChanceDef);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BleedDamage", PlayerDataType.BleedDamage);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FaintRate", PlayerDataType.FaintRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FaintDefRate", PlayerDataType.FaintDefRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FinalHurt", PlayerDataType.FinalHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FinalHurtReduce", PlayerDataType.FinalHurtReduce);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DamagePerPVP", PlayerDataType.DamagePerPVP);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DamagePerPVPReduce", PlayerDataType.DamagePerPVPReduce);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ComboDamRate", PlayerDataType.ComboDamRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ComboDamPer", PlayerDataType.ComboDamPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MaxProDef", PlayerDataType.MaxProDef);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FamilyContribution", PlayerDataType.FamilyContribution);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FamilyStoreScore", PlayerDataType.FamilyStoreScore);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RuneSplinters", PlayerDataType.RuneSplinters);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Rune", PlayerDataType.Rune);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RealmPoint", PlayerDataType.RealmPoint);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MagicEssence", PlayerDataType.MagicEssence);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "UnionLiven", PlayerDataType.UnionLiven);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FBHelpPoint", PlayerDataType.FBHelpPoint);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PlayerPKState", PlayerDataType.PlayerPKState);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "IsAttackBossState", PlayerDataType.IsAttackBossState);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BasicsMinimum", PlayerDataType.BasicsMinimum);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BasicsMaxAttack", PlayerDataType.BasicsMaxAttack);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BasicsLife", PlayerDataType.BasicsLife);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BasicsDefense", PlayerDataType.BasicsDefense);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BasicsScoreAHit", PlayerDataType.BasicsScoreAHit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BasicsDodge", PlayerDataType.BasicsDodge);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OnlyFinalHurt", PlayerDataType.OnlyFinalHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_ForbidenTalk", PlayerDataType.CDBPlayerRefresh_ForbidenTalk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_FuncDef", PlayerDataType.CDBPlayerRefresh_FuncDef);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_TreasureScore", PlayerDataType.CDBPlayerRefresh_TreasureScore);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_Danjing", PlayerDataType.CDBPlayerRefresh_Danjing);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_NPCHurtAddPer", PlayerDataType.CDBPlayerRefresh_NPCHurtAddPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FunalHurtPer", PlayerDataType.FunalHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_TalentPoint", PlayerDataType.CDBPlayerRefresh_TalentPoint);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_GodWeaponLV_1", PlayerDataType.CDBPlayerRefresh_GodWeaponLV_1);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_GodWeaponLV_2", PlayerDataType.CDBPlayerRefresh_GodWeaponLV_2);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_GodWeaponLV_3", PlayerDataType.CDBPlayerRefresh_GodWeaponLV_3);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_GodWeaponLV_4", PlayerDataType.CDBPlayerRefresh_GodWeaponLV_4);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_SoulDust", PlayerDataType.CDBPlayerRefresh_SoulDust);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_SoulSplinters", PlayerDataType.CDBPlayerRefresh_SoulSplinters);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_SoulCore", PlayerDataType.CDBPlayerRefresh_SoulCore);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_Honor", PlayerDataType.CDBPlayerRefresh_Honor);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_ZhuxianRate", PlayerDataType.CDBPlayerRefresh_ZhuxianRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_Mater", PlayerDataType.CDBPlayerRefresh_Mater);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_Wood", PlayerDataType.CDBPlayerRefresh_Wood);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_Water", PlayerDataType.CDBPlayerRefresh_Water);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_Fire", PlayerDataType.CDBPlayerRefresh_Fire);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_Earth", PlayerDataType.CDBPlayerRefresh_Earth);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_NormalHurt", PlayerDataType.CDBPlayerRefresh_NormalHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_NormalHurtPer", PlayerDataType.CDBPlayerRefresh_NormalHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_FabaoHurt", PlayerDataType.CDBPlayerRefresh_FabaoHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_FabaoHurtPer", PlayerDataType.CDBPlayerRefresh_FabaoHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_SuperHitRateReduce", PlayerDataType.CDBPlayerRefresh_SuperHitRateReduce);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_LuckyHitReduce", PlayerDataType.CDBPlayerRefresh_LuckyHitReduce);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_FinalHurtReducePer", PlayerDataType.CDBPlayerRefresh_FinalHurtReducePer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_YinjiTime", PlayerDataType.CDBPlayerRefresh_YinjiTime);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CDBPlayerRefresh_YinjiCount", PlayerDataType.CDBPlayerRefresh_YinjiCount);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(PlayerDataType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushPlayerDataType(L, (PlayerDataType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "AccountID"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.AccountID);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PlayerID"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.PlayerID);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PlayerName"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.PlayerName);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Sex"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Sex);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Hair"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Hair);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HairColor"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.HairColor);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Face"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Face);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Job"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Job);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LV"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.LV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TotalExp"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.TotalExp);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Family"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Family);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Country"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Country);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TeamHornor"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.TeamHornor);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PKValue"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.PKValue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FamilyHornor"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FamilyHornor);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FamilyActiveValue"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FamilyActiveValue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CountryHornor"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CountryHornor);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Mate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Mate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Gold"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Gold);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GoldPaper"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.GoldPaper);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Silver"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Silver);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SilverPaper"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.SilverPaper);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FightPoint"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FightPoint);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HappyPoint"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.HappyPoint);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MapID"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.MapID);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PosX"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.PosX);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PosY"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.PosY);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "State"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.State);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MaxHP"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.MaxHP);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HP"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.HP);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MaxMP"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.MaxMP);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MP"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.MP);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "XP"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.XP);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HPRestoreSetting"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.HPRestoreSetting);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MPRestoreSetting"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.MPRestoreSetting);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExpRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExpRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FreePoint"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FreePoint);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FreeSkillPoint"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FreeSkillPoint);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "STR"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.STR);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PNE"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.PNE);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PHY"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.PHY);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CON"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CON);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DEF"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.DEF);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MINATK"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.MINATK);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MAXATK"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.MAXATK);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MAtkMin"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.MAtkMin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MAtkMax"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.MAtkMax);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MDef"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.MDef);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HIT"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.HIT);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "POISIONATK"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.POISIONATK);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FIREATK"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FIREATK);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "REALATK"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.REALATK);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "THUNDERATK"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.THUNDERATK);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WINDATK"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.WINDATK);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "POISIONDEF"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.POISIONDEF);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FIREDEF"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FIREDEF);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "REALDEF"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.REALDEF);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "THUNDERDEF"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.THUNDERDEF);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WINDDEF"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.WINDDEF);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Miss"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Miss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SuperHit"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.SuperHit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Buff"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Buff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Skill"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Skill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Mark"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Mark);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SettingH"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.SettingH);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SettingV"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.SettingV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FightPK"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FightPK);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ActiveValue"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ActiveValue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PlayerType"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.PlayerType);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NameColor"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.NameColor);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AtkInterval"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.AtkInterval);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Speed"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Speed);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SuperHitRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.SuperHitRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PickupDist"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.PickupDist);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CountryLastWeekHornor"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CountryLastWeekHornor);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LastWeekOnlineTime"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.LastWeekOnlineTime);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LastWeekFamilyActiveValue"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.LastWeekFamilyActiveValue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FBID"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FBID);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FamilyLV"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FamilyLV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RealMapID"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.RealMapID);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GMLevel"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.GMLevel);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TeamID"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.TeamID);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TeamLV"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.TeamLV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FightPower"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FightPower);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RebornMapID"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.RebornMapID);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RebornPosX"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.RebornPosX);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RebornPosY"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.RebornPosY);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Coin"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Coin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BillboardLV"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BillboardLV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Tick"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Tick);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CurrentPlayerType"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CurrentPlayerType);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FriendFavor"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FriendFavor);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BackpackLV"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BackpackLV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ReincarnationLV"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ReincarnationLV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BaseSTR"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BaseSTR);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BasePNE"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BasePNE);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BasePHY"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BasePHY);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BaseCON"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BaseCON);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ReceivedSalary"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ReceivedSalary);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WarehouseLV"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.WarehouseLV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "EquipShowSwitch"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.EquipShowSwitch);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LuckValue"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.LuckValue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr1"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr1);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr2"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr2);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr3"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr3);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr4"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr4);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr5"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr5);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Faction"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Faction);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "InfamyValue"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.InfamyValue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RealmLevel"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.RealmLevel);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "IsFindByLabel"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.IsFindByLabel);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "IsCloseFriendLabel"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.IsCloseFriendLabel);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ChangeCoinPointTotal"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ChangeCoinPointTotal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "VIPLv"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.VIPLv);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr6"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr6);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr7"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr7);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr8"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr8);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr9"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr9);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr10"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr10);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ModelMark"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ModelMark);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PrizeCoin"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.PrizeCoin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr11"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr11);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr12"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr12);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr13"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr13);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExAttr14"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExAttr14);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillAtkRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.SkillAtkRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LuckyHitRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.LuckyHitRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LuckyHitVal"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.LuckyHitVal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GreatHitRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.GreatHitRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GreatHitVal"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.GreatHitVal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "KillBackHP"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.KillBackHP);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "KillBackMP"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.KillBackMP);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DamageReduceRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.DamageReduceRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DamageBackRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.DamageBackRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GoldFoundRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.GoldFoundRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "IgnoreDefRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.IgnoreDefRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BattleValEx1"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BattleValEx1);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BattleValEx2"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BattleValEx2);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BattleValEx3"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BattleValEx3);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BattleValEx4"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BattleValEx4);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BattleValEx5"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BattleValEx5);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HPRestorePer"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.HPRestorePer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LVEx"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.LVEx);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LV2"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.LV2);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExpPoint"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ExpPoint);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OperateInfo"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.OperateInfo);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SuperHitReduce"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.SuperHitReduce);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LuckyHitRateReduce"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.LuckyHitRateReduce);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillAtkRateReduce"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.SkillAtkRateReduce);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DamagePVP"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.DamagePVP);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SpeedValue"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.SpeedValue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DamagePVE"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.DamagePVE);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetDamPer"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.PetDamPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "IgnoreDefRateReduce"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.IgnoreDefRateReduce);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DamChanceDef"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.DamChanceDef);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BleedDamage"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BleedDamage);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FaintRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FaintRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FaintDefRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FaintDefRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FinalHurt"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FinalHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FinalHurtReduce"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FinalHurtReduce);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DamagePerPVP"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.DamagePerPVP);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DamagePerPVPReduce"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.DamagePerPVPReduce);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ComboDamRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ComboDamRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ComboDamPer"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.ComboDamPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MaxProDef"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.MaxProDef);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FamilyContribution"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FamilyContribution);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FamilyStoreScore"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FamilyStoreScore);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RuneSplinters"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.RuneSplinters);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Rune"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.Rune);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RealmPoint"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.RealmPoint);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MagicEssence"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.MagicEssence);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "UnionLiven"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.UnionLiven);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FBHelpPoint"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FBHelpPoint);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PlayerPKState"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.PlayerPKState);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "IsAttackBossState"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.IsAttackBossState);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BasicsMinimum"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BasicsMinimum);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BasicsMaxAttack"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BasicsMaxAttack);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BasicsLife"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BasicsLife);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BasicsDefense"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BasicsDefense);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BasicsScoreAHit"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BasicsScoreAHit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BasicsDodge"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.BasicsDodge);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OnlyFinalHurt"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.OnlyFinalHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_ForbidenTalk"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_ForbidenTalk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_FuncDef"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_FuncDef);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_TreasureScore"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_TreasureScore);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_Danjing"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_Danjing);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_NPCHurtAddPer"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_NPCHurtAddPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FunalHurtPer"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.FunalHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_TalentPoint"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_TalentPoint);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_GodWeaponLV_1"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_GodWeaponLV_1);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_GodWeaponLV_2"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_GodWeaponLV_2);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_GodWeaponLV_3"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_GodWeaponLV_3);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_GodWeaponLV_4"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_GodWeaponLV_4);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_SoulDust"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_SoulDust);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_SoulSplinters"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_SoulSplinters);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_SoulCore"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_SoulCore);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_Honor"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_Honor);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_ZhuxianRate"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_ZhuxianRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_Mater"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_Mater);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_Wood"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_Wood);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_Water"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_Water);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_Fire"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_Fire);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_Earth"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_Earth);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_NormalHurt"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_NormalHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_NormalHurtPer"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_NormalHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_FabaoHurt"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_FabaoHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_FabaoHurtPer"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_FabaoHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_SuperHitRateReduce"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_SuperHitRateReduce);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_LuckyHitReduce"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_LuckyHitReduce);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_FinalHurtReducePer"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_FinalHurtReducePer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_YinjiTime"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_YinjiTime);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CDBPlayerRefresh_YinjiCount"))
+                {
+                    translator.PushPlayerDataType(L, PlayerDataType.CDBPlayerRefresh_YinjiCount);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for PlayerDataType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for PlayerDataType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class PackTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(PackType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(PackType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(PackType), L, null, 14, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Deleted", PackType.Deleted);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip", PackType.Equip);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Item", PackType.Item);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Warehouse", PackType.Warehouse);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Horse", PackType.Horse);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AnyWhere", PackType.AnyWhere);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "InterimPack", PackType.InterimPack);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Treasure", PackType.Treasure);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetPack", PackType.PetPack);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DogzItem", PackType.DogzItem);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DogzEquip", PackType.DogzEquip);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GatherSoul", PackType.GatherSoul);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RunePack", PackType.RunePack);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(PackType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushPackType(L, (PackType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Deleted"))
+                {
+                    translator.PushPackType(L, PackType.Deleted);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip"))
+                {
+                    translator.PushPackType(L, PackType.Equip);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Item"))
+                {
+                    translator.PushPackType(L, PackType.Item);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Warehouse"))
+                {
+                    translator.PushPackType(L, PackType.Warehouse);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Horse"))
+                {
+                    translator.PushPackType(L, PackType.Horse);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AnyWhere"))
+                {
+                    translator.PushPackType(L, PackType.AnyWhere);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "InterimPack"))
+                {
+                    translator.PushPackType(L, PackType.InterimPack);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Treasure"))
+                {
+                    translator.PushPackType(L, PackType.Treasure);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetPack"))
+                {
+                    translator.PushPackType(L, PackType.PetPack);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DogzItem"))
+                {
+                    translator.PushPackType(L, PackType.DogzItem);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DogzEquip"))
+                {
+                    translator.PushPackType(L, PackType.DogzEquip);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GatherSoul"))
+                {
+                    translator.PushPackType(L, PackType.GatherSoul);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RunePack"))
+                {
+                    translator.PushPackType(L, PackType.RunePack);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for PackType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for PackType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class ItemTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(ItemType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(ItemType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(ItemType), L, null, 25, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Copper", ItemType.Copper);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Drugs", ItemType.Drugs);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Buff", ItemType.Buff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Gemstone", ItemType.Gemstone);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ComposeSuitStone", ItemType.ComposeSuitStone);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WingsMat", ItemType.WingsMat);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DropCopper", ItemType.DropCopper);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "VipTools", ItemType.VipTools);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Box", ItemType.Box);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_Weapon", ItemType.Equip_Weapon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_Weapon2", ItemType.Equip_Weapon2);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_Hat", ItemType.Equip_Hat);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_Clothes", ItemType.Equip_Clothes);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_Belt", ItemType.Equip_Belt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_Trousers", ItemType.Equip_Trousers);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_Shoes", ItemType.Equip_Shoes);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_Glove", ItemType.Equip_Glove);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_Neck", ItemType.Equip_Neck);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_FairyCan1", ItemType.Equip_FairyCan1);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_FairyCan2", ItemType.Equip_FairyCan2);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_Jade", ItemType.Equip_Jade);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip_Wing", ItemType.Equip_Wing);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Guard_1", ItemType.Guard_1);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Guard_2", ItemType.Guard_2);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(ItemType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushItemType(L, (ItemType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Copper"))
+                {
+                    translator.PushItemType(L, ItemType.Copper);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Drugs"))
+                {
+                    translator.PushItemType(L, ItemType.Drugs);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Buff"))
+                {
+                    translator.PushItemType(L, ItemType.Buff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Gemstone"))
+                {
+                    translator.PushItemType(L, ItemType.Gemstone);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ComposeSuitStone"))
+                {
+                    translator.PushItemType(L, ItemType.ComposeSuitStone);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WingsMat"))
+                {
+                    translator.PushItemType(L, ItemType.WingsMat);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DropCopper"))
+                {
+                    translator.PushItemType(L, ItemType.DropCopper);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "VipTools"))
+                {
+                    translator.PushItemType(L, ItemType.VipTools);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Box"))
+                {
+                    translator.PushItemType(L, ItemType.Box);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_Weapon"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_Weapon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_Weapon2"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_Weapon2);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_Hat"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_Hat);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_Clothes"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_Clothes);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_Belt"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_Belt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_Trousers"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_Trousers);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_Shoes"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_Shoes);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_Glove"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_Glove);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_Neck"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_Neck);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_FairyCan1"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_FairyCan1);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_FairyCan2"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_FairyCan2);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_Jade"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_Jade);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip_Wing"))
+                {
+                    translator.PushItemType(L, ItemType.Equip_Wing);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Guard_1"))
+                {
+                    translator.PushItemType(L, ItemType.Guard_1);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Guard_2"))
+                {
+                    translator.PushItemType(L, ItemType.Guard_2);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for ItemType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for ItemType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class MakeTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(MakeType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(MakeType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(MakeType), L, null, 10, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OneKeySell", MakeType.OneKeySell);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "EquipStarUpgrade", MakeType.EquipStarUpgrade);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ItemCompound", MakeType.ItemCompound);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DrugRefine", MakeType.DrugRefine);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DrugRecycle", MakeType.DrugRecycle);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DogzEquipPlus", MakeType.DogzEquipPlus);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RuneCompound", MakeType.RuneCompound);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GatherSoulCompound", MakeType.GatherSoulCompound);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GatherSoulDecompose", MakeType.GatherSoulDecompose);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(MakeType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushMakeType(L, (MakeType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "OneKeySell"))
+                {
+                    translator.PushMakeType(L, MakeType.OneKeySell);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "EquipStarUpgrade"))
+                {
+                    translator.PushMakeType(L, MakeType.EquipStarUpgrade);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ItemCompound"))
+                {
+                    translator.PushMakeType(L, MakeType.ItemCompound);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DrugRefine"))
+                {
+                    translator.PushMakeType(L, MakeType.DrugRefine);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DrugRecycle"))
+                {
+                    translator.PushMakeType(L, MakeType.DrugRecycle);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DogzEquipPlus"))
+                {
+                    translator.PushMakeType(L, MakeType.DogzEquipPlus);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RuneCompound"))
+                {
+                    translator.PushMakeType(L, MakeType.RuneCompound);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GatherSoulCompound"))
+                {
+                    translator.PushMakeType(L, MakeType.GatherSoulCompound);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GatherSoulDecompose"))
+                {
+                    translator.PushMakeType(L, MakeType.GatherSoulDecompose);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for MakeType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for MakeType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class TitleTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(TitleType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(TitleType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(TitleType), L, null, 6, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "None", TitleType.None);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Get", TitleType.Get);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Activity", TitleType.Activity);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Vip", TitleType.Vip);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Achivement", TitleType.Achivement);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(TitleType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushTitleType(L, (TitleType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "None"))
+                {
+                    translator.PushTitleType(L, TitleType.None);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Get"))
+                {
+                    translator.PushTitleType(L, TitleType.Get);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Activity"))
+                {
+                    translator.PushTitleType(L, TitleType.Activity);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Vip"))
+                {
+                    translator.PushTitleType(L, TitleType.Vip);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Achivement"))
+                {
+                    translator.PushTitleType(L, TitleType.Achivement);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for TitleType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for TitleType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class FuncOpenEnumWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(FuncOpenEnum), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(FuncOpenEnum), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(FuncOpenEnum), L, null, 59, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Strength", FuncOpenEnum.Strength);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Gem", FuncOpenEnum.Gem);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Wing", FuncOpenEnum.Wing);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pet", FuncOpenEnum.Pet);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Treasure", FuncOpenEnum.Treasure);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Mounts", FuncOpenEnum.Mounts);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Rune", FuncOpenEnum.Rune);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Realm", FuncOpenEnum.Realm);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Fairy", FuncOpenEnum.Fairy);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyTask", FuncOpenEnum.FairyTask);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GodWeapon", FuncOpenEnum.GodWeapon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SelfBoss", FuncOpenEnum.SelfBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Title", FuncOpenEnum.Title);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Talent", FuncOpenEnum.Talent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Suit", FuncOpenEnum.Suit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExpPray", FuncOpenEnum.ExpPray);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CoinPray", FuncOpenEnum.CoinPray);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WorldLv", FuncOpenEnum.WorldLv);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Rank", FuncOpenEnum.Rank);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Friend", FuncOpenEnum.Friend);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TouchSky", FuncOpenEnum.TouchSky);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Compose", FuncOpenEnum.Compose);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HuntTreasure", FuncOpenEnum.HuntTreasure);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Market", FuncOpenEnum.Market);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DayDaily", FuncOpenEnum.DayDaily);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Store", FuncOpenEnum.Store);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RuneTower", FuncOpenEnum.RuneTower);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SignIn", FuncOpenEnum.SignIn);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Potential", FuncOpenEnum.Potential);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "IceCrystal", FuncOpenEnum.IceCrystal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyFest", FuncOpenEnum.FairyFest);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Kylin", FuncOpenEnum.Kylin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyLand", FuncOpenEnum.FairyLand);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BlastFurnace", FuncOpenEnum.BlastFurnace);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Munekado", FuncOpenEnum.Munekado);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GuardSky", FuncOpenEnum.GuardSky);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WingRefine", FuncOpenEnum.WingRefine);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "EquipRefine", FuncOpenEnum.EquipRefine);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ElderGods", FuncOpenEnum.ElderGods);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "EquipCompose", FuncOpenEnum.EquipCompose);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Guard", FuncOpenEnum.Guard);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillTreasure", FuncOpenEnum.SkillTreasure);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WingCompose", FuncOpenEnum.WingCompose);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Demon", FuncOpenEnum.Demon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HappyFindTreasure", FuncOpenEnum.HappyFindTreasure);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FightPromote", FuncOpenEnum.FightPromote);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AncientBattleGround", FuncOpenEnum.AncientBattleGround);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Chat", FuncOpenEnum.Chat);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyLeague", FuncOpenEnum.FairyLeague);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Recharge", FuncOpenEnum.Recharge);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenServerRedEnvelope", FuncOpenEnum.OpenServerRedEnvelope);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "EquipDecompose", FuncOpenEnum.EquipDecompose);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TreasureFindHost", FuncOpenEnum.TreasureFindHost);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Dogz", FuncOpenEnum.Dogz);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ReikiRoot", FuncOpenEnum.ReikiRoot);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CrossServer", FuncOpenEnum.CrossServer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CrossServerBoss", FuncOpenEnum.CrossServerBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HazyRegion", FuncOpenEnum.HazyRegion);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(FuncOpenEnum), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushFuncOpenEnum(L, (FuncOpenEnum)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Strength"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Strength);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Gem"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Gem);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Wing"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Wing);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pet"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Pet);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Treasure"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Treasure);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Mounts"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Mounts);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Rune"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Rune);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Realm"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Realm);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Fairy"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Fairy);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyTask"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.FairyTask);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GodWeapon"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.GodWeapon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SelfBoss"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.SelfBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Title"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Title);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Talent"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Talent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Suit"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Suit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExpPray"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.ExpPray);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CoinPray"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.CoinPray);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WorldLv"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.WorldLv);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Rank"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Rank);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Friend"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Friend);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TouchSky"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.TouchSky);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Compose"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Compose);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HuntTreasure"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.HuntTreasure);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Market"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Market);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DayDaily"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.DayDaily);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Store"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Store);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RuneTower"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.RuneTower);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SignIn"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.SignIn);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Potential"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Potential);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "IceCrystal"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.IceCrystal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyFest"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.FairyFest);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Kylin"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Kylin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyLand"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.FairyLand);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BlastFurnace"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.BlastFurnace);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Munekado"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Munekado);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GuardSky"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.GuardSky);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WingRefine"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.WingRefine);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "EquipRefine"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.EquipRefine);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ElderGods"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.ElderGods);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "EquipCompose"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.EquipCompose);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Guard"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Guard);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillTreasure"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.SkillTreasure);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WingCompose"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.WingCompose);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Demon"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Demon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HappyFindTreasure"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.HappyFindTreasure);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FightPromote"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.FightPromote);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AncientBattleGround"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.AncientBattleGround);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Chat"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Chat);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyLeague"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.FairyLeague);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Recharge"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Recharge);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OpenServerRedEnvelope"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.OpenServerRedEnvelope);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "EquipDecompose"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.EquipDecompose);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TreasureFindHost"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.TreasureFindHost);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Dogz"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.Dogz);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ReikiRoot"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.ReikiRoot);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CrossServer"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.CrossServer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CrossServerBoss"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.CrossServerBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HazyRegion"))
+                {
+                    translator.PushFuncOpenEnum(L, FuncOpenEnum.HazyRegion);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for FuncOpenEnum!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for FuncOpenEnum! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class PropertyTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(PropertyType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(PropertyType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(PropertyType), L, null, 126, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LV", PropertyType.LV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "POWER", PropertyType.POWER);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AGILITY", PropertyType.AGILITY);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PHYSIQUE", PropertyType.PHYSIQUE);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MENTALITY", PropertyType.MENTALITY);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HP", PropertyType.HP);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ATK", PropertyType.ATK);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DEF", PropertyType.DEF);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HIT", PropertyType.HIT);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MISS", PropertyType.MISS);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ATKSPEED", PropertyType.ATKSPEED);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CritChance", PropertyType.CritChance);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CritHurt", PropertyType.CritHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CritResis", PropertyType.CritResis);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HeartHit", PropertyType.HeartHit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HeartHurt", PropertyType.HeartHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HeartResis", PropertyType.HeartResis);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillHurt", PropertyType.SkillHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PVPAddHurt", PropertyType.PVPAddHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PVPReduceHurt", PropertyType.PVPReduceHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LifeReply", PropertyType.LifeReply);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HurtReflect", PropertyType.HurtReflect);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MoveSpeed", PropertyType.MoveSpeed);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetHurt", PropertyType.PetHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetAddHurt", PropertyType.PetAddHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RealHurt", PropertyType.RealHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RealResis", PropertyType.RealResis);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DefyDef", PropertyType.DefyDef);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DefyDefResis", PropertyType.DefyDefResis);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DefChance", PropertyType.DefChance);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BloodHurt", PropertyType.BloodHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AktReplyBlood", PropertyType.AktReplyBlood);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Stun", PropertyType.Stun);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CtrlResis", PropertyType.CtrlResis);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AddFinalHurt", PropertyType.AddFinalHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ReduceFinalHurt", PropertyType.ReduceFinalHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PVPAddHurtPer", PropertyType.PVPAddHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PVPReduceHurtPer", PropertyType.PVPReduceHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DleHitChance", PropertyType.DleHitChance);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DleHurt", PropertyType.DleHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BasicAtkPercent", PropertyType.BasicAtkPercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BasicHpPercent", PropertyType.BasicHpPercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BasicDefPercent", PropertyType.BasicDefPercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HitPercent", PropertyType.HitPercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DodgePercent", PropertyType.DodgePercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "KillMonsExpPercent", PropertyType.KillMonsExpPercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HorcruxBasicAttrPercent", PropertyType.HorcruxBasicAttrPercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ReduceSkillHurtPercent", PropertyType.ReduceSkillHurtPercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HpPercent", PropertyType.HpPercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AtkPercent", PropertyType.AtkPercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "EveryLvAddAtk", PropertyType.EveryLvAddAtk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "EveryLvAddHp", PropertyType.EveryLvAddHp);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AddEquipDropPrecent", PropertyType.AddEquipDropPrecent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AddCoinsPrecent", PropertyType.AddCoinsPrecent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AddRealHurtPer", PropertyType.AddRealHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ReduceRealHurtPer", PropertyType.ReduceRealHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ArmorMaxHPPer", PropertyType.ArmorMaxHPPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WeaponAtkPer", PropertyType.WeaponAtkPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ArmorDefPer", PropertyType.ArmorDefPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MinAtk", PropertyType.MinAtk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MaxAtk", PropertyType.MaxAtk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DefencePercent", PropertyType.DefencePercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CritHurtPercent", PropertyType.CritHurtPercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MoveSpeedPercent", PropertyType.MoveSpeedPercent);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MaxProDef", PropertyType.MaxProDef);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ProDefHPPer", PropertyType.ProDefHPPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ProDefAbsorb", PropertyType.ProDefAbsorb);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BaseHitPer", PropertyType.BaseHitPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BaseMissPer", PropertyType.BaseMissPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetMinAtk", PropertyType.PetMinAtk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetMaxAtk", PropertyType.PetMaxAtk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OnlyFinalHurt", PropertyType.OnlyFinalHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PVPAtkBackHP", PropertyType.PVPAtkBackHP);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ChanceExpRate", PropertyType.ChanceExpRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HorseAtkPer", PropertyType.HorseAtkPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "StoneBasePer", PropertyType.StoneBasePer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RealmBasePer", PropertyType.RealmBasePer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetSkillAtkRate", PropertyType.PetSkillAtkRate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WingHPPer", PropertyType.WingHPPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SuiteBasePer", PropertyType.SuiteBasePer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PlusBaseAtkPer", PropertyType.PlusBaseAtkPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcHurtAddPer", PropertyType.NpcHurtAddPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JobAHurtAddPer", PropertyType.JobAHurtAddPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JobBHurtAddPer", PropertyType.JobBHurtAddPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JobCHurtAddPer", PropertyType.JobCHurtAddPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JobAAtkReducePer", PropertyType.JobAAtkReducePer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JobBAtkReducePer", PropertyType.JobBAtkReducePer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JobCAtkReducePer", PropertyType.JobCAtkReducePer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ZXCloakAttrPer", PropertyType.ZXCloakAttrPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ZXMaskAttrPer", PropertyType.ZXMaskAttrPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ZXGloveAttrPer", PropertyType.ZXGloveAttrPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ZXRuyiAttrPer", PropertyType.ZXRuyiAttrPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ZXPendantAttrPer", PropertyType.ZXPendantAttrPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ZXRingAttrPer", PropertyType.ZXRingAttrPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillAddPerA", PropertyType.SkillAddPerA);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillAddPerB", PropertyType.SkillAddPerB);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillAddPerC", PropertyType.SkillAddPerC);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillAddPerD", PropertyType.SkillAddPerD);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillAddPerE", PropertyType.SkillAddPerE);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillAddPerF", PropertyType.SkillAddPerF);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillAddPerG", PropertyType.SkillAddPerG);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillReducePerA", PropertyType.SkillReducePerA);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillReducePerB", PropertyType.SkillReducePerB);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillReducePerC", PropertyType.SkillReducePerC);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillReducePerD", PropertyType.SkillReducePerD);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillReducePerE", PropertyType.SkillReducePerE);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillReducePerF", PropertyType.SkillReducePerF);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillReducePerG", PropertyType.SkillReducePerG);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Luck", PropertyType.Luck);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LuckPer", PropertyType.LuckPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AddNormalHurt", PropertyType.AddNormalHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AddNormalHurtPer", PropertyType.AddNormalHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AddSkillHurt", PropertyType.AddSkillHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AddSkillHurtPer", PropertyType.AddSkillHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ReduceCrit", PropertyType.ReduceCrit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AddHeartHurtPer", PropertyType.AddHeartHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ReduceHeartHurtPer", PropertyType.ReduceHeartHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AddPVEHurt", PropertyType.AddPVEHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AddFinalHurtPer", PropertyType.AddFinalHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ReduceFinalHurtPer", PropertyType.ReduceFinalHurtPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Mater", PropertyType.Mater);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Wood", PropertyType.Wood);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Water", PropertyType.Water);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Fire", PropertyType.Fire);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Earth", PropertyType.Earth);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(PropertyType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushPropertyType(L, (PropertyType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "LV"))
+                {
+                    translator.PushPropertyType(L, PropertyType.LV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "POWER"))
+                {
+                    translator.PushPropertyType(L, PropertyType.POWER);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AGILITY"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AGILITY);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PHYSIQUE"))
+                {
+                    translator.PushPropertyType(L, PropertyType.PHYSIQUE);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MENTALITY"))
+                {
+                    translator.PushPropertyType(L, PropertyType.MENTALITY);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HP"))
+                {
+                    translator.PushPropertyType(L, PropertyType.HP);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ATK"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ATK);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DEF"))
+                {
+                    translator.PushPropertyType(L, PropertyType.DEF);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HIT"))
+                {
+                    translator.PushPropertyType(L, PropertyType.HIT);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MISS"))
+                {
+                    translator.PushPropertyType(L, PropertyType.MISS);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ATKSPEED"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ATKSPEED);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CritChance"))
+                {
+                    translator.PushPropertyType(L, PropertyType.CritChance);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CritHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.CritHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CritResis"))
+                {
+                    translator.PushPropertyType(L, PropertyType.CritResis);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HeartHit"))
+                {
+                    translator.PushPropertyType(L, PropertyType.HeartHit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HeartHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.HeartHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HeartResis"))
+                {
+                    translator.PushPropertyType(L, PropertyType.HeartResis);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PVPAddHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.PVPAddHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PVPReduceHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.PVPReduceHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LifeReply"))
+                {
+                    translator.PushPropertyType(L, PropertyType.LifeReply);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HurtReflect"))
+                {
+                    translator.PushPropertyType(L, PropertyType.HurtReflect);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MoveSpeed"))
+                {
+                    translator.PushPropertyType(L, PropertyType.MoveSpeed);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.PetHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetAddHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.PetAddHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RealHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.RealHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RealResis"))
+                {
+                    translator.PushPropertyType(L, PropertyType.RealResis);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DefyDef"))
+                {
+                    translator.PushPropertyType(L, PropertyType.DefyDef);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DefyDefResis"))
+                {
+                    translator.PushPropertyType(L, PropertyType.DefyDefResis);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DefChance"))
+                {
+                    translator.PushPropertyType(L, PropertyType.DefChance);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BloodHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.BloodHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AktReplyBlood"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AktReplyBlood);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Stun"))
+                {
+                    translator.PushPropertyType(L, PropertyType.Stun);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CtrlResis"))
+                {
+                    translator.PushPropertyType(L, PropertyType.CtrlResis);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AddFinalHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AddFinalHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ReduceFinalHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ReduceFinalHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PVPAddHurtPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.PVPAddHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PVPReduceHurtPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.PVPReduceHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DleHitChance"))
+                {
+                    translator.PushPropertyType(L, PropertyType.DleHitChance);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DleHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.DleHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BasicAtkPercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.BasicAtkPercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BasicHpPercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.BasicHpPercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BasicDefPercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.BasicDefPercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HitPercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.HitPercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DodgePercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.DodgePercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "KillMonsExpPercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.KillMonsExpPercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HorcruxBasicAttrPercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.HorcruxBasicAttrPercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ReduceSkillHurtPercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ReduceSkillHurtPercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HpPercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.HpPercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AtkPercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AtkPercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "EveryLvAddAtk"))
+                {
+                    translator.PushPropertyType(L, PropertyType.EveryLvAddAtk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "EveryLvAddHp"))
+                {
+                    translator.PushPropertyType(L, PropertyType.EveryLvAddHp);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AddEquipDropPrecent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AddEquipDropPrecent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AddCoinsPrecent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AddCoinsPrecent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AddRealHurtPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AddRealHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ReduceRealHurtPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ReduceRealHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ArmorMaxHPPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ArmorMaxHPPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WeaponAtkPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.WeaponAtkPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ArmorDefPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ArmorDefPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MinAtk"))
+                {
+                    translator.PushPropertyType(L, PropertyType.MinAtk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MaxAtk"))
+                {
+                    translator.PushPropertyType(L, PropertyType.MaxAtk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DefencePercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.DefencePercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CritHurtPercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.CritHurtPercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MoveSpeedPercent"))
+                {
+                    translator.PushPropertyType(L, PropertyType.MoveSpeedPercent);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MaxProDef"))
+                {
+                    translator.PushPropertyType(L, PropertyType.MaxProDef);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ProDefHPPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ProDefHPPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ProDefAbsorb"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ProDefAbsorb);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BaseHitPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.BaseHitPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BaseMissPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.BaseMissPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetMinAtk"))
+                {
+                    translator.PushPropertyType(L, PropertyType.PetMinAtk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetMaxAtk"))
+                {
+                    translator.PushPropertyType(L, PropertyType.PetMaxAtk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OnlyFinalHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.OnlyFinalHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PVPAtkBackHP"))
+                {
+                    translator.PushPropertyType(L, PropertyType.PVPAtkBackHP);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ChanceExpRate"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ChanceExpRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HorseAtkPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.HorseAtkPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "StoneBasePer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.StoneBasePer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RealmBasePer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.RealmBasePer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetSkillAtkRate"))
+                {
+                    translator.PushPropertyType(L, PropertyType.PetSkillAtkRate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WingHPPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.WingHPPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SuiteBasePer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SuiteBasePer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PlusBaseAtkPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.PlusBaseAtkPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcHurtAddPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.NpcHurtAddPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JobAHurtAddPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.JobAHurtAddPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JobBHurtAddPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.JobBHurtAddPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JobCHurtAddPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.JobCHurtAddPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JobAAtkReducePer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.JobAAtkReducePer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JobBAtkReducePer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.JobBAtkReducePer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JobCAtkReducePer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.JobCAtkReducePer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ZXCloakAttrPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ZXCloakAttrPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ZXMaskAttrPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ZXMaskAttrPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ZXGloveAttrPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ZXGloveAttrPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ZXRuyiAttrPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ZXRuyiAttrPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ZXPendantAttrPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ZXPendantAttrPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ZXRingAttrPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ZXRingAttrPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillAddPerA"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillAddPerA);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillAddPerB"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillAddPerB);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillAddPerC"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillAddPerC);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillAddPerD"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillAddPerD);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillAddPerE"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillAddPerE);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillAddPerF"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillAddPerF);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillAddPerG"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillAddPerG);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillReducePerA"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillReducePerA);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillReducePerB"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillReducePerB);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillReducePerC"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillReducePerC);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillReducePerD"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillReducePerD);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillReducePerE"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillReducePerE);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillReducePerF"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillReducePerF);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillReducePerG"))
+                {
+                    translator.PushPropertyType(L, PropertyType.SkillReducePerG);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Luck"))
+                {
+                    translator.PushPropertyType(L, PropertyType.Luck);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LuckPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.LuckPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AddNormalHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AddNormalHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AddNormalHurtPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AddNormalHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AddSkillHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AddSkillHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AddSkillHurtPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AddSkillHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ReduceCrit"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ReduceCrit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AddHeartHurtPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AddHeartHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ReduceHeartHurtPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ReduceHeartHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AddPVEHurt"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AddPVEHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AddFinalHurtPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.AddFinalHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ReduceFinalHurtPer"))
+                {
+                    translator.PushPropertyType(L, PropertyType.ReduceFinalHurtPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Mater"))
+                {
+                    translator.PushPropertyType(L, PropertyType.Mater);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Wood"))
+                {
+                    translator.PushPropertyType(L, PropertyType.Wood);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Water"))
+                {
+                    translator.PushPropertyType(L, PropertyType.Water);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Fire"))
+                {
+                    translator.PushPropertyType(L, PropertyType.Fire);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Earth"))
+                {
+                    translator.PushPropertyType(L, PropertyType.Earth);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for PropertyType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for PropertyType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class TextColTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(TextColType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(TextColType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(TextColType), L, null, 16, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "None", TextColType.None);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "White", TextColType.White);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Blue", TextColType.Blue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Purple", TextColType.Purple);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Orange", TextColType.Orange);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Red", TextColType.Red);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pink", TextColType.Pink);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NavyBrown", TextColType.NavyBrown);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Green", TextColType.Green);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Black", TextColType.Black);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DarkGreen", TextColType.DarkGreen);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NavyYellow", TextColType.NavyYellow);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LightGreen", TextColType.LightGreen);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LightYellow", TextColType.LightYellow);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Gray", TextColType.Gray);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(TextColType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushTextColType(L, (TextColType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "None"))
+                {
+                    translator.PushTextColType(L, TextColType.None);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "White"))
+                {
+                    translator.PushTextColType(L, TextColType.White);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Blue"))
+                {
+                    translator.PushTextColType(L, TextColType.Blue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Purple"))
+                {
+                    translator.PushTextColType(L, TextColType.Purple);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Orange"))
+                {
+                    translator.PushTextColType(L, TextColType.Orange);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Red"))
+                {
+                    translator.PushTextColType(L, TextColType.Red);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pink"))
+                {
+                    translator.PushTextColType(L, TextColType.Pink);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NavyBrown"))
+                {
+                    translator.PushTextColType(L, TextColType.NavyBrown);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Green"))
+                {
+                    translator.PushTextColType(L, TextColType.Green);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Black"))
+                {
+                    translator.PushTextColType(L, TextColType.Black);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DarkGreen"))
+                {
+                    translator.PushTextColType(L, TextColType.DarkGreen);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NavyYellow"))
+                {
+                    translator.PushTextColType(L, TextColType.NavyYellow);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LightGreen"))
+                {
+                    translator.PushTextColType(L, TextColType.LightGreen);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LightYellow"))
+                {
+                    translator.PushTextColType(L, TextColType.LightYellow);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Gray"))
+                {
+                    translator.PushTextColType(L, TextColType.Gray);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for TextColType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for TextColType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_ModelResTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_ModelResType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_ModelResType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_ModelResType), L, null, 8, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Weapon", E_ModelResType.Weapon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Wing", E_ModelResType.Wing);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Horse", E_ModelResType.Horse);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Suit", E_ModelResType.Suit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pet", E_ModelResType.Pet);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Secondary", E_ModelResType.Secondary);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Hand", E_ModelResType.Hand);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_ModelResType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_ModelResType(L, (E_ModelResType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Weapon"))
+                {
+                    translator.PushE_ModelResType(L, E_ModelResType.Weapon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Wing"))
+                {
+                    translator.PushE_ModelResType(L, E_ModelResType.Wing);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Horse"))
+                {
+                    translator.PushE_ModelResType(L, E_ModelResType.Horse);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Suit"))
+                {
+                    translator.PushE_ModelResType(L, E_ModelResType.Suit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pet"))
+                {
+                    translator.PushE_ModelResType(L, E_ModelResType.Pet);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Secondary"))
+                {
+                    translator.PushE_ModelResType(L, E_ModelResType.Secondary);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Hand"))
+                {
+                    translator.PushE_ModelResType(L, E_ModelResType.Hand);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_ModelResType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_ModelResType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class TreasureCategoryWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(TreasureCategory), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(TreasureCategory), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(TreasureCategory), L, null, 6, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Human", TreasureCategory.Human);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Demon", TreasureCategory.Demon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Fairy", TreasureCategory.Fairy);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "King", TreasureCategory.King);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Zerg", TreasureCategory.Zerg);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(TreasureCategory), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushTreasureCategory(L, (TreasureCategory)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Human"))
+                {
+                    translator.PushTreasureCategory(L, TreasureCategory.Human);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Demon"))
+                {
+                    translator.PushTreasureCategory(L, TreasureCategory.Demon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Fairy"))
+                {
+                    translator.PushTreasureCategory(L, TreasureCategory.Fairy);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "King"))
+                {
+                    translator.PushTreasureCategory(L, TreasureCategory.King);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Zerg"))
+                {
+                    translator.PushTreasureCategory(L, TreasureCategory.Zerg);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for TreasureCategory!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for TreasureCategory! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class TreasureStateWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(TreasureState), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(TreasureState), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(TreasureState), L, null, 4, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Collected", TreasureState.Collected);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Collecting", TreasureState.Collecting);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Locked", TreasureState.Locked);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(TreasureState), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushTreasureState(L, (TreasureState)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Collected"))
+                {
+                    translator.PushTreasureState(L, TreasureState.Collected);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Collecting"))
+                {
+                    translator.PushTreasureState(L, TreasureState.Collecting);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Locked"))
+                {
+                    translator.PushTreasureState(L, TreasureState.Locked);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for TreasureState!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for TreasureState! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class FunctionUnlockTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(FunctionUnlockType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(FunctionUnlockType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(FunctionUnlockType), L, null, 7, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Treasure", FunctionUnlockType.Treasure);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Normal", FunctionUnlockType.Normal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TreasureSkill", FunctionUnlockType.TreasureSkill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Skill", FunctionUnlockType.Skill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TreasureFunc", FunctionUnlockType.TreasureFunc);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TreasureChapter", FunctionUnlockType.TreasureChapter);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(FunctionUnlockType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushFunctionUnlockType(L, (FunctionUnlockType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Treasure"))
+                {
+                    translator.PushFunctionUnlockType(L, FunctionUnlockType.Treasure);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Normal"))
+                {
+                    translator.PushFunctionUnlockType(L, FunctionUnlockType.Normal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TreasureSkill"))
+                {
+                    translator.PushFunctionUnlockType(L, FunctionUnlockType.TreasureSkill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Skill"))
+                {
+                    translator.PushFunctionUnlockType(L, FunctionUnlockType.Skill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TreasureFunc"))
+                {
+                    translator.PushFunctionUnlockType(L, FunctionUnlockType.TreasureFunc);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TreasureChapter"))
+                {
+                    translator.PushFunctionUnlockType(L, FunctionUnlockType.TreasureChapter);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for FunctionUnlockType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for FunctionUnlockType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class RedPointStateWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(RedPointState), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(RedPointState), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(RedPointState), L, null, 6, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "None", RedPointState.None);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Simple", RedPointState.Simple);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Quantity", RedPointState.Quantity);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Full", RedPointState.Full);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GetReward", RedPointState.GetReward);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(RedPointState), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushRedPointState(L, (RedPointState)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "None"))
+                {
+                    translator.PushRedPointState(L, RedPointState.None);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Simple"))
+                {
+                    translator.PushRedPointState(L, RedPointState.Simple);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Quantity"))
+                {
+                    translator.PushRedPointState(L, RedPointState.Quantity);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Full"))
+                {
+                    translator.PushRedPointState(L, RedPointState.Full);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GetReward"))
+                {
+                    translator.PushRedPointState(L, RedPointState.GetReward);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for RedPointState!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for RedPointState! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class TeamInviteTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(TeamInviteType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(TeamInviteType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(TeamInviteType), L, null, 4, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Friend", TeamInviteType.Friend);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Fairy", TeamInviteType.Fairy);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NearBy", TeamInviteType.NearBy);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(TeamInviteType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushTeamInviteType(L, (TeamInviteType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Friend"))
+                {
+                    translator.PushTeamInviteType(L, TeamInviteType.Friend);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Fairy"))
+                {
+                    translator.PushTeamInviteType(L, TeamInviteType.Fairy);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NearBy"))
+                {
+                    translator.PushTeamInviteType(L, TeamInviteType.NearBy);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for TeamInviteType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for TeamInviteType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class TeammatePrepareStateWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(TeammatePrepareState), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(TeammatePrepareState), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(TeammatePrepareState), L, null, 4, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "UnPrepared", TeammatePrepareState.UnPrepared);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Prepared", TeammatePrepareState.Prepared);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Rejected", TeammatePrepareState.Rejected);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(TeammatePrepareState), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushTeammatePrepareState(L, (TeammatePrepareState)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "UnPrepared"))
+                {
+                    translator.PushTeammatePrepareState(L, TeammatePrepareState.UnPrepared);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Prepared"))
+                {
+                    translator.PushTeammatePrepareState(L, TeammatePrepareState.Prepared);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Rejected"))
+                {
+                    translator.PushTeammatePrepareState(L, TeammatePrepareState.Rejected);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for TeammatePrepareState!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for TeammatePrepareState! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class VipPrivilegeTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(VipPrivilegeType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(VipPrivilegeType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(VipPrivilegeType), L, null, 33, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TreasureAtk", VipPrivilegeType.TreasureAtk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GemHole", VipPrivilegeType.GemHole);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "VipBuff", VipPrivilegeType.VipBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TradeTax", VipPrivilegeType.TradeTax);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PrivateClerk", VipPrivilegeType.PrivateClerk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FreeTransfer", VipPrivilegeType.FreeTransfer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AutoFairyMisstion", VipPrivilegeType.AutoFairyMisstion);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Gather", VipPrivilegeType.Gather);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Undead", VipPrivilegeType.Undead);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "KillMonsterExpUp", VipPrivilegeType.KillMonsterExpUp);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Minion", VipPrivilegeType.Minion);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "KillMonsterSp", VipPrivilegeType.KillMonsterSp);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GoldWish", VipPrivilegeType.GoldWish);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExpWish", VipPrivilegeType.ExpWish);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SelfBoss", VipPrivilegeType.SelfBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BossHome", VipPrivilegeType.BossHome);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetDungeon", VipPrivilegeType.PetDungeon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BaptizeDungeon", VipPrivilegeType.BaptizeDungeon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ForbiddenArea", VipPrivilegeType.ForbiddenArea);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Fane", VipPrivilegeType.Fane);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Chasm", VipPrivilegeType.Chasm);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DarkDorr", VipPrivilegeType.DarkDorr);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyDaimondGift", VipPrivilegeType.FairyDaimondGift);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MarketPutawayPwd", VipPrivilegeType.MarketPutawayPwd);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DemonJar", VipPrivilegeType.DemonJar);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DemonJarDouble", VipPrivilegeType.DemonJarDouble);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BindJadeWheel", VipPrivilegeType.BindJadeWheel);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PrayForDrug", VipPrivilegeType.PrayForDrug);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DemonJarAuto", VipPrivilegeType.DemonJarAuto);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AssistXianYuanCoinsAdd", VipPrivilegeType.AssistXianYuanCoinsAdd);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AssistXianYuanCoinsRatioAdd", VipPrivilegeType.AssistXianYuanCoinsRatioAdd);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JadeDynastyBoss", VipPrivilegeType.JadeDynastyBoss);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(VipPrivilegeType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushVipPrivilegeType(L, (VipPrivilegeType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "TreasureAtk"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.TreasureAtk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GemHole"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.GemHole);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "VipBuff"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.VipBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TradeTax"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.TradeTax);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PrivateClerk"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.PrivateClerk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FreeTransfer"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.FreeTransfer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AutoFairyMisstion"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.AutoFairyMisstion);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Gather"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.Gather);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Undead"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.Undead);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "KillMonsterExpUp"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.KillMonsterExpUp);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Minion"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.Minion);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "KillMonsterSp"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.KillMonsterSp);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GoldWish"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.GoldWish);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExpWish"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.ExpWish);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SelfBoss"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.SelfBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BossHome"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.BossHome);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetDungeon"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.PetDungeon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BaptizeDungeon"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.BaptizeDungeon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ForbiddenArea"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.ForbiddenArea);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Fane"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.Fane);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Chasm"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.Chasm);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DarkDorr"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.DarkDorr);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyDaimondGift"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.FairyDaimondGift);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MarketPutawayPwd"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.MarketPutawayPwd);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DemonJar"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.DemonJar);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DemonJarDouble"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.DemonJarDouble);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BindJadeWheel"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.BindJadeWheel);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PrayForDrug"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.PrayForDrug);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DemonJarAuto"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.DemonJarAuto);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AssistXianYuanCoinsAdd"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.AssistXianYuanCoinsAdd);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AssistXianYuanCoinsRatioAdd"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.AssistXianYuanCoinsRatioAdd);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JadeDynastyBoss"))
+                {
+                    translator.PushVipPrivilegeType(L, VipPrivilegeType.JadeDynastyBoss);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for VipPrivilegeType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for VipPrivilegeType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_AttackModeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_AttackMode), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_AttackMode), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_AttackMode), L, null, 9, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Peace", E_AttackMode.Peace);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "All", E_AttackMode.All);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Country", E_AttackMode.Country);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Group", E_AttackMode.Group);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Team", E_AttackMode.Team);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Family", E_AttackMode.Family);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GoodEval", E_AttackMode.GoodEval);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Contest", E_AttackMode.Contest);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_AttackMode), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_AttackMode(L, (E_AttackMode)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Peace"))
+                {
+                    translator.PushE_AttackMode(L, E_AttackMode.Peace);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "All"))
+                {
+                    translator.PushE_AttackMode(L, E_AttackMode.All);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Country"))
+                {
+                    translator.PushE_AttackMode(L, E_AttackMode.Country);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Group"))
+                {
+                    translator.PushE_AttackMode(L, E_AttackMode.Group);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Team"))
+                {
+                    translator.PushE_AttackMode(L, E_AttackMode.Team);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Family"))
+                {
+                    translator.PushE_AttackMode(L, E_AttackMode.Family);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GoodEval"))
+                {
+                    translator.PushE_AttackMode(L, E_AttackMode.GoodEval);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Contest"))
+                {
+                    translator.PushE_AttackMode(L, E_AttackMode.Contest);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_AttackMode!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_AttackMode! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_ItemColorWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_ItemColor), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_ItemColor), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_ItemColor), L, null, 7, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "White", E_ItemColor.White);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Blue", E_ItemColor.Blue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Purple", E_ItemColor.Purple);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Orange", E_ItemColor.Orange);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Red", E_ItemColor.Red);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pink", E_ItemColor.Pink);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_ItemColor), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_ItemColor(L, (E_ItemColor)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "White"))
+                {
+                    translator.PushE_ItemColor(L, E_ItemColor.White);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Blue"))
+                {
+                    translator.PushE_ItemColor(L, E_ItemColor.Blue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Purple"))
+                {
+                    translator.PushE_ItemColor(L, E_ItemColor.Purple);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Orange"))
+                {
+                    translator.PushE_ItemColor(L, E_ItemColor.Orange);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Red"))
+                {
+                    translator.PushE_ItemColor(L, E_ItemColor.Red);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pink"))
+                {
+                    translator.PushE_ItemColor(L, E_ItemColor.Pink);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_ItemColor!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_ItemColor! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class FindPreciousTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(FindPreciousType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(FindPreciousType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(FindPreciousType), L, null, 10, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WorldBoss", FindPreciousType.WorldBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BossHome", FindPreciousType.BossHome);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PersonalBoss", FindPreciousType.PersonalBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ElderGodArea", FindPreciousType.ElderGodArea);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DemonJar", FindPreciousType.DemonJar);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DogzDungeon", FindPreciousType.DogzDungeon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CrossServerBoss", FindPreciousType.CrossServerBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JadeDynastyBoss", FindPreciousType.JadeDynastyBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "None", FindPreciousType.None);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(FindPreciousType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushFindPreciousType(L, (FindPreciousType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "WorldBoss"))
+                {
+                    translator.PushFindPreciousType(L, FindPreciousType.WorldBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BossHome"))
+                {
+                    translator.PushFindPreciousType(L, FindPreciousType.BossHome);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PersonalBoss"))
+                {
+                    translator.PushFindPreciousType(L, FindPreciousType.PersonalBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ElderGodArea"))
+                {
+                    translator.PushFindPreciousType(L, FindPreciousType.ElderGodArea);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DemonJar"))
+                {
+                    translator.PushFindPreciousType(L, FindPreciousType.DemonJar);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DogzDungeon"))
+                {
+                    translator.PushFindPreciousType(L, FindPreciousType.DogzDungeon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CrossServerBoss"))
+                {
+                    translator.PushFindPreciousType(L, FindPreciousType.CrossServerBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JadeDynastyBoss"))
+                {
+                    translator.PushFindPreciousType(L, FindPreciousType.JadeDynastyBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "None"))
+                {
+                    translator.PushFindPreciousType(L, FindPreciousType.None);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for FindPreciousType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for FindPreciousType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class GotServerRewardTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(GotServerRewardType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(GotServerRewardType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(GotServerRewardType), L, null, 26, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_Activity", GotServerRewardType.Def_RewardType_Activity);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_FamilyActivity", GotServerRewardType.Def_RewardType_FamilyActivity);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_ChampionFamilyDailyReward", GotServerRewardType.Def_RewardType_ChampionFamilyDailyReward);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_XMZZWinCnt", GotServerRewardType.Def_RewardType_XMZZWinCnt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_FairyDayAward", GotServerRewardType.Def_RewardType_FairyDayAward);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_XBXZ", GotServerRewardType.Def_RewardType_XBXZ);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_DayRealmPoint", GotServerRewardType.Def_RewardType_DayRealmPoint);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_GoldGiftFirst", GotServerRewardType.Def_RewardType_GoldGiftFirst);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_TreasureSoul", GotServerRewardType.Def_RewardType_TreasureSoul);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_ConsumeRebate", GotServerRewardType.Def_RewardType_ConsumeRebate);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_BossReborn", GotServerRewardType.Def_RewardType_BossReborn);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_FCRecharge", GotServerRewardType.Def_RewardType_FCRecharge);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_FCParty", GotServerRewardType.Def_RewardType_FCParty);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_WishingWell", GotServerRewardType.Def_RewardType_WishingWell);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_OpenFunc", GotServerRewardType.Def_RewardType_OpenFunc);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_TotalRecharge", GotServerRewardType.Def_RewardType_TotalRecharge);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_IceLodeStar", GotServerRewardType.Def_RewardType_IceLodeStar);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_WeekPartyAct", GotServerRewardType.Def_RewardType_WeekPartyAct);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_WeekPartyPoint", GotServerRewardType.Def_RewardType_WeekPartyPoint);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_ActLoginAwardAct", GotServerRewardType.Def_RewardType_ActLoginAwardAct);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_NewFairyCRecharge", GotServerRewardType.Def_RewardType_NewFairyCRecharge);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_NewFairyCParty", GotServerRewardType.Def_RewardType_NewFairyCParty);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_FeastWeekPartyAct", GotServerRewardType.Def_RewardType_FeastWeekPartyAct);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_FeastWeekPartyPoint", GotServerRewardType.Def_RewardType_FeastWeekPartyPoint);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_RewardType_FairyAdventuresAward", GotServerRewardType.Def_RewardType_FairyAdventuresAward);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(GotServerRewardType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushGotServerRewardType(L, (GotServerRewardType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_Activity"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_Activity);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_FamilyActivity"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_FamilyActivity);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_ChampionFamilyDailyReward"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_ChampionFamilyDailyReward);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_XMZZWinCnt"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_XMZZWinCnt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_FairyDayAward"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_FairyDayAward);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_XBXZ"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_XBXZ);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_DayRealmPoint"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_DayRealmPoint);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_GoldGiftFirst"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_GoldGiftFirst);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_TreasureSoul"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_TreasureSoul);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_ConsumeRebate"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_ConsumeRebate);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_BossReborn"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_BossReborn);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_FCRecharge"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_FCRecharge);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_FCParty"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_FCParty);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_WishingWell"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_WishingWell);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_OpenFunc"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_OpenFunc);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_TotalRecharge"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_TotalRecharge);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_IceLodeStar"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_IceLodeStar);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_WeekPartyAct"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_WeekPartyAct);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_WeekPartyPoint"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_WeekPartyPoint);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_ActLoginAwardAct"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_ActLoginAwardAct);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_NewFairyCRecharge"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_NewFairyCRecharge);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_NewFairyCParty"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_NewFairyCParty);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_FeastWeekPartyAct"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_FeastWeekPartyAct);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_FeastWeekPartyPoint"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_FeastWeekPartyPoint);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_RewardType_FairyAdventuresAward"))
+                {
+                    translator.PushGotServerRewardType(L, GotServerRewardType.Def_RewardType_FairyAdventuresAward);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for GotServerRewardType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for GotServerRewardType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class MapTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(MapType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(MapType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(MapType), L, null, 12, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenCountry", MapType.OpenCountry);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SingleFB", MapType.SingleFB);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MultipleFB", MapType.MultipleFB);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FamilyFB", MapType.FamilyFB);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FamilyWarFB", MapType.FamilyWarFB);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CountryExam", MapType.CountryExam);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CountryFB", MapType.CountryFB);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AllByCountry", MapType.AllByCountry);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "All", MapType.All);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "VSRoom", MapType.VSRoom);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CrossAll", MapType.CrossAll);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(MapType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushMapType(L, (MapType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "OpenCountry"))
+                {
+                    translator.PushMapType(L, MapType.OpenCountry);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SingleFB"))
+                {
+                    translator.PushMapType(L, MapType.SingleFB);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MultipleFB"))
+                {
+                    translator.PushMapType(L, MapType.MultipleFB);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FamilyFB"))
+                {
+                    translator.PushMapType(L, MapType.FamilyFB);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FamilyWarFB"))
+                {
+                    translator.PushMapType(L, MapType.FamilyWarFB);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CountryExam"))
+                {
+                    translator.PushMapType(L, MapType.CountryExam);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CountryFB"))
+                {
+                    translator.PushMapType(L, MapType.CountryFB);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AllByCountry"))
+                {
+                    translator.PushMapType(L, MapType.AllByCountry);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "All"))
+                {
+                    translator.PushMapType(L, MapType.All);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "VSRoom"))
+                {
+                    translator.PushMapType(L, MapType.VSRoom);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CrossAll"))
+                {
+                    translator.PushMapType(L, MapType.CrossAll);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for MapType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for MapType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class GuideTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(GuideType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(GuideType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(GuideType), L, null, 3, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NewBie", GuideType.NewBie);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Functional", GuideType.Functional);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(GuideType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushGuideType(L, (GuideType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "NewBie"))
+                {
+                    translator.PushGuideType(L, GuideType.NewBie);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Functional"))
+                {
+                    translator.PushGuideType(L, GuideType.Functional);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for GuideType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for GuideType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class GuideTriggerTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(GuideTriggerType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(GuideTriggerType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(GuideTriggerType), L, null, 28, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "None", GuideTriggerType.None);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FunctionOpen", GuideTriggerType.FunctionOpen);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ManualFunctionOpen", GuideTriggerType.ManualFunctionOpen);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Level", GuideTriggerType.Level);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Treasure", GuideTriggerType.Treasure);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "EquipQuality", GuideTriggerType.EquipQuality);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Item", GuideTriggerType.Item);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TreasureDungeon", GuideTriggerType.TreasureDungeon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Map", GuideTriggerType.Map);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RuneInlay", GuideTriggerType.RuneInlay);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RealmSitDown", GuideTriggerType.RealmSitDown);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ItemCompound", GuideTriggerType.ItemCompound);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HangUpResult", GuideTriggerType.HangUpResult);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TreasureCollectSoul", GuideTriggerType.TreasureCollectSoul);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TreasureAwaken", GuideTriggerType.TreasureAwaken);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pray", GuideTriggerType.Pray);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "VIPExperience", GuideTriggerType.VIPExperience);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyLandBuyTimes", GuideTriggerType.FairyLandBuyTimes);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TeamAutoAccept", GuideTriggerType.TeamAutoAccept);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TrialExchange", GuideTriggerType.TrialExchange);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "QuestCanAccept", GuideTriggerType.QuestCanAccept);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "QuestCanDo", GuideTriggerType.QuestCanDo);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "QuestCanAward", GuideTriggerType.QuestCanAward);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "QuestLimit", GuideTriggerType.QuestLimit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "QuestContinue", GuideTriggerType.QuestContinue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BranchQuestCando", GuideTriggerType.BranchQuestCando);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BranchQuestCanAward", GuideTriggerType.BranchQuestCanAward);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(GuideTriggerType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushGuideTriggerType(L, (GuideTriggerType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "None"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.None);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FunctionOpen"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.FunctionOpen);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ManualFunctionOpen"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.ManualFunctionOpen);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Level"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.Level);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Treasure"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.Treasure);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "EquipQuality"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.EquipQuality);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Item"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.Item);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TreasureDungeon"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.TreasureDungeon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Map"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.Map);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RuneInlay"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.RuneInlay);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RealmSitDown"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.RealmSitDown);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ItemCompound"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.ItemCompound);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HangUpResult"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.HangUpResult);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TreasureCollectSoul"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.TreasureCollectSoul);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TreasureAwaken"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.TreasureAwaken);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pray"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.Pray);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "VIPExperience"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.VIPExperience);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyLandBuyTimes"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.FairyLandBuyTimes);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TeamAutoAccept"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.TeamAutoAccept);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TrialExchange"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.TrialExchange);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "QuestCanAccept"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.QuestCanAccept);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "QuestCanDo"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.QuestCanDo);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "QuestCanAward"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.QuestCanAward);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "QuestLimit"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.QuestLimit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "QuestContinue"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.QuestContinue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BranchQuestCando"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.BranchQuestCando);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BranchQuestCanAward"))
+                {
+                    translator.PushGuideTriggerType(L, GuideTriggerType.BranchQuestCanAward);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for GuideTriggerType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for GuideTriggerType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class FuncPowerTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(FuncPowerType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(FuncPowerType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(FuncPowerType), L, null, 26, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Role", FuncPowerType.Role);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Equip", FuncPowerType.Equip);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Plus", FuncPowerType.Plus);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Stone", FuncPowerType.Stone);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Reiki", FuncPowerType.Reiki);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Wing", FuncPowerType.Wing);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Wash", FuncPowerType.Wash);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pet", FuncPowerType.Pet);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Horse", FuncPowerType.Horse);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Realm", FuncPowerType.Realm);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GodWeapon", FuncPowerType.GodWeapon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Title", FuncPowerType.Title);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Rune", FuncPowerType.Rune);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Star", FuncPowerType.Star);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Human", FuncPowerType.Human);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Alchemy", FuncPowerType.Alchemy);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Demon", FuncPowerType.Demon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Fairy", FuncPowerType.Fairy);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetSoul", FuncPowerType.PetSoul);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HorseSoul", FuncPowerType.HorseSoul);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Dogz", FuncPowerType.Dogz);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GatherSoul", FuncPowerType.GatherSoul);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "King", FuncPowerType.King);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FashionDress", FuncPowerType.FashionDress);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JadeDynastyEquip", FuncPowerType.JadeDynastyEquip);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(FuncPowerType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushFuncPowerType(L, (FuncPowerType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Role"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Role);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Equip"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Equip);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Plus"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Plus);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Stone"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Stone);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Reiki"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Reiki);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Wing"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Wing);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Wash"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Wash);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pet"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Pet);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Horse"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Horse);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Realm"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Realm);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GodWeapon"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.GodWeapon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Title"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Title);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Rune"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Rune);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Star"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Star);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Human"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Human);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Alchemy"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Alchemy);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Demon"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Demon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Fairy"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Fairy);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetSoul"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.PetSoul);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HorseSoul"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.HorseSoul);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Dogz"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.Dogz);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GatherSoul"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.GatherSoul);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "King"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.King);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FashionDress"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.FashionDress);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JadeDynastyEquip"))
+                {
+                    translator.PushFuncPowerType(L, FuncPowerType.JadeDynastyEquip);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for FuncPowerType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for FuncPowerType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class E_AtkTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(E_AtkType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(E_AtkType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(E_AtkType), L, null, 13, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Special", E_AtkType.Special);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Single", E_AtkType.Single);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Multiple", E_AtkType.Multiple);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Transmit", E_AtkType.Transmit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ClearHatred", E_AtkType.ClearHatred);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SingleHatred", E_AtkType.SingleHatred);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MultipleBuff", E_AtkType.MultipleBuff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Summon", E_AtkType.Summon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SingleRecoverAtkPer", E_AtkType.SingleRecoverAtkPer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FastMove", E_AtkType.FastMove);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FlashMove", E_AtkType.FlashMove);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RushAttack", E_AtkType.RushAttack);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(E_AtkType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushE_AtkType(L, (E_AtkType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Special"))
+                {
+                    translator.PushE_AtkType(L, E_AtkType.Special);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Single"))
+                {
+                    translator.PushE_AtkType(L, E_AtkType.Single);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Multiple"))
+                {
+                    translator.PushE_AtkType(L, E_AtkType.Multiple);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Transmit"))
+                {
+                    translator.PushE_AtkType(L, E_AtkType.Transmit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ClearHatred"))
+                {
+                    translator.PushE_AtkType(L, E_AtkType.ClearHatred);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SingleHatred"))
+                {
+                    translator.PushE_AtkType(L, E_AtkType.SingleHatred);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MultipleBuff"))
+                {
+                    translator.PushE_AtkType(L, E_AtkType.MultipleBuff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Summon"))
+                {
+                    translator.PushE_AtkType(L, E_AtkType.Summon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SingleRecoverAtkPer"))
+                {
+                    translator.PushE_AtkType(L, E_AtkType.SingleRecoverAtkPer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FastMove"))
+                {
+                    translator.PushE_AtkType(L, E_AtkType.FastMove);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FlashMove"))
+                {
+                    translator.PushE_AtkType(L, E_AtkType.FlashMove);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RushAttack"))
+                {
+                    translator.PushE_AtkType(L, E_AtkType.RushAttack);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for E_AtkType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for E_AtkType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class GameObjTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(GameObjType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(GameObjType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(GameObjType), L, null, 7, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "gotNone", GameObjType.gotNone);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "gotPlayer", GameObjType.gotPlayer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "gotNPC", GameObjType.gotNPC);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "gotItem", GameObjType.gotItem);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "gotFlyObj", GameObjType.gotFlyObj);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "gotMax", GameObjType.gotMax);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(GameObjType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushGameObjType(L, (GameObjType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "gotNone"))
+                {
+                    translator.PushGameObjType(L, GameObjType.gotNone);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "gotPlayer"))
+                {
+                    translator.PushGameObjType(L, GameObjType.gotPlayer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "gotNPC"))
+                {
+                    translator.PushGameObjType(L, GameObjType.gotNPC);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "gotItem"))
+                {
+                    translator.PushGameObjType(L, GameObjType.gotItem);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "gotFlyObj"))
+                {
+                    translator.PushGameObjType(L, GameObjType.gotFlyObj);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "gotMax"))
+                {
+                    translator.PushGameObjType(L, GameObjType.gotMax);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for GameObjType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for GameObjType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class HurtAttackTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(HurtAttackType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(HurtAttackType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(HurtAttackType), L, null, 17, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Normal", HurtAttackType.Normal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Recovery", HurtAttackType.Recovery);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BounceHurt", HurtAttackType.BounceHurt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Bleed", HurtAttackType.Bleed);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Parry", HurtAttackType.Parry);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DoubleHit", HurtAttackType.DoubleHit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SuperHit", HurtAttackType.SuperHit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LuckyHit", HurtAttackType.LuckyHit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Miss", HurtAttackType.Miss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Immune", HurtAttackType.Immune);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Suppress", HurtAttackType.Suppress);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ZhanSha", HurtAttackType.ZhanSha);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ZhuXianAtk", HurtAttackType.ZhuXianAtk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FinalKill", HurtAttackType.FinalKill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DeadlyHit", HurtAttackType.DeadlyHit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ThumpHit", HurtAttackType.ThumpHit);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(HurtAttackType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushHurtAttackType(L, (HurtAttackType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Normal"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.Normal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Recovery"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.Recovery);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BounceHurt"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.BounceHurt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Bleed"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.Bleed);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Parry"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.Parry);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DoubleHit"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.DoubleHit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SuperHit"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.SuperHit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LuckyHit"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.LuckyHit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Miss"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.Miss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Immune"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.Immune);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Suppress"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.Suppress);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ZhanSha"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.ZhanSha);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ZhuXianAtk"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.ZhuXianAtk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FinalKill"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.FinalKill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DeadlyHit"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.DeadlyHit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ThumpHit"))
+                {
+                    translator.PushHurtAttackType(L, HurtAttackType.ThumpHit);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for HurtAttackType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for HurtAttackType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class DungeonTargetTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(DungeonTargetType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(DungeonTargetType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(DungeonTargetType), L, null, 13, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NPC", DungeonTargetType.NPC);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Exp", DungeonTargetType.Exp);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Score", DungeonTargetType.Score);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Money", DungeonTargetType.Money);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Wave", DungeonTargetType.Wave);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NpcTotal", DungeonTargetType.NpcTotal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Stage", DungeonTargetType.Stage);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NPCDialogue", DungeonTargetType.NPCDialogue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "VictorySumCnt", DungeonTargetType.VictorySumCnt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "StageVictoryCnt", DungeonTargetType.StageVictoryCnt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Collect", DungeonTargetType.Collect);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AttackCount", DungeonTargetType.AttackCount);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(DungeonTargetType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushDungeonTargetType(L, (DungeonTargetType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "NPC"))
+                {
+                    translator.PushDungeonTargetType(L, DungeonTargetType.NPC);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Exp"))
+                {
+                    translator.PushDungeonTargetType(L, DungeonTargetType.Exp);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Score"))
+                {
+                    translator.PushDungeonTargetType(L, DungeonTargetType.Score);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Money"))
+                {
+                    translator.PushDungeonTargetType(L, DungeonTargetType.Money);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Wave"))
+                {
+                    translator.PushDungeonTargetType(L, DungeonTargetType.Wave);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NpcTotal"))
+                {
+                    translator.PushDungeonTargetType(L, DungeonTargetType.NpcTotal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Stage"))
+                {
+                    translator.PushDungeonTargetType(L, DungeonTargetType.Stage);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NPCDialogue"))
+                {
+                    translator.PushDungeonTargetType(L, DungeonTargetType.NPCDialogue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "VictorySumCnt"))
+                {
+                    translator.PushDungeonTargetType(L, DungeonTargetType.VictorySumCnt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "StageVictoryCnt"))
+                {
+                    translator.PushDungeonTargetType(L, DungeonTargetType.StageVictoryCnt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Collect"))
+                {
+                    translator.PushDungeonTargetType(L, DungeonTargetType.Collect);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AttackCount"))
+                {
+                    translator.PushDungeonTargetType(L, DungeonTargetType.AttackCount);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for DungeonTargetType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for DungeonTargetType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class AchievementTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(AchievementType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(AchievementType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(AchievementType), L, null, 65, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Level", AchievementType.Level);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FightPower", AchievementType.FightPower);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MainLine", AchievementType.MainLine);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "KillMonster", AchievementType.KillMonster);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DailyQuest", AchievementType.DailyQuest);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyQuest", AchievementType.FairyQuest);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JobRank", AchievementType.JobRank);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MagicWeaponLevel", AchievementType.MagicWeaponLevel);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MountCount", AchievementType.MountCount);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MountLevel", AchievementType.MountLevel);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetCount", AchievementType.PetCount);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetLevel", AchievementType.PetLevel);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CollectGold", AchievementType.CollectGold);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CollectBindDiamond", AchievementType.CollectBindDiamond);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CollectDiamond", AchievementType.CollectDiamond);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AccumulativeSignIn", AchievementType.AccumulativeSignIn);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ContinuousSignIn", AchievementType.ContinuousSignIn);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PackbackGrid", AchievementType.PackbackGrid);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FriendCount", AchievementType.FriendCount);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WorldChat", AchievementType.WorldChat);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SaleItem", AchievementType.SaleItem);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BuyItem", AchievementType.BuyItem);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Dead", AchievementType.Dead);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ClearRedName", AchievementType.ClearRedName);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "KillPlayer", AchievementType.KillPlayer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "StrengthenCount", AchievementType.StrengthenCount);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "EquipStrengthenLevel", AchievementType.EquipStrengthenLevel);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "WorldBoss", AchievementType.WorldBoss);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CircleQuest", AchievementType.CircleQuest);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TreasureDungeon", AchievementType.TreasureDungeon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JoinGuild", AchievementType.JoinGuild);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JoinTeam", AchievementType.JoinTeam);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "CollectTreasure", AchievementType.CollectTreasure);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "BeKilledCount", AchievementType.BeKilledCount);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PrayCount", AchievementType.PrayCount);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "KillNPC", AchievementType.KillNPC);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FindWorldMap", AchievementType.FindWorldMap);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PutonEquipPlace", AchievementType.PutonEquipPlace);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PutonEquipQuality", AchievementType.PutonEquipQuality);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "MissionTranfer", AchievementType.MissionTranfer);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PropertyAdd", AchievementType.PropertyAdd);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RuneTower", AchievementType.RuneTower);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Mount", AchievementType.Mount);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GetRune", AchievementType.GetRune);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RuneLevel", AchievementType.RuneLevel);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairyArea", AchievementType.FairyArea);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ComposeItem", AchievementType.ComposeItem);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "InlayGem", AchievementType.InlayGem);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Kylin", AchievementType.Kylin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Realm", AchievementType.Realm);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RefiningDan", AchievementType.RefiningDan);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ActivevalueAward", AchievementType.ActivevalueAward);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "TreasureLevel", AchievementType.TreasureLevel);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AncientBattleGroundKillCnt", AchievementType.AncientBattleGroundKillCnt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AncientBattleGroundMultiKill", AchievementType.AncientBattleGroundMultiKill);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "UnLockPet", AchievementType.UnLockPet);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetRank", AchievementType.PetRank);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PetRanks", AchievementType.PetRanks);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LifeGemInlay", AchievementType.LifeGemInlay);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AttackGemInlay", AchievementType.AttackGemInlay);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FairylandExp", AchievementType.FairylandExp);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NuwaGradeS", AchievementType.NuwaGradeS);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "AnyMountLevel", AchievementType.AnyMountLevel);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "DvsFWinningStreak", AchievementType.DvsFWinningStreak);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(AchievementType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushAchievementType(L, (AchievementType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Level"))
+                {
+                    translator.PushAchievementType(L, AchievementType.Level);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FightPower"))
+                {
+                    translator.PushAchievementType(L, AchievementType.FightPower);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MainLine"))
+                {
+                    translator.PushAchievementType(L, AchievementType.MainLine);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "KillMonster"))
+                {
+                    translator.PushAchievementType(L, AchievementType.KillMonster);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DailyQuest"))
+                {
+                    translator.PushAchievementType(L, AchievementType.DailyQuest);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyQuest"))
+                {
+                    translator.PushAchievementType(L, AchievementType.FairyQuest);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JobRank"))
+                {
+                    translator.PushAchievementType(L, AchievementType.JobRank);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MagicWeaponLevel"))
+                {
+                    translator.PushAchievementType(L, AchievementType.MagicWeaponLevel);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MountCount"))
+                {
+                    translator.PushAchievementType(L, AchievementType.MountCount);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MountLevel"))
+                {
+                    translator.PushAchievementType(L, AchievementType.MountLevel);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetCount"))
+                {
+                    translator.PushAchievementType(L, AchievementType.PetCount);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetLevel"))
+                {
+                    translator.PushAchievementType(L, AchievementType.PetLevel);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CollectGold"))
+                {
+                    translator.PushAchievementType(L, AchievementType.CollectGold);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CollectBindDiamond"))
+                {
+                    translator.PushAchievementType(L, AchievementType.CollectBindDiamond);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CollectDiamond"))
+                {
+                    translator.PushAchievementType(L, AchievementType.CollectDiamond);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AccumulativeSignIn"))
+                {
+                    translator.PushAchievementType(L, AchievementType.AccumulativeSignIn);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ContinuousSignIn"))
+                {
+                    translator.PushAchievementType(L, AchievementType.ContinuousSignIn);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PackbackGrid"))
+                {
+                    translator.PushAchievementType(L, AchievementType.PackbackGrid);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FriendCount"))
+                {
+                    translator.PushAchievementType(L, AchievementType.FriendCount);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WorldChat"))
+                {
+                    translator.PushAchievementType(L, AchievementType.WorldChat);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SaleItem"))
+                {
+                    translator.PushAchievementType(L, AchievementType.SaleItem);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BuyItem"))
+                {
+                    translator.PushAchievementType(L, AchievementType.BuyItem);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Dead"))
+                {
+                    translator.PushAchievementType(L, AchievementType.Dead);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ClearRedName"))
+                {
+                    translator.PushAchievementType(L, AchievementType.ClearRedName);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "KillPlayer"))
+                {
+                    translator.PushAchievementType(L, AchievementType.KillPlayer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "StrengthenCount"))
+                {
+                    translator.PushAchievementType(L, AchievementType.StrengthenCount);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "EquipStrengthenLevel"))
+                {
+                    translator.PushAchievementType(L, AchievementType.EquipStrengthenLevel);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "WorldBoss"))
+                {
+                    translator.PushAchievementType(L, AchievementType.WorldBoss);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CircleQuest"))
+                {
+                    translator.PushAchievementType(L, AchievementType.CircleQuest);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TreasureDungeon"))
+                {
+                    translator.PushAchievementType(L, AchievementType.TreasureDungeon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JoinGuild"))
+                {
+                    translator.PushAchievementType(L, AchievementType.JoinGuild);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JoinTeam"))
+                {
+                    translator.PushAchievementType(L, AchievementType.JoinTeam);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "CollectTreasure"))
+                {
+                    translator.PushAchievementType(L, AchievementType.CollectTreasure);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "BeKilledCount"))
+                {
+                    translator.PushAchievementType(L, AchievementType.BeKilledCount);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PrayCount"))
+                {
+                    translator.PushAchievementType(L, AchievementType.PrayCount);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "KillNPC"))
+                {
+                    translator.PushAchievementType(L, AchievementType.KillNPC);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FindWorldMap"))
+                {
+                    translator.PushAchievementType(L, AchievementType.FindWorldMap);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PutonEquipPlace"))
+                {
+                    translator.PushAchievementType(L, AchievementType.PutonEquipPlace);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PutonEquipQuality"))
+                {
+                    translator.PushAchievementType(L, AchievementType.PutonEquipQuality);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "MissionTranfer"))
+                {
+                    translator.PushAchievementType(L, AchievementType.MissionTranfer);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PropertyAdd"))
+                {
+                    translator.PushAchievementType(L, AchievementType.PropertyAdd);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RuneTower"))
+                {
+                    translator.PushAchievementType(L, AchievementType.RuneTower);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Mount"))
+                {
+                    translator.PushAchievementType(L, AchievementType.Mount);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GetRune"))
+                {
+                    translator.PushAchievementType(L, AchievementType.GetRune);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RuneLevel"))
+                {
+                    translator.PushAchievementType(L, AchievementType.RuneLevel);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairyArea"))
+                {
+                    translator.PushAchievementType(L, AchievementType.FairyArea);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ComposeItem"))
+                {
+                    translator.PushAchievementType(L, AchievementType.ComposeItem);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "InlayGem"))
+                {
+                    translator.PushAchievementType(L, AchievementType.InlayGem);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Kylin"))
+                {
+                    translator.PushAchievementType(L, AchievementType.Kylin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Realm"))
+                {
+                    translator.PushAchievementType(L, AchievementType.Realm);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RefiningDan"))
+                {
+                    translator.PushAchievementType(L, AchievementType.RefiningDan);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ActivevalueAward"))
+                {
+                    translator.PushAchievementType(L, AchievementType.ActivevalueAward);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "TreasureLevel"))
+                {
+                    translator.PushAchievementType(L, AchievementType.TreasureLevel);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AncientBattleGroundKillCnt"))
+                {
+                    translator.PushAchievementType(L, AchievementType.AncientBattleGroundKillCnt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AncientBattleGroundMultiKill"))
+                {
+                    translator.PushAchievementType(L, AchievementType.AncientBattleGroundMultiKill);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "UnLockPet"))
+                {
+                    translator.PushAchievementType(L, AchievementType.UnLockPet);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetRank"))
+                {
+                    translator.PushAchievementType(L, AchievementType.PetRank);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PetRanks"))
+                {
+                    translator.PushAchievementType(L, AchievementType.PetRanks);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LifeGemInlay"))
+                {
+                    translator.PushAchievementType(L, AchievementType.LifeGemInlay);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AttackGemInlay"))
+                {
+                    translator.PushAchievementType(L, AchievementType.AttackGemInlay);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FairylandExp"))
+                {
+                    translator.PushAchievementType(L, AchievementType.FairylandExp);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "NuwaGradeS"))
+                {
+                    translator.PushAchievementType(L, AchievementType.NuwaGradeS);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "AnyMountLevel"))
+                {
+                    translator.PushAchievementType(L, AchievementType.AnyMountLevel);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "DvsFWinningStreak"))
+                {
+                    translator.PushAchievementType(L, AchievementType.DvsFWinningStreak);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for AchievementType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for AchievementType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class ItemTimeTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(ItemTimeType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(ItemTimeType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(ItemTimeType), L, null, 3, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "EquipedTime", ItemTimeType.EquipedTime);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RealityTime", ItemTimeType.RealityTime);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(ItemTimeType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushItemTimeType(L, (ItemTimeType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "EquipedTime"))
+                {
+                    translator.PushItemTimeType(L, ItemTimeType.EquipedTime);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RealityTime"))
+                {
+                    translator.PushItemTimeType(L, ItemTimeType.RealityTime);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for ItemTimeType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for ItemTimeType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class TitleBtnStateWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(TitleBtnState), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(TitleBtnState), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(TitleBtnState), L, null, 4, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Normal", TitleBtnState.Normal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Click", TitleBtnState.Click);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Locked", TitleBtnState.Locked);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(TitleBtnState), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushTitleBtnState(L, (TitleBtnState)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Normal"))
+                {
+                    translator.PushTitleBtnState(L, TitleBtnState.Normal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Click"))
+                {
+                    translator.PushTitleBtnState(L, TitleBtnState.Click);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Locked"))
+                {
+                    translator.PushTitleBtnState(L, TitleBtnState.Locked);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for TitleBtnState!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for TitleBtnState! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class LegendAttrTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(LegendAttrType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(LegendAttrType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(LegendAttrType), L, null, 4, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Normal", LegendAttrType.Normal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pursuit", LegendAttrType.Pursuit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Fixed", LegendAttrType.Fixed);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(LegendAttrType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushLegendAttrType(L, (LegendAttrType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Normal"))
+                {
+                    translator.PushLegendAttrType(L, LegendAttrType.Normal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pursuit"))
+                {
+                    translator.PushLegendAttrType(L, LegendAttrType.Pursuit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Fixed"))
+                {
+                    translator.PushLegendAttrType(L, LegendAttrType.Fixed);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for LegendAttrType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for LegendAttrType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class ServerStateWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(ServerState), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(ServerState), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(ServerState), L, null, 6, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Maintain", ServerState.Maintain);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Normal", ServerState.Normal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Busy", ServerState.Busy);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Hot", ServerState.Hot);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Predicted", ServerState.Predicted);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(ServerState), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushServerState(L, (ServerState)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Maintain"))
+                {
+                    translator.PushServerState(L, ServerState.Maintain);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Normal"))
+                {
+                    translator.PushServerState(L, ServerState.Normal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Busy"))
+                {
+                    translator.PushServerState(L, ServerState.Busy);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Hot"))
+                {
+                    translator.PushServerState(L, ServerState.Hot);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Predicted"))
+                {
+                    translator.PushServerState(L, ServerState.Predicted);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for ServerState!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for ServerState! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class ItemUseDataKeyWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(ItemUseDataKey), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(ItemUseDataKey), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(ItemUseDataKey), L, null, 29, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "mapLoaction", ItemUseDataKey.mapLoaction);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "legendAttrID", ItemUseDataKey.legendAttrID);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "itemCount", ItemUseDataKey.itemCount);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "legendAttrValue", ItemUseDataKey.legendAttrValue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "outOfPrintAttrID", ItemUseDataKey.outOfPrintAttrID);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "outOfPrintAttrValue", ItemUseDataKey.outOfPrintAttrValue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "itemColor", ItemUseDataKey.itemColor);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "cancelUseLimit", ItemUseDataKey.cancelUseLimit);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "source", ItemUseDataKey.source);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "wingMaterialItemID", ItemUseDataKey.wingMaterialItemID);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "wingMaterialItemCount", ItemUseDataKey.wingMaterialItemCount);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "suiteLV", ItemUseDataKey.suiteLV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "dogzEquipPlus", ItemUseDataKey.dogzEquipPlus);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "hasOpenCnt", ItemUseDataKey.hasOpenCnt);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "itemDecompound", ItemUseDataKey.itemDecompound);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "createItemLoginDay", ItemUseDataKey.createItemLoginDay);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "lastOpenItemLoginDay", ItemUseDataKey.lastOpenItemLoginDay);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "runeLV", ItemUseDataKey.runeLV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "birthChartLV", ItemUseDataKey.birthChartLV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "wingProgressValue", ItemUseDataKey.wingProgressValue);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "createTime", ItemUseDataKey.createTime);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "totalTime", ItemUseDataKey.totalTime);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "auctionItemCreateTime", ItemUseDataKey.auctionItemCreateTime);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "pet_NPCID", ItemUseDataKey.pet_NPCID);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "pet_ClassLV", ItemUseDataKey.pet_ClassLV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "pet_State", ItemUseDataKey.pet_State);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "pet_QualityLV", ItemUseDataKey.pet_QualityLV);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "pet_Skill", ItemUseDataKey.pet_Skill);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(ItemUseDataKey), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushItemUseDataKey(L, (ItemUseDataKey)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "mapLoaction"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.mapLoaction);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "legendAttrID"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.legendAttrID);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "itemCount"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.itemCount);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "legendAttrValue"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.legendAttrValue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "outOfPrintAttrID"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.outOfPrintAttrID);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "outOfPrintAttrValue"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.outOfPrintAttrValue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "itemColor"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.itemColor);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "cancelUseLimit"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.cancelUseLimit);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "source"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.source);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "wingMaterialItemID"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.wingMaterialItemID);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "wingMaterialItemCount"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.wingMaterialItemCount);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "suiteLV"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.suiteLV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "dogzEquipPlus"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.dogzEquipPlus);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "hasOpenCnt"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.hasOpenCnt);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "itemDecompound"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.itemDecompound);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "createItemLoginDay"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.createItemLoginDay);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "lastOpenItemLoginDay"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.lastOpenItemLoginDay);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "runeLV"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.runeLV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "birthChartLV"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.birthChartLV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "wingProgressValue"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.wingProgressValue);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "createTime"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.createTime);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "totalTime"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.totalTime);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "auctionItemCreateTime"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.auctionItemCreateTime);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "pet_NPCID"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.pet_NPCID);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "pet_ClassLV"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.pet_ClassLV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "pet_State"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.pet_State);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "pet_QualityLV"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.pet_QualityLV);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "pet_Skill"))
+                {
+                    translator.PushItemUseDataKey(L, ItemUseDataKey.pet_Skill);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for ItemUseDataKey!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for ItemUseDataKey! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class ItemOperateTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(ItemOperateType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(ItemOperateType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(ItemOperateType), L, null, 24, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "makeUse", ItemOperateType.makeUse);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "putOn", ItemOperateType.putOn);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "dismantle", ItemOperateType.dismantle);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "split", ItemOperateType.split);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "putAway", ItemOperateType.putAway);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "compose", ItemOperateType.compose);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "sell", ItemOperateType.sell);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "putOff", ItemOperateType.putOff);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "putIn", ItemOperateType.putIn);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "putOut", ItemOperateType.putOut);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "exchange", ItemOperateType.exchange);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "buy", ItemOperateType.buy);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "putItemout", ItemOperateType.putItemout);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "renewal", ItemOperateType.renewal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "refine", ItemOperateType.refine);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "LevelUp", ItemOperateType.LevelUp);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Resolve", ItemOperateType.Resolve);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Wear", ItemOperateType.Wear);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Replace", ItemOperateType.Replace);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "strength", ItemOperateType.strength);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "inlay", ItemOperateType.inlay);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "train", ItemOperateType.train);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "star", ItemOperateType.star);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(ItemOperateType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushItemOperateType(L, (ItemOperateType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "makeUse"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.makeUse);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "putOn"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.putOn);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "dismantle"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.dismantle);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "split"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.split);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "putAway"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.putAway);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "compose"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.compose);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "sell"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.sell);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "putOff"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.putOff);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "putIn"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.putIn);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "putOut"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.putOut);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "exchange"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.exchange);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "buy"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.buy);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "putItemout"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.putItemout);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "renewal"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.renewal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "refine"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.refine);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "LevelUp"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.LevelUp);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Resolve"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.Resolve);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Wear"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.Wear);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Replace"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.Replace);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "strength"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.strength);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "inlay"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.inlay);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "train"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.train);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "star"))
+                {
+                    translator.PushItemOperateType(L, ItemOperateType.star);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for ItemOperateType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for ItemOperateType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class ItemWinTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(ItemWinType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(ItemWinType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(ItemWinType), L, null, 12, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "itemWin", ItemWinType.itemWin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "boxWin", ItemWinType.boxWin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "equipWin", ItemWinType.equipWin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "wingsWin", ItemWinType.wingsWin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "guardWin", ItemWinType.guardWin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "buyItemWin", ItemWinType.buyItemWin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "buyBoxWin", ItemWinType.buyBoxWin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "petMatWin", ItemWinType.petMatWin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "buyPetMatWin", ItemWinType.buyPetMatWin);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "gatherSoul", ItemWinType.gatherSoul);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "kingTreasure", ItemWinType.kingTreasure);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(ItemWinType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushItemWinType(L, (ItemWinType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "itemWin"))
+                {
+                    translator.PushItemWinType(L, ItemWinType.itemWin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "boxWin"))
+                {
+                    translator.PushItemWinType(L, ItemWinType.boxWin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "equipWin"))
+                {
+                    translator.PushItemWinType(L, ItemWinType.equipWin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "wingsWin"))
+                {
+                    translator.PushItemWinType(L, ItemWinType.wingsWin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "guardWin"))
+                {
+                    translator.PushItemWinType(L, ItemWinType.guardWin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "buyItemWin"))
+                {
+                    translator.PushItemWinType(L, ItemWinType.buyItemWin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "buyBoxWin"))
+                {
+                    translator.PushItemWinType(L, ItemWinType.buyBoxWin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "petMatWin"))
+                {
+                    translator.PushItemWinType(L, ItemWinType.petMatWin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "buyPetMatWin"))
+                {
+                    translator.PushItemWinType(L, ItemWinType.buyPetMatWin);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "gatherSoul"))
+                {
+                    translator.PushItemWinType(L, ItemWinType.gatherSoul);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "kingTreasure"))
+                {
+                    translator.PushItemWinType(L, ItemWinType.kingTreasure);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for ItemWinType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for ItemWinType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class ItemTipChildTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(ItemTipChildType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(ItemTipChildType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(ItemTipChildType), L, null, 7, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Normal", ItemTipChildType.Normal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Buy", ItemTipChildType.Buy);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "UnionWarehouseDonation", ItemTipChildType.UnionWarehouseDonation);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "UnionWarehouseExchange", ItemTipChildType.UnionWarehouseExchange);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GetEquipPath", ItemTipChildType.GetEquipPath);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "GetWingsPath", ItemTipChildType.GetWingsPath);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(ItemTipChildType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushItemTipChildType(L, (ItemTipChildType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Normal"))
+                {
+                    translator.PushItemTipChildType(L, ItemTipChildType.Normal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Buy"))
+                {
+                    translator.PushItemTipChildType(L, ItemTipChildType.Buy);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "UnionWarehouseDonation"))
+                {
+                    translator.PushItemTipChildType(L, ItemTipChildType.UnionWarehouseDonation);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "UnionWarehouseExchange"))
+                {
+                    translator.PushItemTipChildType(L, ItemTipChildType.UnionWarehouseExchange);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GetEquipPath"))
+                {
+                    translator.PushItemTipChildType(L, ItemTipChildType.GetEquipPath);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "GetWingsPath"))
+                {
+                    translator.PushItemTipChildType(L, ItemTipChildType.GetWingsPath);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for ItemTipChildType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for ItemTipChildType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class InstalledAssetWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(InstalledAsset), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(InstalledAsset), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(InstalledAsset), L, null, 5, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "NullAsset", InstalledAsset.NullAsset);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "HalfAsset", InstalledAsset.HalfAsset);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FullAsset", InstalledAsset.FullAsset);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "IngoreDownLoad", InstalledAsset.IngoreDownLoad);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(InstalledAsset), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushInstalledAsset(L, (InstalledAsset)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "NullAsset"))
+                {
+                    translator.PushInstalledAsset(L, InstalledAsset.NullAsset);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "HalfAsset"))
+                {
+                    translator.PushInstalledAsset(L, InstalledAsset.HalfAsset);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "FullAsset"))
+                {
+                    translator.PushInstalledAsset(L, InstalledAsset.FullAsset);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "IngoreDownLoad"))
+                {
+                    translator.PushInstalledAsset(L, InstalledAsset.IngoreDownLoad);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for InstalledAsset!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for InstalledAsset! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class VersionAuthorityWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(VersionAuthority), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(VersionAuthority), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(VersionAuthority), L, null, 3, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "InterTest", VersionAuthority.InterTest);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Release", VersionAuthority.Release);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(VersionAuthority), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushVersionAuthority(L, (VersionAuthority)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "InterTest"))
+                {
+                    translator.PushVersionAuthority(L, VersionAuthority.InterTest);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Release"))
+                {
+                    translator.PushVersionAuthority(L, VersionAuthority.Release);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for VersionAuthority!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for VersionAuthority! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class FootAudioTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(FootAudioType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(FootAudioType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(FootAudioType), L, null, 4, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Walk", FootAudioType.Walk);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Ride", FootAudioType.Ride);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Fly", FootAudioType.Fly);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(FootAudioType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushFootAudioType(L, (FootAudioType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "Walk"))
+                {
+                    translator.PushFootAudioType(L, FootAudioType.Walk);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Ride"))
+                {
+                    translator.PushFootAudioType(L, FootAudioType.Ride);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Fly"))
+                {
+                    translator.PushFootAudioType(L, FootAudioType.Fly);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for FootAudioType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for FootAudioType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class AttackFailTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(AttackFailType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(AttackFailType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(AttackFailType), L, null, 4, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillFail_Other", AttackFailType.SkillFail_Other);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillFail_CD", AttackFailType.SkillFail_CD);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "SkillFail_AtkInterval", AttackFailType.SkillFail_AtkInterval);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(AttackFailType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushAttackFailType(L, (AttackFailType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "SkillFail_Other"))
+                {
+                    translator.PushAttackFailType(L, AttackFailType.SkillFail_Other);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillFail_CD"))
+                {
+                    translator.PushAttackFailType(L, AttackFailType.SkillFail_CD);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "SkillFail_AtkInterval"))
+                {
+                    translator.PushAttackFailType(L, AttackFailType.SkillFail_AtkInterval);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for AttackFailType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for AttackFailType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class DungeonFightStageWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(DungeonFightStage), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(DungeonFightStage), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(DungeonFightStage), L, null, 7, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "None", DungeonFightStage.None);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Prepare", DungeonFightStage.Prepare);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Normal", DungeonFightStage.Normal);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "PickUp", DungeonFightStage.PickUp);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ExitPrepare", DungeonFightStage.ExitPrepare);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "ElderGodAreaNearDead", DungeonFightStage.ElderGodAreaNearDead);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(DungeonFightStage), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushDungeonFightStage(L, (DungeonFightStage)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "None"))
+                {
+                    translator.PushDungeonFightStage(L, DungeonFightStage.None);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Prepare"))
+                {
+                    translator.PushDungeonFightStage(L, DungeonFightStage.Prepare);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Normal"))
+                {
+                    translator.PushDungeonFightStage(L, DungeonFightStage.Normal);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "PickUp"))
+                {
+                    translator.PushDungeonFightStage(L, DungeonFightStage.PickUp);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ExitPrepare"))
+                {
+                    translator.PushDungeonFightStage(L, DungeonFightStage.ExitPrepare);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "ElderGodAreaNearDead"))
+                {
+                    translator.PushDungeonFightStage(L, DungeonFightStage.ElderGodAreaNearDead);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for DungeonFightStage!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for DungeonFightStage! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class RankTypeWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(RankType), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(RankType), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(RankType), L, null, 24, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "FightPower", RankType.FightPower);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Job1FightPower", RankType.Job1FightPower);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Job2FightPower", RankType.Job2FightPower);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Job3FightPower", RankType.Job3FightPower);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Level", RankType.Level);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Mount", RankType.Mount);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pet", RankType.Pet);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "RuneTower", RankType.RuneTower);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OfflineExp", RankType.OfflineExp);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Realm", RankType.Realm);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenServerStrengthen", RankType.OpenServerStrengthen);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenServerMount", RankType.OpenServerMount);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenServerGem", RankType.OpenServerGem);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenServerLv", RankType.OpenServerLv);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenServerRealm", RankType.OpenServerRealm);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenServerFightPower", RankType.OpenServerFightPower);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_BT_FCCostGold", RankType.Def_BT_FCCostGold);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenServerRune", RankType.OpenServerRune);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenServerGodWeapon", RankType.OpenServerGodWeapon);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenServerRecharge", RankType.OpenServerRecharge);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "OpenServerPet", RankType.OpenServerPet);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "JadeDynastyTower", RankType.JadeDynastyTower);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Def_BT_NewFCCostGold", RankType.Def_BT_NewFCCostGold);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(RankType), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushRankType(L, (RankType)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "FightPower"))
+                {
+                    translator.PushRankType(L, RankType.FightPower);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Job1FightPower"))
+                {
+                    translator.PushRankType(L, RankType.Job1FightPower);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Job2FightPower"))
+                {
+                    translator.PushRankType(L, RankType.Job2FightPower);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Job3FightPower"))
+                {
+                    translator.PushRankType(L, RankType.Job3FightPower);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Level"))
+                {
+                    translator.PushRankType(L, RankType.Level);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Mount"))
+                {
+                    translator.PushRankType(L, RankType.Mount);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pet"))
+                {
+                    translator.PushRankType(L, RankType.Pet);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "RuneTower"))
+                {
+                    translator.PushRankType(L, RankType.RuneTower);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OfflineExp"))
+                {
+                    translator.PushRankType(L, RankType.OfflineExp);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Realm"))
+                {
+                    translator.PushRankType(L, RankType.Realm);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OpenServerStrengthen"))
+                {
+                    translator.PushRankType(L, RankType.OpenServerStrengthen);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OpenServerMount"))
+                {
+                    translator.PushRankType(L, RankType.OpenServerMount);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OpenServerGem"))
+                {
+                    translator.PushRankType(L, RankType.OpenServerGem);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OpenServerLv"))
+                {
+                    translator.PushRankType(L, RankType.OpenServerLv);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OpenServerRealm"))
+                {
+                    translator.PushRankType(L, RankType.OpenServerRealm);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OpenServerFightPower"))
+                {
+                    translator.PushRankType(L, RankType.OpenServerFightPower);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_BT_FCCostGold"))
+                {
+                    translator.PushRankType(L, RankType.Def_BT_FCCostGold);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OpenServerRune"))
+                {
+                    translator.PushRankType(L, RankType.OpenServerRune);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OpenServerGodWeapon"))
+                {
+                    translator.PushRankType(L, RankType.OpenServerGodWeapon);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OpenServerRecharge"))
+                {
+                    translator.PushRankType(L, RankType.OpenServerRecharge);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "OpenServerPet"))
+                {
+                    translator.PushRankType(L, RankType.OpenServerPet);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "JadeDynastyTower"))
+                {
+                    translator.PushRankType(L, RankType.JadeDynastyTower);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Def_BT_NewFCCostGold"))
+                {
+                    translator.PushRankType(L, RankType.Def_BT_NewFCCostGold);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for RankType!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for RankType! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
+    public class PetOrMountWrap
+    {
+		public static void __Register(RealStatePtr L)
+        {
+		    ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+		    Utils.BeginObjectRegister(typeof(PetOrMount), L, translator, 0, 0, 0, 0);
+			Utils.EndObjectRegister(typeof(PetOrMount), L, translator, null, null, null, null, null);
+			
+			Utils.BeginClassRegister(typeof(PetOrMount), L, null, 4, 0, 0);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "None", PetOrMount.None);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Pet", PetOrMount.Pet);
+            
+            Utils.RegisterObject(L, translator, Utils.CLS_IDX, "Mount", PetOrMount.Mount);
+            
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "__CastFrom", __CastFrom);
+            
+            Utils.EndClassRegister(typeof(PetOrMount), L, translator);
+        }
+		
+		[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CastFrom(RealStatePtr L)
+		{
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			LuaTypes lua_type = LuaAPI.lua_type(L, 1);
+            if (lua_type == LuaTypes.LUA_TNUMBER)
+            {
+                translator.PushPetOrMount(L, (PetOrMount)LuaAPI.xlua_tointeger(L, 1));
+            }
+			
+            else if(lua_type == LuaTypes.LUA_TSTRING)
+            {
+			    if (LuaAPI.xlua_is_eq_str(L, 1, "None"))
+                {
+                    translator.PushPetOrMount(L, PetOrMount.None);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Pet"))
+                {
+                    translator.PushPetOrMount(L, PetOrMount.Pet);
+                }
+				else if (LuaAPI.xlua_is_eq_str(L, 1, "Mount"))
+                {
+                    translator.PushPetOrMount(L, PetOrMount.Mount);
+                }
+				else
+                {
+                    return LuaAPI.luaL_error(L, "invalid string for PetOrMount!");
+                }
+            }
+			
+            else
+            {
+                return LuaAPI.luaL_error(L, "invalid lua type for PetOrMount! Expect number or string, got + " + lua_type);
+            }
+
+            return 1;
+		}
+	}
+    
 }
\ No newline at end of file
diff --git a/Lua/Gen/SnxxzUIConfirmCancelWrap.cs b/Lua/Gen/SnxxzUIConfirmCancelWrap.cs
new file mode 100644
index 0000000..c561a15
--- /dev/null
+++ b/Lua/Gen/SnxxzUIConfirmCancelWrap.cs
@@ -0,0 +1,917 @@
+锘�#if USE_UNI_LUA
+using LuaAPI = UniLua.Lua;
+using RealStatePtr = UniLua.ILuaState;
+using LuaCSFunction = UniLua.CSharpFunctionDelegate;
+#else
+using LuaAPI = XLua.LuaDLL.Lua;
+using RealStatePtr = System.IntPtr;
+using LuaCSFunction = XLua.LuaDLL.lua_CSFunction;
+#endif
+
+using XLua;
+using System.Collections.Generic;
+
+
+namespace XLua.CSObjectWrap
+{
+    using Utils = XLua.Utils;
+    public class SnxxzUIConfirmCancelWrap 
+    {
+        public static void __Register(RealStatePtr L)
+        {
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			System.Type type = typeof(Snxxz.UI.ConfirmCancel);
+			Utils.BeginObjectRegister(type, L, translator, 0, 0, 0, 0);
+			
+			
+			
+			
+			
+			
+			Utils.EndObjectRegister(type, L, translator, null, null,
+			    null, null, null);
+
+		    Utils.BeginClassRegister(type, L, __CreateInstance, 8, 24, 17);
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "ShowPopConfirm", _m_ShowPopConfirm_xlua_st_);
+            Utils.RegisterFunc(L, Utils.CLS_IDX, "ShowRealmPopConfirm", _m_ShowRealmPopConfirm_xlua_st_);
+            Utils.RegisterFunc(L, Utils.CLS_IDX, "ShowRuneTowerPopConfirm", _m_ShowRuneTowerPopConfirm_xlua_st_);
+            Utils.RegisterFunc(L, Utils.CLS_IDX, "ToggleConfirmCancel", _m_ToggleConfirmCancel_xlua_st_);
+            Utils.RegisterFunc(L, Utils.CLS_IDX, "IconConfirmCancel", _m_IconConfirmCancel_xlua_st_);
+            Utils.RegisterFunc(L, Utils.CLS_IDX, "ShowFairyLeagueGuide", _m_ShowFairyLeagueGuide_xlua_st_);
+            Utils.RegisterFunc(L, Utils.CLS_IDX, "ShowItemConfirm", _m_ShowItemConfirm_xlua_st_);
+            
+			
+            
+			Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "popConfirmTitle", _g_get_popConfirmTitle);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "popConfirmInfo", _g_get_popConfirmInfo);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "IsSingleConfirm", _g_get_IsSingleConfirm);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "OKName", _g_get_OKName);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "toggleContent", _g_get_toggleContent);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "toggleOpenState", _g_get_toggleOpenState);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "iconToggleText", _g_get_iconToggleText);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "OnPopConfirmClickEvent", _g_get_OnPopConfirmClickEvent);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "OnPopSingleConfirmEvent", _g_get_OnPopSingleConfirmEvent);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "generalTitle", _g_get_generalTitle);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "generalContent", _g_get_generalContent);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "OnToggleConfirmEvent", _g_get_OnToggleConfirmEvent);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "iconTitle", _g_get_iconTitle);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "iconTopInfo", _g_get_iconTopInfo);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "iconBottomInfo", _g_get_iconBottomInfo);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "iconItemId", _g_get_iconItemId);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "iconNeedCnt", _g_get_iconNeedCnt);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "iconHaveCnt", _g_get_iconHaveCnt);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "OnIconToggleConfirmAct", _g_get_OnIconToggleConfirmAct);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "OnFairyLeagueGuideEvent", _g_get_OnFairyLeagueGuideEvent);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "generalItemTip", _g_get_generalItemTip);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "generalItemId", _g_get_generalItemId);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "generalItemCnt", _g_get_generalItemCnt);
+            Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "ItemConfirmEvent", _g_get_ItemConfirmEvent);
+            
+			Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "OnPopConfirmClickEvent", _s_set_OnPopConfirmClickEvent);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "OnPopSingleConfirmEvent", _s_set_OnPopSingleConfirmEvent);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "generalTitle", _s_set_generalTitle);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "generalContent", _s_set_generalContent);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "OnToggleConfirmEvent", _s_set_OnToggleConfirmEvent);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "iconTitle", _s_set_iconTitle);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "iconTopInfo", _s_set_iconTopInfo);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "iconBottomInfo", _s_set_iconBottomInfo);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "iconItemId", _s_set_iconItemId);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "iconNeedCnt", _s_set_iconNeedCnt);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "iconHaveCnt", _s_set_iconHaveCnt);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "OnIconToggleConfirmAct", _s_set_OnIconToggleConfirmAct);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "OnFairyLeagueGuideEvent", _s_set_OnFairyLeagueGuideEvent);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "generalItemTip", _s_set_generalItemTip);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "generalItemId", _s_set_generalItemId);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "generalItemCnt", _s_set_generalItemCnt);
+            Utils.RegisterFunc(L, Utils.CLS_SETTER_IDX, "ItemConfirmEvent", _s_set_ItemConfirmEvent);
+            
+			
+			Utils.EndClassRegister(type, L, translator);
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CreateInstance(RealStatePtr L)
+        {
+            
+			try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+				if(LuaAPI.lua_gettop(L) == 1)
+				{
+					
+					Snxxz.UI.ConfirmCancel gen_ret = new Snxxz.UI.ConfirmCancel();
+					translator.Push(L, gen_ret);
+                    
+					return 1;
+				}
+				
+			}
+			catch(System.Exception gen_e) {
+				return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+			}
+            return LuaAPI.luaL_error(L, "invalid arguments to Snxxz.UI.ConfirmCancel constructor!");
+            
+        }
+        
+		
+        
+		
+        
+        
+        
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_ShowPopConfirm_xlua_st_(RealStatePtr L)
+        {
+		    try {
+            
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+            
+            
+            
+			    int gen_param_count = LuaAPI.lua_gettop(L);
+            
+                if(gen_param_count == 3&& (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)&& (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)&& translator.Assignable<System.Action<bool>>(L, 3)) 
+                {
+                    string _title = LuaAPI.lua_tostring(L, 1);
+                    string _info = LuaAPI.lua_tostring(L, 2);
+                    System.Action<bool> _func = translator.GetDelegate<System.Action<bool>>(L, 3);
+                    
+                    Snxxz.UI.ConfirmCancel.ShowPopConfirm( _title, _info, _func );
+                    
+                    
+                    
+                    return 0;
+                }
+                if(gen_param_count == 3&& (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)&& (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)&& translator.Assignable<System.Action>(L, 3)) 
+                {
+                    string _title = LuaAPI.lua_tostring(L, 1);
+                    string _info = LuaAPI.lua_tostring(L, 2);
+                    System.Action _func = translator.GetDelegate<System.Action>(L, 3);
+                    
+                    Snxxz.UI.ConfirmCancel.ShowPopConfirm( _title, _info, _func );
+                    
+                    
+                    
+                    return 0;
+                }
+                if(gen_param_count == 2&& (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)&& (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)) 
+                {
+                    string _title = LuaAPI.lua_tostring(L, 1);
+                    string _info = LuaAPI.lua_tostring(L, 2);
+                    
+                    Snxxz.UI.ConfirmCancel.ShowPopConfirm( _title, _info );
+                    
+                    
+                    
+                    return 0;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+            return LuaAPI.luaL_error(L, "invalid arguments to Snxxz.UI.ConfirmCancel.ShowPopConfirm!");
+            
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_ShowRealmPopConfirm_xlua_st_(RealStatePtr L)
+        {
+		    try {
+            
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+            
+            
+            
+			    int gen_param_count = LuaAPI.lua_gettop(L);
+            
+                if(gen_param_count == 4&& (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)&& (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)&& (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING)&& translator.Assignable<System.Action>(L, 4)) 
+                {
+                    string _title = LuaAPI.lua_tostring(L, 1);
+                    string _info = LuaAPI.lua_tostring(L, 2);
+                    string _okName = LuaAPI.lua_tostring(L, 3);
+                    System.Action _func = translator.GetDelegate<System.Action>(L, 4);
+                    
+                    Snxxz.UI.ConfirmCancel.ShowRealmPopConfirm( _title, _info, _okName, _func );
+                    
+                    
+                    
+                    return 0;
+                }
+                if(gen_param_count == 3&& (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)&& (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)&& (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING)) 
+                {
+                    string _title = LuaAPI.lua_tostring(L, 1);
+                    string _info = LuaAPI.lua_tostring(L, 2);
+                    string _okName = LuaAPI.lua_tostring(L, 3);
+                    
+                    Snxxz.UI.ConfirmCancel.ShowRealmPopConfirm( _title, _info, _okName );
+                    
+                    
+                    
+                    return 0;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+            return LuaAPI.luaL_error(L, "invalid arguments to Snxxz.UI.ConfirmCancel.ShowRealmPopConfirm!");
+            
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_ShowRuneTowerPopConfirm_xlua_st_(RealStatePtr L)
+        {
+		    try {
+            
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+            
+            
+            
+                
+                {
+                    string _title = LuaAPI.lua_tostring(L, 1);
+                    string _info = LuaAPI.lua_tostring(L, 2);
+                    System.Action<bool> _func = translator.GetDelegate<System.Action<bool>>(L, 3);
+                    
+                    Snxxz.UI.ConfirmCancel.ShowRuneTowerPopConfirm( _title, _info, _func );
+                    
+                    
+                    
+                    return 0;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_ToggleConfirmCancel_xlua_st_(RealStatePtr L)
+        {
+		    try {
+            
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+            
+            
+            
+			    int gen_param_count = LuaAPI.lua_gettop(L);
+            
+                if(gen_param_count == 5&& (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)&& (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)&& (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING)&& translator.Assignable<System.Action<bool, bool>>(L, 4)&& LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 5)) 
+                {
+                    string _title = LuaAPI.lua_tostring(L, 1);
+                    string _content = LuaAPI.lua_tostring(L, 2);
+                    string _toggleTxt = LuaAPI.lua_tostring(L, 3);
+                    System.Action<bool, bool> _func = translator.GetDelegate<System.Action<bool, bool>>(L, 4);
+                    bool __toggle = LuaAPI.lua_toboolean(L, 5);
+                    
+                    Snxxz.UI.ConfirmCancel.ToggleConfirmCancel( _title, _content, _toggleTxt, _func, __toggle );
+                    
+                    
+                    
+                    return 0;
+                }
+                if(gen_param_count == 4&& (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)&& (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING)&& (LuaAPI.lua_isnil(L, 3) || LuaAPI.lua_type(L, 3) == LuaTypes.LUA_TSTRING)&& translator.Assignable<System.Action<bool, bool>>(L, 4)) 
+                {
+                    string _title = LuaAPI.lua_tostring(L, 1);
+                    string _content = LuaAPI.lua_tostring(L, 2);
+                    string _toggleTxt = LuaAPI.lua_tostring(L, 3);
+                    System.Action<bool, bool> _func = translator.GetDelegate<System.Action<bool, bool>>(L, 4);
+                    
+                    Snxxz.UI.ConfirmCancel.ToggleConfirmCancel( _title, _content, _toggleTxt, _func );
+                    
+                    
+                    
+                    return 0;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+            return LuaAPI.luaL_error(L, "invalid arguments to Snxxz.UI.ConfirmCancel.ToggleConfirmCancel!");
+            
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_IconConfirmCancel_xlua_st_(RealStatePtr L)
+        {
+		    try {
+            
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+            
+            
+            
+                
+                {
+                    string _title = LuaAPI.lua_tostring(L, 1);
+                    string _topInfo = LuaAPI.lua_tostring(L, 2);
+                    int _id = LuaAPI.xlua_tointeger(L, 3);
+                    int _haveCnt = LuaAPI.xlua_tointeger(L, 4);
+                    int _needCnt = LuaAPI.xlua_tointeger(L, 5);
+                    string _bottomInfo = LuaAPI.lua_tostring(L, 6);
+                    string _toggleTxt = LuaAPI.lua_tostring(L, 7);
+                    System.Action<bool, bool> _func = translator.GetDelegate<System.Action<bool, bool>>(L, 8);
+                    
+                    Snxxz.UI.ConfirmCancel.IconConfirmCancel( _title, _topInfo, _id, _haveCnt, _needCnt, _bottomInfo, _toggleTxt, _func );
+                    
+                    
+                    
+                    return 0;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_ShowFairyLeagueGuide_xlua_st_(RealStatePtr L)
+        {
+		    try {
+            
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+            
+            
+            
+			    int gen_param_count = LuaAPI.lua_gettop(L);
+            
+                if(gen_param_count == 1&& translator.Assignable<System.Action<bool>>(L, 1)) 
+                {
+                    System.Action<bool> _func = translator.GetDelegate<System.Action<bool>>(L, 1);
+                    
+                    Snxxz.UI.ConfirmCancel.ShowFairyLeagueGuide( _func );
+                    
+                    
+                    
+                    return 0;
+                }
+                if(gen_param_count == 0) 
+                {
+                    
+                    Snxxz.UI.ConfirmCancel.ShowFairyLeagueGuide(  );
+                    
+                    
+                    
+                    return 0;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+            return LuaAPI.luaL_error(L, "invalid arguments to Snxxz.UI.ConfirmCancel.ShowFairyLeagueGuide!");
+            
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_ShowItemConfirm_xlua_st_(RealStatePtr L)
+        {
+		    try {
+            
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+            
+            
+            
+                
+                {
+                    string _info = LuaAPI.lua_tostring(L, 1);
+                    int __itemId = LuaAPI.xlua_tointeger(L, 2);
+                    int __itemCnt = LuaAPI.xlua_tointeger(L, 3);
+                    System.Action _func = translator.GetDelegate<System.Action>(L, 4);
+                    
+                    Snxxz.UI.ConfirmCancel.ShowItemConfirm( _info, __itemId, __itemCnt, _func );
+                    
+                    
+                    
+                    return 0;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+        }
+        
+        
+        
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_popConfirmTitle(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushstring(L, Snxxz.UI.ConfirmCancel.popConfirmTitle);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_popConfirmInfo(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushstring(L, Snxxz.UI.ConfirmCancel.popConfirmInfo);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_IsSingleConfirm(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushboolean(L, Snxxz.UI.ConfirmCancel.IsSingleConfirm);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_OKName(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushstring(L, Snxxz.UI.ConfirmCancel.OKName);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_toggleContent(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushstring(L, Snxxz.UI.ConfirmCancel.toggleContent);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_toggleOpenState(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushboolean(L, Snxxz.UI.ConfirmCancel.toggleOpenState);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_iconToggleText(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushstring(L, Snxxz.UI.ConfirmCancel.iconToggleText);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_OnPopConfirmClickEvent(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			    translator.Push(L, Snxxz.UI.ConfirmCancel.OnPopConfirmClickEvent);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_OnPopSingleConfirmEvent(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			    translator.Push(L, Snxxz.UI.ConfirmCancel.OnPopSingleConfirmEvent);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_generalTitle(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushstring(L, Snxxz.UI.ConfirmCancel.generalTitle);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_generalContent(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushstring(L, Snxxz.UI.ConfirmCancel.generalContent);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_OnToggleConfirmEvent(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			    translator.Push(L, Snxxz.UI.ConfirmCancel.OnToggleConfirmEvent);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_iconTitle(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushstring(L, Snxxz.UI.ConfirmCancel.iconTitle);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_iconTopInfo(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushstring(L, Snxxz.UI.ConfirmCancel.iconTopInfo);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_iconBottomInfo(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushstring(L, Snxxz.UI.ConfirmCancel.iconBottomInfo);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_iconItemId(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.xlua_pushinteger(L, Snxxz.UI.ConfirmCancel.iconItemId);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_iconNeedCnt(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.xlua_pushinteger(L, Snxxz.UI.ConfirmCancel.iconNeedCnt);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_iconHaveCnt(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.xlua_pushinteger(L, Snxxz.UI.ConfirmCancel.iconHaveCnt);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_OnIconToggleConfirmAct(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			    translator.Push(L, Snxxz.UI.ConfirmCancel.OnIconToggleConfirmAct);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_OnFairyLeagueGuideEvent(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			    translator.Push(L, Snxxz.UI.ConfirmCancel.OnFairyLeagueGuideEvent);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_generalItemTip(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushstring(L, Snxxz.UI.ConfirmCancel.generalItemTip);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_generalItemId(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.xlua_pushinteger(L, Snxxz.UI.ConfirmCancel.generalItemId);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_generalItemCnt(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.xlua_pushinteger(L, Snxxz.UI.ConfirmCancel.generalItemCnt);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_ItemConfirmEvent(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			    translator.Push(L, Snxxz.UI.ConfirmCancel.ItemConfirmEvent);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_OnPopConfirmClickEvent(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			    Snxxz.UI.ConfirmCancel.OnPopConfirmClickEvent = translator.GetDelegate<System.Action<bool>>(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_OnPopSingleConfirmEvent(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			    Snxxz.UI.ConfirmCancel.OnPopSingleConfirmEvent = translator.GetDelegate<System.Action>(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_generalTitle(RealStatePtr L)
+        {
+		    try {
+                
+			    Snxxz.UI.ConfirmCancel.generalTitle = LuaAPI.lua_tostring(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_generalContent(RealStatePtr L)
+        {
+		    try {
+                
+			    Snxxz.UI.ConfirmCancel.generalContent = LuaAPI.lua_tostring(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_OnToggleConfirmEvent(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			    Snxxz.UI.ConfirmCancel.OnToggleConfirmEvent = translator.GetDelegate<System.Action<bool, bool>>(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_iconTitle(RealStatePtr L)
+        {
+		    try {
+                
+			    Snxxz.UI.ConfirmCancel.iconTitle = LuaAPI.lua_tostring(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_iconTopInfo(RealStatePtr L)
+        {
+		    try {
+                
+			    Snxxz.UI.ConfirmCancel.iconTopInfo = LuaAPI.lua_tostring(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_iconBottomInfo(RealStatePtr L)
+        {
+		    try {
+                
+			    Snxxz.UI.ConfirmCancel.iconBottomInfo = LuaAPI.lua_tostring(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_iconItemId(RealStatePtr L)
+        {
+		    try {
+                
+			    Snxxz.UI.ConfirmCancel.iconItemId = LuaAPI.xlua_tointeger(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_iconNeedCnt(RealStatePtr L)
+        {
+		    try {
+                
+			    Snxxz.UI.ConfirmCancel.iconNeedCnt = LuaAPI.xlua_tointeger(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_iconHaveCnt(RealStatePtr L)
+        {
+		    try {
+                
+			    Snxxz.UI.ConfirmCancel.iconHaveCnt = LuaAPI.xlua_tointeger(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_OnIconToggleConfirmAct(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			    Snxxz.UI.ConfirmCancel.OnIconToggleConfirmAct = translator.GetDelegate<System.Action<bool, bool>>(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_OnFairyLeagueGuideEvent(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			    Snxxz.UI.ConfirmCancel.OnFairyLeagueGuideEvent = translator.GetDelegate<System.Action<bool>>(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_generalItemTip(RealStatePtr L)
+        {
+		    try {
+                
+			    Snxxz.UI.ConfirmCancel.generalItemTip = LuaAPI.lua_tostring(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_generalItemId(RealStatePtr L)
+        {
+		    try {
+                
+			    Snxxz.UI.ConfirmCancel.generalItemId = LuaAPI.xlua_tointeger(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_generalItemCnt(RealStatePtr L)
+        {
+		    try {
+                
+			    Snxxz.UI.ConfirmCancel.generalItemCnt = LuaAPI.xlua_tointeger(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _s_set_ItemConfirmEvent(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			    Snxxz.UI.ConfirmCancel.ItemConfirmEvent = translator.GetDelegate<System.Action>(L, 1);
+            
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 0;
+        }
+        
+		
+		
+		
+		
+    }
+}
diff --git a/Lua/Gen/SnxxzUIConfirmCancelWrap.cs.meta b/Lua/Gen/SnxxzUIConfirmCancelWrap.cs.meta
new file mode 100644
index 0000000..9bb7a32
--- /dev/null
+++ b/Lua/Gen/SnxxzUIConfirmCancelWrap.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 0d6d760a1fceb7245aef870e88a95d00
+timeCreated: 1557887671
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Lua/Gen/SnxxzUIDungeonModelWrap.cs b/Lua/Gen/SnxxzUIDungeonModelWrap.cs
index 8a9e0df..4779eeb 100644
--- a/Lua/Gen/SnxxzUIDungeonModelWrap.cs
+++ b/Lua/Gen/SnxxzUIDungeonModelWrap.cs
@@ -2090,7 +2090,7 @@
                 ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
 			
                 Snxxz.UI.DungeonModel gen_to_be_invoked = (Snxxz.UI.DungeonModel)translator.FastGetCSObj(L, 1);
-                translator.Push(L, gen_to_be_invoked.dungeonFightStage);
+                translator.PushDungeonFightStage(L, gen_to_be_invoked.dungeonFightStage);
             } catch(System.Exception gen_e) {
                 return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
             }
diff --git a/Lua/Gen/SnxxzUIFindPreciousModelWrap.cs b/Lua/Gen/SnxxzUIFindPreciousModelWrap.cs
index da296f4..8c5f027 100644
--- a/Lua/Gen/SnxxzUIFindPreciousModelWrap.cs
+++ b/Lua/Gen/SnxxzUIFindPreciousModelWrap.cs
@@ -860,7 +860,7 @@
                     int __bossId = LuaAPI.xlua_tointeger(L, 2);
                     
                         FindPreciousType gen_ret = gen_to_be_invoked.GetBossFindPreciousType( __bossId );
-                        translator.Push(L, gen_ret);
+                        translator.PushFindPreciousType(L, gen_ret);
                     
                     
                     
diff --git a/Lua/Gen/SnxxzUIFunctionButtonWrap.cs b/Lua/Gen/SnxxzUIFunctionButtonWrap.cs
index 02dba28..e4efd00 100644
--- a/Lua/Gen/SnxxzUIFunctionButtonWrap.cs
+++ b/Lua/Gen/SnxxzUIFunctionButtonWrap.cs
@@ -195,7 +195,7 @@
                 ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
 			
                 Snxxz.UI.FunctionButton gen_to_be_invoked = (Snxxz.UI.FunctionButton)translator.FastGetCSObj(L, 1);
-                translator.Push(L, gen_to_be_invoked.state);
+                translator.PushTitleBtnState(L, gen_to_be_invoked.state);
             } catch(System.Exception gen_e) {
                 return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
             }
diff --git a/Lua/Gen/SnxxzUIImpactRankModelWrap.cs b/Lua/Gen/SnxxzUIImpactRankModelWrap.cs
index 8102361..5388281 100644
--- a/Lua/Gen/SnxxzUIImpactRankModelWrap.cs
+++ b/Lua/Gen/SnxxzUIImpactRankModelWrap.cs
@@ -663,7 +663,7 @@
                     int __type = LuaAPI.xlua_tointeger(L, 2);
                     
                         RankType gen_ret = gen_to_be_invoked.GetRankType( __type );
-                        translator.Push(L, gen_ret);
+                        translator.PushRankType(L, gen_ret);
                     
                     
                     
@@ -1059,7 +1059,7 @@
                 ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
 			
                 Snxxz.UI.ImpactRankModel gen_to_be_invoked = (Snxxz.UI.ImpactRankModel)translator.FastGetCSObj(L, 1);
-                translator.Push(L, gen_to_be_invoked.presentBillRankType);
+                translator.PushRankType(L, gen_to_be_invoked.presentBillRankType);
             } catch(System.Exception gen_e) {
                 return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
             }
diff --git a/Lua/Gen/SnxxzUIItemTipsModelWrap.cs b/Lua/Gen/SnxxzUIItemTipsModelWrap.cs
index a1013f3..d56756c 100644
--- a/Lua/Gen/SnxxzUIItemTipsModelWrap.cs
+++ b/Lua/Gen/SnxxzUIItemTipsModelWrap.cs
@@ -479,7 +479,7 @@
                 ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
 			
                 Snxxz.UI.ItemTipsModel gen_to_be_invoked = (Snxxz.UI.ItemTipsModel)translator.FastGetCSObj(L, 1);
-                translator.Push(L, gen_to_be_invoked.packType);
+                translator.PushPackType(L, gen_to_be_invoked.packType);
             } catch(System.Exception gen_e) {
                 return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
             }
diff --git a/Lua/Gen/SnxxzUIRedpointCenterWrap.cs b/Lua/Gen/SnxxzUIRedpointCenterWrap.cs
index 4d48f09..79ecd78 100644
--- a/Lua/Gen/SnxxzUIRedpointCenterWrap.cs
+++ b/Lua/Gen/SnxxzUIRedpointCenterWrap.cs
@@ -205,7 +205,7 @@
                     int __id = LuaAPI.xlua_tointeger(L, 2);
                     
                         RedPointState gen_ret = gen_to_be_invoked.GetRedpointState( __id );
-                        translator.Push(L, gen_ret);
+                        translator.PushRedPointState(L, gen_ret);
                     
                     
                     
diff --git a/Lua/Gen/SnxxzUIRedpointWrap.cs b/Lua/Gen/SnxxzUIRedpointWrap.cs
index 41409c2..c394321 100644
--- a/Lua/Gen/SnxxzUIRedpointWrap.cs
+++ b/Lua/Gen/SnxxzUIRedpointWrap.cs
@@ -126,7 +126,7 @@
                 ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
 			
                 Snxxz.UI.Redpoint gen_to_be_invoked = (Snxxz.UI.Redpoint)translator.FastGetCSObj(L, 1);
-                translator.Push(L, gen_to_be_invoked.state);
+                translator.PushRedPointState(L, gen_to_be_invoked.state);
             } catch(System.Exception gen_e) {
                 return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
             }
diff --git a/Lua/Gen/SnxxzUIReikiRootModelWrap.cs b/Lua/Gen/SnxxzUIReikiRootModelWrap.cs
index 808f941..ad6d884 100644
--- a/Lua/Gen/SnxxzUIReikiRootModelWrap.cs
+++ b/Lua/Gen/SnxxzUIReikiRootModelWrap.cs
@@ -21,7 +21,7 @@
         {
 			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
 			System.Type type = typeof(Snxxz.UI.ReikiRootModel);
-			Utils.BeginObjectRegister(type, L, translator, 0, 21, 13, 6);
+			Utils.BeginObjectRegister(type, L, translator, 0, 22, 13, 6);
 			
 			Utils.RegisterFunc(L, Utils.METHOD_IDX, "Init", _m_Init);
 			Utils.RegisterFunc(L, Utils.METHOD_IDX, "OnBeforePlayerDataInitialize", _m_OnBeforePlayerDataInitialize);
@@ -31,6 +31,7 @@
 			Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetReikiRootPoint", _m_GetReikiRootPoint);
 			Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetReikiRootFreePoint", _m_GetReikiRootFreePoint);
 			Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetTotalWashPoint", _m_GetTotalWashPoint);
+			Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetReikiRootTotalPoint", _m_GetReikiRootTotalPoint);
 			Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetReikiRootRecommendPoint", _m_GetReikiRootRecommendPoint);
 			Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetQualityPoint", _m_GetQualityPoint);
 			Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetReikiRootProperty", _m_GetReikiRootProperty);
@@ -352,6 +353,34 @@
         }
         
         [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_GetReikiRootTotalPoint(RealStatePtr L)
+        {
+		    try {
+            
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+            
+            
+                Snxxz.UI.ReikiRootModel gen_to_be_invoked = (Snxxz.UI.ReikiRootModel)translator.FastGetCSObj(L, 1);
+            
+            
+                
+                {
+                    
+                        int gen_ret = gen_to_be_invoked.GetReikiRootTotalPoint(  );
+                        LuaAPI.xlua_pushinteger(L, gen_ret);
+                    
+                    
+                    
+                    return 1;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
         static int _m_GetReikiRootRecommendPoint(RealStatePtr L)
         {
 		    try {
diff --git a/Lua/Gen/SnxxzUITeamModelWrap.cs b/Lua/Gen/SnxxzUITeamModelWrap.cs
index 29a143e..86fc01c 100644
--- a/Lua/Gen/SnxxzUITeamModelWrap.cs
+++ b/Lua/Gen/SnxxzUITeamModelWrap.cs
@@ -1497,7 +1497,7 @@
                 ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
 			
                 Snxxz.UI.TeamModel gen_to_be_invoked = (Snxxz.UI.TeamModel)translator.FastGetCSObj(L, 1);
-                translator.Push(L, gen_to_be_invoked.currentInviteType);
+                translator.PushTeamInviteType(L, gen_to_be_invoked.currentInviteType);
             } catch(System.Exception gen_e) {
                 return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
             }
diff --git a/Lua/Gen/SnxxzUITreasureModelWrap.cs b/Lua/Gen/SnxxzUITreasureModelWrap.cs
index 663a5fa..36347e2 100644
--- a/Lua/Gen/SnxxzUITreasureModelWrap.cs
+++ b/Lua/Gen/SnxxzUITreasureModelWrap.cs
@@ -1231,7 +1231,7 @@
                 ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
 			
                 Snxxz.UI.TreasureModel gen_to_be_invoked = (Snxxz.UI.TreasureModel)translator.FastGetCSObj(L, 1);
-                translator.Push(L, gen_to_be_invoked.currentCategory);
+                translator.PushTreasureCategory(L, gen_to_be_invoked.currentCategory);
             } catch(System.Exception gen_e) {
                 return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
             }
diff --git a/Lua/Gen/SnxxzUIWindowCenterWrap.cs b/Lua/Gen/SnxxzUIWindowCenterWrap.cs
index f32506a..bcf617d 100644
--- a/Lua/Gen/SnxxzUIWindowCenterWrap.cs
+++ b/Lua/Gen/SnxxzUIWindowCenterWrap.cs
@@ -138,7 +138,7 @@
                     string _name = LuaAPI.lua_tostring(L, 2);
                     
                         WindowType gen_ret = gen_to_be_invoked.GetWindowType( _name );
-                        translator.Push(L, gen_ret);
+                        translator.PushWindowType(L, gen_ret);
                     
                     
                     
diff --git a/Lua/Gen/TaskFeedbackConfigWrap.cs b/Lua/Gen/TaskFeedbackConfigWrap.cs
new file mode 100644
index 0000000..a903643
--- /dev/null
+++ b/Lua/Gen/TaskFeedbackConfigWrap.cs
@@ -0,0 +1,372 @@
+锘�#if USE_UNI_LUA
+using LuaAPI = UniLua.Lua;
+using RealStatePtr = UniLua.ILuaState;
+using LuaCSFunction = UniLua.CSharpFunctionDelegate;
+#else
+using LuaAPI = XLua.LuaDLL.Lua;
+using RealStatePtr = System.IntPtr;
+using LuaCSFunction = XLua.LuaDLL.lua_CSFunction;
+#endif
+
+using XLua;
+using System.Collections.Generic;
+
+
+namespace XLua.CSObjectWrap
+{
+    using Utils = XLua.Utils;
+    public class TaskFeedbackConfigWrap 
+    {
+        public static void __Register(RealStatePtr L)
+        {
+			ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			System.Type type = typeof(TaskFeedbackConfig);
+			Utils.BeginObjectRegister(type, L, translator, 0, 0, 6, 0);
+			
+			
+			
+			Utils.RegisterFunc(L, Utils.GETTER_IDX, "taskId", _g_get_taskId);
+            Utils.RegisterFunc(L, Utils.GETTER_IDX, "type", _g_get_type);
+            Utils.RegisterFunc(L, Utils.GETTER_IDX, "condition", _g_get_condition);
+            Utils.RegisterFunc(L, Utils.GETTER_IDX, "succGuide", _g_get_succGuide);
+            Utils.RegisterFunc(L, Utils.GETTER_IDX, "failGuide", _g_get_failGuide);
+            Utils.RegisterFunc(L, Utils.GETTER_IDX, "remind", _g_get_remind);
+            
+			
+			
+			Utils.EndObjectRegister(type, L, translator, null, null,
+			    null, null, null);
+
+		    Utils.BeginClassRegister(type, L, __CreateInstance, 6, 1, 0);
+			Utils.RegisterFunc(L, Utils.CLS_IDX, "Get", _m_Get_xlua_st_);
+            Utils.RegisterFunc(L, Utils.CLS_IDX, "GetKeys", _m_GetKeys_xlua_st_);
+            Utils.RegisterFunc(L, Utils.CLS_IDX, "GetValues", _m_GetValues_xlua_st_);
+            Utils.RegisterFunc(L, Utils.CLS_IDX, "Has", _m_Has_xlua_st_);
+            Utils.RegisterFunc(L, Utils.CLS_IDX, "Init", _m_Init_xlua_st_);
+            
+			
+            
+			Utils.RegisterFunc(L, Utils.CLS_GETTER_IDX, "inited", _g_get_inited);
+            
+			
+			
+			Utils.EndClassRegister(type, L, translator);
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int __CreateInstance(RealStatePtr L)
+        {
+            
+			try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+				if(LuaAPI.lua_gettop(L) == 1)
+				{
+					
+					TaskFeedbackConfig gen_ret = new TaskFeedbackConfig();
+					translator.Push(L, gen_ret);
+                    
+					return 1;
+				}
+				if(LuaAPI.lua_gettop(L) == 2 && (LuaAPI.lua_isnil(L, 2) || LuaAPI.lua_type(L, 2) == LuaTypes.LUA_TSTRING))
+				{
+					string _input = LuaAPI.lua_tostring(L, 2);
+					
+					TaskFeedbackConfig gen_ret = new TaskFeedbackConfig(_input);
+					translator.Push(L, gen_ret);
+                    
+					return 1;
+				}
+				
+			}
+			catch(System.Exception gen_e) {
+				return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+			}
+            return LuaAPI.luaL_error(L, "invalid arguments to TaskFeedbackConfig constructor!");
+            
+        }
+        
+		
+        
+		
+        
+        
+        
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_Get_xlua_st_(RealStatePtr L)
+        {
+		    try {
+            
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+            
+            
+            
+			    int gen_param_count = LuaAPI.lua_gettop(L);
+            
+                if(gen_param_count == 1&& LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 1)) 
+                {
+                    int _id = LuaAPI.xlua_tointeger(L, 1);
+                    
+                        TaskFeedbackConfig gen_ret = TaskFeedbackConfig.Get( _id );
+                        translator.Push(L, gen_ret);
+                    
+                    
+                    
+                    return 1;
+                }
+                if(gen_param_count == 1&& (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)) 
+                {
+                    string _id = LuaAPI.lua_tostring(L, 1);
+                    
+                        TaskFeedbackConfig gen_ret = TaskFeedbackConfig.Get( _id );
+                        translator.Push(L, gen_ret);
+                    
+                    
+                    
+                    return 1;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+            return LuaAPI.luaL_error(L, "invalid arguments to TaskFeedbackConfig.Get!");
+            
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_GetKeys_xlua_st_(RealStatePtr L)
+        {
+		    try {
+            
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+            
+            
+            
+                
+                {
+                    
+                        System.Collections.Generic.List<string> gen_ret = TaskFeedbackConfig.GetKeys(  );
+                        translator.Push(L, gen_ret);
+                    
+                    
+                    
+                    return 1;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_GetValues_xlua_st_(RealStatePtr L)
+        {
+		    try {
+            
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+            
+            
+            
+                
+                {
+                    
+                        System.Collections.Generic.List<TaskFeedbackConfig> gen_ret = TaskFeedbackConfig.GetValues(  );
+                        translator.Push(L, gen_ret);
+                    
+                    
+                    
+                    return 1;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_Has_xlua_st_(RealStatePtr L)
+        {
+		    try {
+            
+            
+            
+			    int gen_param_count = LuaAPI.lua_gettop(L);
+            
+                if(gen_param_count == 1&& LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 1)) 
+                {
+                    int _id = LuaAPI.xlua_tointeger(L, 1);
+                    
+                        bool gen_ret = TaskFeedbackConfig.Has( _id );
+                        LuaAPI.lua_pushboolean(L, gen_ret);
+                    
+                    
+                    
+                    return 1;
+                }
+                if(gen_param_count == 1&& (LuaAPI.lua_isnil(L, 1) || LuaAPI.lua_type(L, 1) == LuaTypes.LUA_TSTRING)) 
+                {
+                    string _id = LuaAPI.lua_tostring(L, 1);
+                    
+                        bool gen_ret = TaskFeedbackConfig.Has( _id );
+                        LuaAPI.lua_pushboolean(L, gen_ret);
+                    
+                    
+                    
+                    return 1;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+            return LuaAPI.luaL_error(L, "invalid arguments to TaskFeedbackConfig.Has!");
+            
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _m_Init_xlua_st_(RealStatePtr L)
+        {
+		    try {
+            
+            
+            
+			    int gen_param_count = LuaAPI.lua_gettop(L);
+            
+                if(gen_param_count == 1&& LuaTypes.LUA_TBOOLEAN == LuaAPI.lua_type(L, 1)) 
+                {
+                    bool _sync = LuaAPI.lua_toboolean(L, 1);
+                    
+                    TaskFeedbackConfig.Init( _sync );
+                    
+                    
+                    
+                    return 0;
+                }
+                if(gen_param_count == 0) 
+                {
+                    
+                    TaskFeedbackConfig.Init(  );
+                    
+                    
+                    
+                    return 0;
+                }
+                
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            
+            return LuaAPI.luaL_error(L, "invalid arguments to TaskFeedbackConfig.Init!");
+            
+        }
+        
+        
+        
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_inited(RealStatePtr L)
+        {
+		    try {
+            
+			    LuaAPI.lua_pushboolean(L, TaskFeedbackConfig.inited);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_taskId(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			
+                TaskFeedbackConfig gen_to_be_invoked = (TaskFeedbackConfig)translator.FastGetCSObj(L, 1);
+                LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.taskId);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_type(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			
+                TaskFeedbackConfig gen_to_be_invoked = (TaskFeedbackConfig)translator.FastGetCSObj(L, 1);
+                LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.type);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_condition(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			
+                TaskFeedbackConfig gen_to_be_invoked = (TaskFeedbackConfig)translator.FastGetCSObj(L, 1);
+                LuaAPI.lua_pushstring(L, gen_to_be_invoked.condition);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_succGuide(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			
+                TaskFeedbackConfig gen_to_be_invoked = (TaskFeedbackConfig)translator.FastGetCSObj(L, 1);
+                LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.succGuide);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_failGuide(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			
+                TaskFeedbackConfig gen_to_be_invoked = (TaskFeedbackConfig)translator.FastGetCSObj(L, 1);
+                LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.failGuide);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
+        static int _g_get_remind(RealStatePtr L)
+        {
+		    try {
+                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
+			
+                TaskFeedbackConfig gen_to_be_invoked = (TaskFeedbackConfig)translator.FastGetCSObj(L, 1);
+                LuaAPI.lua_pushstring(L, gen_to_be_invoked.remind);
+            } catch(System.Exception gen_e) {
+                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
+            }
+            return 1;
+        }
+        
+        
+        
+		
+		
+		
+		
+    }
+}
diff --git a/Lua/Gen/TaskFeedbackConfigWrap.cs.meta b/Lua/Gen/TaskFeedbackConfigWrap.cs.meta
new file mode 100644
index 0000000..8dd5a99
--- /dev/null
+++ b/Lua/Gen/TaskFeedbackConfigWrap.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: df00003ad48da294b819baaca3211744
+timeCreated: 1557887672
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Lua/Gen/WrapPusher.cs b/Lua/Gen/WrapPusher.cs
index 8052711..fe1ae45 100644
--- a/Lua/Gen/WrapPusher.cs
+++ b/Lua/Gen/WrapPusher.cs
@@ -34,6 +34,69 @@
 				translator.RegisterPushAndGetAndUpdate<UnityEngine.Ray>(translator.PushUnityEngineRay, translator.Get, translator.UpdateUnityEngineRay);
 				translator.RegisterPushAndGetAndUpdate<UnityEngine.Bounds>(translator.PushUnityEngineBounds, translator.Get, translator.UpdateUnityEngineBounds);
 				translator.RegisterPushAndGetAndUpdate<UnityEngine.Ray2D>(translator.PushUnityEngineRay2D, translator.Get, translator.UpdateUnityEngineRay2D);
+				translator.RegisterPushAndGetAndUpdate<E_ActorClassType>(translator.PushE_ActorClassType, translator.Get, translator.UpdateE_ActorClassType);
+				translator.RegisterPushAndGetAndUpdate<E_ActorState>(translator.PushE_ActorState, translator.Get, translator.UpdateE_ActorState);
+				translator.RegisterPushAndGetAndUpdate<E_BuffType>(translator.PushE_BuffType, translator.Get, translator.UpdateE_BuffType);
+				translator.RegisterPushAndGetAndUpdate<E_ClientNpcType>(translator.PushE_ClientNpcType, translator.Get, translator.UpdateE_ClientNpcType);
+				translator.RegisterPushAndGetAndUpdate<E_NpcType>(translator.PushE_NpcType, translator.Get, translator.UpdateE_NpcType);
+				translator.RegisterPushAndGetAndUpdate<E_MovingState>(translator.PushE_MovingState, translator.Get, translator.UpdateE_MovingState);
+				translator.RegisterPushAndGetAndUpdate<WindowType>(translator.PushWindowType, translator.Get, translator.UpdateWindowType);
+				translator.RegisterPushAndGetAndUpdate<GestureType>(translator.PushGestureType, translator.Get, translator.UpdateGestureType);
+				translator.RegisterPushAndGetAndUpdate<UnityPlatform>(translator.PushUnityPlatform, translator.Get, translator.UpdateUnityPlatform);
+				translator.RegisterPushAndGetAndUpdate<RoleRenameResult>(translator.PushRoleRenameResult, translator.Get, translator.UpdateRoleRenameResult);
+				translator.RegisterPushAndGetAndUpdate<E_SkillCastTarget>(translator.PushE_SkillCastTarget, translator.Get, translator.UpdateE_SkillCastTarget);
+				translator.RegisterPushAndGetAndUpdate<E_SkillType>(translator.PushE_SkillType, translator.Get, translator.UpdateE_SkillType);
+				translator.RegisterPushAndGetAndUpdate<E_SkillFuncType>(translator.PushE_SkillFuncType, translator.Get, translator.UpdateE_SkillFuncType);
+				translator.RegisterPushAndGetAndUpdate<E_SkillCastType>(translator.PushE_SkillCastType, translator.Get, translator.UpdateE_SkillCastType);
+				translator.RegisterPushAndGetAndUpdate<MapTransferType>(translator.PushMapTransferType, translator.Get, translator.UpdateMapTransferType);
+				translator.RegisterPushAndGetAndUpdate<DropItemType>(translator.PushDropItemType, translator.Get, translator.UpdateDropItemType);
+				translator.RegisterPushAndGetAndUpdate<DailyQuestType>(translator.PushDailyQuestType, translator.Get, translator.UpdateDailyQuestType);
+				translator.RegisterPushAndGetAndUpdate<DungeonCoolDownType>(translator.PushDungeonCoolDownType, translator.Get, translator.UpdateDungeonCoolDownType);
+				translator.RegisterPushAndGetAndUpdate<RoleEquipType>(translator.PushRoleEquipType, translator.Get, translator.UpdateRoleEquipType);
+				translator.RegisterPushAndGetAndUpdate<PlayerDataType>(translator.PushPlayerDataType, translator.Get, translator.UpdatePlayerDataType);
+				translator.RegisterPushAndGetAndUpdate<PackType>(translator.PushPackType, translator.Get, translator.UpdatePackType);
+				translator.RegisterPushAndGetAndUpdate<ItemType>(translator.PushItemType, translator.Get, translator.UpdateItemType);
+				translator.RegisterPushAndGetAndUpdate<MakeType>(translator.PushMakeType, translator.Get, translator.UpdateMakeType);
+				translator.RegisterPushAndGetAndUpdate<TitleType>(translator.PushTitleType, translator.Get, translator.UpdateTitleType);
+				translator.RegisterPushAndGetAndUpdate<FuncOpenEnum>(translator.PushFuncOpenEnum, translator.Get, translator.UpdateFuncOpenEnum);
+				translator.RegisterPushAndGetAndUpdate<PropertyType>(translator.PushPropertyType, translator.Get, translator.UpdatePropertyType);
+				translator.RegisterPushAndGetAndUpdate<TextColType>(translator.PushTextColType, translator.Get, translator.UpdateTextColType);
+				translator.RegisterPushAndGetAndUpdate<E_ModelResType>(translator.PushE_ModelResType, translator.Get, translator.UpdateE_ModelResType);
+				translator.RegisterPushAndGetAndUpdate<TreasureCategory>(translator.PushTreasureCategory, translator.Get, translator.UpdateTreasureCategory);
+				translator.RegisterPushAndGetAndUpdate<TreasureState>(translator.PushTreasureState, translator.Get, translator.UpdateTreasureState);
+				translator.RegisterPushAndGetAndUpdate<FunctionUnlockType>(translator.PushFunctionUnlockType, translator.Get, translator.UpdateFunctionUnlockType);
+				translator.RegisterPushAndGetAndUpdate<RedPointState>(translator.PushRedPointState, translator.Get, translator.UpdateRedPointState);
+				translator.RegisterPushAndGetAndUpdate<TeamInviteType>(translator.PushTeamInviteType, translator.Get, translator.UpdateTeamInviteType);
+				translator.RegisterPushAndGetAndUpdate<TeammatePrepareState>(translator.PushTeammatePrepareState, translator.Get, translator.UpdateTeammatePrepareState);
+				translator.RegisterPushAndGetAndUpdate<VipPrivilegeType>(translator.PushVipPrivilegeType, translator.Get, translator.UpdateVipPrivilegeType);
+				translator.RegisterPushAndGetAndUpdate<E_AttackMode>(translator.PushE_AttackMode, translator.Get, translator.UpdateE_AttackMode);
+				translator.RegisterPushAndGetAndUpdate<E_ItemColor>(translator.PushE_ItemColor, translator.Get, translator.UpdateE_ItemColor);
+				translator.RegisterPushAndGetAndUpdate<FindPreciousType>(translator.PushFindPreciousType, translator.Get, translator.UpdateFindPreciousType);
+				translator.RegisterPushAndGetAndUpdate<GotServerRewardType>(translator.PushGotServerRewardType, translator.Get, translator.UpdateGotServerRewardType);
+				translator.RegisterPushAndGetAndUpdate<MapType>(translator.PushMapType, translator.Get, translator.UpdateMapType);
+				translator.RegisterPushAndGetAndUpdate<GuideType>(translator.PushGuideType, translator.Get, translator.UpdateGuideType);
+				translator.RegisterPushAndGetAndUpdate<GuideTriggerType>(translator.PushGuideTriggerType, translator.Get, translator.UpdateGuideTriggerType);
+				translator.RegisterPushAndGetAndUpdate<FuncPowerType>(translator.PushFuncPowerType, translator.Get, translator.UpdateFuncPowerType);
+				translator.RegisterPushAndGetAndUpdate<E_AtkType>(translator.PushE_AtkType, translator.Get, translator.UpdateE_AtkType);
+				translator.RegisterPushAndGetAndUpdate<GameObjType>(translator.PushGameObjType, translator.Get, translator.UpdateGameObjType);
+				translator.RegisterPushAndGetAndUpdate<HurtAttackType>(translator.PushHurtAttackType, translator.Get, translator.UpdateHurtAttackType);
+				translator.RegisterPushAndGetAndUpdate<DungeonTargetType>(translator.PushDungeonTargetType, translator.Get, translator.UpdateDungeonTargetType);
+				translator.RegisterPushAndGetAndUpdate<AchievementType>(translator.PushAchievementType, translator.Get, translator.UpdateAchievementType);
+				translator.RegisterPushAndGetAndUpdate<ItemTimeType>(translator.PushItemTimeType, translator.Get, translator.UpdateItemTimeType);
+				translator.RegisterPushAndGetAndUpdate<TitleBtnState>(translator.PushTitleBtnState, translator.Get, translator.UpdateTitleBtnState);
+				translator.RegisterPushAndGetAndUpdate<LegendAttrType>(translator.PushLegendAttrType, translator.Get, translator.UpdateLegendAttrType);
+				translator.RegisterPushAndGetAndUpdate<ServerState>(translator.PushServerState, translator.Get, translator.UpdateServerState);
+				translator.RegisterPushAndGetAndUpdate<ItemUseDataKey>(translator.PushItemUseDataKey, translator.Get, translator.UpdateItemUseDataKey);
+				translator.RegisterPushAndGetAndUpdate<ItemOperateType>(translator.PushItemOperateType, translator.Get, translator.UpdateItemOperateType);
+				translator.RegisterPushAndGetAndUpdate<ItemWinType>(translator.PushItemWinType, translator.Get, translator.UpdateItemWinType);
+				translator.RegisterPushAndGetAndUpdate<ItemTipChildType>(translator.PushItemTipChildType, translator.Get, translator.UpdateItemTipChildType);
+				translator.RegisterPushAndGetAndUpdate<InstalledAsset>(translator.PushInstalledAsset, translator.Get, translator.UpdateInstalledAsset);
+				translator.RegisterPushAndGetAndUpdate<VersionAuthority>(translator.PushVersionAuthority, translator.Get, translator.UpdateVersionAuthority);
+				translator.RegisterPushAndGetAndUpdate<FootAudioType>(translator.PushFootAudioType, translator.Get, translator.UpdateFootAudioType);
+				translator.RegisterPushAndGetAndUpdate<AttackFailType>(translator.PushAttackFailType, translator.Get, translator.UpdateAttackFailType);
+				translator.RegisterPushAndGetAndUpdate<DungeonFightStage>(translator.PushDungeonFightStage, translator.Get, translator.UpdateDungeonFightStage);
+				translator.RegisterPushAndGetAndUpdate<RankType>(translator.PushRankType, translator.Get, translator.UpdateRankType);
+				translator.RegisterPushAndGetAndUpdate<PetOrMount>(translator.PushPetOrMount, translator.Get, translator.UpdatePetOrMount);
 			
 			}
         }
@@ -570,6 +633,5298 @@
             }
         }
         
+        int E_ActorClassType_TypeID = -1;
+		int E_ActorClassType_EnumRef = -1;
+        
+        public void PushE_ActorClassType(RealStatePtr L, E_ActorClassType val)
+        {
+            if (E_ActorClassType_TypeID == -1)
+            {
+			    bool is_first;
+                E_ActorClassType_TypeID = getTypeId(L, typeof(E_ActorClassType), out is_first);
+				
+				if (E_ActorClassType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_ActorClassType));
+				    E_ActorClassType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_ActorClassType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_ActorClassType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_ActorClassType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_ActorClassType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_ActorClassType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_ActorClassType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_ActorClassType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_ActorClassType");
+                }
+				val = (E_ActorClassType)e;
+                
+            }
+            else
+            {
+                val = (E_ActorClassType)objectCasters.GetCaster(typeof(E_ActorClassType))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_ActorClassType(RealStatePtr L, int index, E_ActorClassType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_ActorClassType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_ActorClassType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_ActorClassType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_ActorState_TypeID = -1;
+		int E_ActorState_EnumRef = -1;
+        
+        public void PushE_ActorState(RealStatePtr L, E_ActorState val)
+        {
+            if (E_ActorState_TypeID == -1)
+            {
+			    bool is_first;
+                E_ActorState_TypeID = getTypeId(L, typeof(E_ActorState), out is_first);
+				
+				if (E_ActorState_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_ActorState));
+				    E_ActorState_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_ActorState_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_ActorState_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_ActorState ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_ActorState_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_ActorState val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_ActorState_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_ActorState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_ActorState");
+                }
+				val = (E_ActorState)e;
+                
+            }
+            else
+            {
+                val = (E_ActorState)objectCasters.GetCaster(typeof(E_ActorState))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_ActorState(RealStatePtr L, int index, E_ActorState val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_ActorState_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_ActorState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_ActorState ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_BuffType_TypeID = -1;
+		int E_BuffType_EnumRef = -1;
+        
+        public void PushE_BuffType(RealStatePtr L, E_BuffType val)
+        {
+            if (E_BuffType_TypeID == -1)
+            {
+			    bool is_first;
+                E_BuffType_TypeID = getTypeId(L, typeof(E_BuffType), out is_first);
+				
+				if (E_BuffType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_BuffType));
+				    E_BuffType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_BuffType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_BuffType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_BuffType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_BuffType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_BuffType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_BuffType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_BuffType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_BuffType");
+                }
+				val = (E_BuffType)e;
+                
+            }
+            else
+            {
+                val = (E_BuffType)objectCasters.GetCaster(typeof(E_BuffType))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_BuffType(RealStatePtr L, int index, E_BuffType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_BuffType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_BuffType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_BuffType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_ClientNpcType_TypeID = -1;
+		int E_ClientNpcType_EnumRef = -1;
+        
+        public void PushE_ClientNpcType(RealStatePtr L, E_ClientNpcType val)
+        {
+            if (E_ClientNpcType_TypeID == -1)
+            {
+			    bool is_first;
+                E_ClientNpcType_TypeID = getTypeId(L, typeof(E_ClientNpcType), out is_first);
+				
+				if (E_ClientNpcType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_ClientNpcType));
+				    E_ClientNpcType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_ClientNpcType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_ClientNpcType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_ClientNpcType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_ClientNpcType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_ClientNpcType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_ClientNpcType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_ClientNpcType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_ClientNpcType");
+                }
+				val = (E_ClientNpcType)e;
+                
+            }
+            else
+            {
+                val = (E_ClientNpcType)objectCasters.GetCaster(typeof(E_ClientNpcType))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_ClientNpcType(RealStatePtr L, int index, E_ClientNpcType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_ClientNpcType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_ClientNpcType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_ClientNpcType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_NpcType_TypeID = -1;
+		int E_NpcType_EnumRef = -1;
+        
+        public void PushE_NpcType(RealStatePtr L, E_NpcType val)
+        {
+            if (E_NpcType_TypeID == -1)
+            {
+			    bool is_first;
+                E_NpcType_TypeID = getTypeId(L, typeof(E_NpcType), out is_first);
+				
+				if (E_NpcType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_NpcType));
+				    E_NpcType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_NpcType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_NpcType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_NpcType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_NpcType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_NpcType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_NpcType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_NpcType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_NpcType");
+                }
+				val = (E_NpcType)e;
+                
+            }
+            else
+            {
+                val = (E_NpcType)objectCasters.GetCaster(typeof(E_NpcType))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_NpcType(RealStatePtr L, int index, E_NpcType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_NpcType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_NpcType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_NpcType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_MovingState_TypeID = -1;
+		int E_MovingState_EnumRef = -1;
+        
+        public void PushE_MovingState(RealStatePtr L, E_MovingState val)
+        {
+            if (E_MovingState_TypeID == -1)
+            {
+			    bool is_first;
+                E_MovingState_TypeID = getTypeId(L, typeof(E_MovingState), out is_first);
+				
+				if (E_MovingState_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_MovingState));
+				    E_MovingState_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_MovingState_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_MovingState_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_MovingState ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_MovingState_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_MovingState val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_MovingState_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_MovingState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_MovingState");
+                }
+				val = (E_MovingState)e;
+                
+            }
+            else
+            {
+                val = (E_MovingState)objectCasters.GetCaster(typeof(E_MovingState))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_MovingState(RealStatePtr L, int index, E_MovingState val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_MovingState_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_MovingState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_MovingState ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int WindowType_TypeID = -1;
+		int WindowType_EnumRef = -1;
+        
+        public void PushWindowType(RealStatePtr L, WindowType val)
+        {
+            if (WindowType_TypeID == -1)
+            {
+			    bool is_first;
+                WindowType_TypeID = getTypeId(L, typeof(WindowType), out is_first);
+				
+				if (WindowType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(WindowType));
+				    WindowType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, WindowType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, WindowType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for WindowType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, WindowType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out WindowType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != WindowType_TypeID)
+				{
+				    throw new Exception("invalid userdata for WindowType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for WindowType");
+                }
+				val = (WindowType)e;
+                
+            }
+            else
+            {
+                val = (WindowType)objectCasters.GetCaster(typeof(WindowType))(L, index, null);
+            }
+        }
+		
+        public void UpdateWindowType(RealStatePtr L, int index, WindowType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != WindowType_TypeID)
+				{
+				    throw new Exception("invalid userdata for WindowType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for WindowType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int GestureType_TypeID = -1;
+		int GestureType_EnumRef = -1;
+        
+        public void PushGestureType(RealStatePtr L, GestureType val)
+        {
+            if (GestureType_TypeID == -1)
+            {
+			    bool is_first;
+                GestureType_TypeID = getTypeId(L, typeof(GestureType), out is_first);
+				
+				if (GestureType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(GestureType));
+				    GestureType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, GestureType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, GestureType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for GestureType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, GestureType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out GestureType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != GestureType_TypeID)
+				{
+				    throw new Exception("invalid userdata for GestureType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for GestureType");
+                }
+				val = (GestureType)e;
+                
+            }
+            else
+            {
+                val = (GestureType)objectCasters.GetCaster(typeof(GestureType))(L, index, null);
+            }
+        }
+		
+        public void UpdateGestureType(RealStatePtr L, int index, GestureType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != GestureType_TypeID)
+				{
+				    throw new Exception("invalid userdata for GestureType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for GestureType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int UnityPlatform_TypeID = -1;
+		int UnityPlatform_EnumRef = -1;
+        
+        public void PushUnityPlatform(RealStatePtr L, UnityPlatform val)
+        {
+            if (UnityPlatform_TypeID == -1)
+            {
+			    bool is_first;
+                UnityPlatform_TypeID = getTypeId(L, typeof(UnityPlatform), out is_first);
+				
+				if (UnityPlatform_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(UnityPlatform));
+				    UnityPlatform_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, UnityPlatform_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, UnityPlatform_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for UnityPlatform ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, UnityPlatform_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out UnityPlatform val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != UnityPlatform_TypeID)
+				{
+				    throw new Exception("invalid userdata for UnityPlatform");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for UnityPlatform");
+                }
+				val = (UnityPlatform)e;
+                
+            }
+            else
+            {
+                val = (UnityPlatform)objectCasters.GetCaster(typeof(UnityPlatform))(L, index, null);
+            }
+        }
+		
+        public void UpdateUnityPlatform(RealStatePtr L, int index, UnityPlatform val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != UnityPlatform_TypeID)
+				{
+				    throw new Exception("invalid userdata for UnityPlatform");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for UnityPlatform ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int RoleRenameResult_TypeID = -1;
+		int RoleRenameResult_EnumRef = -1;
+        
+        public void PushRoleRenameResult(RealStatePtr L, RoleRenameResult val)
+        {
+            if (RoleRenameResult_TypeID == -1)
+            {
+			    bool is_first;
+                RoleRenameResult_TypeID = getTypeId(L, typeof(RoleRenameResult), out is_first);
+				
+				if (RoleRenameResult_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(RoleRenameResult));
+				    RoleRenameResult_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, RoleRenameResult_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, RoleRenameResult_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for RoleRenameResult ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, RoleRenameResult_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out RoleRenameResult val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != RoleRenameResult_TypeID)
+				{
+				    throw new Exception("invalid userdata for RoleRenameResult");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for RoleRenameResult");
+                }
+				val = (RoleRenameResult)e;
+                
+            }
+            else
+            {
+                val = (RoleRenameResult)objectCasters.GetCaster(typeof(RoleRenameResult))(L, index, null);
+            }
+        }
+		
+        public void UpdateRoleRenameResult(RealStatePtr L, int index, RoleRenameResult val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != RoleRenameResult_TypeID)
+				{
+				    throw new Exception("invalid userdata for RoleRenameResult");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for RoleRenameResult ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_SkillCastTarget_TypeID = -1;
+		int E_SkillCastTarget_EnumRef = -1;
+        
+        public void PushE_SkillCastTarget(RealStatePtr L, E_SkillCastTarget val)
+        {
+            if (E_SkillCastTarget_TypeID == -1)
+            {
+			    bool is_first;
+                E_SkillCastTarget_TypeID = getTypeId(L, typeof(E_SkillCastTarget), out is_first);
+				
+				if (E_SkillCastTarget_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_SkillCastTarget));
+				    E_SkillCastTarget_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_SkillCastTarget_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_SkillCastTarget_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_SkillCastTarget ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_SkillCastTarget_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_SkillCastTarget val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_SkillCastTarget_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_SkillCastTarget");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_SkillCastTarget");
+                }
+				val = (E_SkillCastTarget)e;
+                
+            }
+            else
+            {
+                val = (E_SkillCastTarget)objectCasters.GetCaster(typeof(E_SkillCastTarget))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_SkillCastTarget(RealStatePtr L, int index, E_SkillCastTarget val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_SkillCastTarget_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_SkillCastTarget");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_SkillCastTarget ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_SkillType_TypeID = -1;
+		int E_SkillType_EnumRef = -1;
+        
+        public void PushE_SkillType(RealStatePtr L, E_SkillType val)
+        {
+            if (E_SkillType_TypeID == -1)
+            {
+			    bool is_first;
+                E_SkillType_TypeID = getTypeId(L, typeof(E_SkillType), out is_first);
+				
+				if (E_SkillType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_SkillType));
+				    E_SkillType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_SkillType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_SkillType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_SkillType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_SkillType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_SkillType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_SkillType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_SkillType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_SkillType");
+                }
+				val = (E_SkillType)e;
+                
+            }
+            else
+            {
+                val = (E_SkillType)objectCasters.GetCaster(typeof(E_SkillType))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_SkillType(RealStatePtr L, int index, E_SkillType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_SkillType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_SkillType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_SkillType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_SkillFuncType_TypeID = -1;
+		int E_SkillFuncType_EnumRef = -1;
+        
+        public void PushE_SkillFuncType(RealStatePtr L, E_SkillFuncType val)
+        {
+            if (E_SkillFuncType_TypeID == -1)
+            {
+			    bool is_first;
+                E_SkillFuncType_TypeID = getTypeId(L, typeof(E_SkillFuncType), out is_first);
+				
+				if (E_SkillFuncType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_SkillFuncType));
+				    E_SkillFuncType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_SkillFuncType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_SkillFuncType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_SkillFuncType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_SkillFuncType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_SkillFuncType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_SkillFuncType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_SkillFuncType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_SkillFuncType");
+                }
+				val = (E_SkillFuncType)e;
+                
+            }
+            else
+            {
+                val = (E_SkillFuncType)objectCasters.GetCaster(typeof(E_SkillFuncType))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_SkillFuncType(RealStatePtr L, int index, E_SkillFuncType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_SkillFuncType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_SkillFuncType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_SkillFuncType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_SkillCastType_TypeID = -1;
+		int E_SkillCastType_EnumRef = -1;
+        
+        public void PushE_SkillCastType(RealStatePtr L, E_SkillCastType val)
+        {
+            if (E_SkillCastType_TypeID == -1)
+            {
+			    bool is_first;
+                E_SkillCastType_TypeID = getTypeId(L, typeof(E_SkillCastType), out is_first);
+				
+				if (E_SkillCastType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_SkillCastType));
+				    E_SkillCastType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_SkillCastType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_SkillCastType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_SkillCastType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_SkillCastType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_SkillCastType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_SkillCastType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_SkillCastType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_SkillCastType");
+                }
+				val = (E_SkillCastType)e;
+                
+            }
+            else
+            {
+                val = (E_SkillCastType)objectCasters.GetCaster(typeof(E_SkillCastType))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_SkillCastType(RealStatePtr L, int index, E_SkillCastType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_SkillCastType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_SkillCastType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_SkillCastType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int MapTransferType_TypeID = -1;
+		int MapTransferType_EnumRef = -1;
+        
+        public void PushMapTransferType(RealStatePtr L, MapTransferType val)
+        {
+            if (MapTransferType_TypeID == -1)
+            {
+			    bool is_first;
+                MapTransferType_TypeID = getTypeId(L, typeof(MapTransferType), out is_first);
+				
+				if (MapTransferType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(MapTransferType));
+				    MapTransferType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, MapTransferType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, MapTransferType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for MapTransferType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, MapTransferType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out MapTransferType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != MapTransferType_TypeID)
+				{
+				    throw new Exception("invalid userdata for MapTransferType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for MapTransferType");
+                }
+				val = (MapTransferType)e;
+                
+            }
+            else
+            {
+                val = (MapTransferType)objectCasters.GetCaster(typeof(MapTransferType))(L, index, null);
+            }
+        }
+		
+        public void UpdateMapTransferType(RealStatePtr L, int index, MapTransferType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != MapTransferType_TypeID)
+				{
+				    throw new Exception("invalid userdata for MapTransferType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for MapTransferType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int DropItemType_TypeID = -1;
+		int DropItemType_EnumRef = -1;
+        
+        public void PushDropItemType(RealStatePtr L, DropItemType val)
+        {
+            if (DropItemType_TypeID == -1)
+            {
+			    bool is_first;
+                DropItemType_TypeID = getTypeId(L, typeof(DropItemType), out is_first);
+				
+				if (DropItemType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(DropItemType));
+				    DropItemType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, DropItemType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, DropItemType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for DropItemType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, DropItemType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out DropItemType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != DropItemType_TypeID)
+				{
+				    throw new Exception("invalid userdata for DropItemType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for DropItemType");
+                }
+				val = (DropItemType)e;
+                
+            }
+            else
+            {
+                val = (DropItemType)objectCasters.GetCaster(typeof(DropItemType))(L, index, null);
+            }
+        }
+		
+        public void UpdateDropItemType(RealStatePtr L, int index, DropItemType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != DropItemType_TypeID)
+				{
+				    throw new Exception("invalid userdata for DropItemType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for DropItemType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int DailyQuestType_TypeID = -1;
+		int DailyQuestType_EnumRef = -1;
+        
+        public void PushDailyQuestType(RealStatePtr L, DailyQuestType val)
+        {
+            if (DailyQuestType_TypeID == -1)
+            {
+			    bool is_first;
+                DailyQuestType_TypeID = getTypeId(L, typeof(DailyQuestType), out is_first);
+				
+				if (DailyQuestType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(DailyQuestType));
+				    DailyQuestType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, DailyQuestType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, DailyQuestType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for DailyQuestType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, DailyQuestType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out DailyQuestType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != DailyQuestType_TypeID)
+				{
+				    throw new Exception("invalid userdata for DailyQuestType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for DailyQuestType");
+                }
+				val = (DailyQuestType)e;
+                
+            }
+            else
+            {
+                val = (DailyQuestType)objectCasters.GetCaster(typeof(DailyQuestType))(L, index, null);
+            }
+        }
+		
+        public void UpdateDailyQuestType(RealStatePtr L, int index, DailyQuestType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != DailyQuestType_TypeID)
+				{
+				    throw new Exception("invalid userdata for DailyQuestType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for DailyQuestType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int DungeonCoolDownType_TypeID = -1;
+		int DungeonCoolDownType_EnumRef = -1;
+        
+        public void PushDungeonCoolDownType(RealStatePtr L, DungeonCoolDownType val)
+        {
+            if (DungeonCoolDownType_TypeID == -1)
+            {
+			    bool is_first;
+                DungeonCoolDownType_TypeID = getTypeId(L, typeof(DungeonCoolDownType), out is_first);
+				
+				if (DungeonCoolDownType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(DungeonCoolDownType));
+				    DungeonCoolDownType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, DungeonCoolDownType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, DungeonCoolDownType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for DungeonCoolDownType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, DungeonCoolDownType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out DungeonCoolDownType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != DungeonCoolDownType_TypeID)
+				{
+				    throw new Exception("invalid userdata for DungeonCoolDownType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for DungeonCoolDownType");
+                }
+				val = (DungeonCoolDownType)e;
+                
+            }
+            else
+            {
+                val = (DungeonCoolDownType)objectCasters.GetCaster(typeof(DungeonCoolDownType))(L, index, null);
+            }
+        }
+		
+        public void UpdateDungeonCoolDownType(RealStatePtr L, int index, DungeonCoolDownType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != DungeonCoolDownType_TypeID)
+				{
+				    throw new Exception("invalid userdata for DungeonCoolDownType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for DungeonCoolDownType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int RoleEquipType_TypeID = -1;
+		int RoleEquipType_EnumRef = -1;
+        
+        public void PushRoleEquipType(RealStatePtr L, RoleEquipType val)
+        {
+            if (RoleEquipType_TypeID == -1)
+            {
+			    bool is_first;
+                RoleEquipType_TypeID = getTypeId(L, typeof(RoleEquipType), out is_first);
+				
+				if (RoleEquipType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(RoleEquipType));
+				    RoleEquipType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, RoleEquipType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, RoleEquipType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for RoleEquipType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, RoleEquipType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out RoleEquipType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != RoleEquipType_TypeID)
+				{
+				    throw new Exception("invalid userdata for RoleEquipType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for RoleEquipType");
+                }
+				val = (RoleEquipType)e;
+                
+            }
+            else
+            {
+                val = (RoleEquipType)objectCasters.GetCaster(typeof(RoleEquipType))(L, index, null);
+            }
+        }
+		
+        public void UpdateRoleEquipType(RealStatePtr L, int index, RoleEquipType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != RoleEquipType_TypeID)
+				{
+				    throw new Exception("invalid userdata for RoleEquipType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for RoleEquipType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int PlayerDataType_TypeID = -1;
+		int PlayerDataType_EnumRef = -1;
+        
+        public void PushPlayerDataType(RealStatePtr L, PlayerDataType val)
+        {
+            if (PlayerDataType_TypeID == -1)
+            {
+			    bool is_first;
+                PlayerDataType_TypeID = getTypeId(L, typeof(PlayerDataType), out is_first);
+				
+				if (PlayerDataType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(PlayerDataType));
+				    PlayerDataType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, PlayerDataType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, PlayerDataType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for PlayerDataType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, PlayerDataType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out PlayerDataType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != PlayerDataType_TypeID)
+				{
+				    throw new Exception("invalid userdata for PlayerDataType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for PlayerDataType");
+                }
+				val = (PlayerDataType)e;
+                
+            }
+            else
+            {
+                val = (PlayerDataType)objectCasters.GetCaster(typeof(PlayerDataType))(L, index, null);
+            }
+        }
+		
+        public void UpdatePlayerDataType(RealStatePtr L, int index, PlayerDataType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != PlayerDataType_TypeID)
+				{
+				    throw new Exception("invalid userdata for PlayerDataType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for PlayerDataType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int PackType_TypeID = -1;
+		int PackType_EnumRef = -1;
+        
+        public void PushPackType(RealStatePtr L, PackType val)
+        {
+            if (PackType_TypeID == -1)
+            {
+			    bool is_first;
+                PackType_TypeID = getTypeId(L, typeof(PackType), out is_first);
+				
+				if (PackType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(PackType));
+				    PackType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, PackType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, PackType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for PackType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, PackType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out PackType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != PackType_TypeID)
+				{
+				    throw new Exception("invalid userdata for PackType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for PackType");
+                }
+				val = (PackType)e;
+                
+            }
+            else
+            {
+                val = (PackType)objectCasters.GetCaster(typeof(PackType))(L, index, null);
+            }
+        }
+		
+        public void UpdatePackType(RealStatePtr L, int index, PackType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != PackType_TypeID)
+				{
+				    throw new Exception("invalid userdata for PackType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for PackType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int ItemType_TypeID = -1;
+		int ItemType_EnumRef = -1;
+        
+        public void PushItemType(RealStatePtr L, ItemType val)
+        {
+            if (ItemType_TypeID == -1)
+            {
+			    bool is_first;
+                ItemType_TypeID = getTypeId(L, typeof(ItemType), out is_first);
+				
+				if (ItemType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(ItemType));
+				    ItemType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, ItemType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, ItemType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for ItemType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, ItemType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out ItemType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ItemType_TypeID)
+				{
+				    throw new Exception("invalid userdata for ItemType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for ItemType");
+                }
+				val = (ItemType)e;
+                
+            }
+            else
+            {
+                val = (ItemType)objectCasters.GetCaster(typeof(ItemType))(L, index, null);
+            }
+        }
+		
+        public void UpdateItemType(RealStatePtr L, int index, ItemType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ItemType_TypeID)
+				{
+				    throw new Exception("invalid userdata for ItemType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for ItemType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int MakeType_TypeID = -1;
+		int MakeType_EnumRef = -1;
+        
+        public void PushMakeType(RealStatePtr L, MakeType val)
+        {
+            if (MakeType_TypeID == -1)
+            {
+			    bool is_first;
+                MakeType_TypeID = getTypeId(L, typeof(MakeType), out is_first);
+				
+				if (MakeType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(MakeType));
+				    MakeType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, MakeType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, MakeType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for MakeType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, MakeType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out MakeType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != MakeType_TypeID)
+				{
+				    throw new Exception("invalid userdata for MakeType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for MakeType");
+                }
+				val = (MakeType)e;
+                
+            }
+            else
+            {
+                val = (MakeType)objectCasters.GetCaster(typeof(MakeType))(L, index, null);
+            }
+        }
+		
+        public void UpdateMakeType(RealStatePtr L, int index, MakeType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != MakeType_TypeID)
+				{
+				    throw new Exception("invalid userdata for MakeType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for MakeType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int TitleType_TypeID = -1;
+		int TitleType_EnumRef = -1;
+        
+        public void PushTitleType(RealStatePtr L, TitleType val)
+        {
+            if (TitleType_TypeID == -1)
+            {
+			    bool is_first;
+                TitleType_TypeID = getTypeId(L, typeof(TitleType), out is_first);
+				
+				if (TitleType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(TitleType));
+				    TitleType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, TitleType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, TitleType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for TitleType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, TitleType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out TitleType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TitleType_TypeID)
+				{
+				    throw new Exception("invalid userdata for TitleType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for TitleType");
+                }
+				val = (TitleType)e;
+                
+            }
+            else
+            {
+                val = (TitleType)objectCasters.GetCaster(typeof(TitleType))(L, index, null);
+            }
+        }
+		
+        public void UpdateTitleType(RealStatePtr L, int index, TitleType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TitleType_TypeID)
+				{
+				    throw new Exception("invalid userdata for TitleType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for TitleType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int FuncOpenEnum_TypeID = -1;
+		int FuncOpenEnum_EnumRef = -1;
+        
+        public void PushFuncOpenEnum(RealStatePtr L, FuncOpenEnum val)
+        {
+            if (FuncOpenEnum_TypeID == -1)
+            {
+			    bool is_first;
+                FuncOpenEnum_TypeID = getTypeId(L, typeof(FuncOpenEnum), out is_first);
+				
+				if (FuncOpenEnum_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(FuncOpenEnum));
+				    FuncOpenEnum_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, FuncOpenEnum_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, FuncOpenEnum_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for FuncOpenEnum ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, FuncOpenEnum_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out FuncOpenEnum val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != FuncOpenEnum_TypeID)
+				{
+				    throw new Exception("invalid userdata for FuncOpenEnum");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for FuncOpenEnum");
+                }
+				val = (FuncOpenEnum)e;
+                
+            }
+            else
+            {
+                val = (FuncOpenEnum)objectCasters.GetCaster(typeof(FuncOpenEnum))(L, index, null);
+            }
+        }
+		
+        public void UpdateFuncOpenEnum(RealStatePtr L, int index, FuncOpenEnum val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != FuncOpenEnum_TypeID)
+				{
+				    throw new Exception("invalid userdata for FuncOpenEnum");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for FuncOpenEnum ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int PropertyType_TypeID = -1;
+		int PropertyType_EnumRef = -1;
+        
+        public void PushPropertyType(RealStatePtr L, PropertyType val)
+        {
+            if (PropertyType_TypeID == -1)
+            {
+			    bool is_first;
+                PropertyType_TypeID = getTypeId(L, typeof(PropertyType), out is_first);
+				
+				if (PropertyType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(PropertyType));
+				    PropertyType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, PropertyType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, PropertyType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for PropertyType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, PropertyType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out PropertyType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != PropertyType_TypeID)
+				{
+				    throw new Exception("invalid userdata for PropertyType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for PropertyType");
+                }
+				val = (PropertyType)e;
+                
+            }
+            else
+            {
+                val = (PropertyType)objectCasters.GetCaster(typeof(PropertyType))(L, index, null);
+            }
+        }
+		
+        public void UpdatePropertyType(RealStatePtr L, int index, PropertyType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != PropertyType_TypeID)
+				{
+				    throw new Exception("invalid userdata for PropertyType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for PropertyType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int TextColType_TypeID = -1;
+		int TextColType_EnumRef = -1;
+        
+        public void PushTextColType(RealStatePtr L, TextColType val)
+        {
+            if (TextColType_TypeID == -1)
+            {
+			    bool is_first;
+                TextColType_TypeID = getTypeId(L, typeof(TextColType), out is_first);
+				
+				if (TextColType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(TextColType));
+				    TextColType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, TextColType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, TextColType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for TextColType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, TextColType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out TextColType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TextColType_TypeID)
+				{
+				    throw new Exception("invalid userdata for TextColType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for TextColType");
+                }
+				val = (TextColType)e;
+                
+            }
+            else
+            {
+                val = (TextColType)objectCasters.GetCaster(typeof(TextColType))(L, index, null);
+            }
+        }
+		
+        public void UpdateTextColType(RealStatePtr L, int index, TextColType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TextColType_TypeID)
+				{
+				    throw new Exception("invalid userdata for TextColType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for TextColType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_ModelResType_TypeID = -1;
+		int E_ModelResType_EnumRef = -1;
+        
+        public void PushE_ModelResType(RealStatePtr L, E_ModelResType val)
+        {
+            if (E_ModelResType_TypeID == -1)
+            {
+			    bool is_first;
+                E_ModelResType_TypeID = getTypeId(L, typeof(E_ModelResType), out is_first);
+				
+				if (E_ModelResType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_ModelResType));
+				    E_ModelResType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_ModelResType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_ModelResType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_ModelResType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_ModelResType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_ModelResType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_ModelResType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_ModelResType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_ModelResType");
+                }
+				val = (E_ModelResType)e;
+                
+            }
+            else
+            {
+                val = (E_ModelResType)objectCasters.GetCaster(typeof(E_ModelResType))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_ModelResType(RealStatePtr L, int index, E_ModelResType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_ModelResType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_ModelResType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_ModelResType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int TreasureCategory_TypeID = -1;
+		int TreasureCategory_EnumRef = -1;
+        
+        public void PushTreasureCategory(RealStatePtr L, TreasureCategory val)
+        {
+            if (TreasureCategory_TypeID == -1)
+            {
+			    bool is_first;
+                TreasureCategory_TypeID = getTypeId(L, typeof(TreasureCategory), out is_first);
+				
+				if (TreasureCategory_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(TreasureCategory));
+				    TreasureCategory_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, TreasureCategory_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, TreasureCategory_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for TreasureCategory ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, TreasureCategory_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out TreasureCategory val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TreasureCategory_TypeID)
+				{
+				    throw new Exception("invalid userdata for TreasureCategory");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for TreasureCategory");
+                }
+				val = (TreasureCategory)e;
+                
+            }
+            else
+            {
+                val = (TreasureCategory)objectCasters.GetCaster(typeof(TreasureCategory))(L, index, null);
+            }
+        }
+		
+        public void UpdateTreasureCategory(RealStatePtr L, int index, TreasureCategory val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TreasureCategory_TypeID)
+				{
+				    throw new Exception("invalid userdata for TreasureCategory");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for TreasureCategory ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int TreasureState_TypeID = -1;
+		int TreasureState_EnumRef = -1;
+        
+        public void PushTreasureState(RealStatePtr L, TreasureState val)
+        {
+            if (TreasureState_TypeID == -1)
+            {
+			    bool is_first;
+                TreasureState_TypeID = getTypeId(L, typeof(TreasureState), out is_first);
+				
+				if (TreasureState_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(TreasureState));
+				    TreasureState_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, TreasureState_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, TreasureState_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for TreasureState ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, TreasureState_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out TreasureState val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TreasureState_TypeID)
+				{
+				    throw new Exception("invalid userdata for TreasureState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for TreasureState");
+                }
+				val = (TreasureState)e;
+                
+            }
+            else
+            {
+                val = (TreasureState)objectCasters.GetCaster(typeof(TreasureState))(L, index, null);
+            }
+        }
+		
+        public void UpdateTreasureState(RealStatePtr L, int index, TreasureState val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TreasureState_TypeID)
+				{
+				    throw new Exception("invalid userdata for TreasureState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for TreasureState ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int FunctionUnlockType_TypeID = -1;
+		int FunctionUnlockType_EnumRef = -1;
+        
+        public void PushFunctionUnlockType(RealStatePtr L, FunctionUnlockType val)
+        {
+            if (FunctionUnlockType_TypeID == -1)
+            {
+			    bool is_first;
+                FunctionUnlockType_TypeID = getTypeId(L, typeof(FunctionUnlockType), out is_first);
+				
+				if (FunctionUnlockType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(FunctionUnlockType));
+				    FunctionUnlockType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, FunctionUnlockType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, FunctionUnlockType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for FunctionUnlockType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, FunctionUnlockType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out FunctionUnlockType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != FunctionUnlockType_TypeID)
+				{
+				    throw new Exception("invalid userdata for FunctionUnlockType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for FunctionUnlockType");
+                }
+				val = (FunctionUnlockType)e;
+                
+            }
+            else
+            {
+                val = (FunctionUnlockType)objectCasters.GetCaster(typeof(FunctionUnlockType))(L, index, null);
+            }
+        }
+		
+        public void UpdateFunctionUnlockType(RealStatePtr L, int index, FunctionUnlockType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != FunctionUnlockType_TypeID)
+				{
+				    throw new Exception("invalid userdata for FunctionUnlockType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for FunctionUnlockType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int RedPointState_TypeID = -1;
+		int RedPointState_EnumRef = -1;
+        
+        public void PushRedPointState(RealStatePtr L, RedPointState val)
+        {
+            if (RedPointState_TypeID == -1)
+            {
+			    bool is_first;
+                RedPointState_TypeID = getTypeId(L, typeof(RedPointState), out is_first);
+				
+				if (RedPointState_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(RedPointState));
+				    RedPointState_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, RedPointState_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, RedPointState_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for RedPointState ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, RedPointState_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out RedPointState val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != RedPointState_TypeID)
+				{
+				    throw new Exception("invalid userdata for RedPointState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for RedPointState");
+                }
+				val = (RedPointState)e;
+                
+            }
+            else
+            {
+                val = (RedPointState)objectCasters.GetCaster(typeof(RedPointState))(L, index, null);
+            }
+        }
+		
+        public void UpdateRedPointState(RealStatePtr L, int index, RedPointState val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != RedPointState_TypeID)
+				{
+				    throw new Exception("invalid userdata for RedPointState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for RedPointState ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int TeamInviteType_TypeID = -1;
+		int TeamInviteType_EnumRef = -1;
+        
+        public void PushTeamInviteType(RealStatePtr L, TeamInviteType val)
+        {
+            if (TeamInviteType_TypeID == -1)
+            {
+			    bool is_first;
+                TeamInviteType_TypeID = getTypeId(L, typeof(TeamInviteType), out is_first);
+				
+				if (TeamInviteType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(TeamInviteType));
+				    TeamInviteType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, TeamInviteType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, TeamInviteType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for TeamInviteType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, TeamInviteType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out TeamInviteType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TeamInviteType_TypeID)
+				{
+				    throw new Exception("invalid userdata for TeamInviteType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for TeamInviteType");
+                }
+				val = (TeamInviteType)e;
+                
+            }
+            else
+            {
+                val = (TeamInviteType)objectCasters.GetCaster(typeof(TeamInviteType))(L, index, null);
+            }
+        }
+		
+        public void UpdateTeamInviteType(RealStatePtr L, int index, TeamInviteType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TeamInviteType_TypeID)
+				{
+				    throw new Exception("invalid userdata for TeamInviteType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for TeamInviteType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int TeammatePrepareState_TypeID = -1;
+		int TeammatePrepareState_EnumRef = -1;
+        
+        public void PushTeammatePrepareState(RealStatePtr L, TeammatePrepareState val)
+        {
+            if (TeammatePrepareState_TypeID == -1)
+            {
+			    bool is_first;
+                TeammatePrepareState_TypeID = getTypeId(L, typeof(TeammatePrepareState), out is_first);
+				
+				if (TeammatePrepareState_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(TeammatePrepareState));
+				    TeammatePrepareState_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, TeammatePrepareState_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, TeammatePrepareState_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for TeammatePrepareState ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, TeammatePrepareState_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out TeammatePrepareState val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TeammatePrepareState_TypeID)
+				{
+				    throw new Exception("invalid userdata for TeammatePrepareState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for TeammatePrepareState");
+                }
+				val = (TeammatePrepareState)e;
+                
+            }
+            else
+            {
+                val = (TeammatePrepareState)objectCasters.GetCaster(typeof(TeammatePrepareState))(L, index, null);
+            }
+        }
+		
+        public void UpdateTeammatePrepareState(RealStatePtr L, int index, TeammatePrepareState val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TeammatePrepareState_TypeID)
+				{
+				    throw new Exception("invalid userdata for TeammatePrepareState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for TeammatePrepareState ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int VipPrivilegeType_TypeID = -1;
+		int VipPrivilegeType_EnumRef = -1;
+        
+        public void PushVipPrivilegeType(RealStatePtr L, VipPrivilegeType val)
+        {
+            if (VipPrivilegeType_TypeID == -1)
+            {
+			    bool is_first;
+                VipPrivilegeType_TypeID = getTypeId(L, typeof(VipPrivilegeType), out is_first);
+				
+				if (VipPrivilegeType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(VipPrivilegeType));
+				    VipPrivilegeType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, VipPrivilegeType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, VipPrivilegeType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for VipPrivilegeType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, VipPrivilegeType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out VipPrivilegeType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != VipPrivilegeType_TypeID)
+				{
+				    throw new Exception("invalid userdata for VipPrivilegeType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for VipPrivilegeType");
+                }
+				val = (VipPrivilegeType)e;
+                
+            }
+            else
+            {
+                val = (VipPrivilegeType)objectCasters.GetCaster(typeof(VipPrivilegeType))(L, index, null);
+            }
+        }
+		
+        public void UpdateVipPrivilegeType(RealStatePtr L, int index, VipPrivilegeType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != VipPrivilegeType_TypeID)
+				{
+				    throw new Exception("invalid userdata for VipPrivilegeType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for VipPrivilegeType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_AttackMode_TypeID = -1;
+		int E_AttackMode_EnumRef = -1;
+        
+        public void PushE_AttackMode(RealStatePtr L, E_AttackMode val)
+        {
+            if (E_AttackMode_TypeID == -1)
+            {
+			    bool is_first;
+                E_AttackMode_TypeID = getTypeId(L, typeof(E_AttackMode), out is_first);
+				
+				if (E_AttackMode_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_AttackMode));
+				    E_AttackMode_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_AttackMode_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_AttackMode_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_AttackMode ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_AttackMode_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_AttackMode val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_AttackMode_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_AttackMode");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_AttackMode");
+                }
+				val = (E_AttackMode)e;
+                
+            }
+            else
+            {
+                val = (E_AttackMode)objectCasters.GetCaster(typeof(E_AttackMode))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_AttackMode(RealStatePtr L, int index, E_AttackMode val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_AttackMode_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_AttackMode");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_AttackMode ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_ItemColor_TypeID = -1;
+		int E_ItemColor_EnumRef = -1;
+        
+        public void PushE_ItemColor(RealStatePtr L, E_ItemColor val)
+        {
+            if (E_ItemColor_TypeID == -1)
+            {
+			    bool is_first;
+                E_ItemColor_TypeID = getTypeId(L, typeof(E_ItemColor), out is_first);
+				
+				if (E_ItemColor_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_ItemColor));
+				    E_ItemColor_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_ItemColor_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_ItemColor_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_ItemColor ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_ItemColor_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_ItemColor val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_ItemColor_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_ItemColor");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_ItemColor");
+                }
+				val = (E_ItemColor)e;
+                
+            }
+            else
+            {
+                val = (E_ItemColor)objectCasters.GetCaster(typeof(E_ItemColor))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_ItemColor(RealStatePtr L, int index, E_ItemColor val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_ItemColor_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_ItemColor");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_ItemColor ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int FindPreciousType_TypeID = -1;
+		int FindPreciousType_EnumRef = -1;
+        
+        public void PushFindPreciousType(RealStatePtr L, FindPreciousType val)
+        {
+            if (FindPreciousType_TypeID == -1)
+            {
+			    bool is_first;
+                FindPreciousType_TypeID = getTypeId(L, typeof(FindPreciousType), out is_first);
+				
+				if (FindPreciousType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(FindPreciousType));
+				    FindPreciousType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, FindPreciousType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, FindPreciousType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for FindPreciousType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, FindPreciousType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out FindPreciousType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != FindPreciousType_TypeID)
+				{
+				    throw new Exception("invalid userdata for FindPreciousType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for FindPreciousType");
+                }
+				val = (FindPreciousType)e;
+                
+            }
+            else
+            {
+                val = (FindPreciousType)objectCasters.GetCaster(typeof(FindPreciousType))(L, index, null);
+            }
+        }
+		
+        public void UpdateFindPreciousType(RealStatePtr L, int index, FindPreciousType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != FindPreciousType_TypeID)
+				{
+				    throw new Exception("invalid userdata for FindPreciousType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for FindPreciousType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int GotServerRewardType_TypeID = -1;
+		int GotServerRewardType_EnumRef = -1;
+        
+        public void PushGotServerRewardType(RealStatePtr L, GotServerRewardType val)
+        {
+            if (GotServerRewardType_TypeID == -1)
+            {
+			    bool is_first;
+                GotServerRewardType_TypeID = getTypeId(L, typeof(GotServerRewardType), out is_first);
+				
+				if (GotServerRewardType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(GotServerRewardType));
+				    GotServerRewardType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, GotServerRewardType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, GotServerRewardType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for GotServerRewardType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, GotServerRewardType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out GotServerRewardType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != GotServerRewardType_TypeID)
+				{
+				    throw new Exception("invalid userdata for GotServerRewardType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for GotServerRewardType");
+                }
+				val = (GotServerRewardType)e;
+                
+            }
+            else
+            {
+                val = (GotServerRewardType)objectCasters.GetCaster(typeof(GotServerRewardType))(L, index, null);
+            }
+        }
+		
+        public void UpdateGotServerRewardType(RealStatePtr L, int index, GotServerRewardType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != GotServerRewardType_TypeID)
+				{
+				    throw new Exception("invalid userdata for GotServerRewardType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for GotServerRewardType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int MapType_TypeID = -1;
+		int MapType_EnumRef = -1;
+        
+        public void PushMapType(RealStatePtr L, MapType val)
+        {
+            if (MapType_TypeID == -1)
+            {
+			    bool is_first;
+                MapType_TypeID = getTypeId(L, typeof(MapType), out is_first);
+				
+				if (MapType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(MapType));
+				    MapType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, MapType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, MapType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for MapType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, MapType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out MapType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != MapType_TypeID)
+				{
+				    throw new Exception("invalid userdata for MapType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for MapType");
+                }
+				val = (MapType)e;
+                
+            }
+            else
+            {
+                val = (MapType)objectCasters.GetCaster(typeof(MapType))(L, index, null);
+            }
+        }
+		
+        public void UpdateMapType(RealStatePtr L, int index, MapType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != MapType_TypeID)
+				{
+				    throw new Exception("invalid userdata for MapType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for MapType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int GuideType_TypeID = -1;
+		int GuideType_EnumRef = -1;
+        
+        public void PushGuideType(RealStatePtr L, GuideType val)
+        {
+            if (GuideType_TypeID == -1)
+            {
+			    bool is_first;
+                GuideType_TypeID = getTypeId(L, typeof(GuideType), out is_first);
+				
+				if (GuideType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(GuideType));
+				    GuideType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, GuideType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, GuideType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for GuideType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, GuideType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out GuideType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != GuideType_TypeID)
+				{
+				    throw new Exception("invalid userdata for GuideType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for GuideType");
+                }
+				val = (GuideType)e;
+                
+            }
+            else
+            {
+                val = (GuideType)objectCasters.GetCaster(typeof(GuideType))(L, index, null);
+            }
+        }
+		
+        public void UpdateGuideType(RealStatePtr L, int index, GuideType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != GuideType_TypeID)
+				{
+				    throw new Exception("invalid userdata for GuideType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for GuideType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int GuideTriggerType_TypeID = -1;
+		int GuideTriggerType_EnumRef = -1;
+        
+        public void PushGuideTriggerType(RealStatePtr L, GuideTriggerType val)
+        {
+            if (GuideTriggerType_TypeID == -1)
+            {
+			    bool is_first;
+                GuideTriggerType_TypeID = getTypeId(L, typeof(GuideTriggerType), out is_first);
+				
+				if (GuideTriggerType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(GuideTriggerType));
+				    GuideTriggerType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, GuideTriggerType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, GuideTriggerType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for GuideTriggerType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, GuideTriggerType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out GuideTriggerType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != GuideTriggerType_TypeID)
+				{
+				    throw new Exception("invalid userdata for GuideTriggerType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for GuideTriggerType");
+                }
+				val = (GuideTriggerType)e;
+                
+            }
+            else
+            {
+                val = (GuideTriggerType)objectCasters.GetCaster(typeof(GuideTriggerType))(L, index, null);
+            }
+        }
+		
+        public void UpdateGuideTriggerType(RealStatePtr L, int index, GuideTriggerType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != GuideTriggerType_TypeID)
+				{
+				    throw new Exception("invalid userdata for GuideTriggerType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for GuideTriggerType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int FuncPowerType_TypeID = -1;
+		int FuncPowerType_EnumRef = -1;
+        
+        public void PushFuncPowerType(RealStatePtr L, FuncPowerType val)
+        {
+            if (FuncPowerType_TypeID == -1)
+            {
+			    bool is_first;
+                FuncPowerType_TypeID = getTypeId(L, typeof(FuncPowerType), out is_first);
+				
+				if (FuncPowerType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(FuncPowerType));
+				    FuncPowerType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, FuncPowerType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, FuncPowerType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for FuncPowerType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, FuncPowerType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out FuncPowerType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != FuncPowerType_TypeID)
+				{
+				    throw new Exception("invalid userdata for FuncPowerType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for FuncPowerType");
+                }
+				val = (FuncPowerType)e;
+                
+            }
+            else
+            {
+                val = (FuncPowerType)objectCasters.GetCaster(typeof(FuncPowerType))(L, index, null);
+            }
+        }
+		
+        public void UpdateFuncPowerType(RealStatePtr L, int index, FuncPowerType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != FuncPowerType_TypeID)
+				{
+				    throw new Exception("invalid userdata for FuncPowerType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for FuncPowerType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int E_AtkType_TypeID = -1;
+		int E_AtkType_EnumRef = -1;
+        
+        public void PushE_AtkType(RealStatePtr L, E_AtkType val)
+        {
+            if (E_AtkType_TypeID == -1)
+            {
+			    bool is_first;
+                E_AtkType_TypeID = getTypeId(L, typeof(E_AtkType), out is_first);
+				
+				if (E_AtkType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(E_AtkType));
+				    E_AtkType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, E_AtkType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, E_AtkType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for E_AtkType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, E_AtkType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out E_AtkType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_AtkType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_AtkType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for E_AtkType");
+                }
+				val = (E_AtkType)e;
+                
+            }
+            else
+            {
+                val = (E_AtkType)objectCasters.GetCaster(typeof(E_AtkType))(L, index, null);
+            }
+        }
+		
+        public void UpdateE_AtkType(RealStatePtr L, int index, E_AtkType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != E_AtkType_TypeID)
+				{
+				    throw new Exception("invalid userdata for E_AtkType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for E_AtkType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int GameObjType_TypeID = -1;
+		int GameObjType_EnumRef = -1;
+        
+        public void PushGameObjType(RealStatePtr L, GameObjType val)
+        {
+            if (GameObjType_TypeID == -1)
+            {
+			    bool is_first;
+                GameObjType_TypeID = getTypeId(L, typeof(GameObjType), out is_first);
+				
+				if (GameObjType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(GameObjType));
+				    GameObjType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, GameObjType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, GameObjType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for GameObjType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, GameObjType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out GameObjType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != GameObjType_TypeID)
+				{
+				    throw new Exception("invalid userdata for GameObjType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for GameObjType");
+                }
+				val = (GameObjType)e;
+                
+            }
+            else
+            {
+                val = (GameObjType)objectCasters.GetCaster(typeof(GameObjType))(L, index, null);
+            }
+        }
+		
+        public void UpdateGameObjType(RealStatePtr L, int index, GameObjType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != GameObjType_TypeID)
+				{
+				    throw new Exception("invalid userdata for GameObjType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for GameObjType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int HurtAttackType_TypeID = -1;
+		int HurtAttackType_EnumRef = -1;
+        
+        public void PushHurtAttackType(RealStatePtr L, HurtAttackType val)
+        {
+            if (HurtAttackType_TypeID == -1)
+            {
+			    bool is_first;
+                HurtAttackType_TypeID = getTypeId(L, typeof(HurtAttackType), out is_first);
+				
+				if (HurtAttackType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(HurtAttackType));
+				    HurtAttackType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, HurtAttackType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, HurtAttackType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for HurtAttackType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, HurtAttackType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out HurtAttackType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != HurtAttackType_TypeID)
+				{
+				    throw new Exception("invalid userdata for HurtAttackType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for HurtAttackType");
+                }
+				val = (HurtAttackType)e;
+                
+            }
+            else
+            {
+                val = (HurtAttackType)objectCasters.GetCaster(typeof(HurtAttackType))(L, index, null);
+            }
+        }
+		
+        public void UpdateHurtAttackType(RealStatePtr L, int index, HurtAttackType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != HurtAttackType_TypeID)
+				{
+				    throw new Exception("invalid userdata for HurtAttackType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for HurtAttackType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int DungeonTargetType_TypeID = -1;
+		int DungeonTargetType_EnumRef = -1;
+        
+        public void PushDungeonTargetType(RealStatePtr L, DungeonTargetType val)
+        {
+            if (DungeonTargetType_TypeID == -1)
+            {
+			    bool is_first;
+                DungeonTargetType_TypeID = getTypeId(L, typeof(DungeonTargetType), out is_first);
+				
+				if (DungeonTargetType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(DungeonTargetType));
+				    DungeonTargetType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, DungeonTargetType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, DungeonTargetType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for DungeonTargetType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, DungeonTargetType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out DungeonTargetType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != DungeonTargetType_TypeID)
+				{
+				    throw new Exception("invalid userdata for DungeonTargetType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for DungeonTargetType");
+                }
+				val = (DungeonTargetType)e;
+                
+            }
+            else
+            {
+                val = (DungeonTargetType)objectCasters.GetCaster(typeof(DungeonTargetType))(L, index, null);
+            }
+        }
+		
+        public void UpdateDungeonTargetType(RealStatePtr L, int index, DungeonTargetType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != DungeonTargetType_TypeID)
+				{
+				    throw new Exception("invalid userdata for DungeonTargetType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for DungeonTargetType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int AchievementType_TypeID = -1;
+		int AchievementType_EnumRef = -1;
+        
+        public void PushAchievementType(RealStatePtr L, AchievementType val)
+        {
+            if (AchievementType_TypeID == -1)
+            {
+			    bool is_first;
+                AchievementType_TypeID = getTypeId(L, typeof(AchievementType), out is_first);
+				
+				if (AchievementType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(AchievementType));
+				    AchievementType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, AchievementType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, AchievementType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for AchievementType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, AchievementType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out AchievementType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != AchievementType_TypeID)
+				{
+				    throw new Exception("invalid userdata for AchievementType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for AchievementType");
+                }
+				val = (AchievementType)e;
+                
+            }
+            else
+            {
+                val = (AchievementType)objectCasters.GetCaster(typeof(AchievementType))(L, index, null);
+            }
+        }
+		
+        public void UpdateAchievementType(RealStatePtr L, int index, AchievementType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != AchievementType_TypeID)
+				{
+				    throw new Exception("invalid userdata for AchievementType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for AchievementType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int ItemTimeType_TypeID = -1;
+		int ItemTimeType_EnumRef = -1;
+        
+        public void PushItemTimeType(RealStatePtr L, ItemTimeType val)
+        {
+            if (ItemTimeType_TypeID == -1)
+            {
+			    bool is_first;
+                ItemTimeType_TypeID = getTypeId(L, typeof(ItemTimeType), out is_first);
+				
+				if (ItemTimeType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(ItemTimeType));
+				    ItemTimeType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, ItemTimeType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, ItemTimeType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for ItemTimeType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, ItemTimeType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out ItemTimeType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ItemTimeType_TypeID)
+				{
+				    throw new Exception("invalid userdata for ItemTimeType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for ItemTimeType");
+                }
+				val = (ItemTimeType)e;
+                
+            }
+            else
+            {
+                val = (ItemTimeType)objectCasters.GetCaster(typeof(ItemTimeType))(L, index, null);
+            }
+        }
+		
+        public void UpdateItemTimeType(RealStatePtr L, int index, ItemTimeType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ItemTimeType_TypeID)
+				{
+				    throw new Exception("invalid userdata for ItemTimeType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for ItemTimeType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int TitleBtnState_TypeID = -1;
+		int TitleBtnState_EnumRef = -1;
+        
+        public void PushTitleBtnState(RealStatePtr L, TitleBtnState val)
+        {
+            if (TitleBtnState_TypeID == -1)
+            {
+			    bool is_first;
+                TitleBtnState_TypeID = getTypeId(L, typeof(TitleBtnState), out is_first);
+				
+				if (TitleBtnState_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(TitleBtnState));
+				    TitleBtnState_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, TitleBtnState_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, TitleBtnState_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for TitleBtnState ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, TitleBtnState_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out TitleBtnState val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TitleBtnState_TypeID)
+				{
+				    throw new Exception("invalid userdata for TitleBtnState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for TitleBtnState");
+                }
+				val = (TitleBtnState)e;
+                
+            }
+            else
+            {
+                val = (TitleBtnState)objectCasters.GetCaster(typeof(TitleBtnState))(L, index, null);
+            }
+        }
+		
+        public void UpdateTitleBtnState(RealStatePtr L, int index, TitleBtnState val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != TitleBtnState_TypeID)
+				{
+				    throw new Exception("invalid userdata for TitleBtnState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for TitleBtnState ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int LegendAttrType_TypeID = -1;
+		int LegendAttrType_EnumRef = -1;
+        
+        public void PushLegendAttrType(RealStatePtr L, LegendAttrType val)
+        {
+            if (LegendAttrType_TypeID == -1)
+            {
+			    bool is_first;
+                LegendAttrType_TypeID = getTypeId(L, typeof(LegendAttrType), out is_first);
+				
+				if (LegendAttrType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(LegendAttrType));
+				    LegendAttrType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, LegendAttrType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, LegendAttrType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for LegendAttrType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, LegendAttrType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out LegendAttrType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != LegendAttrType_TypeID)
+				{
+				    throw new Exception("invalid userdata for LegendAttrType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for LegendAttrType");
+                }
+				val = (LegendAttrType)e;
+                
+            }
+            else
+            {
+                val = (LegendAttrType)objectCasters.GetCaster(typeof(LegendAttrType))(L, index, null);
+            }
+        }
+		
+        public void UpdateLegendAttrType(RealStatePtr L, int index, LegendAttrType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != LegendAttrType_TypeID)
+				{
+				    throw new Exception("invalid userdata for LegendAttrType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for LegendAttrType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int ServerState_TypeID = -1;
+		int ServerState_EnumRef = -1;
+        
+        public void PushServerState(RealStatePtr L, ServerState val)
+        {
+            if (ServerState_TypeID == -1)
+            {
+			    bool is_first;
+                ServerState_TypeID = getTypeId(L, typeof(ServerState), out is_first);
+				
+				if (ServerState_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(ServerState));
+				    ServerState_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, ServerState_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, ServerState_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for ServerState ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, ServerState_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out ServerState val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ServerState_TypeID)
+				{
+				    throw new Exception("invalid userdata for ServerState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for ServerState");
+                }
+				val = (ServerState)e;
+                
+            }
+            else
+            {
+                val = (ServerState)objectCasters.GetCaster(typeof(ServerState))(L, index, null);
+            }
+        }
+		
+        public void UpdateServerState(RealStatePtr L, int index, ServerState val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ServerState_TypeID)
+				{
+				    throw new Exception("invalid userdata for ServerState");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for ServerState ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int ItemUseDataKey_TypeID = -1;
+		int ItemUseDataKey_EnumRef = -1;
+        
+        public void PushItemUseDataKey(RealStatePtr L, ItemUseDataKey val)
+        {
+            if (ItemUseDataKey_TypeID == -1)
+            {
+			    bool is_first;
+                ItemUseDataKey_TypeID = getTypeId(L, typeof(ItemUseDataKey), out is_first);
+				
+				if (ItemUseDataKey_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(ItemUseDataKey));
+				    ItemUseDataKey_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, ItemUseDataKey_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, ItemUseDataKey_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for ItemUseDataKey ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, ItemUseDataKey_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out ItemUseDataKey val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ItemUseDataKey_TypeID)
+				{
+				    throw new Exception("invalid userdata for ItemUseDataKey");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for ItemUseDataKey");
+                }
+				val = (ItemUseDataKey)e;
+                
+            }
+            else
+            {
+                val = (ItemUseDataKey)objectCasters.GetCaster(typeof(ItemUseDataKey))(L, index, null);
+            }
+        }
+		
+        public void UpdateItemUseDataKey(RealStatePtr L, int index, ItemUseDataKey val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ItemUseDataKey_TypeID)
+				{
+				    throw new Exception("invalid userdata for ItemUseDataKey");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for ItemUseDataKey ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int ItemOperateType_TypeID = -1;
+		int ItemOperateType_EnumRef = -1;
+        
+        public void PushItemOperateType(RealStatePtr L, ItemOperateType val)
+        {
+            if (ItemOperateType_TypeID == -1)
+            {
+			    bool is_first;
+                ItemOperateType_TypeID = getTypeId(L, typeof(ItemOperateType), out is_first);
+				
+				if (ItemOperateType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(ItemOperateType));
+				    ItemOperateType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, ItemOperateType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, ItemOperateType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for ItemOperateType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, ItemOperateType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out ItemOperateType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ItemOperateType_TypeID)
+				{
+				    throw new Exception("invalid userdata for ItemOperateType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for ItemOperateType");
+                }
+				val = (ItemOperateType)e;
+                
+            }
+            else
+            {
+                val = (ItemOperateType)objectCasters.GetCaster(typeof(ItemOperateType))(L, index, null);
+            }
+        }
+		
+        public void UpdateItemOperateType(RealStatePtr L, int index, ItemOperateType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ItemOperateType_TypeID)
+				{
+				    throw new Exception("invalid userdata for ItemOperateType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for ItemOperateType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int ItemWinType_TypeID = -1;
+		int ItemWinType_EnumRef = -1;
+        
+        public void PushItemWinType(RealStatePtr L, ItemWinType val)
+        {
+            if (ItemWinType_TypeID == -1)
+            {
+			    bool is_first;
+                ItemWinType_TypeID = getTypeId(L, typeof(ItemWinType), out is_first);
+				
+				if (ItemWinType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(ItemWinType));
+				    ItemWinType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, ItemWinType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, ItemWinType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for ItemWinType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, ItemWinType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out ItemWinType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ItemWinType_TypeID)
+				{
+				    throw new Exception("invalid userdata for ItemWinType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for ItemWinType");
+                }
+				val = (ItemWinType)e;
+                
+            }
+            else
+            {
+                val = (ItemWinType)objectCasters.GetCaster(typeof(ItemWinType))(L, index, null);
+            }
+        }
+		
+        public void UpdateItemWinType(RealStatePtr L, int index, ItemWinType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ItemWinType_TypeID)
+				{
+				    throw new Exception("invalid userdata for ItemWinType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for ItemWinType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int ItemTipChildType_TypeID = -1;
+		int ItemTipChildType_EnumRef = -1;
+        
+        public void PushItemTipChildType(RealStatePtr L, ItemTipChildType val)
+        {
+            if (ItemTipChildType_TypeID == -1)
+            {
+			    bool is_first;
+                ItemTipChildType_TypeID = getTypeId(L, typeof(ItemTipChildType), out is_first);
+				
+				if (ItemTipChildType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(ItemTipChildType));
+				    ItemTipChildType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, ItemTipChildType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, ItemTipChildType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for ItemTipChildType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, ItemTipChildType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out ItemTipChildType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ItemTipChildType_TypeID)
+				{
+				    throw new Exception("invalid userdata for ItemTipChildType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for ItemTipChildType");
+                }
+				val = (ItemTipChildType)e;
+                
+            }
+            else
+            {
+                val = (ItemTipChildType)objectCasters.GetCaster(typeof(ItemTipChildType))(L, index, null);
+            }
+        }
+		
+        public void UpdateItemTipChildType(RealStatePtr L, int index, ItemTipChildType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != ItemTipChildType_TypeID)
+				{
+				    throw new Exception("invalid userdata for ItemTipChildType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for ItemTipChildType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int InstalledAsset_TypeID = -1;
+		int InstalledAsset_EnumRef = -1;
+        
+        public void PushInstalledAsset(RealStatePtr L, InstalledAsset val)
+        {
+            if (InstalledAsset_TypeID == -1)
+            {
+			    bool is_first;
+                InstalledAsset_TypeID = getTypeId(L, typeof(InstalledAsset), out is_first);
+				
+				if (InstalledAsset_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(InstalledAsset));
+				    InstalledAsset_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, InstalledAsset_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, InstalledAsset_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for InstalledAsset ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, InstalledAsset_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out InstalledAsset val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != InstalledAsset_TypeID)
+				{
+				    throw new Exception("invalid userdata for InstalledAsset");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for InstalledAsset");
+                }
+				val = (InstalledAsset)e;
+                
+            }
+            else
+            {
+                val = (InstalledAsset)objectCasters.GetCaster(typeof(InstalledAsset))(L, index, null);
+            }
+        }
+		
+        public void UpdateInstalledAsset(RealStatePtr L, int index, InstalledAsset val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != InstalledAsset_TypeID)
+				{
+				    throw new Exception("invalid userdata for InstalledAsset");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for InstalledAsset ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int VersionAuthority_TypeID = -1;
+		int VersionAuthority_EnumRef = -1;
+        
+        public void PushVersionAuthority(RealStatePtr L, VersionAuthority val)
+        {
+            if (VersionAuthority_TypeID == -1)
+            {
+			    bool is_first;
+                VersionAuthority_TypeID = getTypeId(L, typeof(VersionAuthority), out is_first);
+				
+				if (VersionAuthority_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(VersionAuthority));
+				    VersionAuthority_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, VersionAuthority_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, VersionAuthority_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for VersionAuthority ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, VersionAuthority_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out VersionAuthority val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != VersionAuthority_TypeID)
+				{
+				    throw new Exception("invalid userdata for VersionAuthority");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for VersionAuthority");
+                }
+				val = (VersionAuthority)e;
+                
+            }
+            else
+            {
+                val = (VersionAuthority)objectCasters.GetCaster(typeof(VersionAuthority))(L, index, null);
+            }
+        }
+		
+        public void UpdateVersionAuthority(RealStatePtr L, int index, VersionAuthority val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != VersionAuthority_TypeID)
+				{
+				    throw new Exception("invalid userdata for VersionAuthority");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for VersionAuthority ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int FootAudioType_TypeID = -1;
+		int FootAudioType_EnumRef = -1;
+        
+        public void PushFootAudioType(RealStatePtr L, FootAudioType val)
+        {
+            if (FootAudioType_TypeID == -1)
+            {
+			    bool is_first;
+                FootAudioType_TypeID = getTypeId(L, typeof(FootAudioType), out is_first);
+				
+				if (FootAudioType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(FootAudioType));
+				    FootAudioType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, FootAudioType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, FootAudioType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for FootAudioType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, FootAudioType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out FootAudioType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != FootAudioType_TypeID)
+				{
+				    throw new Exception("invalid userdata for FootAudioType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for FootAudioType");
+                }
+				val = (FootAudioType)e;
+                
+            }
+            else
+            {
+                val = (FootAudioType)objectCasters.GetCaster(typeof(FootAudioType))(L, index, null);
+            }
+        }
+		
+        public void UpdateFootAudioType(RealStatePtr L, int index, FootAudioType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != FootAudioType_TypeID)
+				{
+				    throw new Exception("invalid userdata for FootAudioType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for FootAudioType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int AttackFailType_TypeID = -1;
+		int AttackFailType_EnumRef = -1;
+        
+        public void PushAttackFailType(RealStatePtr L, AttackFailType val)
+        {
+            if (AttackFailType_TypeID == -1)
+            {
+			    bool is_first;
+                AttackFailType_TypeID = getTypeId(L, typeof(AttackFailType), out is_first);
+				
+				if (AttackFailType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(AttackFailType));
+				    AttackFailType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, AttackFailType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, AttackFailType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for AttackFailType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, AttackFailType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out AttackFailType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != AttackFailType_TypeID)
+				{
+				    throw new Exception("invalid userdata for AttackFailType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for AttackFailType");
+                }
+				val = (AttackFailType)e;
+                
+            }
+            else
+            {
+                val = (AttackFailType)objectCasters.GetCaster(typeof(AttackFailType))(L, index, null);
+            }
+        }
+		
+        public void UpdateAttackFailType(RealStatePtr L, int index, AttackFailType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != AttackFailType_TypeID)
+				{
+				    throw new Exception("invalid userdata for AttackFailType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for AttackFailType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int DungeonFightStage_TypeID = -1;
+		int DungeonFightStage_EnumRef = -1;
+        
+        public void PushDungeonFightStage(RealStatePtr L, DungeonFightStage val)
+        {
+            if (DungeonFightStage_TypeID == -1)
+            {
+			    bool is_first;
+                DungeonFightStage_TypeID = getTypeId(L, typeof(DungeonFightStage), out is_first);
+				
+				if (DungeonFightStage_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(DungeonFightStage));
+				    DungeonFightStage_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, DungeonFightStage_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, DungeonFightStage_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for DungeonFightStage ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, DungeonFightStage_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out DungeonFightStage val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != DungeonFightStage_TypeID)
+				{
+				    throw new Exception("invalid userdata for DungeonFightStage");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for DungeonFightStage");
+                }
+				val = (DungeonFightStage)e;
+                
+            }
+            else
+            {
+                val = (DungeonFightStage)objectCasters.GetCaster(typeof(DungeonFightStage))(L, index, null);
+            }
+        }
+		
+        public void UpdateDungeonFightStage(RealStatePtr L, int index, DungeonFightStage val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != DungeonFightStage_TypeID)
+				{
+				    throw new Exception("invalid userdata for DungeonFightStage");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for DungeonFightStage ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int RankType_TypeID = -1;
+		int RankType_EnumRef = -1;
+        
+        public void PushRankType(RealStatePtr L, RankType val)
+        {
+            if (RankType_TypeID == -1)
+            {
+			    bool is_first;
+                RankType_TypeID = getTypeId(L, typeof(RankType), out is_first);
+				
+				if (RankType_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(RankType));
+				    RankType_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, RankType_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, RankType_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for RankType ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, RankType_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out RankType val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != RankType_TypeID)
+				{
+				    throw new Exception("invalid userdata for RankType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for RankType");
+                }
+				val = (RankType)e;
+                
+            }
+            else
+            {
+                val = (RankType)objectCasters.GetCaster(typeof(RankType))(L, index, null);
+            }
+        }
+		
+        public void UpdateRankType(RealStatePtr L, int index, RankType val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != RankType_TypeID)
+				{
+				    throw new Exception("invalid userdata for RankType");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for RankType ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
+        int PetOrMount_TypeID = -1;
+		int PetOrMount_EnumRef = -1;
+        
+        public void PushPetOrMount(RealStatePtr L, PetOrMount val)
+        {
+            if (PetOrMount_TypeID == -1)
+            {
+			    bool is_first;
+                PetOrMount_TypeID = getTypeId(L, typeof(PetOrMount), out is_first);
+				
+				if (PetOrMount_EnumRef == -1)
+				{
+				    Utils.LoadCSTable(L, typeof(PetOrMount));
+				    PetOrMount_EnumRef = LuaAPI.luaL_ref(L, LuaIndexes.LUA_REGISTRYINDEX);
+				}
+				
+            }
+			
+			if (LuaAPI.xlua_tryget_cachedud(L, (int)val, PetOrMount_EnumRef) == 1)
+            {
+			    return;
+			}
+			
+            IntPtr buff = LuaAPI.xlua_pushstruct(L, 4, PetOrMount_TypeID);
+            if (!CopyByValue.Pack(buff, 0, (int)val))
+            {
+                throw new Exception("pack fail fail for PetOrMount ,value="+val);
+            }
+			
+			LuaAPI.lua_getref(L, PetOrMount_EnumRef);
+			LuaAPI.lua_pushvalue(L, -2);
+			LuaAPI.xlua_rawseti(L, -2, (int)val);
+			LuaAPI.lua_pop(L, 1);
+			
+        }
+		
+        public void Get(RealStatePtr L, int index, out PetOrMount val)
+        {
+		    LuaTypes type = LuaAPI.lua_type(L, index);
+            if (type == LuaTypes.LUA_TUSERDATA )
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != PetOrMount_TypeID)
+				{
+				    throw new Exception("invalid userdata for PetOrMount");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+				int e;
+                if (!CopyByValue.UnPack(buff, 0, out e))
+                {
+                    throw new Exception("unpack fail for PetOrMount");
+                }
+				val = (PetOrMount)e;
+                
+            }
+            else
+            {
+                val = (PetOrMount)objectCasters.GetCaster(typeof(PetOrMount))(L, index, null);
+            }
+        }
+		
+        public void UpdatePetOrMount(RealStatePtr L, int index, PetOrMount val)
+        {
+		    
+            if (LuaAPI.lua_type(L, index) == LuaTypes.LUA_TUSERDATA)
+            {
+			    if (LuaAPI.xlua_gettypeid(L, index) != PetOrMount_TypeID)
+				{
+				    throw new Exception("invalid userdata for PetOrMount");
+				}
+				
+                IntPtr buff = LuaAPI.lua_touserdata(L, index);
+                if (!CopyByValue.Pack(buff, 0,  (int)val))
+                {
+                    throw new Exception("pack fail for PetOrMount ,value="+val);
+                }
+            }
+			
+            else
+            {
+                throw new Exception("try to update a data with lua type:" + LuaAPI.lua_type(L, index));
+            }
+        }
+        
         
 		// table cast optimze
 		
@@ -629,6 +5984,384 @@
 				translator.PushUnityEngineRay2D(L, array[index]);
 				return true;
 			}
+			else if (type == typeof(E_ActorClassType[]))
+			{
+			    E_ActorClassType[] array = obj as E_ActorClassType[];
+				translator.PushE_ActorClassType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_ActorState[]))
+			{
+			    E_ActorState[] array = obj as E_ActorState[];
+				translator.PushE_ActorState(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_BuffType[]))
+			{
+			    E_BuffType[] array = obj as E_BuffType[];
+				translator.PushE_BuffType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_ClientNpcType[]))
+			{
+			    E_ClientNpcType[] array = obj as E_ClientNpcType[];
+				translator.PushE_ClientNpcType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_NpcType[]))
+			{
+			    E_NpcType[] array = obj as E_NpcType[];
+				translator.PushE_NpcType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_MovingState[]))
+			{
+			    E_MovingState[] array = obj as E_MovingState[];
+				translator.PushE_MovingState(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(WindowType[]))
+			{
+			    WindowType[] array = obj as WindowType[];
+				translator.PushWindowType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(GestureType[]))
+			{
+			    GestureType[] array = obj as GestureType[];
+				translator.PushGestureType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(UnityPlatform[]))
+			{
+			    UnityPlatform[] array = obj as UnityPlatform[];
+				translator.PushUnityPlatform(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(RoleRenameResult[]))
+			{
+			    RoleRenameResult[] array = obj as RoleRenameResult[];
+				translator.PushRoleRenameResult(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_SkillCastTarget[]))
+			{
+			    E_SkillCastTarget[] array = obj as E_SkillCastTarget[];
+				translator.PushE_SkillCastTarget(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_SkillType[]))
+			{
+			    E_SkillType[] array = obj as E_SkillType[];
+				translator.PushE_SkillType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_SkillFuncType[]))
+			{
+			    E_SkillFuncType[] array = obj as E_SkillFuncType[];
+				translator.PushE_SkillFuncType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_SkillCastType[]))
+			{
+			    E_SkillCastType[] array = obj as E_SkillCastType[];
+				translator.PushE_SkillCastType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(MapTransferType[]))
+			{
+			    MapTransferType[] array = obj as MapTransferType[];
+				translator.PushMapTransferType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(DropItemType[]))
+			{
+			    DropItemType[] array = obj as DropItemType[];
+				translator.PushDropItemType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(DailyQuestType[]))
+			{
+			    DailyQuestType[] array = obj as DailyQuestType[];
+				translator.PushDailyQuestType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(DungeonCoolDownType[]))
+			{
+			    DungeonCoolDownType[] array = obj as DungeonCoolDownType[];
+				translator.PushDungeonCoolDownType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(RoleEquipType[]))
+			{
+			    RoleEquipType[] array = obj as RoleEquipType[];
+				translator.PushRoleEquipType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(PlayerDataType[]))
+			{
+			    PlayerDataType[] array = obj as PlayerDataType[];
+				translator.PushPlayerDataType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(PackType[]))
+			{
+			    PackType[] array = obj as PackType[];
+				translator.PushPackType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(ItemType[]))
+			{
+			    ItemType[] array = obj as ItemType[];
+				translator.PushItemType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(MakeType[]))
+			{
+			    MakeType[] array = obj as MakeType[];
+				translator.PushMakeType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(TitleType[]))
+			{
+			    TitleType[] array = obj as TitleType[];
+				translator.PushTitleType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(FuncOpenEnum[]))
+			{
+			    FuncOpenEnum[] array = obj as FuncOpenEnum[];
+				translator.PushFuncOpenEnum(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(PropertyType[]))
+			{
+			    PropertyType[] array = obj as PropertyType[];
+				translator.PushPropertyType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(TextColType[]))
+			{
+			    TextColType[] array = obj as TextColType[];
+				translator.PushTextColType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_ModelResType[]))
+			{
+			    E_ModelResType[] array = obj as E_ModelResType[];
+				translator.PushE_ModelResType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(TreasureCategory[]))
+			{
+			    TreasureCategory[] array = obj as TreasureCategory[];
+				translator.PushTreasureCategory(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(TreasureState[]))
+			{
+			    TreasureState[] array = obj as TreasureState[];
+				translator.PushTreasureState(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(FunctionUnlockType[]))
+			{
+			    FunctionUnlockType[] array = obj as FunctionUnlockType[];
+				translator.PushFunctionUnlockType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(RedPointState[]))
+			{
+			    RedPointState[] array = obj as RedPointState[];
+				translator.PushRedPointState(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(TeamInviteType[]))
+			{
+			    TeamInviteType[] array = obj as TeamInviteType[];
+				translator.PushTeamInviteType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(TeammatePrepareState[]))
+			{
+			    TeammatePrepareState[] array = obj as TeammatePrepareState[];
+				translator.PushTeammatePrepareState(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(VipPrivilegeType[]))
+			{
+			    VipPrivilegeType[] array = obj as VipPrivilegeType[];
+				translator.PushVipPrivilegeType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_AttackMode[]))
+			{
+			    E_AttackMode[] array = obj as E_AttackMode[];
+				translator.PushE_AttackMode(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_ItemColor[]))
+			{
+			    E_ItemColor[] array = obj as E_ItemColor[];
+				translator.PushE_ItemColor(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(FindPreciousType[]))
+			{
+			    FindPreciousType[] array = obj as FindPreciousType[];
+				translator.PushFindPreciousType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(GotServerRewardType[]))
+			{
+			    GotServerRewardType[] array = obj as GotServerRewardType[];
+				translator.PushGotServerRewardType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(MapType[]))
+			{
+			    MapType[] array = obj as MapType[];
+				translator.PushMapType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(GuideType[]))
+			{
+			    GuideType[] array = obj as GuideType[];
+				translator.PushGuideType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(GuideTriggerType[]))
+			{
+			    GuideTriggerType[] array = obj as GuideTriggerType[];
+				translator.PushGuideTriggerType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(FuncPowerType[]))
+			{
+			    FuncPowerType[] array = obj as FuncPowerType[];
+				translator.PushFuncPowerType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(E_AtkType[]))
+			{
+			    E_AtkType[] array = obj as E_AtkType[];
+				translator.PushE_AtkType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(GameObjType[]))
+			{
+			    GameObjType[] array = obj as GameObjType[];
+				translator.PushGameObjType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(HurtAttackType[]))
+			{
+			    HurtAttackType[] array = obj as HurtAttackType[];
+				translator.PushHurtAttackType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(DungeonTargetType[]))
+			{
+			    DungeonTargetType[] array = obj as DungeonTargetType[];
+				translator.PushDungeonTargetType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(AchievementType[]))
+			{
+			    AchievementType[] array = obj as AchievementType[];
+				translator.PushAchievementType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(ItemTimeType[]))
+			{
+			    ItemTimeType[] array = obj as ItemTimeType[];
+				translator.PushItemTimeType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(TitleBtnState[]))
+			{
+			    TitleBtnState[] array = obj as TitleBtnState[];
+				translator.PushTitleBtnState(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(LegendAttrType[]))
+			{
+			    LegendAttrType[] array = obj as LegendAttrType[];
+				translator.PushLegendAttrType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(ServerState[]))
+			{
+			    ServerState[] array = obj as ServerState[];
+				translator.PushServerState(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(ItemUseDataKey[]))
+			{
+			    ItemUseDataKey[] array = obj as ItemUseDataKey[];
+				translator.PushItemUseDataKey(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(ItemOperateType[]))
+			{
+			    ItemOperateType[] array = obj as ItemOperateType[];
+				translator.PushItemOperateType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(ItemWinType[]))
+			{
+			    ItemWinType[] array = obj as ItemWinType[];
+				translator.PushItemWinType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(ItemTipChildType[]))
+			{
+			    ItemTipChildType[] array = obj as ItemTipChildType[];
+				translator.PushItemTipChildType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(InstalledAsset[]))
+			{
+			    InstalledAsset[] array = obj as InstalledAsset[];
+				translator.PushInstalledAsset(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(VersionAuthority[]))
+			{
+			    VersionAuthority[] array = obj as VersionAuthority[];
+				translator.PushVersionAuthority(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(FootAudioType[]))
+			{
+			    FootAudioType[] array = obj as FootAudioType[];
+				translator.PushFootAudioType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(AttackFailType[]))
+			{
+			    AttackFailType[] array = obj as AttackFailType[];
+				translator.PushAttackFailType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(DungeonFightStage[]))
+			{
+			    DungeonFightStage[] array = obj as DungeonFightStage[];
+				translator.PushDungeonFightStage(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(RankType[]))
+			{
+			    RankType[] array = obj as RankType[];
+				translator.PushRankType(L, array[index]);
+				return true;
+			}
+			else if (type == typeof(PetOrMount[]))
+			{
+			    PetOrMount[] array = obj as PetOrMount[];
+				translator.PushPetOrMount(L, array[index]);
+				return true;
+			}
             return false;
 		}
 		
@@ -683,6 +6416,384 @@
 				translator.Get(L, obj_idx, out array[array_idx]);
 				return true;
 			}
+			else if (type == typeof(E_ActorClassType[]))
+			{
+			    E_ActorClassType[] array = obj as E_ActorClassType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_ActorState[]))
+			{
+			    E_ActorState[] array = obj as E_ActorState[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_BuffType[]))
+			{
+			    E_BuffType[] array = obj as E_BuffType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_ClientNpcType[]))
+			{
+			    E_ClientNpcType[] array = obj as E_ClientNpcType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_NpcType[]))
+			{
+			    E_NpcType[] array = obj as E_NpcType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_MovingState[]))
+			{
+			    E_MovingState[] array = obj as E_MovingState[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(WindowType[]))
+			{
+			    WindowType[] array = obj as WindowType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(GestureType[]))
+			{
+			    GestureType[] array = obj as GestureType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(UnityPlatform[]))
+			{
+			    UnityPlatform[] array = obj as UnityPlatform[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(RoleRenameResult[]))
+			{
+			    RoleRenameResult[] array = obj as RoleRenameResult[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_SkillCastTarget[]))
+			{
+			    E_SkillCastTarget[] array = obj as E_SkillCastTarget[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_SkillType[]))
+			{
+			    E_SkillType[] array = obj as E_SkillType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_SkillFuncType[]))
+			{
+			    E_SkillFuncType[] array = obj as E_SkillFuncType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_SkillCastType[]))
+			{
+			    E_SkillCastType[] array = obj as E_SkillCastType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(MapTransferType[]))
+			{
+			    MapTransferType[] array = obj as MapTransferType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(DropItemType[]))
+			{
+			    DropItemType[] array = obj as DropItemType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(DailyQuestType[]))
+			{
+			    DailyQuestType[] array = obj as DailyQuestType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(DungeonCoolDownType[]))
+			{
+			    DungeonCoolDownType[] array = obj as DungeonCoolDownType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(RoleEquipType[]))
+			{
+			    RoleEquipType[] array = obj as RoleEquipType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(PlayerDataType[]))
+			{
+			    PlayerDataType[] array = obj as PlayerDataType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(PackType[]))
+			{
+			    PackType[] array = obj as PackType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(ItemType[]))
+			{
+			    ItemType[] array = obj as ItemType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(MakeType[]))
+			{
+			    MakeType[] array = obj as MakeType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(TitleType[]))
+			{
+			    TitleType[] array = obj as TitleType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(FuncOpenEnum[]))
+			{
+			    FuncOpenEnum[] array = obj as FuncOpenEnum[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(PropertyType[]))
+			{
+			    PropertyType[] array = obj as PropertyType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(TextColType[]))
+			{
+			    TextColType[] array = obj as TextColType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_ModelResType[]))
+			{
+			    E_ModelResType[] array = obj as E_ModelResType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(TreasureCategory[]))
+			{
+			    TreasureCategory[] array = obj as TreasureCategory[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(TreasureState[]))
+			{
+			    TreasureState[] array = obj as TreasureState[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(FunctionUnlockType[]))
+			{
+			    FunctionUnlockType[] array = obj as FunctionUnlockType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(RedPointState[]))
+			{
+			    RedPointState[] array = obj as RedPointState[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(TeamInviteType[]))
+			{
+			    TeamInviteType[] array = obj as TeamInviteType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(TeammatePrepareState[]))
+			{
+			    TeammatePrepareState[] array = obj as TeammatePrepareState[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(VipPrivilegeType[]))
+			{
+			    VipPrivilegeType[] array = obj as VipPrivilegeType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_AttackMode[]))
+			{
+			    E_AttackMode[] array = obj as E_AttackMode[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_ItemColor[]))
+			{
+			    E_ItemColor[] array = obj as E_ItemColor[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(FindPreciousType[]))
+			{
+			    FindPreciousType[] array = obj as FindPreciousType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(GotServerRewardType[]))
+			{
+			    GotServerRewardType[] array = obj as GotServerRewardType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(MapType[]))
+			{
+			    MapType[] array = obj as MapType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(GuideType[]))
+			{
+			    GuideType[] array = obj as GuideType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(GuideTriggerType[]))
+			{
+			    GuideTriggerType[] array = obj as GuideTriggerType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(FuncPowerType[]))
+			{
+			    FuncPowerType[] array = obj as FuncPowerType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(E_AtkType[]))
+			{
+			    E_AtkType[] array = obj as E_AtkType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(GameObjType[]))
+			{
+			    GameObjType[] array = obj as GameObjType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(HurtAttackType[]))
+			{
+			    HurtAttackType[] array = obj as HurtAttackType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(DungeonTargetType[]))
+			{
+			    DungeonTargetType[] array = obj as DungeonTargetType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(AchievementType[]))
+			{
+			    AchievementType[] array = obj as AchievementType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(ItemTimeType[]))
+			{
+			    ItemTimeType[] array = obj as ItemTimeType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(TitleBtnState[]))
+			{
+			    TitleBtnState[] array = obj as TitleBtnState[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(LegendAttrType[]))
+			{
+			    LegendAttrType[] array = obj as LegendAttrType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(ServerState[]))
+			{
+			    ServerState[] array = obj as ServerState[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(ItemUseDataKey[]))
+			{
+			    ItemUseDataKey[] array = obj as ItemUseDataKey[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(ItemOperateType[]))
+			{
+			    ItemOperateType[] array = obj as ItemOperateType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(ItemWinType[]))
+			{
+			    ItemWinType[] array = obj as ItemWinType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(ItemTipChildType[]))
+			{
+			    ItemTipChildType[] array = obj as ItemTipChildType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(InstalledAsset[]))
+			{
+			    InstalledAsset[] array = obj as InstalledAsset[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(VersionAuthority[]))
+			{
+			    VersionAuthority[] array = obj as VersionAuthority[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(FootAudioType[]))
+			{
+			    FootAudioType[] array = obj as FootAudioType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(AttackFailType[]))
+			{
+			    AttackFailType[] array = obj as AttackFailType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(DungeonFightStage[]))
+			{
+			    DungeonFightStage[] array = obj as DungeonFightStage[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(RankType[]))
+			{
+			    RankType[] array = obj as RankType[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
+			else if (type == typeof(PetOrMount[]))
+			{
+			    PetOrMount[] array = obj as PetOrMount[];
+				translator.Get(L, obj_idx, out array[array_idx]);
+				return true;
+			}
             return false;
 		}
 	}
diff --git a/Lua/Gen/XLuaGenAutoRegister.cs b/Lua/Gen/XLuaGenAutoRegister.cs
index 8ed674b..8089500 100644
--- a/Lua/Gen/XLuaGenAutoRegister.cs
+++ b/Lua/Gen/XLuaGenAutoRegister.cs
@@ -613,6 +613,9 @@
             translator.DelayWrapLoader(typeof(TalentConfig), TalentConfigWrap.__Register);
         
         
+            translator.DelayWrapLoader(typeof(TaskFeedbackConfig), TaskFeedbackConfigWrap.__Register);
+        
+        
             translator.DelayWrapLoader(typeof(TaskListConfig), TaskListConfigWrap.__Register);
         
         
@@ -642,13 +645,13 @@
         
             translator.DelayWrapLoader(typeof(TreasureSkillConfig), TreasureSkillConfigWrap.__Register);
         
-        
-            translator.DelayWrapLoader(typeof(TreasureUpConfig), TreasureUpConfigWrap.__Register);
-        
         }
         
         static void wrapInit4(LuaEnv luaenv, ObjectTranslator translator)
         {
+        
+            translator.DelayWrapLoader(typeof(TreasureUpConfig), TreasureUpConfigWrap.__Register);
+        
         
             translator.DelayWrapLoader(typeof(TrialRewardsConfig), TrialRewardsConfigWrap.__Register);
         
@@ -799,13 +802,13 @@
         
             translator.DelayWrapLoader(typeof(UnityEngine.Object), UnityEngineObjectWrap.__Register);
         
-        
-            translator.DelayWrapLoader(typeof(UnityEngine.Vector2), UnityEngineVector2Wrap.__Register);
-        
         }
         
         static void wrapInit5(LuaEnv luaenv, ObjectTranslator translator)
         {
+        
+            translator.DelayWrapLoader(typeof(UnityEngine.Vector2), UnityEngineVector2Wrap.__Register);
+        
         
             translator.DelayWrapLoader(typeof(UnityEngine.Vector3), UnityEngineVector3Wrap.__Register);
         
@@ -956,13 +959,13 @@
         
             translator.DelayWrapLoader(typeof(Snxxz.UI.CrossServerBossModel), SnxxzUICrossServerBossModelWrap.__Register);
         
-        
-            translator.DelayWrapLoader(typeof(Snxxz.UI.CrossServerOneVsOneModel), SnxxzUICrossServerOneVsOneModelWrap.__Register);
-        
         }
         
         static void wrapInit6(LuaEnv luaenv, ObjectTranslator translator)
         {
+        
+            translator.DelayWrapLoader(typeof(Snxxz.UI.CrossServerOneVsOneModel), SnxxzUICrossServerOneVsOneModelWrap.__Register);
+        
         
             translator.DelayWrapLoader(typeof(Item_Class), Item_ClassWrap.__Register);
         
@@ -1113,13 +1116,13 @@
         
             translator.DelayWrapLoader(typeof(Snxxz.UI.HappyXBModel), SnxxzUIHappyXBModelWrap.__Register);
         
-        
-            translator.DelayWrapLoader(typeof(Snxxz.UI.HazyDemonKingModel), SnxxzUIHazyDemonKingModelWrap.__Register);
-        
         }
         
         static void wrapInit7(LuaEnv luaenv, ObjectTranslator translator)
         {
+        
+            translator.DelayWrapLoader(typeof(Snxxz.UI.HazyDemonKingModel), SnxxzUIHazyDemonKingModelWrap.__Register);
+        
         
             translator.DelayWrapLoader(typeof(Snxxz.UI.HazyGrassModel), SnxxzUIHazyGrassModelWrap.__Register);
         
@@ -1270,13 +1273,13 @@
         
             translator.DelayWrapLoader(typeof(Snxxz.UI.LuckyTreasureModel), SnxxzUILuckyTreasureModelWrap.__Register);
         
-        
-            translator.DelayWrapLoader(typeof(Snxxz.UI.MonthlyInvestmentModel), SnxxzUIMonthlyInvestmentModelWrap.__Register);
-        
         }
         
         static void wrapInit8(LuaEnv luaenv, ObjectTranslator translator)
         {
+        
+            translator.DelayWrapLoader(typeof(Snxxz.UI.MonthlyInvestmentModel), SnxxzUIMonthlyInvestmentModelWrap.__Register);
+        
         
             translator.DelayWrapLoader(typeof(Snxxz.UI.MysticalPurchaseModel), SnxxzUIMysticalPurchaseModelWrap.__Register);
         
@@ -1427,13 +1430,16 @@
         
             translator.DelayWrapLoader(typeof(Snxxz.UI.TeamModel), SnxxzUITeamModelWrap.__Register);
         
-        
-            translator.DelayWrapLoader(typeof(PwdKeyboard), PwdKeyboardWrap.__Register);
-        
         }
         
         static void wrapInit9(LuaEnv luaenv, ObjectTranslator translator)
         {
+        
+            translator.DelayWrapLoader(typeof(Snxxz.UI.ConfirmCancel), SnxxzUIConfirmCancelWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(PwdKeyboard), PwdKeyboardWrap.__Register);
+        
         
             translator.DelayWrapLoader(typeof(Snxxz.UI.TreasureModel), SnxxzUITreasureModelWrap.__Register);
         
@@ -1543,8 +1549,205 @@
             translator.DelayWrapLoader(typeof(DeviceUtility), DeviceUtilityWrap.__Register);
         
         
+            translator.DelayWrapLoader(typeof(E_ActorClassType), E_ActorClassTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(E_ActorState), E_ActorStateWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(E_BuffType), E_BuffTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(E_ClientNpcType), E_ClientNpcTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(E_NpcType), E_NpcTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(E_MovingState), E_MovingStateWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(WindowType), WindowTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(GestureType), GestureTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(UnityPlatform), UnityPlatformWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(RoleRenameResult), RoleRenameResultWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(E_SkillCastTarget), E_SkillCastTargetWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(E_SkillType), E_SkillTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(E_SkillFuncType), E_SkillFuncTypeWrap.__Register);
+        
+        }
+        
+        static void wrapInit10(LuaEnv luaenv, ObjectTranslator translator)
+        {
+        
+            translator.DelayWrapLoader(typeof(E_SkillCastType), E_SkillCastTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(MapTransferType), MapTransferTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(DropItemType), DropItemTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(DailyQuestType), DailyQuestTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(DungeonCoolDownType), DungeonCoolDownTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(RoleEquipType), RoleEquipTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(PlayerDataType), PlayerDataTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(PackType), PackTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(ItemType), ItemTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(MakeType), MakeTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(TitleType), TitleTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(FuncOpenEnum), FuncOpenEnumWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(PropertyType), PropertyTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(TextColType), TextColTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(E_ModelResType), E_ModelResTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(TreasureCategory), TreasureCategoryWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(TreasureState), TreasureStateWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(FunctionUnlockType), FunctionUnlockTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(RedPointState), RedPointStateWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(TeamInviteType), TeamInviteTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(TeammatePrepareState), TeammatePrepareStateWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(VipPrivilegeType), VipPrivilegeTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(E_AttackMode), E_AttackModeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(E_ItemColor), E_ItemColorWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(FindPreciousType), FindPreciousTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(GotServerRewardType), GotServerRewardTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(MapType), MapTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(GuideType), GuideTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(GuideTriggerType), GuideTriggerTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(FuncPowerType), FuncPowerTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(E_AtkType), E_AtkTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(GameObjType), GameObjTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(HurtAttackType), HurtAttackTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(DungeonTargetType), DungeonTargetTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(AchievementType), AchievementTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(ItemTimeType), ItemTimeTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(TitleBtnState), TitleBtnStateWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(LegendAttrType), LegendAttrTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(ServerState), ServerStateWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(ItemUseDataKey), ItemUseDataKeyWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(ItemOperateType), ItemOperateTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(ItemWinType), ItemWinTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(ItemTipChildType), ItemTipChildTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(InstalledAsset), InstalledAssetWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(VersionAuthority), VersionAuthorityWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(FootAudioType), FootAudioTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(AttackFailType), AttackFailTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(DungeonFightStage), DungeonFightStageWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(RankType), RankTypeWrap.__Register);
+        
+        
+            translator.DelayWrapLoader(typeof(PetOrMount), PetOrMountWrap.__Register);
+        
+        
             translator.DelayWrapLoader(typeof(FileExtersion), FileExtersionWrap.__Register);
         
+        }
+        
+        static void wrapInit11(LuaEnv luaenv, ObjectTranslator translator)
+        {
         
             translator.DelayWrapLoader(typeof(GMCommand), GMCommandWrap.__Register);
         
@@ -1605,6 +1808,10 @@
             
             wrapInit9(luaenv, translator);
             
+            wrapInit10(luaenv, translator);
+            
+            wrapInit11(luaenv, translator);
+            
             
             translator.AddInterfaceBridgeCreator(typeof(System.Collections.IEnumerator), SystemCollectionsIEnumeratorBridge.__Create);
             
diff --git a/Lua/Gen/link.xml b/Lua/Gen/link.xml
index c9dc612..13f4540 100644
--- a/Lua/Gen/link.xml
+++ b/Lua/Gen/link.xml
@@ -204,6 +204,7 @@
 		<type fullname="SysInfoConfig" preserve="all"/>
 		<type fullname="TASKINFOConfig" preserve="all"/>
 		<type fullname="TalentConfig" preserve="all"/>
+		<type fullname="TaskFeedbackConfig" preserve="all"/>
 		<type fullname="TaskListConfig" preserve="all"/>
 		<type fullname="TaskPowerConfig" preserve="all"/>
 		<type fullname="TeamTargetConfig" preserve="all"/>
@@ -440,6 +441,7 @@
 		<type fullname="TaiChiModel" preserve="all"/>
 		<type fullname="Snxxz.UI.GroupDungeonChallengeProcessor" preserve="all"/>
 		<type fullname="Snxxz.UI.TeamModel" preserve="all"/>
+		<type fullname="Snxxz.UI.ConfirmCancel" preserve="all"/>
 		<type fullname="PwdKeyboard" preserve="all"/>
 		<type fullname="Snxxz.UI.TreasureModel" preserve="all"/>
 		<type fullname="Snxxz.UI.TreasureFindHostModel" preserve="all"/>
@@ -477,6 +479,69 @@
 		<type fullname="UIEffect" preserve="all"/>
 		<type fullname="ComponentExtersion" preserve="all"/>
 		<type fullname="DeviceUtility" preserve="all"/>
+		<type fullname="E_ActorClassType" preserve="all"/>
+		<type fullname="E_ActorState" preserve="all"/>
+		<type fullname="E_BuffType" preserve="all"/>
+		<type fullname="E_ClientNpcType" preserve="all"/>
+		<type fullname="E_NpcType" preserve="all"/>
+		<type fullname="E_MovingState" preserve="all"/>
+		<type fullname="WindowType" preserve="all"/>
+		<type fullname="GestureType" preserve="all"/>
+		<type fullname="UnityPlatform" preserve="all"/>
+		<type fullname="RoleRenameResult" preserve="all"/>
+		<type fullname="E_SkillCastTarget" preserve="all"/>
+		<type fullname="E_SkillType" preserve="all"/>
+		<type fullname="E_SkillFuncType" preserve="all"/>
+		<type fullname="E_SkillCastType" preserve="all"/>
+		<type fullname="MapTransferType" preserve="all"/>
+		<type fullname="DropItemType" preserve="all"/>
+		<type fullname="DailyQuestType" preserve="all"/>
+		<type fullname="DungeonCoolDownType" preserve="all"/>
+		<type fullname="RoleEquipType" preserve="all"/>
+		<type fullname="PlayerDataType" preserve="all"/>
+		<type fullname="PackType" preserve="all"/>
+		<type fullname="ItemType" preserve="all"/>
+		<type fullname="MakeType" preserve="all"/>
+		<type fullname="TitleType" preserve="all"/>
+		<type fullname="FuncOpenEnum" preserve="all"/>
+		<type fullname="PropertyType" preserve="all"/>
+		<type fullname="TextColType" preserve="all"/>
+		<type fullname="E_ModelResType" preserve="all"/>
+		<type fullname="TreasureCategory" preserve="all"/>
+		<type fullname="TreasureState" preserve="all"/>
+		<type fullname="FunctionUnlockType" preserve="all"/>
+		<type fullname="RedPointState" preserve="all"/>
+		<type fullname="TeamInviteType" preserve="all"/>
+		<type fullname="TeammatePrepareState" preserve="all"/>
+		<type fullname="VipPrivilegeType" preserve="all"/>
+		<type fullname="E_AttackMode" preserve="all"/>
+		<type fullname="E_ItemColor" preserve="all"/>
+		<type fullname="FindPreciousType" preserve="all"/>
+		<type fullname="GotServerRewardType" preserve="all"/>
+		<type fullname="MapType" preserve="all"/>
+		<type fullname="GuideType" preserve="all"/>
+		<type fullname="GuideTriggerType" preserve="all"/>
+		<type fullname="FuncPowerType" preserve="all"/>
+		<type fullname="E_AtkType" preserve="all"/>
+		<type fullname="GameObjType" preserve="all"/>
+		<type fullname="HurtAttackType" preserve="all"/>
+		<type fullname="DungeonTargetType" preserve="all"/>
+		<type fullname="AchievementType" preserve="all"/>
+		<type fullname="ItemTimeType" preserve="all"/>
+		<type fullname="TitleBtnState" preserve="all"/>
+		<type fullname="LegendAttrType" preserve="all"/>
+		<type fullname="ServerState" preserve="all"/>
+		<type fullname="ItemUseDataKey" preserve="all"/>
+		<type fullname="ItemOperateType" preserve="all"/>
+		<type fullname="ItemWinType" preserve="all"/>
+		<type fullname="ItemTipChildType" preserve="all"/>
+		<type fullname="InstalledAsset" preserve="all"/>
+		<type fullname="VersionAuthority" preserve="all"/>
+		<type fullname="FootAudioType" preserve="all"/>
+		<type fullname="AttackFailType" preserve="all"/>
+		<type fullname="DungeonFightStage" preserve="all"/>
+		<type fullname="RankType" preserve="all"/>
+		<type fullname="PetOrMount" preserve="all"/>
 		<type fullname="FileExtersion" preserve="all"/>
 		<type fullname="GMCommand" preserve="all"/>
 		<type fullname="GlobalTimeEvent" preserve="all"/>
diff --git a/System/Tip/ConfirmCancel.cs b/System/Tip/ConfirmCancel.cs
index d39614a..9164bc2 100644
--- a/System/Tip/ConfirmCancel.cs
+++ b/System/Tip/ConfirmCancel.cs
@@ -5,6 +5,7 @@
 
 namespace Snxxz.UI
 {
+    [XLua.LuaCallCSharp]
     public class ConfirmCancel
     {
         public static Action<bool> OnPopConfirmClickEvent;

--
Gitblit v1.8.0