AchievementInfo.lua
2.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
cc.exports.AchievementInfo = {}
local xml = require("core.utils.pl.xml")
local _list = {};
local level_list = {};
--道具配置表信息
local function init()
local configStr = cc.FileUtils:getInstance():getStringFromFile("res/config/achievement.xml");
local data = xml.parse(configStr, false, true);
for i,v in pairs(data) do
if v.tag == "type" then
local _obj = {list={}};
_obj.viewid = tonumber(v.attr.viewid);
_obj.id = tonumber(v.attr.id);
_obj.name = v.attr.name;
_obj.des = v.attr.des or "";
for ii,vv in pairs(v) do
if vv.tag == "reward" then
local info = {};
info.id = tonumber(vv.attr.id);
info.name = vv.attr.name;
info.itemList = StringUtil.split(vv.attr.item,";");
info.data = tonumber(vv.attr.data);
_obj.list[#_obj.list+1] = info;
end
end
table.sort(_obj.list,function (aa,bb)
return tonumber(aa.id) < tonumber(bb.id);
end);
_list[#_list+1] = _obj;
elseif v.tag == "level" then
local _obj = {};
_obj.id = tonumber(v.attr.id);
_obj.cnt = tonumber(v.attr.cnt);
_obj.itemList = StringUtil.split(v.attr.item,";");
level_list[#level_list+1] = _obj;
end
end
table.sort(_list,function (aa,bb)
return aa.viewid < bb.viewid;
end);
table.sort(level_list,function (aa,bb)
return aa.id < bb.id;
end);
end
init();
--通过成就ID获取成就信息
function AchievementInfo.getAchievementListByID(achievement_id)
for i,v in ipairs(_list) do
if tonumber(v.id) == tonumber(achievement_id) then
return v;
end
end
end
function AchievementInfo.getAchievementList()
return _list;
end
function AchievementInfo.getNextAchievementLevelReward(achievement_cnt)
for i,v in ipairs(level_list) do
if achievement_cnt < v.cnt then
return v;
end
end
return nil;
end
return AchievementInfo