|
|
@@ -1171,6 +1171,46 @@ function CMD.hurtxia3(obj,skillConfig,skillTargets)
|
|
|
return ret
|
|
|
end
|
|
|
|
|
|
+function CMD.attributehurt(obj, skillConfig, skillTargets)
|
|
|
+ if not skillTargets or nil == _G.next(skillTargets) then
|
|
|
+ return
|
|
|
+ end
|
|
|
+ local args = skillConfig.args
|
|
|
+ if not args then
|
|
|
+ print("[attributehurt] 不存在对应配置直接返回")
|
|
|
+ return
|
|
|
+ end
|
|
|
+
|
|
|
+ local nAttrID = args[1] -- 属性ID
|
|
|
+ local nRate = args[2] -- 属性倍数
|
|
|
+ local nEnemyAttrID = args[3] -- 敌方属性
|
|
|
+ local nNowHurt = CombatObj.getValue(obj, RoleDefine.ATK)
|
|
|
+ local nAttrValue = CombatObj.getValue(obj, nAttrID)
|
|
|
+ local nValue = nAttrValue * nRate
|
|
|
+ local nMaxHurt = CombatObj.getValue(obj, RoleDefine.ATK) * 10
|
|
|
+ -- print("[attributehurt] 计算出来的进攻方属性加成 nValue = "..nValue.." 获取到的 属性ID = "
|
|
|
+ -- ..nAttrID.." 属性值 "..nAttrValue.." 倍率 "..nRate.." 攻击力的10倍 = "..nMaxHurt)
|
|
|
+
|
|
|
+
|
|
|
+ local ret = {}
|
|
|
+ for _, tEnemyObj in ipairs(skillTargets) do
|
|
|
+ local nEnemyValue = CombatObj.getValue(tEnemyObj, nEnemyAttrID)
|
|
|
+ local nBeginHurt = nValue / nEnemyValue
|
|
|
+ local nEndHurt = nBeginHurt * nNowHurt
|
|
|
+ nEndHurt = math.min(nMaxHurt, nEndHurt)
|
|
|
+ -- print("[attributehurt] 计算出来的最终伤害 nEndHurt = "..nEndHurt.." 获取到的敌方 属性ID = "
|
|
|
+ -- ..nEnemyAttrID.." 敌方属性值 "..nEnemyValue.." 开始 nBeginHurt "..nBeginHurt)
|
|
|
+
|
|
|
+ local d = CombatObj.updateHp(tEnemyObj, -nEndHurt, nil, true, obj.pos, CombatObj.EXTRA_HP_TYPE)
|
|
|
+ if d ~= 0 then
|
|
|
+ CombatImpl.setExtraHit(tEnemyObj, -nEndHurt, CMD2ID["attributehurt"])
|
|
|
+ CombatObj.onHpCB(tEnemyObj, d, obj.pos)
|
|
|
+ ret[#ret+1] = tEnemyObj
|
|
|
+ end
|
|
|
+ end
|
|
|
+
|
|
|
+ return ret
|
|
|
+end
|
|
|
|
|
|
NO_SKILL_CHECK_COMBO_LIST = {
|
|
|
["hp"] = 1,
|