-- 在QFunction-0.lua中添加
MainTargetMap = {}
function beforeeffecttriger(actor, effectId, targetId)
MainTargetMap[actor] = targetId
return true
end
function base(actor, target, effectId, skillId, skillLv)
local mainTargetId = MainTargetMap
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-05-28 22:09:39 |
👁️ 阅读: 0
您提供的脚本已经实现了对副怪目标减少50%伤害的功能。其工作原理如下:
1. **记录主目标**:在技能效果触发前,`beforeeffecttriger` 函数会将当前技能的主目标ID(`targetId`)记录到全局表 `MainTargetMap` 中,并与施法者(`actor`)关联。
2. **区分伤害**:在计算伤害的 `base` 函数中,会从 `MainTargetMap` 中取出当前施法者记录的主目标ID。
- 如果当前伤害计算的目标(`target`)与记录的主目标ID相同,则判定为主目标,返回100点伤害。
- 如果当前目标与主目标ID不同,则判定为副目标,返回50点伤害,即为主目标伤害的50%。
- 如果没有记录到主目标(例如 `mainTargetId` 为 `nil` 或 `-1`),则按默认情况返回100点伤害。
因此,该脚本已经实现了“技能对副怪目标减少50%伤害”的效果。您只需确保 `beforeeffecttriger` 和 `base` 这两个函数在 `QFunction-0.lua` 中被正确触发即可。
← 返回问答库