少年修仙传客户端代码仓库
client_Wu Xijin
2019-02-19 df240ab03e421ffe3581ca776b0c672f9d2fcb6f
3335 配置表解析优化。
5个文件已修改
4个文件已添加
627 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/GemItemConfig.cs 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/GemItemConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/tagChinItemConfig.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/GemItemConfigWrap.cs 312 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/GemItemConfigWrap.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/ItemConfigWrap.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/XLuaGenAutoRegister.cs 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/link.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/ConfigInitiator.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/GemItemConfig.cs
New file
@@ -0,0 +1,202 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Tuesday, February 19, 2019
//--------------------------------------------------------
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System;
using UnityEngine;
[XLua.LuaCallCSharp]
public partial class GemItemConfig
{
    public readonly int ID;
    public readonly int Type;
    public GemItemConfig()
    {
    }
    public GemItemConfig(string input)
    {
        try
        {
            var tables = input.Split('\t');
            int.TryParse(tables[0],out ID);
            int.TryParse(tables[1],out Type);
        }
        catch (Exception ex)
        {
            DebugEx.Log(ex);
        }
    }
    static Dictionary<string, GemItemConfig> configs = new Dictionary<string, GemItemConfig>();
    public static GemItemConfig Get(string id)
    {
        if (!inited)
        {
            Debug.Log("GemItemConfig 还未完成初始化。");
            return null;
        }
        if (configs.ContainsKey(id))
        {
            return configs[id];
        }
        GemItemConfig config = null;
        if (rawDatas.ContainsKey(id))
        {
            config = configs[id] = new GemItemConfig(rawDatas[id]);
            rawDatas.Remove(id);
        }
        return config;
    }
    public static GemItemConfig Get(int id)
    {
        return Get(id.ToString());
    }
    public static List<string> GetKeys()
    {
        var keys = new List<string>();
        keys.AddRange(configs.Keys);
        keys.AddRange(rawDatas.Keys);
        return keys;
    }
    public static List<GemItemConfig> GetValues()
    {
        var values = new List<GemItemConfig>();
        values.AddRange(configs.Values);
        var keys = new List<string>(rawDatas.Keys);
        foreach (var key in keys)
        {
            values.Add(Get(key));
        }
        return values;
    }
    public static bool Has(string id)
    {
        return configs.ContainsKey(id) || rawDatas.ContainsKey(id);
    }
    public static bool Has(int id)
    {
        return Has(id.ToString());
    }
    public static bool inited { get; private set; }
    protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>();
    public static void Init(bool sync=false)
    {
        inited = false;
        var path = string.Empty;
        if (AssetSource.refdataFromEditor)
        {
            path = ResourcesPath.CONFIG_FODLER +"/GemItem.txt";
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath("config/GemItem.txt");
        }
        var tempConfig = new GemItemConfig();
        var preParse = tempConfig is IConfigPostProcess;
        if (sync)
        {
            var lines = File.ReadAllLines(path);
            if (!preParse)
            {
                rawDatas = new Dictionary<string, string>(lines.Length - 3);
            }
            for (int i = 3; i < lines.Length; i++)
            {
                try
                {
                    var line = lines[i];
                    var index = line.IndexOf("\t");
                    if (index == -1)
                    {
                        continue;
                    }
                    var id = line.Substring(0, index);
                    if (preParse)
                    {
                        var config = new GemItemConfig(line);
                        configs[id] = config;
                        (config as IConfigPostProcess).OnConfigParseCompleted();
                    }
                    else
                    {
                        rawDatas[id] = line;
                    }
                }
                catch (System.Exception ex)
                {
                    Debug.LogError(ex);
                }
            }
            inited = true;
        }
        else
        {
            ThreadPool.QueueUserWorkItem((object _object) =>
            {
                var lines = File.ReadAllLines(path);
                if (!preParse)
                {
                    rawDatas = new Dictionary<string, string>(lines.Length - 3);
                }
                for (int i = 3; i < lines.Length; i++)
                {
                    try
                    {
                       var line = lines[i];
                        var index = line.IndexOf("\t");
                        if (index == -1)
                        {
                            continue;
                        }
                        var id = line.Substring(0, index);
                        if (preParse)
                        {
                            var config = new GemItemConfig(line);
                            configs[id] = config;
                            (config as IConfigPostProcess).OnConfigParseCompleted();
                        }
                        else
                        {
                            rawDatas[id] = line;
                        }
                    }
                    catch (System.Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
                inited = true;
            });
        }
    }
}
Core/GameEngine/Model/Config/GemItemConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: f710d587358c1a244aad12e7c6b2ea1c
timeCreated: 1550556087
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/GameEngine/Model/TelPartialConfig/tagChinItemConfig.cs
@@ -1,24 +1,18 @@
using System.Collections.Generic;
using System.Text;
public partial class ItemConfig : IConfigPostProcess
public partial class ItemConfig
{
    private static Dictionary<int, ItemConfig> m_GemCfgs = new Dictionary<int, ItemConfig>();
    private const int GEM_TYPE_VALUE = 225;
    public void OnConfigParseCompleted()
    public static void GemItemInit()
    {
        switch (Type)
        GemItemConfig.Init(true);
        var keys = GemItemConfig.GetKeys();
        foreach (var key in keys)
        {
            case 25:
            case 140:
                if (Effect1 == GEM_TYPE_VALUE)
                {
                    m_GemCfgs.Add(EffectValueB1 * 1000 + EffectValueA1, this);
                }
                break;
            default:
                break;
            var config = ItemConfig.Get(key);
            m_GemCfgs.Add(config.EffectValueB1 * 1000 + config.EffectValueA1, config);
        }
    }
Lua/Gen/GemItemConfigWrap.cs
New file
@@ -0,0 +1,312 @@
#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 GemItemConfigWrap
    {
        public static void __Register(RealStatePtr L)
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            System.Type type = typeof(GemItemConfig);
            Utils.BeginObjectRegister(type, L, translator, 0, 0, 2, 0);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "ID", _g_get_ID);
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "Type", _g_get_Type);
            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)
                {
                    GemItemConfig gen_ret = new GemItemConfig();
                    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);
                    GemItemConfig gen_ret = new GemItemConfig(_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 GemItemConfig 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);
                        GemItemConfig gen_ret = GemItemConfig.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);
                        GemItemConfig gen_ret = GemItemConfig.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 GemItemConfig.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 = GemItemConfig.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<GemItemConfig> gen_ret = GemItemConfig.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 = GemItemConfig.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 = GemItemConfig.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 GemItemConfig.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);
                    GemItemConfig.Init( _sync );
                    return 0;
                }
                if(gen_param_count == 0)
                {
                    GemItemConfig.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 GemItemConfig.Init!");
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _g_get_inited(RealStatePtr L)
        {
            try {
                LuaAPI.lua_pushboolean(L, GemItemConfig.inited);
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return 1;
        }
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _g_get_ID(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                GemItemConfig gen_to_be_invoked = (GemItemConfig)translator.FastGetCSObj(L, 1);
                LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.ID);
            } 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);
                GemItemConfig gen_to_be_invoked = (GemItemConfig)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;
        }
    }
}
Lua/Gen/GemItemConfigWrap.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 2157b338ccbdff24abb78f3c253ad800
timeCreated: 1550556878
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/Gen/ItemConfigWrap.cs
@@ -21,9 +21,8 @@
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            System.Type type = typeof(ItemConfig);
            Utils.BeginObjectRegister(type, L, translator, 0, 1, 70, 0);
            Utils.BeginObjectRegister(type, L, translator, 0, 0, 70, 0);
            
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "OnConfigParseCompleted", _m_OnConfigParseCompleted);
            
            
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "ID", _g_get_ID);
@@ -102,12 +101,13 @@
            Utils.EndObjectRegister(type, L, translator, null, null,
                null, null, null);
            Utils.BeginClassRegister(type, L, __CreateInstance, 8, 1, 0);
            Utils.BeginClassRegister(type, L, __CreateInstance, 9, 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_IDX, "GemItemInit", _m_GemItemInit_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "GetGemDataByLevelAndType", _m_GetGemDataByLevelAndType_xlua_st_);
            Utils.RegisterFunc(L, Utils.CLS_IDX, "IsWing", _m_IsWing_xlua_st_);
            
