-攻击前触发
--Target object 受击对象
--Hiter object 攻击对象
--MagicId int 技能ID
--Damage int 伤害
--result int 返回值,修改后的伤害
local cfg_monYaZhi = include("QuestDiary/cfgcsv/cfg_TaiYangShengCheng_Mon.lua") -- 配置信息
local cfg_QiXingDamage = { [8] = 7, [7] = 77, [6] = 777, [5] = 7777, [4] = 77777, [3] = 777777, [2] = 7777777, [1] = 77777777 } --七星拱月阵伤害
function attackdamage(actor, Target, Hiter, MagicId, Damage, Model)
if actor == Target then return end
if hasbuff(actor, 30020) then return end --如果有这个buff 打断所有触发
local attackDamageData = { damage = 0 }
--攻击怪物
local monName
local attackType = true
if getbaseinfo(Target, -1) == false then
attackType = false
monName = getbaseinfo(Target, ConstCfg.gbase.name)
if monName == "火麒麟" then
if not checktitle(actor, "五行灵体") then
Player.sendmsgEx(actor, "你没有|五行灵体#249|称号,无法对|火麒麟#249|造成伤害")
return 0
end
elseif monName == "沉船遗物" then
if checkitemw(actor, "潮影钩矛", 1) then
return 20000
else
return 100
end
elseif monName == "〈〈〈〈太阴·星君〉〉〉〉" then
local MonNum = getmoncount("七星拱月阵", -1, true)
local QiXingDamage = cfg_QiXingDamage[MonNum]
return QiXingDamage
end
local BuZaoChengEWaiShangHai = cfg_BuZaoChengEWaiShangHai[monName]
if not BuZaoChengEWaiShangHai then
GameEvent.push(EventCfg.onAttackDamageMonster, actor, Target, Hiter, MagicId, Damage, Model, attackDamageData)
end
--攻击人
else
local BuffState = hasbuff(actor, 31065)
if BuffState then
local BuffNum = getbuffinfo(actor, 31065, 1)
if BuffNum == 100 then
humanhp(Target, "-", Player.getHpValue(Target, 15), 106, 0, actor)
buffstack(actor, 31065, "=", 1, false)
end
end
attackType = true
GameEvent.push(EventCfg.onAttackDamagePlayer, actor, Target, Hiter, MagicId, Damage, Model, attackDamageData)
end
GameEvent.push(EventCfg.onAttackDamage, actor, Target, Hiter, MagicId, Damage, Model, attackDamageData)
local currDamage = Damage + attackDamageData.damage
if attackType then
currDamage = currDamage * 0.5
end
-- 伤害压制
local cfg = cfg_monYaZhi[monName]
if cfg then
local AttNum = getplaydef(actor, VarCfg["U_日耀结界_伤害压制"])
AttNum = AttNum / 100
currDamage = currDamage - (currDamage * (0.9 - AttNum))
end
return math.ceil(currDamage)
end