diff --git a/src/actions/HeroAction.lua b/src/actions/HeroAction.lua index fdd3a3d..9cd52ca 100644 --- a/src/actions/HeroAction.lua +++ b/src/actions/HeroAction.lua @@ -946,7 +946,28 @@ function _M.drawHeroRpc(agent, data) local drawCardReward, val = role:getDrawCardExtraReward(oldVal, newVal) -- 空字符穿代表直接给英雄 走以前repayHeroRpc if drawCardReward == "" then - local id = math.randWeight(csvdb["build_giftCsv"], "pool_1") + local repayHeroMaxCount = role:getProperty("repayMaxC") or 0 + repayHeroMaxCount = repayHeroMaxCount + 1 + + role:updateProperty({field = "repayMaxC", value = repayHeroMaxCount}) + local even = repayHeroMaxCount % 2 + local id = 0 + if even == 1 then + id = math.randWeight(csvdb["build_giftCsv"], "pool_1") + else + local giftHeroSet = {} + for gid, cfg in pairs(csvdb["build_giftCsv"]) do + if cfg["pool_1"] ~= 0 and not role:isHaveHero(gid - ItemStartId.Hero) then + giftHeroSet[gid] = {1} + end + end + if next(giftHeroSet) then + id = math.randWeight(giftHeroSet, 1) + end + end + if id == 0 then + id = math.randWeight(csvdb["build_giftCsv"], "pool_1") + end local r,change = {} local itemData = csvdb["itemCsv"][id] diff --git a/src/models/Role.lua b/src/models/Role.lua index 5354052..e520509 100644 --- a/src/models/Role.lua +++ b/src/models/Role.lua @@ -162,6 +162,7 @@ Role.schema = { emailSync = {"number", 0}, -- 已经同步到的邮件Id repayHero = {"number", 0}, -- 招募次数 (除去友情招募) + repayMaxC = {"number", 0}, -- 招募保底英雄领取次数 100一次 floorHero = {"table", {}}, -- 招募保底 -- {[poolId] = count} ssrUp = {"table", {}}, -- ssr up -- {[poolId] = count} newerDraw = {"table", {}}, -- 新手池子 {N, 1} 抽了多少次, 是否出了ssr -- libgit2 0.21.2