@@ -331,20 +331,16 @@
        }
        
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_OnConfigParseCompleted(RealStatePtr L)
        static int _m_GemItemInit_xlua_st_(RealStatePtr L)
        {
            try {
            
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                ItemConfig gen_to_be_invoked = (ItemConfig)translator.FastGetCSObj(L, 1);
            
            
                
                {
                    
                    gen_to_be_invoked.OnConfigParseCompleted(  );
                    ItemConfig.GemItemInit(  );
                    
                    
                    
Lua/Gen/XLuaGenAutoRegister.cs
@@ -269,6 +269,9 @@
            translator.DelayWrapLoader(typeof(GatherSoulPropertyConfig), GatherSoulPropertyConfigWrap.__Register);
        
        
            translator.DelayWrapLoader(typeof(GemItemConfig), GemItemConfigWrap.__Register);
            translator.DelayWrapLoader(typeof(GetItemWaysConfig), GetItemWaysConfigWrap.__Register);
        
        
@@ -328,13 +331,13 @@
        
            translator.DelayWrapLoader(typeof(ItemPlusSumAttrConfig), ItemPlusSumAttrConfigWrap.__Register);
        
            translator.DelayWrapLoader(typeof(JadeDynastyBossConfig), JadeDynastyBossConfigWrap.__Register);
        }
        
        static void wrapInit2(LuaEnv luaenv, ObjectTranslator translator)
        {
            translator.DelayWrapLoader(typeof(JadeDynastyBossConfig), JadeDynastyBossConfigWrap.__Register);
        
            translator.DelayWrapLoader(typeof(JadeDynastyStoneAttrConfig), JadeDynastyStoneAttrConfigWrap.__Register);
        
@@ -485,13 +488,13 @@
        
            translator.DelayWrapLoader(typeof(RankListConfig), RankListConfigWrap.__Register);
        
            translator.DelayWrapLoader(typeof(RealmConfig), RealmConfigWrap.__Register);
        }
        
        static void wrapInit3(LuaEnv luaenv, ObjectTranslator translator)
        {
            translator.DelayWrapLoader(typeof(RealmConfig), RealmConfigWrap.__Register);
        
            translator.DelayWrapLoader(typeof(RealmPracticeConfig), RealmPracticeConfigWrap.__Register);
        
@@ -642,13 +645,13 @@
        
            translator.DelayWrapLoader(typeof(WingRefineExpConfig), WingRefineExpConfigWrap.__Register);
        
            translator.DelayWrapLoader(typeof(WorldBossConfig), WorldBossConfigWrap.__Register);
        }
        
        static void wrapInit4(LuaEnv luaenv, ObjectTranslator translator)
        {
            translator.DelayWrapLoader(typeof(WorldBossConfig), WorldBossConfigWrap.__Register);
        
            translator.DelayWrapLoader(typeof(XBGetItemConfig), XBGetItemConfigWrap.__Register);
        
@@ -799,13 +802,13 @@
        
            translator.DelayWrapLoader(typeof(UnityEngine.Transform), UnityEngineTransformWrap.__Register);
        
            translator.DelayWrapLoader(typeof(UnityEngine.Resources), UnityEngineResourcesWrap.__Register);
        }
        
        static void wrapInit5(LuaEnv luaenv, ObjectTranslator translator)
        {
            translator.DelayWrapLoader(typeof(UnityEngine.Resources), UnityEngineResourcesWrap.__Register);
        
            translator.DelayWrapLoader(typeof(UnityEngine.TextAsset), UnityEngineTextAssetWrap.__Register);
        
@@ -956,13 +959,13 @@
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.Dungeon), SnxxzUIDungeonWrap.__Register);
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.DungeonLiquidModel), SnxxzUIDungeonLiquidModelWrap.__Register);
        }
        
        static void wrapInit6(LuaEnv luaenv, ObjectTranslator translator)
        {
            translator.DelayWrapLoader(typeof(Snxxz.UI.DungeonLiquidModel), SnxxzUIDungeonLiquidModelWrap.__Register);
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.DungeonModel), SnxxzUIDungeonModelWrap.__Register);
        
