local propertyTable = { ID = 1,GveHoldRewardTime = 2,UnitStrengthNum = 3,UnitStrengthTime = 4,InitialQueueNum = 5,MaxQueueNum = 6,SourcesItem = 7,BanditDailyResetTime = 8,BanditContinuedTime = 9,GveMarkNumberLimit = 10,GveMarkWordLimit = 11,GveMarkAuthority = 12,GveTradingMinLimit = 13,GveTradingRate = 14,GveStartTime = 15,GveSeasonlast = 16,GveResetTime = 17,GveInitialAcreNum = 18,InitialStrengthMax = 19,FightConsume = 20,FigntBanditConsume = 21,FCCutParameter1 = 22,FCCutParameter2 = 23,QueueSeriousInjuryTime = 24,EliteResetTime = 25,BossResetTime = 26,FightFailReturnConsume = 27,BanditFailReturnConsume = 28,NewSeasonContinuedTimes = 29,NewSeasonFightConsume = 30,NewSeasonFightFailConsume = 31,BossEvolutiontime = 32,BossEvolutionlimits = 33,TotalPlotSize = 34,StandardGS = 35,LevelServeCheckTime = 36,FristSeasonTime = 37,BossStopTime1 = 38,BossStopTime2 = 39,BossMinBCConf = 40,BossMinBCConf2 = 41, } local mainPropertyTable = { ID = 1,PageIndex = 2,LineIndex = 3, } local primaryTable = { "ID", } local DataPageEntry = {} local rawget = rawget local base = { __index = function(t, k) local propertyIndex = propertyTable[k] if propertyIndex then local mainPropertyIndex = mainPropertyTable[k] if mainPropertyIndex then return t[mainPropertyIndex] end local pageIndex = t[2] local pageData = DataPageEntry[pageIndex] if pageData == nil then pageData = require('Data/SlgGvEConstData-page'..pageIndex) if DataSheetUtil then --skip fixedpoint process for data sheet checker DataSheetUtil.ProcessFixedPoint('SlgGvEConstData', pageData) end DataPageEntry[pageIndex] = pageData end local lineIndex = t[3] local resultData = pageData[lineIndex] return resultData[propertyIndex] end end, __newindex = function() error('Attempt to modify read-only table') end } local dataTable = { setmetatable({1,1,1},base), } return { dataTable = dataTable, propertyTable = propertyTable, primaryTable = primaryTable, }