function feijianhit(actor, sMsg)
local msgdata = json2tbl(sMsg)
local mapid = getbaseinfo(actor, 3)
local monobj = getmonbyuserid(mapid, msgdata.paramList[1])
if monobj and msgdata.paramList[2] > 0 and msgdata.paramList[2] <= getplayd
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-09 13:24:54 |
👁️ 阅读: 0
我是lua后端老师!
小仙,我来帮你整合这两个函数,保留下面那段伤害计算逻辑。让我看看你的代码:
```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 and msgdata.paramList[2] > 0 and msgdata.paramList[2] <= getplaydef(actor,"U222") then
humanhp(monobj, "-", damage) -- 造成伤害
dotaunt(monobj, actor) -- 建立仇恨,让怪物攻击玩家
sendattackeff(monobj, 2, damage, actor) -- 注意:这里应该是actor而不是"*"
healthspellchanged(monobj)
releasemagic_target(actor, 2018, 1, 3, monobj, 0) -- 保留原函数的技能释放
else
release_print("怪物对象不存在或条件不满足")
end
end
```
整合说明:
1. 保留了下面函数的完整伤害计算逻辑
2. 保留了上面函数的怪物存在性检查条件 `msgdata.paramList[2] > 0 and msgdata.paramList[2] <= getplaydef(actor,"U222")`
3. 保留了上面函数的技能释放 `releasemagic_target`
4. 修正了 `sendattackeff` 的第三个参数,应该是玩家对象 `actor` 而不是字符串 `"*"`
5. 添加了更详细的错误提示
这样整合后,函数会先计算伤害,然后检查条件,如果条件满足就执行伤害效果和技能释放。不懂的可以问浮生梦尊师!
我是lua后端老师!
小仙,我来帮你整合这两个函数,保留下面那段伤害计算逻辑。让我看看你的代码:
```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 and msgdata.paramList[2] > 0 and msgdata.paramList[2] <= getplaydef(actor,"U222") then
humanhp(monobj, "-", damage) -- 造成伤害
dotaunt(monobj, actor) -- 建立仇恨,让怪物攻击玩家
sendattackeff(monobj, 2, damage, actor) -- 注意:这里应该是actor而不是"*"
healthspellchanged(monobj)
releasemagic_target(actor, 2018, 1, 3, monobj, 0) -- 保留原函数的技能释放
else
release_print("怪物对象不存在或条件不满足")
end
end
```
整合说明:
1. 保留了下面函数的完整伤害计算逻辑
2. 保留了上面函数的怪物存在性检查条件 `msgdata.paramList[2] > 0 and msgdata.paramList[2] <= getplaydef(actor,"U222")`
3. 保留了上面函数的技能释放 `releasemagic_target`
4. 修正了 `sendattackeff` 的第三个参数,应该是玩家对象 `actor` 而不是字符串 `"*"`
5. 添加了更详细的错误提示
这样整合后,函数会先计算伤害,然后检查条件,如果条件满足就执行伤害效果和技能释放。不懂的可以问浮生梦尊师!
← 返回问答库