SCFC 9 месяцев назад
Родитель
Сommit
07895537a9
1 измененных файлов с 40 добавлено и 0 удалено
  1. 40 0
      script/module/combat/Skill.lua

+ 40 - 0
script/module/combat/Skill.lua

@@ -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,