|
|
@@ -1517,6 +1517,8 @@ function getExtraHurtRate(attacker,defender,skillConfig)
|
|
|
local sexHurt = 0
|
|
|
local campHurt = 0
|
|
|
local reJobHurt = 0
|
|
|
+ local buffAndHPSubHurt = 0
|
|
|
+
|
|
|
for k,skillList in pairs(attacker.beSkillList) do
|
|
|
for j,v in pairs(skillList) do
|
|
|
--local config = SkillExcel[v[1]]
|
|
|
@@ -1556,8 +1558,27 @@ function getExtraHurtRate(attacker,defender,skillConfig)
|
|
|
if canUse(attacker, v) then
|
|
|
firstHurt = config.args[1]
|
|
|
end
|
|
|
+ elseif config.cmd == "buffAndHPSub" then
|
|
|
+ local nowHp = defender.hp
|
|
|
+ local hpMax = CombatObj.getHpMax(defender)
|
|
|
+ local percent = math.floor((hpMax - nowHp )/hpMax * 100) --已损失血量百分比
|
|
|
+
|
|
|
+ local condCfg = config.args
|
|
|
+ local condRate = condCfg[1]
|
|
|
+
|
|
|
+ if percent >= condRate then
|
|
|
+ local condStatusList = condCfg[2] or {}
|
|
|
+ local objNowSatus = CombatBuff.getStatus(defender)
|
|
|
+
|
|
|
+ for buffCmd in pairs(condStatusList) do
|
|
|
+ if objNowSatus[buffCmd] then
|
|
|
+ buffAndHPSubHurt = condCfg[3] or 0
|
|
|
+ break
|
|
|
+ end
|
|
|
+ end
|
|
|
+ end
|
|
|
end
|
|
|
- end
|
|
|
+ end
|
|
|
end
|
|
|
|
|
|
for k,skillList in pairs(defender.beSkillList) do
|
|
|
@@ -1671,7 +1692,7 @@ function getExtraHurtRate(attacker,defender,skillConfig)
|
|
|
end
|
|
|
end
|
|
|
|
|
|
- local extraHurtRate = zhanyiRet + zhenduiHurtRate + bodongHurtRet + hpHurtRate + extraSpeedHurt + firstHurt + sexHurt + campHurt + reJobHurt + campHurtRate
|
|
|
+ local extraHurtRate = zhanyiRet + zhenduiHurtRate + bodongHurtRet + hpHurtRate + extraSpeedHurt + firstHurt + sexHurt + campHurt + reJobHurt + campHurtRate + buffAndHPSubHurt
|
|
|
if attacker.beSkillList[BESKILL_TYPE40] and attacker.beforeHitCheck then
|
|
|
for _,v in ipairs(attacker.beSkillList[BESKILL_TYPE40]) do
|
|
|
--local skillConfig = SkillExcel[v[1]]
|