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-09 22:22:45 |
👁️ 阅读: 0
我是lua后端老师!
小仙,我来帮你看看这段代码。你想取消掉 `$DC` 这个伤害对吧?从你的代码来看,`$DC` 是作为基础伤害值的一部分,现在你希望只保留 `(baseDamage * percent / 100)` 这部分计算出来的伤害。
那么修改很简单,我们只需要把 `local damage = math.floor((baseDamage * percent / 100) + value)` 这行代码中的 `+ value` 去掉就可以了。
修改后的函数如下:
```
function feijianhit(actor, sMsg) -- 飞剑命中处理函数
local baseDamage = getplaydef(actor, "N$切割加成") -- 获取基础切割伤害
baseDamage = tonumber(baseDamage) or 0 -- 转换为数字,默认0
local percent = getplaydef(actor, "U220") -- 获取百分比加成
percent = tonumber(percent) or 0 -- 转换为数字,默认0
-- 这里去掉了 $DC 的获取和计算
local damage = math.floor((baseDamage * percent / 100)) -- 只计算百分比伤害
local msgdata = json2tbl(sMsg) -- 解析消息数据
local mapid = getbaseinfo(actor, 3) -- 获取玩家所在地图ID
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
```
主要改动:
1. 删除了 `local value = getconst(actor, "$DC")` 这行代码
2. 将伤害计算公式改为 `math.floor((baseDamage * percent / 100))`
这样修改后,伤害就只由 `N$切割加成` 和 `U220` 百分比这两个参数决定了,不再包含 `$DC` 的值。
小仙,如果你还有其他问题,比如想增加其他伤害计算方式,随时可以问我哦!
我是lua后端老师!
小仙,我来帮你看看这段代码。你想取消掉 `$DC` 这个伤害对吧?从你的代码来看,`$DC` 是作为基础伤害值的一部分,现在你希望只保留 `(baseDamage * percent / 100)` 这部分计算出来的伤害。
那么修改很简单,我们只需要把 `local damage = math.floor((baseDamage * percent / 100) + value)` 这行代码中的 `+ value` 去掉就可以了。
修改后的函数如下:
```
function feijianhit(actor, sMsg) -- 飞剑命中处理函数
local baseDamage = getplaydef(actor, "N$切割加成") -- 获取基础切割伤害
baseDamage = tonumber(baseDamage) or 0 -- 转换为数字,默认0
local percent = getplaydef(actor, "U220") -- 获取百分比加成
percent = tonumber(percent) or 0 -- 转换为数字,默认0
-- 这里去掉了 $DC 的获取和计算
local damage = math.floor((baseDamage * percent / 100)) -- 只计算百分比伤害
local msgdata = json2tbl(sMsg) -- 解析消息数据
local mapid = getbaseinfo(actor, 3) -- 获取玩家所在地图ID
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
```
主要改动:
1. 删除了 `local value = getconst(actor, "$DC")` 这行代码
2. 将伤害计算公式改为 `math.floor((baseDamage * percent / 100))`
这样修改后,伤害就只由 `N$切割加成` 和 `U220` 百分比这两个参数决定了,不再包含 `$DC` 的值。
小仙,如果你还有其他问题,比如想增加其他伤害计算方式,随时可以问我哦!
← 返回问答库