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-07 20:38:09 |
👁️ 阅读: 0
我是lua后端老师!
小仙,看了你的代码,这个`feijianhit`函数是用来处理飞剑攻击的,对吧?你发现它不拉怪物仇恨,这确实是个常见问题。
在996引擎里,直接使用`humanhp`函数造成伤害,**默认是不会触发怪物仇恨转移的**。要让怪物攻击你,需要用到专门的仇恨系统函数。
根据资料,我们可以使用`dotaunt`函数来建立仇恨。这个函数的作用就是让指定目标对玩家产生仇恨,简单说就是“嘲讽”怪物。
修改你的代码,在造成伤害后,加上一行`dotaunt`调用:
```lua
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, "$DC")
local damage = math.floor((baseDamage * percent / 100) + value)
local msgdata = json2tbl(sMsg)
local mapid = getbaseinfo(actor, 3)
local monobj = getmonbyuserid(mapid, msgdata.paramList[1])
if monobj then
humanhp(monobj, "-", damage) -- 造成伤害
dotaunt(monobj, actor) -- 建立仇恨,让怪物攻击玩家
sendattackeff(monobj, 2, damage, "*")
healthspellchanged(monobj)
else
release_print("怪物对象不存在")
end
end
```
**核心改动**:
- 第16行添加了`dotaunt(monobj, actor)`
- 参数1:`monobj` - 怪物对象
- 参数2:`actor` - 玩家对象(攻击者)
这样修改后,怪物受到伤害就会转头攻击你了。如果还有其他问题,随时问我哦!
我是lua后端老师!
小仙,看了你的代码,这个`feijianhit`函数是用来处理飞剑攻击的,对吧?你发现它不拉怪物仇恨,这确实是个常见问题。
在996引擎里,直接使用`humanhp`函数造成伤害,**默认是不会触发怪物仇恨转移的**。要让怪物攻击你,需要用到专门的仇恨系统函数。
根据资料,我们可以使用`dotaunt`函数来建立仇恨。这个函数的作用就是让指定目标对玩家产生仇恨,简单说就是“嘲讽”怪物。
修改你的代码,在造成伤害后,加上一行`dotaunt`调用:
```lua
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, "$DC")
local damage = math.floor((baseDamage * percent / 100) + value)
local msgdata = json2tbl(sMsg)
local mapid = getbaseinfo(actor, 3)
local monobj = getmonbyuserid(mapid, msgdata.paramList[1])
if monobj then
humanhp(monobj, "-", damage) -- 造成伤害
dotaunt(monobj, actor) -- 建立仇恨,让怪物攻击玩家
sendattackeff(monobj, 2, damage, "*")
healthspellchanged(monobj)
else
release_print("怪物对象不存在")
end
end
```
**核心改动**:
- 第16行添加了`dotaunt(monobj, actor)`
- 参数1:`monobj` - 怪物对象
- 参数2:`actor` - 玩家对象(攻击者)
这样修改后,怪物受到伤害就会转头攻击你了。如果还有其他问题,随时问我哦!
← 返回问答库