function feijianhit(actor, sMsg)
local baseDamage = getplaydef(actor, "N$切割加成")
baseDamage = tonumber(baseDamage) or 0
local percent = getplaydef(actor, "U220")
percent = tonumber(percent) or 0
local value = getconst(actor, "
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-05 12:17:57 |
👁️ 阅读: 0
我是lua后端老师!
小仙,你这个函数看起来是处理飞剑攻击的,但需要判断是否是技能攻击的话,需要结合触发机制来看。
从你的代码结构看,这应该是在某个触发中调用的函数。要判断是否是技能攻击,需要在**触发接口**中做判断,而不是在这个函数内部。
根据参考资料,有几个相关的触发接口可以判断技能攻击:
1. **使用技能触发**:`@magicself[技能ID]` - 自身使用技能时触发
2. **对目标使用技能触发**:`@magictarget[技能ID]` - 对目标人物使用技能时触发
如果你想让飞剑攻击只在特定技能触发时生效,可以在QF脚本中这样设置:
```lua
-- 假设技能ID是1001,当使用这个技能时触发飞剑攻击
[@magicself1001]
#act
call feijianhit <$USERID> <$PARAM(0)>
```
或者如果你想让所有技能攻击都触发:
```lua
-- 使用技能通用触发
[@magicself]
#act
-- 这里可以获取技能ID
local skillID = tonumber(getplaydef(actor, "技能ID变量"))
-- 判断是否是你要的技能
if skillID == 1001 then
call feijianhit <$USERID> <$PARAM(0)>
end
```
另外,从参考资料中还可以看到**宠物攻击相关触发**:
- `attackbypet` - 宠物攻击伤害前触发
- `attackdamagepet` - 宠物被攻击前触发
但你的函数看起来是处理玩家攻击的,不是宠物攻击。
**总结一下**:
你的`feijianhit`函数本身无法判断是否是技能攻击,这个判断需要在**调用这个函数的触发接口**中完成。你需要检查QF脚本中是如何调用这个函数的,然后使用`@magicself`或`@magictarget`这样的技能触发接口来确保只有技能攻击时才执行飞剑伤害计算。
如果你想让飞剑攻击只在特定技能下生效,就在对应的技能触发中调用这个函数;如果想让所有攻击都触发,就在普通攻击触发中调用。
我是lua后端老师!
小仙,你这个函数看起来是处理飞剑攻击的,但需要判断是否是技能攻击的话,需要结合触发机制来看。
从你的代码结构看,这应该是在某个触发中调用的函数。要判断是否是技能攻击,需要在**触发接口**中做判断,而不是在这个函数内部。
根据参考资料,有几个相关的触发接口可以判断技能攻击:
1. **使用技能触发**:`@magicself[技能ID]` - 自身使用技能时触发
2. **对目标使用技能触发**:`@magictarget[技能ID]` - 对目标人物使用技能时触发
如果你想让飞剑攻击只在特定技能触发时生效,可以在QF脚本中这样设置:
```lua
-- 假设技能ID是1001,当使用这个技能时触发飞剑攻击
[@magicself1001]
#act
call feijianhit <$USERID> <$PARAM(0)>
```
或者如果你想让所有技能攻击都触发:
```lua
-- 使用技能通用触发
[@magicself]
#act
-- 这里可以获取技能ID
local skillID = tonumber(getplaydef(actor, "技能ID变量"))
-- 判断是否是你要的技能
if skillID == 1001 then
call feijianhit <$USERID> <$PARAM(0)>
end
```
另外,从参考资料中还可以看到**宠物攻击相关触发**:
- `attackbypet` - 宠物攻击伤害前触发
- `attackdamagepet` - 宠物被攻击前触发
但你的函数看起来是处理玩家攻击的,不是宠物攻击。
**总结一下**:
你的`feijianhit`函数本身无法判断是否是技能攻击,这个判断需要在**调用这个函数的触发接口**中完成。你需要检查QF脚本中是如何调用这个函数的,然后使用`@magicself`或`@magictarget`这样的技能触发接口来确保只有技能攻击时才执行飞剑伤害计算。
如果你想让飞剑攻击只在特定技能下生效,就在对应的技能触发中调用这个函数;如果想让所有攻击都触发,就在普通攻击触发中调用。
← 返回问答库