public static void SetData()
        {
            if (_dataCaches == null && LuaEnv.isLoadLuaCfg)
            {
                long startTime = DateTime.Now.Ticks;
                Dictionary <int, int[]> dic = LuaEnv.SharedLuaEnv.Global.Get <Dictionary <int, int[]> >("DataSpecialMonster");
                if (dic == null)
                {
                    LuaEnv.SharedLuaEnv.DoString("DataSpecialMonster = require 'Lua/Config/DataSpecialMonster'");
                    dic = LuaEnv.SharedLuaEnv.Global.Get <Dictionary <int, int[]> >("DataSpecialMonster");
                }

                if (dic != null)
                {
                    _dataCaches = new Dictionary <int, DeclareSpecialMonster>();
                    foreach (var item in dic)
                    {
                        DeclareSpecialMonster tmp = new DeclareSpecialMonster();
                        tmp.Camp       = item.Value[0];
                        tmp.Describe   = CfgStringLua.Get(item.Value[1]);
                        tmp.Drop       = CfgStringLua.Get(item.Value[2]);
                        tmp.HeadIcon   = item.Value[3];
                        tmp.ID         = item.Value[4];
                        tmp.Mapsid     = item.Value[5];
                        tmp.ModelRotat = item.Value[6];
                        tmp.Monsterid  = item.Value[7];
                        tmp.Pos        = CfgStringLua.Get(item.Value[8]);
                        tmp.Power      = item.Value[9];
                        tmp.Size       = item.Value[10];
                        tmp.Time       = CfgStringLua.Get(item.Value[11]);

                        _dataCaches.Add(item.Key, tmp);
                    }
                }
                Record(startTime, DateTime.Now.Ticks, "SpecialMonster");
            }
            if (_dataCaches == null && _fillDataCallBack != null)
            {
                if (_dataCaches == null)
                {
                    long startTime = DateTime.Now.Ticks;
                    _dataCaches = new Dictionary <int, DeclareSpecialMonster>();
                    _fillDataCallBack(_dataCaches);
                    Record(startTime, DateTime.Now.Ticks, "SpecialMonster");
                }
            }
        }
        public static DeclareSpecialMonster Create(int in_camp, string in_describe, string in_drop, int in_head_icon, int in_iD, int in_mapsid, int in_model_rotat, int in_monsterid, string in_pos, int in_power, int in_size, string in_time)
        {
            DeclareSpecialMonster tmp = new DeclareSpecialMonster();

            tmp._camp        = in_camp;
            tmp._describe    = in_describe;
            tmp._drop        = in_drop;
            tmp._head_icon   = in_head_icon;
            tmp._iD          = in_iD;
            tmp._mapsid      = in_mapsid;
            tmp._model_rotat = in_model_rotat;
            tmp._monsterid   = in_monsterid;
            tmp._pos         = in_pos;
            tmp._power       = in_power;
            tmp._size        = in_size;
            tmp._time        = in_time;

            return(tmp);
        }