local propertyTable = { ID = 1,ModelPart_Table = 2,ModelNode = 3,ModelLight = 4, } 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/MagicWeaponModel-page'..pageIndex) if DataSheetUtil then --skip fixedpoint process for data sheet checker DataSheetUtil.ProcessFixedPoint('MagicWeaponModel', 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({10001,1,1},base), setmetatable({10002,1,2},base), setmetatable({20001,1,3},base), setmetatable({20002,1,4},base), setmetatable({30001,1,5},base), setmetatable({30002,1,6},base), setmetatable({40001,1,7},base), setmetatable({40002,1,8},base), setmetatable({50001,1,9},base), setmetatable({50002,1,10},base), setmetatable({50003,1,11},base), setmetatable({60001,1,12},base), setmetatable({60002,1,13},base), setmetatable({70001,1,14},base), setmetatable({70002,1,15},base), setmetatable({80001,1,16},base), setmetatable({80002,1,17},base), setmetatable({90001,1,18},base), setmetatable({90002,1,19},base), setmetatable({100001,1,20},base), setmetatable({100002,1,21},base), setmetatable({110001,1,22},base), setmetatable({110002,1,23},base), setmetatable({120001,1,24},base), setmetatable({120002,1,25},base), setmetatable({130001,1,26},base), setmetatable({130002,1,27},base), setmetatable({140001,1,28},base), setmetatable({140002,1,29},base), setmetatable({150001,1,30},base), setmetatable({150002,1,31},base), setmetatable({160001,1,32},base), setmetatable({160002,1,33},base), setmetatable({170001,1,34},base), setmetatable({170002,1,35},base), setmetatable({180001,1,36},base), setmetatable({180002,1,37},base), setmetatable({190001,1,38},base), setmetatable({190002,1,39},base), setmetatable({200001,1,40},base), setmetatable({200002,1,41},base), setmetatable({210001,1,42},base), setmetatable({210002,1,43},base), setmetatable({220001,1,44},base), setmetatable({220002,1,45},base), setmetatable({230001,1,46},base), setmetatable({230002,1,47},base), setmetatable({240001,1,48},base), setmetatable({240002,1,49},base), setmetatable({250001,1,50},base), setmetatable({250002,1,51},base), setmetatable({260001,1,52},base), setmetatable({260002,1,53},base), setmetatable({270001,1,54},base), setmetatable({270002,1,55},base), setmetatable({280001,1,56},base), setmetatable({280002,1,57},base), setmetatable({290001,1,58},base), setmetatable({290002,1,59},base), setmetatable({300001,1,60},base), setmetatable({300002,1,61},base), setmetatable({300003,1,62},base), setmetatable({300004,1,63},base), setmetatable({300005,1,64},base), setmetatable({310001,1,65},base), setmetatable({310002,1,66},base), setmetatable({320001,1,67},base), setmetatable({320002,1,68},base), setmetatable({320003,1,69},base), setmetatable({320004,1,70},base), setmetatable({10101,1,71},base), setmetatable({10102,1,72},base), setmetatable({240101,1,73},base), setmetatable({240102,1,74},base), setmetatable({240201,1,75},base), setmetatable({240202,1,76},base), setmetatable({20101,1,77},base), setmetatable({20102,1,78},base), setmetatable({300101,1,79},base), setmetatable({300102,1,80},base), setmetatable({300103,1,81},base), setmetatable({300104,1,82},base), setmetatable({300105,1,83},base), setmetatable({30101,1,84},base), setmetatable({30102,1,85},base), setmetatable({260101,1,86},base), setmetatable({260102,1,87},base), setmetatable({80101,1,88},base), setmetatable({80102,1,89},base), setmetatable({100101,1,90},base), setmetatable({100102,1,91},base), setmetatable({220101,1,92},base), setmetatable({220102,1,93},base), setmetatable({260201,1,94},base), setmetatable({260202,1,95},base), setmetatable({90101,1,96},base), setmetatable({90102,1,97},base), setmetatable({250101,1,98},base), setmetatable({250102,1,99},base), setmetatable({150101,1,100},base), setmetatable({150102,1,101},base), setmetatable({340101,1,102},base), setmetatable({340102,1,103},base), setmetatable({330001,1,104},base), setmetatable({330002,1,105},base), setmetatable({340001,1,106},base), setmetatable({340002,1,107},base), setmetatable({130101,1,108},base), setmetatable({130102,1,109},base), setmetatable({320101,1,110},base), setmetatable({320102,1,111},base), setmetatable({320103,1,112},base), setmetatable({320104,1,113},base), setmetatable({330101,1,114},base), setmetatable({330102,1,115},base), setmetatable({330201,1,116},base), setmetatable({330202,1,117},base), setmetatable({140101,1,118},base), setmetatable({140102,1,119},base), setmetatable({360001,1,120},base), setmetatable({360002,1,121},base), setmetatable({170101,1,122},base), setmetatable({170102,1,123},base), setmetatable({270101,1,124},base), setmetatable({270102,1,125},base), setmetatable({260301,1,126},base), setmetatable({260302,1,127},base), setmetatable({250301,1,128},base), setmetatable({250302,1,129},base), setmetatable({410001,1,130},base), setmetatable({410002,1,131},base), setmetatable({410003,1,132},base), setmetatable({410101,1,133},base), setmetatable({410102,1,134},base), setmetatable({410103,1,135},base), setmetatable({250201,1,136},base), setmetatable({250202,1,137},base), setmetatable({30201,1,138},base), setmetatable({30202,1,139},base), setmetatable({390001,1,140},base), setmetatable({390002,1,141},base), setmetatable({300201,1,142},base), setmetatable({300202,1,143},base), setmetatable({300203,1,144},base), setmetatable({300204,1,145},base), setmetatable({300205,1,146},base), setmetatable({50101,1,147},base), setmetatable({50102,1,148},base), setmetatable({50103,1,149},base), setmetatable({10201,1,150},base), setmetatable({10202,1,151},base), setmetatable({150201,1,152},base), setmetatable({150202,1,153},base), setmetatable({90201,1,154},base), setmetatable({90202,1,155},base), setmetatable({240301,1,156},base), setmetatable({240302,1,157},base), setmetatable({20201,1,158},base), setmetatable({20202,1,159},base), setmetatable({350001,1,160},base), setmetatable({350002,1,161},base), setmetatable({350101,1,162},base), setmetatable({350102,1,163},base), setmetatable({20301,1,164},base), setmetatable({20302,1,165},base), setmetatable({300301,1,166},base), setmetatable({300302,1,167},base), setmetatable({300303,1,168},base), setmetatable({300304,1,169},base), setmetatable({300305,1,170},base), setmetatable({280101,1,171},base), setmetatable({280102,1,172},base), setmetatable({60101,1,173},base), setmetatable({60102,1,174},base), setmetatable({360101,1,175},base), setmetatable({360102,1,176},base), setmetatable({370001,1,177},base), setmetatable({370002,1,178},base), setmetatable({370101,1,179},base), setmetatable({370102,1,180},base), setmetatable({370201,1,181},base), setmetatable({370202,1,182},base), setmetatable({400001,1,183},base), setmetatable({400002,1,184},base), setmetatable({380001,1,185},base), setmetatable({380002,1,186},base), setmetatable({360201,1,187},base), setmetatable({360202,1,188},base), setmetatable({350201,1,189},base), setmetatable({350202,1,190},base), setmetatable({10301,1,191},base), setmetatable({10302,1,192},base), setmetatable({120101,1,193},base), setmetatable({120102,1,194},base), setmetatable({340201,1,195},base), setmetatable({340202,1,196},base), setmetatable({10401,1,197},base), setmetatable({10402,1,198},base), setmetatable({380101,1,199},base), setmetatable({380102,1,200},base), setmetatable({300501,1,201},base), setmetatable({300502,1,202},base), setmetatable({300503,1,203},base), setmetatable({300504,1,204},base), setmetatable({300505,1,205},base), setmetatable({150301,1,206},base), setmetatable({150302,1,207},base), setmetatable({170201,1,208},base), setmetatable({170202,1,209},base), setmetatable({390101,1,210},base), setmetatable({390102,1,211},base), setmetatable({390201,1,212},base), setmetatable({390202,1,213},base), setmetatable({90301,1,214},base), setmetatable({90302,1,215},base), setmetatable({190101,1,216},base), setmetatable({190102,1,217},base), setmetatable({420001,1,218},base), setmetatable({420002,1,219},base), setmetatable({400101,1,220},base), setmetatable({400102,1,221},base), setmetatable({420101,1,222},base), setmetatable({420102,1,223},base), setmetatable({10501,1,224},base), setmetatable({10502,1,225},base), setmetatable({20401,1,226},base), setmetatable({20402,1,227},base), setmetatable({60201,1,228},base), setmetatable({60202,1,229},base), setmetatable({350301,1,230},base), setmetatable({350302,1,231},base), setmetatable({210101,1,232},base), setmetatable({210102,1,233},base), setmetatable({50201,1,234},base), setmetatable({50202,1,235},base), setmetatable({50203,1,236},base), setmetatable({380201,1,237},base), setmetatable({380202,1,238},base), setmetatable({20501,1,239},base), setmetatable({20502,1,240},base), setmetatable({360301,1,241},base), setmetatable({360302,1,242},base), setmetatable({30301,1,243},base), setmetatable({30302,1,244},base), setmetatable({260401,1,245},base), setmetatable({260402,1,246},base), setmetatable({300401,1,247},base), setmetatable({300402,1,248},base), setmetatable({300403,1,249},base), setmetatable({300404,1,250},base), setmetatable({300405,1,251},base), setmetatable({100201,1,252},base), setmetatable({100202,1,253},base), setmetatable({80201,1,254},base), setmetatable({80202,1,255},base), setmetatable({90401,1,256},base), setmetatable({90402,1,257},base), setmetatable({240401,1,258},base), setmetatable({240402,1,259},base), setmetatable({410201,1,260},base), setmetatable({410202,1,261},base), setmetatable({410203,1,262},base), setmetatable({130201,1,263},base), setmetatable({130202,1,264},base), setmetatable({50301,1,265},base), setmetatable({50302,1,266},base), setmetatable({50303,1,267},base), setmetatable({460001,1,268},base), setmetatable({460002,1,269},base), setmetatable({460101,1,270},base), setmetatable({460102,1,271},base), setmetatable({440001,1,272},base), setmetatable({440002,1,273},base), setmetatable({430001,1,274},base), setmetatable({430002,1,275},base), setmetatable({450001,1,276},base), setmetatable({450002,1,277},base), setmetatable({8830001,1,278},base), setmetatable({8830002,1,279},base), setmetatable({8810001,1,280},base), setmetatable({8810002,1,281},base), setmetatable({430201,1,282},base), setmetatable({430202,1,283},base), setmetatable({220201,1,284},base), setmetatable({220202,1,285},base), setmetatable({330301,1,286},base), setmetatable({330302,1,287},base), setmetatable({420201,1,288},base), setmetatable({420202,1,289},base), setmetatable({440101,1,290},base), setmetatable({440102,1,291},base), setmetatable({430301,1,292},base), setmetatable({430302,1,293},base), setmetatable({150401,1,294},base), setmetatable({150402,1,295},base), setmetatable({370301,1,296},base), setmetatable({370302,1,297},base), setmetatable({10601,1,298},base), setmetatable({10602,1,299},base), setmetatable({450101,1,300},base), setmetatable({450102,1,301},base), setmetatable({90501,1,302},base), setmetatable({90502,1,303},base), setmetatable({280201,1,304},base), setmetatable({280202,1,305},base), setmetatable({8820001,1,306},base), setmetatable({8820002,1,307},base), setmetatable({380301,1,308},base), setmetatable({380302,1,309},base), setmetatable({380303,1,310},base), setmetatable({380304,1,311},base), setmetatable({380305,1,312},base), setmetatable({380306,1,313},base), setmetatable({380307,1,314},base), setmetatable({380308,1,315},base), setmetatable({20601,1,316},base), setmetatable({20602,1,317},base), } return { dataTable = dataTable, propertyTable = propertyTable, primaryTable = primaryTable, }