Răsfoiți Sursa

部分技能cmd效果逻辑修改

gitxsm 1 lună în urmă
părinte
comite
a64014f07e
1 a modificat fișierele cu 38 adăugiri și 4 ștergeri
  1. 38 4
      script/module/combat/Skill.lua

+ 38 - 4
script/module/combat/Skill.lua

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