群体切割,5个目标,每个怪物头顶都要显示出来飘血,不要系统自带的飘血
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-07-02 20:53:05 |
👁️ 阅读: 6
我是lua后端老师!
修仙者,要实现群体切割并自定义飘血效果,可以使用 `rangeharm` 命令进行范围伤害,并结合 `sendattackeff` 命令为每个目标单独显示自定义飘血。
下面是一个示例脚本,对指定坐标范围内的5个怪物造成伤害,并在每个怪物头顶显示自定义飘血数字(例如显示为“999”):
```lua
-- 群体切割并显示自定义飘血
local play = actor -- 玩家对象(触发QF时自动传入)
local targetX, targetY = 100, 100 -- 目标坐标(需根据实际需求调整)
local range = 5 -- 影响范围
local power = 500 -- 攻击力
local addtype = 0 -- 无附加效果
local addvalue = 0 -- 附加属性值
local checkstate = 0 -- 不检查防冻结等属性
local targettype = 2 -- 仅对怪物生效
local effectid = 0 -- 目标身上播放的特效ID(可选)
local harmNum = 5 -- 最多伤害5个目标
-- 执行范围伤害
rangeharm(play, targetX, targetY, range, power, addtype, addvalue, checkstate, targettype, effectid, harmNum)
-- 获取范围内怪物并显示自定义飘血
local monList = getmapmon(play, targetX, targetY, range) -- 获取范围内怪物列表
local count = 0
for _, monObj in ipairs(monList) do
if count >= 5 then
break -- 只处理前5个怪物
end
-- 为每个怪物发送自定义飘血(类型1为伤害,数字999,广播给所有可见玩家)
sendattackeff(monObj, 1, 999, "*")
count = count + 1
end
release_print("群体切割完成,已对" .. count .. "个怪物显示自定义飘血。")
```
**关键点说明:**
1. **`rangeharm`**:实现范围伤害,通过 `harmNum` 参数限制最多伤害5个目标。
2. **`sendattackeff`**:为每个怪物单独发送飘血效果,参数 `"*"` 表示广播给视野内所有玩家可见。
3. **自定义飘血**:使用 `sendattackeff` 可以完全替代系统默认飘血,显示的数字和样式可通过 `cfg_damage_number` 表配置。
如果需要调整飘血样式(如暴击、加血等),修改 `sendattackeff` 的第二个参数(类型)即可。
如果有其他问题,随时问我哦!
← 返回问答库