ConfigParserManager = {} --解析配置中的物品 --cfg_name:表名 --id:id索引 --prop:字段 function ConfigParserManager:GetConfigGoods(cfg_name,id,prop) if not self[cfg_name] then self[cfg_name] = {} end if not self[cfg_name][id] then self[cfg_name][id] = {} end if not self[cfg_name][id][prop] then assert(Config[cfg_name],"找不到配置:" .. cfg_name) assert(Config[cfg_name][id],"找不到配置:[" .. cfg_name.."]中的key=>"..id) assert(Config[cfg_name][id][prop],"找不到配置:[" .. cfg_name.."]中的key=>"..id.."中的字段=>"..prop) local config_str = Config[cfg_name][id] and Config[cfg_name][id][prop] or "" local tbl = ErlangParser:GetInstance():Parse(config_str) or {} local tbl_goods = {} for k,v in ipairs(tbl) do table.insert(tbl_goods, {style = (v[1]),typeId = tonumber(v[2]),count = tonumber(v[3])}) end self[cfg_name][id][prop] = tbl_goods end return self[cfg_name][id][prop] end --解析配置中的属性 --cfg_name:表名 --id:id索引 --prop:字段 function ConfigParserManager:GetConfigAttr(cfg_name,id,prop) if not self[cfg_name] then self[cfg_name] = {} end if not self[cfg_name][id] then self[cfg_name][id] = {} end if not self[cfg_name][id][prop] then assert(Config[cfg_name],"找不到配置:" .. cfg_name) assert(Config[cfg_name][id],"找不到配置:[" .. cfg_name.."]中的key=>"..id) assert(Config[cfg_name][id][prop],"找不到配置:[" .. cfg_name.."]中的key=>"..id.."中的字段=>"..prop) local config_str = Config[cfg_name][id] and Config[cfg_name][id][prop] or "" local tbl = ErlangParser:GetInstance():Parse(config_str) or {} local attr_tbl = {} for k,v in ipairs(tbl) do table.insert(attr_tbl, {attr_id = tonumber(v[1]), val = tonumber(v[2])}) end self[cfg_name][id][prop] = attr_tbl end return self[cfg_name][id][prop] end --解析配置 直接保存解析结果 --cfg_name:表名 --id:id索引 --prop:字段 function ConfigParserManager:GetConfigParse(cfg_name,id,prop) if not self[cfg_name] then self[cfg_name] = {} end if not self[cfg_name][id] then self[cfg_name][id] = {} end if not self[cfg_name][id][prop] then if not Config[cfg_name] then if can_print_cmd then logWarn(string.format("找不到配置:%s", cfg_name)) end return nil end if not Config[cfg_name][id] then if can_print_cmd then logWarn(string.format("找不到配置:[%s]中的key=>%d", cfg_name, id)) end return nil end if not Config[cfg_name][id][prop] then if can_print_cmd then logWarn(string.format("找不到配置:[%s]中的key=>%d中的字段=>%s", cfg_name, id, prop)) end return nil end local config_str = Config[cfg_name][id] and Config[cfg_name][id][prop] or "" local tbl = ErlangParser:GetInstance():Parse(config_str) or {} self[cfg_name][id][prop] = tbl end return self[cfg_name][id][prop] end