--文件是自动生成,请勿手动修改.来自数据文件:FunctionOpenTips local L_CompressMaxColumn = 3 local L_CompressData = { 133653487551489,1069266035811516,19219358907, --1,170000,,9_40100_120_0_0_0_130_0,坐骑,仙狐应召,遨游九州,26级任务获得,n_icon_zjm_shangma,1017_10_1_9,,1,, 133662076526082,1069334755812503,19219358849, --2,155000,,9_6100001_400_0_-30_0_180_0,法宝,本命法宝,杀怪利器,64级主线获得,n_zaohua,1017_10_1_9,,1,, 2854594563,208039194404324,19219359203, --3,2660000,,,传道,传道开启,65级开启,n_chuandao,1017_10_1_9,,1,, 2687554564,211492348240968,19219358790, --4,50000,,,仙盟,仙盟开启,81级开启,n_xianmeng,1017_10_1_9,,1,, 2696514565,1069403475813581,19219358849, --5,190000,,,宠物,宠物开启,86级主线开启,n_zaohua,1017_10_1_9,,1,, 2694664966,1069437835814051,19219358879, --6,161100,,,装备强化,装备强化开启,105级主线开启,n_lianqi,1017_10_1_9,,1,, 2763208967,1069489375867690,19219358767, --7,1232100,,,凌云妖塔,凌云妖塔开启,143级开启,n_richang,1017_10_1_9,,1,, 2869314568,1069540915868461,19219359124, --8,2890000,,,境界金丹,突破至金丹境界,开启新装备,160级开启,n_icon_zjm_ jingjie,1017_10_1_9,,1,, 133694288524809,1069592455821272,19219358849, --9,151000,,9_9100101_200_0_120_0_180_0,仙羽,羽化登仙,乘风万里,突破金丹开启,n_zaohua,1017_10_1_9,,1,, 2694677770,209276146951334,19219358879, --10,161300,,,装备合成,装备合成开启,165级开启,n_lianqi,1017_10_1_9,,1,, 133707327026699,922446877042128,19219359182, --11,2551000,,0_9103002_300_-100_260_45_90_0;1_9103102_230_0_180_45_90_0;2_9103202_220_60_120_-45_-90_0;3_9103202_220_60_120_-45_-90_0,机缘寻宝,机缘寻宝开启,170级开启,n_xunbao,1017_10_1_9,,1,, 2688194572,1069643995853701,19219358824, --12,60000,,,婚姻,一生一世一双人,178级开启,n_hunyin,1017_10_1_9,,1,, 2698562573,1069729895818471,19219358949, --13,222000,,,圣装,集齐圣装套装,战力飙升,200级开启,n_shengzhuang,1017_10_1_9,,1,, 2843848974,1069781435872059,19219359124, --14,2492100,,,境界元婴,突破至元婴境界,解锁等级上限,210级开启,n_icon_zjm_ jingjie,1017_10_1_9,,1,, 2694210575,208949730878610,19219358849, --15,154000,,,神兵,神兵临凡,神威耀世,220级开启,n_zaohua,1017_10_1_9,,1,, 2694671376,208949731009700,19219358879, --16,161200,,,装备洗炼,装备洗炼开启,220级开启,n_lianqi,1017_10_1_9,,1,, 2770114577,1069850155820071,19219359088, --17,1340000,,,剑灵阁,开服第3天,剑灵挂机开启,230级开启,n_icon_zjm_jianlingge,1017_10_1_9,,1,, 2765826578,1071035576493382,19219358790, --18,1273000,,,诸界远征,开服第3天,诸界远征开启,获得高阶圣装,开服第3天开启,n_xianmeng,1017_10_1_9,,1,, 2751682579,1069884515820336,19219358971, --19,1052000,,,巅峰竞技,开服第4天,1v1激情对决,240级开启,n_paihangbang,1017_10_1_9,,1,, 2694786580,209499487478957,17487045791, --20,163000,,,套装激活,开服第4天,套装激活开启,250级开启,n_lianqi,81112_1_1_0;81113_1_1_1;81112_1_1_2;81113_1_1_3,,1,, 2697794581,1069970415874886,19220702331, --21,210000,,,神兽助战,开服第5天,年兽封域开启,获得神兽装备,275级开启,n_zhuzhan,1017_10_1_9;81026_1_1_9,,1,, 2843855382,1077959055831884,19219359124, --22,2492200,,,境界化神,突破至化神境界,解锁等级上限,340级开启,n_icon_zjm_ jingjie,1017_10_1_9,,1,, 2772674583,1070073496085879,19220931958, --23,1380000,,,魂甲,开服第11天开启,八极降世,魂甲加身,350级开启,n_icon_zjm_hunjia,83086_10_1_9,,1,, 133765309213208,166824694261203,19219359182, --24,2553000,,0_9103003_300_-100_260_45_90_0;1_9103103_240_-30_210_45_90_0;2_9103203_220_40_150_-45_-90_0;3_9103203_220_60_120_-45_-90_0,造化寻宝,造化寻宝开启,飞升10级开启,n_xunbao,1017_10_1_9,,1,, 2843861785,1070210935878484,19219359124, --25,2492300,,,境界合体,突破至合体境界,解锁等级上限,飞升100级开启,n_icon_zjm_ jingjie,1017_10_1_9,,1,, 2843868186,1070262475879255,19219359124, --26,2492400,,,境界大乘,突破至大乘境界,解锁等级上限,飞升260级开启,n_icon_zjm_ jingjie,1017_10_1_9,,1,, 2843874587,1070314015880026,19219359124, --27,2492500,,,境界地仙,突破至地仙境界,解锁等级上限,飞升380级开启,n_icon_zjm_ jingjie,1017_10_1_9,,1,, } local L_MainKeyDic = { [1]=1,[2]=2,[3]=3,[4]=4,[5]=5,[6]=6,[7]=7,[8]=8,[9]=9,[10]=10,[11]=11,[12]=12,[13]=13,[14]=14,[15]=15, [16]=16,[17]=17,[18]=18,[19]=19,[20]=20,[21]=21,[22]=22,[23]=23,[24]=24,[25]=25,[26]=26,[27]=27,} local L_NamesByNum = { Id = 1, FunctionId = 2, ActiveDay = 10, IsShow = 11, } local L_NamesByString = { MainModelRes = 3, ModelRes = 4, Name = 5, Desc = 6, OpenDesc = 7, Icon = 8, AwardItem = 9, } local L_ColNameIndexs = { Id = 0, FunctionId = 1, MainModelRes = 2, ModelRes = 3, Name = 4, Desc = 5, OpenDesc = 6, Icon = 7, AwardItem = 8, ActiveDay = 9, IsShow = 10, } --local L_ColumnUseBitCount = {6,23,2,17,17,17,17,15,17,2,2,} --local L_ColumnList = {1,1,1,1,2,2,2,3,3,3,3,} --local L_ShiftDataList = {0,6,29,31,0,17,34,0,15,32,34,} --local L_AndDataList = {31,4194303,1,65535,65535,65535,65535,16383,65535,1,1,} local L_ColumnShiftAndList = {1,0,31,1,6,4194303,1,29,1,1,31,65535,2,0,65535,2,17,65535,2,34,65535,3,0,16383,3,15,65535,3,32,1,3,34,1,} local L_ColNum = 11; 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 - 1)*L_CompressMaxColumn+L_ColumnShiftAndList[startIndex + 1]] 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 = 27 } 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