--文件是自动生成,请勿手动修改.来自数据文件:RobotChat local L_CompressMaxColumn = 1 local L_CompressData = { 6007823200805409, --1,1,1,15,1_1_10;0_10_15;0_15_20,1_30_40_有人一起玩吗?;2_4_6_有啊;3_1_3_这游戏人好多啊;1_5_10_这个是新区吗;2_4_6_嗯,才开的;3_4_6_人是挺多的,可以玩一下,, 6008372965376546, --2,1,1,60,1_1_55;0_10_57;0_15_60,1_30_40_怎么升战力快?;1_10_12_打装备吗?;2_1_3_嗯搞装备,首充的也不错。;3_5_10_装备加战力很快,还有记得冲下开服狂欢,能给很好的装备。;2_4_6_坐骑宠物时装那些也给很多战力;3_4_6_对,世界首领还能打法宝外观,超多战力的,, 6008922729906179, --3,0,0,100,1_100_100;0_105_105;0_103_103;1_105_105,1_30_50_你们都加仙盟了没 ;2_5_9_还没,加了有啥好啊?;3_10_12_今晚有个仙盟福地,貌似要前三仙盟才能参加;2_5_9_哦哦,那个活动给啥呢;3_1_4_圣装,战力很高;2_3_5_那正好我去找个仙盟加,, 6009472494395397, --5,0,0,135,0_130_130;1_145_145;0_140_140,1_30_50_仙盟福地怎么玩啊大哥们?;2_15_19_你先加入仙盟再说,最好能加到前三的仙盟去;3_5_7_不是前三仙盟不能玩吗?;2_11_14_可以玩啊,可以打第四个福地,但是前三的福地更多奖励也更好;3_15_19_那我等晚上来看看这个活动了,, 6010022258761734, --6,0,0,155,0_150_150;1_155_155,1_30_50_仙盟的人打首领的时候记得发一下支援啊,需要声望买坐骑;2_10_19_支援是个啥;1_5_7_就是在伤害面板那里发起支援,一个仙盟的人就能来帮你了;2_11_14_那我要找个人多的仙盟,有哪个仙盟要人啊?;1_10_15_嗯,没事就多支援别人,, 6010572023046151, --7,0,0,165,0_155_155;1_160_160;0_165_165,1_30_50_打首领的时候记得发仙盟支援啊,不然声望都不知道去哪凑 ;2_15_19_声望有啥用;1_5_7_商城里有个声望商城,我要去买那个猫,差好多声望;3_11_14_加个人多的仙盟,然后没事蹲支援几天就能买了;1_15_19_是啊,所以你们打的时候都发一下支援,也不会分你们自己的奖励的。,, 6011121787330568, --8,0,0,175,0_165_165;1_167_167,1_30_50_这个预告的福地要怎么去啊;2_5_9_所有仙盟都能打,但是貌似好像是前三名的仙盟才有大 boss打啊;1_15_17_我看了是除了前三剩下得都在一个地方;2_11_14_那个什么大BOSS掉什么东西?;1_5_9_好像掉斗心和好多积分,斗心一件小10万战力呢。,, 6011671550673995, --11,2,2,70,0_140_160;1_150_170;0_150_170,1_30_50_今天就是等级榜最后一天了,加油冲冲冲啊;2_15_19_是啊,前5名的奖励都真的不错啊,第一名的战力有点高啊;1_5_7_今天能领一个升一级的经验丹,最好传了道再吃;3_11_14_我吃的时候发现背包里还有几颗;1_15_19_那是昨天领的,记得在规定的等级吃了,不然就浪费了。,, 6011946428826700, --12,2,2,100,0_140_160;1_150_170;0_150_170,1_130_150_我打首领掉了个金色的经验器灵材料诶,合成了还能加器灵的经验;2_15_19_那个我打出来了的,我在打红色的;1_5_7_红色的哪里掉哇?;3_11_14_打首领都会掉,可以买别人卖的,就是蛮贵的;2_15_19_商城里也有卖的,一直玩可以买,早买早享受。,, 6012496196978286, --14,3,3,70,0_210_215;1_210_215;0_215_220,1_30_50_坐骑战力怎么涨啊;2_15_19_把那个商城里的限购的材料买完,每日特惠里也有打折的卖;3_11_14_声望商店里有个猫,我今天就能攒够了;1_15_19_声望哪里获得的呢 ?;3_15_19_做做每日,然后让仙盟的人打首领的时候发仙盟求援,很容易攒。,, 6013045961181327, --15,4,4,70,0_225_230;1_235_240;0_240_243,1_30_50_我在打包子的时候掉了个伞加了几万战力诶;2_15_19_那你运气是真的好,正好今天还是法宝战力比拼;1_5_7_法宝我看都是打首领掉吗?;2_11_14_嗯,我没看到哪里还有法宝,这个应该是留给肝的人的福利吧;1_15_19_那我要肝个痛了,, } local L_MainKeyDic = { [1]=1,[2]=2,[3]=3,[5]=4,[6]=5,[7]=6,[8]=7,[11]=8,[12]=9,[14]=10,[15]=11,} local L_NamesByNum = { Id = 1, NeedOpenStart = 2, NeedOpenEnd = 3, NeedLevel = 4, } local L_NamesByString = { RobotCfg = 5, Chats = 6, } local L_ColNameIndexs = { Id = 0, NeedOpenStart = 1, NeedOpenEnd = 2, NeedLevel = 3, RobotCfg = 4, Chats = 5, } --local L_ColumnUseBitCount = {5,4,4,9,16,16,} --local L_ColumnList = {1,1,1,1,1,1,} --local L_ShiftDataList = {0,5,9,13,22,38,} --local L_AndDataList = {15,7,7,255,32767,32767,} local L_ColumnShiftAndList = {1,0,15,1,5,7,1,9,7,1,13,255,1,22,32767,1,38,32767,} local L_ColNum = 6; local L_UseDataK = setmetatable({ },{ __mode = 'k'}); local L_UseDataV = setmetatable({ },{ __mode = 'v'}); local L_UseDataRow = setmetatable({ },{ __mode = 'v'}); local L_IsCache = false; local mt = {} local function GetData(row, column) local startIndex = (column - 1) * 3 local _compressData = L_CompressData[row] local _tempData = _compressData >> L_ColumnShiftAndList[startIndex + 2] local _data = _tempData & L_ColumnShiftAndList[startIndex + 3] local _andSign = L_ColumnShiftAndList[startIndex + 3] + 1 local _isMinus = (_andSign & _tempData) == _andSign return _isMinus and -_data or _data; end mt.__index = function (t,key) local _key = L_UseDataK[t]; local _row = L_MainKeyDic[_key]; local _column = L_NamesByNum[key]; if _column ~= nil then if L_IsCache then local _data = L_UseDataRow[_row * L_ColNum + _column] if not _data then _data = GetData(_row, _column) L_UseDataRow[_row * L_ColNum + _column] = _data end return _data else return GetData(_row, _column) end end _column = L_NamesByString[key] if _column ~= nil then return StringDefines[GetData(_row, _column)] end if string.find(key, '_') then local _newKey = string.gsub(key, '_', '') _column = L_NamesByString[_newKey] if _column ~= nil then return GetData(_row, _column) end end if key ~= '_OnCopyAfter_' then return end end local M = { _CompressData_ = L_CompressData, _ColumnShiftAndList_ = L_ColumnShiftAndList, _CompressMaxColumn_ = L_CompressMaxColumn, _ColumnNameIndexs_ = L_ColNameIndexs, Count = 11 } function M:Foreach(func) for i=1,M.Count do local _key = GetData(i, 1) func(_key, M[_key]) end end function M:ForeachCanBreak(func) for i = 1,M.Count do local _key = GetData(i, 1) if func(_key, M[_key]) then break end end end function M:GetByIndex(index) return M[GetData(index, 1)]; end function M:IsContainKey(key) return not(not L_MainKeyDic[key]); end function M:SetIsCache(isCh) L_IsCache = isCh; end setmetatable(M, {__index = function(t, key) if not L_MainKeyDic[key] then return; end local _t = L_UseDataV[key]; if not _t then _t = setmetatable({}, mt); L_UseDataV[key] = _t; L_UseDataK[_t] = key; end return _t end}) return M