Commit 3666c3fa658a170d97d3662a20b4844434524809

Authored by zhouhaihai
2 parents 1791bbc5 b021e351

Merge branch 'tr/bugfix' into tr/publish/release

* tr/bugfix:
  计算英雄战斗力,天赋,信赖
  错误的
  多队挂机 电台任务英雄也不能重用
  冒险次数
  取消特权卡餐厅加速获得额外道具功能

# Conflicts:
#	src/csvdata
src/actions/AdvAction.lua
... ... @@ -57,6 +57,15 @@ local function checkFormat(role, format, checkAdvTeam)
57 57 end
58 58 end
59 59  
  60 + -- 多队挂机 电台任务英雄也不能重用
  61 + local radioTask = role:getProperty("radioTask")
  62 + for id, taskInfo in pairs(radioTask) do
  63 + local heros = taskInfo["heros"] or {}
  64 + for _, heroId in ipairs(heros) do
  65 + hadHero[heroId] = true
  66 + end
  67 + end
  68 +
60 69 if not format.leader then return end
61 70 if format.leader2 == format.leader then return end
62 71 local hadLeader = false
... ... @@ -102,6 +111,8 @@ function _M.startAdvRpc( agent, data )
102 111  
103 112 local advPass = role:getProperty("advPass")
104 113  
  114 + if not checkFormat(role) then return 7 end
  115 +
105 116 if AdvCommon.isEndless(chapterId) then -- 无尽模式判断
106 117  
107 118 if chapterId ~= role.advElChapter then return end -- 不是当前进行的章节
... ... @@ -118,37 +129,23 @@ function _M.startAdvRpc( agent, data )
118 129 if not relayData then return 14 end -- 不是中继层
119 130 if advElM < relayData.unlockfloor then return 15 end --未解锁
120 131 end
  132 +
  133 + role.dailyData:updateProperty({field = "advElC", delta = 1})
121 134 else -- 普通模式判断
122   - if not role:checkAdvCount(chapterData.limitlevel) then return 2 end -- 是否有体力
123 135 if layer >= chapterData.limitlevel then return 4 end
124   - -- 关卡开放判断
125   - if not role:advChapterIsOpen(chapterId) then return 5 end
126 136  
  137 + local relayData = role:getAdvData():isHaveRelay(layer, chapterId, true)
  138 + if not relayData then return 6 end -- 不是中继层
127 139 if layer ~= 1 then
128   - local relayData = role:getAdvData():isHaveRelay(layer, chapterId)
129   - if not relayData then return 6 end -- 不是中继层
130 140 if (advPass[chapterId] or 0) < relayData.floor then return 21 end
131 141 end
132   - end
133   -
134   - if not checkFormat(role) then return 7 end
135   -
136   - --local advTeam = role:getProperty("advTeam")
137   - --table.clear(advTeam)
  142 + if not role:checkAdvCount(relayData.supply) then return 2 end -- 是否有体力
  143 + -- 关卡开放判断
  144 + if not role:advChapterIsOpen(chapterId) then return 5 end
138 145  
139   - --advTeam.heros = {}
140   - --for slot, heroId in pairs(format.heros) do
141   - -- advTeam.heros[slot] = heroId
142   - --end
143   - --advTeam.leader = format.leader
144   - --advTeam.leader2 = format.leader2
145   - --role:updateProperty({field = "advTeam", value = advTeam})
146   - if AdvCommon.isEndless(chapterId) then
147   - role.dailyData:updateProperty({field = "advElC", delta = 1})
148   - else
149   - role:changeAdvCount(chapterData.limitlevel)
  146 + role:changeAdvCount(relayData.supply)
150 147 end
151   -
  148 +
152 149 local support = {} -- 支援效果
153 150 if AdvCommon.isEndless(chapterId) then
154 151 -- 选择的支援效果
... ... @@ -168,6 +165,7 @@ function _M.startAdvRpc( agent, data )
168 165 end
169 166 end
170 167 end
  168 +
171 169 role:getAdvData():initByChapter({
172 170 chapterId = chapterId,
173 171 level = layer,
... ... @@ -175,6 +173,7 @@ function _M.startAdvRpc( agent, data )
175 173 isEnter = true,
176 174 support = support,
177 175 })
  176 +
