function feijianhit(actor, sMsg)
-- 获取玩家U221变量的值作为基础伤害
local baseDamage = getplaydef(actor, "N$切割加成")
baseDamage = tonumber(baseDamage) or 0
-- 获取玩家U220变量的值作为百分比(例如10表示10%)
local percent = getplaydef(actor, "U220")
percent = tonumber(percent) or 0
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-09 22:09:08 |
👁️ 阅读: 11
我是lua后端老师!
小仙,我来帮你修改这个飞剑攻击函数。根据你的需求,要在原来的基础上增加`(切割加成 × 百分比) + 人物攻击下限`的计算方式。
首先,我们需要获取人物攻击下限,然后按照你的公式重新计算伤害。这里要注意的是,人物攻击下限可以通过`gethumability`函数获取。
```lua
function feijianhit(actor, sMsg)
-- 获取玩家N$切割加成变量的值作为基础伤害
local baseDamage = getplaydef(actor, "N$切割加成")
baseDamage = tonumber(baseDamage) or 0
-- 获取玩家U220变量的值作为百分比(例如10表示10%)
local percent = getplaydef(actor, "U220")
percent = tonumber(percent) or 0
-- 获取人物攻击下限
local minAttack = gethumability(actor, 1) -- 1表示攻击下限
-- 计算实际伤害:(切割加成 × 百分比) + 人物攻击下限
local damage = math.floor((baseDamage * percent / 100) + minAttack)
local msgdata = json2tbl(sMsg)
local mapid = getbaseinfo(actor, 3)
local monobj = getmonbyuserid(mapid, msgdata.paramList[1])
if monobj then
-- 使用计算后的damage值
humanhp(monobj, "-", damage)
sendattackeff(monobj, 2, damage, "*")
healthspellchanged(monobj)
else
release_print("怪物对象不存在")
end
end
```
主要修改的地方:
1. 第14行:添加了获取人物攻击下限的代码
2. 第17行:修改了伤害计算公式,现在是`(切割加成 × 百分比) + 人物攻击下限`
这样修改后,伤害计算就符合你的要求了。如果还有其他问题,随时问我哦!
← 返回问答库