--[[ 国际化参数顺序,配置文件XX_Param.txt 4=2,3,1 7=2,1 idsParamOrderRangeTable 下标 2n-1,2n {[7]=1,[8]=3,[13]=4,[14]=5} 键是IDS的数字索引,定义于Const_IDS文件中 idsParamOrderIndexTable {2,3,1,2,1} 所有IDS参数占位符的顺序索引值,由Range中定义的起止所引用 ]] local LocalizationParamOrderCfg = {} --参数在paramsTable的开始结束索引 local paramOrderRangeTable = {} --参数的记录 local paramOrderIndexTable = {} --迭代器用的table local IterationTable = {} function LocalizationParamOrderCfg.InitParamOrderCfg() paramOrderRangeTable = {} paramOrderIndexTable = {} IterationTable = {} end local ParamOrderArr = {} function LocalizationParamOrderCfg.SetParamOrderData(idsId, ...) LuaExt.ResetTable(ParamOrderArr, ...) paramOrderRangeTable[idsId*2-1] = #paramOrderIndexTable+1 for __, order in ipairs(ParamOrderArr) do table.insert(paramOrderIndexTable, order) end paramOrderRangeTable[idsId*2] = #paramOrderIndexTable end local function IpairsParamOrderTable(iterTable, curIndex) if iterTable.startIndex+curIndex > iterTable.endIndex then return nil end curIndex = curIndex+1 if iterTable.table[iterTable.startIndex+curIndex-1] then return curIndex, iterTable.table[iterTable.startIndex+curIndex-1] else return nil end end --返回迭代函数,外边遍历拿到index, value function LocalizationParamOrderCfg.GetParamOrderEnumerator(idsId) IterationTable.startIndex = paramOrderRangeTable[idsId*2-1] IterationTable.endIndex = paramOrderRangeTable[idsId*2] IterationTable.table = paramOrderIndexTable return IpairsParamOrderTable, IterationTable, 0 end function LocalizationParamOrderCfg.HasParamOrderCfg(idsId) local idsIndex = idsId*2 return paramOrderRangeTable[idsIndex - 1] and paramOrderRangeTable[idsIndex] end return LocalizationParamOrderCfg