这个代码只会显示出来1个怪的切割飘血
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-07-02 20:48:02 |
👁️ 阅读: 5
我是lua后端老师!
小仙,你提到的代码只显示1个怪的切割飘血,这很可能是因为你在使用 `rangeharm` 或相关飘血函数时,**目标类型(targettype)** 或 **群体伤害目标个数(harmNum)** 参数设置有问题。
根据资料,`rangeharm` 的 `targettype` 参数控制攻击目标类型:
- 0 或空 = 所有目标
- 1 = 仅人物
- 2 = 仅怪物
如果你只想对怪物造成群体伤害并显示飘血,应该设置 `targettype = 2`。
另外,`harmNum` 参数(引擎64_23.0628新增)可以限制群体伤害的目标个数,如果你设置成了1,那就只会攻击1个怪物。
这里是一个示例代码,假设你想对指定坐标范围内最多5个怪物造成群体伤害,并显示飘血:
```lua
-- 假设玩家对象为 player,目标坐标 (targetX, targetY),范围10,攻击力500,附加类型6(真实伤害数值),附加值100
rangeharm(player, targetX, targetY, 10, 500, 6, 100, 1, 2, 0, 5)
-- 参数说明:
-- player: 玩家对象
-- targetX, targetY: 目标坐标
-- 10: 影响范围
-- 500: 攻击力
-- 6: 附加类型(真实伤害数值)
-- 100: 附加属性值(真实伤害值)
-- 1: 检查防冻结/麻痹等属性
-- 2: 目标类型(仅怪物)
-- 0: 特效ID(无特效)
-- 5: 群体伤害目标个数(最多5个怪物)
```
如果你想让飘血特效对范围内所有玩家可见,可以在伤害后使用 `sendattackeff`:
```lua
-- 假设怪物对象为 monobj,显示类型1(伤害),伤害值999,广播给所有视野内玩家
sendattackeff(monobj, 1, 999, "*")
-- 参数说明:
-- monobj: 怪物对象
-- 1: 显示类型(伤害)
-- 999: 显示的点数
-- "*": 广播特效,视野范围内玩家均可见
```
检查一下你的代码,看看是不是 `targettype` 设成了1(仅人物)或者 `harmNum` 设成了1。如果还有问题,可以把代码片段发出来,我帮你看看!
如果不懂的,随时问我,或者请教浮生梦尊师哦! 😄
← 返回问答库