Files
Main/Assets/GameAssets/Resources/Lua/Config/Data/DataTreasurePop.lua

168 lines
5.8 KiB
Lua
Raw Normal View History

2025-01-25 04:38:09 +08:00
--文件是自动生成,请勿手动修改.来自数据文件:Treasure_Pop
local L_CompressMaxColumn = 5
local L_CompressData = {
1097244010815635489,1071563327206308,25355547558,703698891745444856,900,
--1,1,机缘寻宝,1_20,60011_1,0,1_60011_1;10_60011_10;50_60011_45,3_20000,6_1,101_149,2_500,,9103002_250_148_100_50_100_-90_0_0;9103102_180_25_70_-40_-153_-23_0_1;9103202_160_0_100_-51_-95_-36_0_2;9103301_180_25_70_-40_-153_-23_0_3,0_9_0,666,20000,900,,
3403227232914548802,1071722775901100,25356727215,131073,0,
--2,2,仙魄寻宝,1_150,60010_1,1,1_60010_1;10_60010_10;50_60010_50,60009_25,5_40,201_274,2_10;3_1333;4_200,,,,,,,,
1097489798774869091,1071825855902642,25355547573,703698891747279507,900,
--3,3,造化寻宝,1_40,60012_1,0,1_60012_1;10_60012_10;50_60012_45,3_30000,6_2,301_342,2_500,,9103003_250_148_100_50_100_-90_0_0;9103103_180_25_70_-40_-153_-23_0_1;9103203_160_0_100_-51_-95_-36_0_2;9103302_180_25_70_-40_-153_-23_0_3,0_70_0,666,20000,900,,
1097613258683535492,1071825856820153,25358300091,703698883569647617,900,
--4,4,鸿蒙寻宝,1_50,60013_1,0,1_60013_1;10_60013_10;50_60013_45,3_40000,6_2,401_424,2_1000,,,,666,20000,900,,
1097725599592961189,375010363503551,25358300097,703698883569647617,900,
--5,5,上古寻宝,1_60,60014_1,0,1_60014_1;10_60014_10;50_60014_45,3_50000,6_3,501_524,2_1000,,,,666,20000,900,,
1097789180544017606,25359348675,1072126916490181,131073,0,
--6,6,仙甲寻宝,1_50,60015_1,0,1_60015_1;10_60015_10;50_60015_50,3_100000,,60001_61552,,2_1_10;2_21_30;2_41_50;2_66_75;2_91_100;2_121_130;2_151_160;2_191_200;2_231_240,,,,,,,
17592330218727,17180000257,17180062663,131073,0,
--7,7,仙甲秘宝,,,0,,,,7001_7104,,,,,,,,,
17592384168136,25359348681,1072126916490181,131073,0,
--8,6,仙甲寻宝(情义点),,,0,1_31_100,3_100000,,60001_61552,,2_1_10;2_21_30;2_41_50;2_66_75;2_91_100;2_121_130;2_151_160;2_191_200;2_231_240,,,,,,,
17592330180938,17180062666,1072229995705291,131073,0,
--10,10,无忧宝库,,,,1_1371_1;10_1371_10,,,80001_80013,,2_1_30;2_61_120;2_181_210,,,,,,,
}
local L_MainKeyDic = {
[1]=1,[2]=2,[3]=3,[4]=4,[5]=5,[6]=6,[7]=7,[8]=8,[10]=9,}
local L_NamesByNum = {
Id = 1,
RewardType = 2,
FreeTimes = 6,
LuckLimit = 15,
LuckLimitMult = 16,
LuckLimitTimes = 17,
}
local L_NamesByString = {
RewardName = 3,
MoneyCost = 4,
Item = 5,
Times = 7,
Gold = 8,
Integral = 9,
Section = 10,
Frequency = 11,
GuaranteesReward = 12,
ShowModel = 13,
ModelPos = 14,
}
local L_ColNameIndexs = {
Id = 0,
RewardType = 1,
RewardName = 2,
MoneyCost = 3,
Item = 4,
FreeTimes = 5,
Times = 6,
Gold = 7,
Integral = 8,
Section = 9,
Frequency = 10,
GuaranteesReward = 11,
ShowModel = 12,
ModelPos = 13,
LuckLimit = 14,
LuckLimitMult = 15,
LuckLimitTimes = 16,
}
--local L_ColumnUseBitCount = {5,5,17,17,17,2,17,17,17,17,17,17,17,17,11,16,11,}
--local L_ColumnList = {1,1,1,1,1,1,2,2,2,3,3,3,4,4,4,4,5,}
--local L_ShiftDataList = {0,5,10,27,44,61,0,17,34,0,17,34,0,17,34,45,0,}
--local L_AndDataList = {15,15,65535,65535,65535,1,65535,65535,65535,65535,65535,65535,65535,65535,1023,32767,1023,}
local L_ColumnShiftAndList = {1,0,15,1,5,15,1,10,65535,1,27,65535,1,44,65535,1,61,1,2,0,65535,2,17,65535,2,34,65535,3,0,65535,3,17,65535,3,34,65535,4,0,65535,4,17,65535,4,34,1023,4,45,32767,5,0,1023,}
local L_ColNum = 17;
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 = 9
}
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