178 177 role:checkTaskEnter("AdvStart", {id = chapterId})
179 178 role:checkTaskEnter("AdvStartSelf", {id = chapterId})
180 179 role:getAdvData():popBackEvents() -- 清一下事件
... ... @@ -236,7 +235,8 @@ function _M.startHangRpc(agent, data)
236 235 + 0.226 * player["hit"]
237 236 + 0.26 * player["miss"]
238 237  
239   - if battleV < campSiteData.idleValue then return 9 end -- 战斗力是否满足
  238 + --print(math.ceil(battleV), campSiteData.idleValue)
  239 + if math.ceil(battleV) < campSiteData.idleValue then return 9 end -- 战斗力是否满足
240 240  
241 241 local info = {}
242 242 info.format = {}
... ...
src/actions/DinerAction.lua
... ... @@ -305,7 +305,7 @@ function _M.expediteSellRpc( agent, data )
305 305 local gift = reward:toNumMap()
306 306  
307 307 -- 特权卡获取加速获得额外道具
308   - local coef = role.storeData:getProduceItemSpeedCoef()
  308 + local coef = 1 --role.storeData:getProduceItemSpeedCoef()
309 309 for k, v in pairs(gift) do
310 310 if coef > 1 then
311 311 v = math.floor(v * coef)
... ...
src/adv/Adv.lua
... ... @@ -61,10 +61,10 @@ function Adv:initByInfo(advInfo)
61 61 self:initBattle(advInfo)
62 62 end
63 63 -- 找出level 是否存在中继层
64   -function Adv:isHaveRelay(level, chapterId)
  64 +function Adv:isHaveRelay(level, chapterId, force)
65 65 level = level or self.level
66 66 chapterId = chapterId or self.chapterId
67   - if level == 1 then return end
  67 + if level == 1 and not force then return end
68 68  
69 69 local campsiteCsv = csvdb["adv_chapter_campsiteCsv"][chapterId]
70 70 for _, campsite in ipairs(campsiteCsv) do
... ...
src/models/HeroPlugin.lua
... ... @@ -53,22 +53,25 @@ function HeroPlugin.bind(Hero)
53 53 local talentAttrS = {}
54 54  
55 55 -- 四个基础属性
56   - local curData = csvdb["unit_talentCsv"][talent:getv(0, 1)]
57   - local curTalentLvl = 0
58   - if not curData then -- 已经满阶段了
59   - local cfgName = "unit_talent_"..heroCfgId.."Csv"
60   - curData = csvdb[cfgName][#csvdb[cfgName]]
61   - else
62   - curTalentLvl = talent:getv(1, 1)
63   - end
64   - for lvl, cfg in pairs(curData) do
65   - if lvl < curTalentLvl or curTalentLvl == 0 then
66   - if cfg.effect ~= 99 then
67   - local curVal = talentAttrS[cfg.effect] or 0
68   - if curVal < cfg.strength then
69   - talentAttrS[cfg.effect] = cfg.strength
  56 + local cfgName = "unit_talent_"..heroCfgId.."Csv"
  57 + local curRank = talent:getv(0, 1)
  58 + local curLv = talent:getv(1,1) - 1
  59 + for i, value in ipairs(csvdb[cfgName]) do
  60 + if i <= curRank then
  61 + for lv, cfg in ipairs(value) do
  62 + if i < curRank or lv <= curLv then
  63 + if cfg.effect ~= 99 then
  64 + if not talentAttrS[cfg.effect] then
  65 + talentAttrS[AttsEnumEx[cfg.effect]] = 0
  66 + end
  67 + talentAttrS[AttsEnumEx[cfg.effect]] = cfg.strength
  68 + end
  69 + else
  70 + break
70 71 end
71 72 end
  73 + else
  74 + break
72 75 end
73 76 end
74 77  
... ... @@ -85,7 +88,7 @@ function HeroPlugin.bind(Hero)
85 88 for lvl = 1, #faithConfig do
86 89 if faith >= faithConfig[lvl].exp then
87 90 local add = faithConfig[lvl]["position_"..unitData.position]:toArray(true, "=")
88   - faithAttr[add[1]] = (faithAttr[add[1]] or 0) + add[2]
  91 + faithAttr[AttsEnumEx[add[1]]] = (faithAttr[AttsEnumEx[add[1]]] or 0) + add[2]
89 92 end
90 93 end
91 94 for _, attrName in pairs(AttsEnumEx) do
... ...