function XQLogicWnd:CanUpfunc(itemId,need_num,list)–递归判断能否合成itemid为宝石id,neednum为需要个数,list合成消耗列表
local id = itemId --已经装备宝石的id
if id < 321 then --每次id递减1,直到最低等级
return false
end
local cfg = LBag:GetInstance():GetBagInfo():GetItemsByID(id,true) --获取背包id的格子数据
local num = 0 --背包宝石为id的个数
local need_num = need_num --合成下一级的个数(默认为2合1)
local how_much = 0 --合成需要宝石的个数
if #cfg == 0 then
how_much = num-need_num
else
num = cfg[1].GetCount() --背包内宝石个数
how_much = num - need_num
end
if num > 0 then --背包内宝石个数如果>0
local adata = {} --存一下背包内需要合成宝石的格子数据
adata.indexId = cfg[1].GetIndex()
adata.havenum = 0
if how_much >= 0 then --满足合成条件
adata.havenum = need_num
end
table.insert(list,adata)
end
if how_much >= 0 then --满足合成条件
return true
else
return self:CanUpfunc(id-1, Mathf.Abs(how_much)*2,list)
end
end
宝石一键合成递归处理
最新推荐文章于 2022-07-02 09:07:24 发布