Przeglądaj źródła

修复禁止复活buff在某些情况下失效问题

gitxsm 8 miesięcy temu
rodzic
commit
f6dff4fc14

+ 2 - 2
script/module/combat/BeSkill.lua

@@ -1037,13 +1037,13 @@ function onDie(obj, hurt, attackPos)
 
 	local side = obj.side
 	local attacker = CombatImpl.objList[attackPos]
-	if obj.attackSkillID then
+	if obj.dieSkill then
 		if attacker and attacker.beSkillList[BESKILL_TYPE43] then
 			for _,v in ipairs(attacker.beSkillList[BESKILL_TYPE43]) do
 				--local skillConfig = SkillExcel[v[1]]
 				local skillConfig = Skill.GetSkillConfig(v[1])
 				for _,v1 in ipairs(skillConfig.beSkillArgs) do
-					if  v1 == obj.attackSkillID then
+					if  v1 == obj.dieSkill then
 						use(attacker,{obj},v)
 						break
 					end					

+ 2 - 0
script/module/combat/CombatBuff.lua

@@ -744,6 +744,8 @@ function reviceObj(attackPos, obj, bufferID, skillID)
     end
 	BeSkill.onAddBuffer(obj,{id = bufferID})
 
+	obj.dieSkill = nil
+
 	CombatImpl.InsertAttackOrder(obj.pos)
 end
 

+ 2 - 1
script/module/combat/CombatObj.lua

@@ -291,10 +291,11 @@ end
 function onHpCB(obj,d, attackPos,skillID)
 	if d == 0 then return end 
 	if obj.hp <= 0 then
-		BeSkill.onDie(obj, d, attackPos)
+		-- BeSkill.onDie(obj, d, attackPos)
 		obj.dietime = os.time()
 		obj.dieSkill = skillID
 		obj.dieAtkCnt = CombatImpl.totalAtkCnt
+		BeSkill.onDie(obj, d, attackPos)
 		CombatBuff.onExtraCombatRecord(attackPos,1,"kill")
 	else
 		BeSkill.onHp(obj, d, attackPos)

+ 1 - 1
script/module/combat/Skill.lua

@@ -1204,7 +1204,7 @@ function CMD.attributehurt(obj, skillConfig, skillTargets)
 		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)
+			CombatObj.onHpCB(tEnemyObj, d, obj.pos, skillConfig.id)
 			ret[#ret+1] = tEnemyObj
 		end
 	end