@@ -1113,13 +1116,13 @@
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.KingTreasureShowModel), SnxxzUIKingTreasureShowModelWrap.__Register);
        
            translator.DelayWrapLoader(typeof(KnapSackEventMgr), KnapSackEventMgrWrap.__Register);
        }
        
        static void wrapInit7(LuaEnv luaenv, ObjectTranslator translator)
        {
            translator.DelayWrapLoader(typeof(KnapSackEventMgr), KnapSackEventMgrWrap.__Register);
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.CrossServerLogin), SnxxzUICrossServerLoginWrap.__Register);
        
@@ -1270,13 +1273,13 @@
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.RoleModel), SnxxzUIRoleModelWrap.__Register);
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.RolePointModel), SnxxzUIRolePointModelWrap.__Register);
        }
        
        static void wrapInit8(LuaEnv luaenv, ObjectTranslator translator)
        {
            translator.DelayWrapLoader(typeof(Snxxz.UI.RolePointModel), SnxxzUIRolePointModelWrap.__Register);
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.TitleModel), SnxxzUITitleModelWrap.__Register);
        
@@ -1427,14 +1430,14 @@
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.MultipleExpModel), SnxxzUIMultipleExpModelWrap.__Register);
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.MultipleRealmPointModel), SnxxzUIMultipleRealmPointModelWrap.__Register);
        }
        
        static void wrapInit9(LuaEnv luaenv, ObjectTranslator translator)
        {
        
            translator.DelayWrapLoader(typeof(Snxxz.UI.MultipleRealmPointModel), SnxxzUIMultipleRealmPointModelWrap.__Register);
            translator.DelayWrapLoader(typeof(Snxxz.UI.OperationTimeHepler), SnxxzUIOperationTimeHeplerWrap.__Register);
        
        
Lua/Gen/link.xml
@@ -92,6 +92,7 @@
        <type fullname="GatherSoulComposeConfig" preserve="all"/>
        <type fullname="GatherSoulConfig" preserve="all"/>
        <type fullname="GatherSoulPropertyConfig" preserve="all"/>
        <type fullname="GemItemConfig" preserve="all"/>
        <type fullname="GetItemWaysConfig" preserve="all"/>
        <type fullname="GmCmdConfig" preserve="all"/>
        <type fullname="GodWeaponConfig" preserve="all"/>
Utility/ConfigInitiator.cs
@@ -316,6 +316,9 @@
    {
        switch (configName)
        {
            case "ItemConfig":
                ItemConfig.GemItemInit();
                break;
            case "FuncConfigConfig":
                GeneralDefine.Init();
                break;