Commit be5f29fadf53427ebd8a71859ec8beaf0ce8a4cc
Merge branch 'cn/develop' of 120.26.43.151:wasteland/server into cn/develop
Showing
4 changed files
with
51 additions
and
24 deletions
Show diff stats
src/actions/AdvAction.lua
| @@ -301,18 +301,16 @@ function _M.startHangRpc(agent, data) | @@ -301,18 +301,16 @@ function _M.startHangRpc(agent, data) | ||
| 301 | 301 | ||
| 302 | local player = {} | 302 | local player = {} |
| 303 | local attrs = role:getTeamBattleInfo(format).heros | 303 | local attrs = role:getTeamBattleInfo(format).heros |
| 304 | - for attrName, _ in pairs(AdvAttsEnum) do | ||
| 305 | - for _, hero in pairs(attrs) do | ||
| 306 | - player[attrName] = (player[attrName] or 0) + hero[attrName] | 304 | + for _, hero in pairs(attrs) do |
| 305 | + --根据系数计算拾荒属性 | ||
| 306 | + role:checkPlayerAttr(hero) | ||
| 307 | + | ||
| 308 | + for attrName, _ in pairs(AdvAttsEnum) do | ||
| 309 | + player[attrName] = (player[attrName] or 0) + hero[attrName] | ||
| 307 | end | 310 | end |
| 308 | - player[attrName] = player[attrName] * (globalCsv.adv_battle_attr_ratio[attrName] or 1) | ||
| 309 | end | 311 | end |
| 310 | 312 | ||
| 311 | - local battleV = 1 * player["hp"] | ||
| 312 | - + 2 * player["atk"] | ||
| 313 | - + 1.25 * player["def"] | ||
| 314 | - + 0.226 * player["hit"] | ||
| 315 | - + 0.26 * player["miss"] | 313 | + local battleV = role:getSurvivability(player, #attrs) |
| 316 | 314 | ||
| 317 | --print(math.ceil(battleV), campSiteData.idleValue) | 315 | --print(math.ceil(battleV), campSiteData.idleValue) |
| 318 | if math.ceil(battleV) < campSiteData.idleValue then return 9 end -- 战斗力是否满足 | 316 | if math.ceil(battleV) < campSiteData.idleValue then return 9 end -- 战斗力是否满足 |
src/adv/Adv.lua
| @@ -930,18 +930,16 @@ function Adv:over(success, rewardRatio, overType) | @@ -930,18 +930,16 @@ function Adv:over(success, rewardRatio, overType) | ||
| 930 | local team = self.owner:getProperty("advTeam") | 930 | local team = self.owner:getProperty("advTeam") |
| 931 | local player = {} | 931 | local player = {} |
| 932 | local attrs = self.owner:getTeamBattleInfo(team).heros | 932 | local attrs = self.owner:getTeamBattleInfo(team).heros |
| 933 | - for attrName, _ in pairs(AdvAttsEnum) do | ||
| 934 | - for _, hero in pairs(attrs) do | ||
| 935 | - player[attrName] = (player[attrName] or 0) + hero[attrName] | 933 | + for _, hero in pairs(attrs) do |
| 934 | + --根据系数计算拾荒属性 | ||
| 935 | + self.owner:checkPlayerAttr(hero) | ||
| 936 | + | ||
| 937 | + for attrName, _ in pairs(AdvAttsEnum) do | ||
| 938 | + player[attrName] = (player[attrName] or 0) + hero[attrName] | ||
| 936 | end | 939 | end |
| 937 | - player[attrName] = player[attrName] * (globalCsv.adv_battle_attr_ratio[attrName] or 1) | ||
| 938 | end | 940 | end |
| 939 | 941 | ||
| 940 | - local battleV = 1 * player["hp"] | ||
| 941 | - + 2 * player["atk"] | ||
| 942 | - + 1.25 * player["def"] | ||
| 943 | - + 0.226 * player["hit"] | ||
| 944 | - + 0.26 * player["miss"] | 942 | + local battleV = self.owner:getSurvivability(player, #attrs) |
| 945 | 943 | ||
| 946 | local heroList = {team.leader, team.leader2} | 944 | local heroList = {team.leader, team.leader2} |
| 947 | for _, hid in pairs(team.heros) do | 945 | for _, hid in pairs(team.heros) do |
src/adv/AdvBattle.lua
| @@ -95,14 +95,13 @@ function Battle:initPlayer() | @@ -95,14 +95,13 @@ function Battle:initPlayer() | ||
| 95 | 95 | ||
| 96 | local attrs = self.adv.owner:getTeamBattleInfo(advTeam).heros | 96 | local attrs = self.adv.owner:getTeamBattleInfo(advTeam).heros |
| 97 | 97 | ||
| 98 | + for _, hero in pairs(attrs) do | ||
| 99 | + --根据系数计算拾荒属性 | ||
| 100 | + self.adv.owner:checkPlayerAttr(hero) | ||
| 98 | 101 | ||
| 99 | - for attrName, _ in pairs(AdvAttsEnum) do | ||
| 100 | - for _, hero in pairs(attrs) do | ||
| 101 | - player[attrName] = (player[attrName] or 0) + hero[attrName] | 102 | + for attrName, _ in pairs(AdvAttsEnum) do |
| 103 | + player[attrName] = (player[attrName] or 0) + hero[attrName] | ||
| 102 | end | 104 | end |
| 103 | - player[attrName] = getAdvLvAttrUp(advAddAttrs, attrName, player[attrName]) * (globalCsv.adv_battle_attr_ratio[attrName] or 1) | ||
| 104 | - -- player.growth[attrName] = player[attrName] * (globalCsv.adv_battle_attr_growth_ratio[attrName] or 1) | ||
| 105 | - -- player[attrName] = player[attrName] + player.growth[attrName] * (player.level - 1) | ||
| 106 | end | 105 | end |
| 107 | 106 | ||
| 108 | player.hpMax = player.hp or 0 | 107 | player.hpMax = player.hp or 0 |
src/models/RoleBattle.lua
| @@ -348,9 +348,41 @@ function Role:checkBattle(battleType, params) | @@ -348,9 +348,41 @@ function Role:checkBattle(battleType, params) | ||
| 348 | }) | 348 | }) |
| 349 | end | 349 | end |
| 350 | 350 | ||
| 351 | + local function initPlayer(player) | ||
| 352 | + player["hp"] = player["hp"] or 0 | ||
| 353 | + player["atk"] = player["atk"] or 0 | ||
| 354 | + player["def"] = player["def"] or 0 | ||
| 355 | + player["hit"] = player["hit"] or 0 | ||
| 356 | + player["miss"] = player["miss"] or 0 | ||
| 357 | + player["crit"] = player["crit"] or 0 | ||
| 358 | + player["critHurt"] = player["critHurt"] or 0 | ||
| 359 | + player["pierce"] = player["pierce"] or 0 | ||
| 360 | + player["vampire"] = player["vampire"] or 0 | ||
| 361 | + end | ||
| 362 | + | ||
| 363 | + function Role:checkPlayerAttr(player) | ||
| 364 | + if next(player) == nil then return end | ||
| 365 | + initPlayer(player) | ||
| 351 | 366 | ||
| 367 | + player["hp"] = math.floor(player["hp"] / globalCsv.adv_battle_attr_ratio["hp"]) | ||
| 368 | + player["atk"] = math.floor(player["atk"] / globalCsv.adv_battle_attr_ratio["atk"]) | ||
| 369 | + player["def"] = math.floor(player["def"] / globalCsv.adv_battle_attr_ratio["def"]) | ||
| 370 | + player["hit"] = math.floor((player["hit"] + player["miss"] )/ globalCsv.adv_battle_attr_ratio["hit"]) | ||
| 371 | + player["miss"] = math.floor((player["crit"] + player["critHurt"] + player["pierce"] + player["vampire"])/ globalCsv.adv_battle_attr_ratio["miss"]) | ||
| 372 | + end | ||
| 352 | 373 | ||
| 374 | + function Role:getSurvivability(player, heroCount) | ||
| 375 | + if next(player) == nil then return 0 end | ||
| 376 | + heroCount = heroCount or 1 | ||
| 377 | + initPlayer(player) | ||
| 353 | 378 | ||
| 379 | + local battleV = (globalCsv.adv_battle_fight_points["hp"] * player["hp"] | ||
| 380 | + + globalCsv.adv_battle_fight_points["atk"] * player["atk"] | ||
| 381 | + + globalCsv.adv_battle_fight_points["def"] * player["def"] | ||
| 382 | + + globalCsv.adv_battle_fight_points["hit"] * player["hit"] ) | ||
| 383 | + * (1 + (player["miss"]- heroCount * globalCsv.adv_battle_fight_points["miss"])/ 100) | ||
| 384 | + return battleV | ||
| 385 | + end | ||
| 354 | 386 | ||
| 355 | end | 387 | end |
| 356 | 388 |