|
|
@@ -673,6 +673,40 @@ function CMD.hurt(obj,skillConfig,skillTargets)
|
|
|
return ret
|
|
|
end
|
|
|
|
|
|
+
|
|
|
+function CMD.hurtSelf(obj,skillConfig,skillTargets)
|
|
|
+ local args = obj.isPet and obj.args or skillConfig.args
|
|
|
+ local r = math.random(0,10000)
|
|
|
+ if r > args[4] then
|
|
|
+ return
|
|
|
+ end
|
|
|
+ local calcType = args[1]
|
|
|
+ local rate = args[2]
|
|
|
+ local targets = TargetMode.getTargets(obj, args[3],skillTargets)
|
|
|
+ local hp
|
|
|
+ local limit
|
|
|
+ local ret = {}
|
|
|
+ if args[5] then
|
|
|
+ limit = args[5] * CombatObj.getValue(obj,RoleDefine.ATK_COMBAT_NOW) / 10000
|
|
|
+ end
|
|
|
+ for _,target in ipairs(targets) do
|
|
|
+ hp = calcHp(obj,target,calcType,rate,limit)
|
|
|
+ if hp ~= 0 then
|
|
|
+ local d, _, extraHandleTb = CombatObj.updateHp(target,-hp,nil,true, obj.pos,CombatObj.EXTRA_HP_TYPE)
|
|
|
+ if d ~= 0 then
|
|
|
+ CombatImpl.setExtraHit(target,-hp,CMD2ID["hurtSelf"])
|
|
|
+ CombatObj.onHpCB(target,d, obj.pos)
|
|
|
+ ret[#ret+1] = target
|
|
|
+ end
|
|
|
+
|
|
|
+ if extraHandleTb then
|
|
|
+ ExtraHandle(target, extraHandleTb)
|
|
|
+ end
|
|
|
+ end
|
|
|
+ end
|
|
|
+ return ret
|
|
|
+end
|
|
|
+
|
|
|
function CMD.behurt(obj,skillConfig,skillTargets)
|
|
|
local args = obj.isPet and obj.args or skillConfig.args
|
|
|
local r = math.random(0,10000)
|
|
|
@@ -1799,7 +1833,7 @@ function CMD.targetBuffExtraEffect(obj,skillConfig,skillTargets)
|
|
|
if hurt ~= 0 then
|
|
|
local d, _, extraHandleTb = CombatObj.updateHp(target,-hurt,nil,true, obj.pos,CombatObj.SKILL_HP_TYPE)
|
|
|
if d ~= 0 then
|
|
|
- CombatImpl.setExtraHit(target,-hurt,CMD2ID["hurt"])
|
|
|
+ CombatImpl.setExtraHit(target,-hurt,CMD2ID["targetBuffExtraEffect"])
|
|
|
CombatObj.onHpCB(target,d, obj.pos)
|
|
|
end
|
|
|
|
|
|
@@ -1841,7 +1875,7 @@ function CMD.buffDiffHurt(obj,skillConfig,skillTargets)
|
|
|
|
|
|
local d, _, extraHandleTb = CombatObj.updateHp(targetObj, -hurt, nil, true, obj.pos, CombatObj.EXTRA_HP_TYPE)
|
|
|
if d ~= 0 then
|
|
|
- CombatImpl.setExtraHit(targetObj, -hurt, CMD2ID["hurt"])
|
|
|
+ CombatImpl.setExtraHit(targetObj, -hurt, CMD2ID["buffDiffHurt"])
|
|
|
CombatObj.onHpCB(targetObj, d, obj.pos)
|
|
|
end
|
|
|
|
|
|
@@ -1899,7 +1933,7 @@ function CMD.exchangeHP(obj,skillConfig,skillTargets)
|
|
|
-- 给施放者扣血量差值
|
|
|
d, _, extraHandleTb = CombatObj.updateHp(obj, -subHP, nil, true, obj.pos, CombatObj.EXTRA_HP_TYPE)
|
|
|
if d ~= 0 then
|
|
|
- CombatImpl.setExtraHit(obj, -subHP, CMD2ID["hp"])
|
|
|
+ CombatImpl.setExtraHit(obj, -subHP, CMD2ID["hurtSelf"])
|
|
|
CombatObj.onHpCB(obj, d, obj.pos)
|
|
|
end
|
|
|
|
|
|
@@ -1955,7 +1989,7 @@ function CMD.trueDamegeAddtional(obj,skillConfig,skillTargets)
|
|
|
if hp ~= 0 then
|
|
|
local d, _, extraHandleTb = CombatObj.updateHp(target,-hp,nil,true, obj.pos,CombatObj.EXTRA_HP_TYPE)
|
|
|
if d ~= 0 then
|
|
|
- CombatImpl.setExtraHit(target,-hp,CMD2ID["hurt"])
|
|
|
+ CombatImpl.setExtraHit(target,-hp,CMD2ID["trueDamegeAddtional"])
|
|
|
CombatObj.onHpCB(target,d, obj.pos)
|
|
|
ret[#ret+1] = target
|
|
|
end
|