|
|
@@ -16,7 +16,7 @@ local ProjectLogic = require("platform.ProjectLogic")
|
|
|
|
|
|
--和血量相关的作用
|
|
|
local function isHpCmd(cmd)
|
|
|
- if cmd == "hp" or cmd == "hurt" or cmd == "hurt1" or cmd == "liuxue" or cmd == "zhongdu" or cmd == "ranshao" or cmd == "ranshao1" or cmd == "huiheYinji" then
|
|
|
+ if cmd == "hp" or cmd == "hurt" or cmd == "hurt1" or cmd == "liuxue" or cmd == "liuxue2" or cmd == "zhongdu" or cmd == "ranshao" or cmd == "ranshao1" or cmd == "huiheYinji" then
|
|
|
return true
|
|
|
end
|
|
|
return false
|
|
|
@@ -155,6 +155,7 @@ CMD2KEY = {
|
|
|
["ranshao"] = RoleDefine.STATUS_MIANYI_RATE5,
|
|
|
["ranshao1"] = RoleDefine.STATUS_MIANYI_RATE5,
|
|
|
["liuxue"] = RoleDefine.STATUS_MIANYI_RATE6,
|
|
|
+ ["liuxue2"] = RoleDefine.STATUS_MIANYI_RATE6,
|
|
|
["zhongdu"] = RoleDefine.STATUS_MIANYI_RATE7,
|
|
|
["hunluan"] = RoleDefine.STATUS_MIANYI_RATE9,
|
|
|
}
|
|
|
@@ -1305,6 +1306,35 @@ local function chixuHurtDel(target,buffer)
|
|
|
end
|
|
|
return hurt
|
|
|
end
|
|
|
+
|
|
|
+--处理器, 实时计算伤害
|
|
|
+local function chixuHurtDel2(target,buffer)
|
|
|
+ local id = buffer.id
|
|
|
+ local conf = BufferExcel.buffer[id]
|
|
|
+ local attackPos = buffer.attackPos
|
|
|
+ local attacker
|
|
|
+ if attackPos > CombatDefine.COMBAT_HERO_ALL_CNT then
|
|
|
+ attacker = CombatImpl.helpList[attackPos]
|
|
|
+ else
|
|
|
+ attacker = CombatImpl.objList[attackPos]
|
|
|
+ end
|
|
|
+ local isAddHp = conf.cmd == "hp"
|
|
|
+ buffer.arg = CombatCalc.calcBufferHp(attacker,target,id,isAddHp)
|
|
|
+
|
|
|
+
|
|
|
+ local hurt = buffer.arg
|
|
|
+ local hurtDelRate = target.attr[RoleDefine.CHIXU_HURT_DEL_RATE] / 10000
|
|
|
+ --持续类buff 伤害加成
|
|
|
+ -- local attacker = CombatImpl.objList[buffer.attackPos]
|
|
|
+ -- local conf = BufferExcel.buffer[buffer.id]
|
|
|
+ local beSkillHurtRate = BeSkill.getBuffChixuHurt(attacker, conf.cmd)
|
|
|
+ hurtDelRate = hurtDelRate > 1 and 1 or hurtDelRate
|
|
|
+ if hurtDelRate > 0 or beSkillHurtRate > 0 then
|
|
|
+ hurt = hurt * (1 - hurtDelRate + beSkillHurtRate)
|
|
|
+ end
|
|
|
+ return hurt
|
|
|
+end
|
|
|
+
|
|
|
handler = {}
|
|
|
|
|
|
|
|
|
@@ -1363,6 +1393,7 @@ function handler.hp(target, buffer,conf)
|
|
|
buffer.attrs[RoleDefine.HP_COMBAT] = hp
|
|
|
HANDLER_ONCE["hp"] = target.pos
|
|
|
end
|
|
|
+
|
|
|
--流血
|
|
|
function handler.liuxue(target, buffer,conf)
|
|
|
local hurt = chixuHurtDel(target,buffer)
|
|
|
@@ -1370,6 +1401,15 @@ function handler.liuxue(target, buffer,conf)
|
|
|
buffer.attrs[RoleDefine.HP_COMBAT] = -hurt
|
|
|
onExtraCombatRecord(buffer.attackPos,hurt,"liuxue")
|
|
|
end
|
|
|
+
|
|
|
+--流血2
|
|
|
+function handler.liuxue2(target, buffer,conf)
|
|
|
+ local hurt = chixuHurtDel2(target,buffer)
|
|
|
+ local d = CombatObj.updateHp(target, -hurt, nil, nil, buffer.attackPos,CombatObj.BUFFER_HP_TYPE)
|
|
|
+ buffer.attrs[RoleDefine.HP_COMBAT] = -hurt
|
|
|
+ onExtraCombatRecord(buffer.attackPos,hurt,"liuxue")
|
|
|
+end
|
|
|
+
|
|
|
--中毒
|
|
|
function handler.zhongdu(target, buffer,conf)
|
|
|
local hurt = chixuHurtDel(target,buffer)
|
|
|
@@ -1563,7 +1603,7 @@ function qingsuan(target)
|
|
|
local buffer = target.buffer[j]
|
|
|
local conf = BufferExcel.buffer[buffer.id]
|
|
|
local cmd = conf.cmd
|
|
|
- if cmd == "ranshao" or cmd == "ranshao1" or cmd == "liuxue" or cmd == "zhongdu" or cmd == "hurt" or cmd == "hurt1" then
|
|
|
+ if cmd == "ranshao" or cmd == "ranshao1" or cmd == "liuxue"or cmd == "liuxue2" or cmd == "zhongdu" or cmd == "hurt" or cmd == "hurt1" then
|
|
|
round = 1
|
|
|
if buffer.round and buffer.round > 0 then
|
|
|
round = buffer.round
|