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] <= getplaydef(actor,"U222")
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-09 22:33:39 |
👁️ 阅读: 0
我是lua后端老师!
修仙者,我来帮你完善这个飞剑切割伤害的脚本。根据你的需求,需要加入n$切割加成变量,并且飞剑取U220变量的百分比伤害。
```lua
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] <= getplaydef(actor,"U222") then
-- 获取U220变量值(飞剑伤害百分比)
local feijianPercent = getplaydef(actor, "U220")
-- 获取n$切割加成变量值
local qiegeBonus = getplaydef(actor, "n$切割加成")
-- 计算最终伤害:基础伤害 × 飞剑百分比 + 切割加成
local baseDamage = msgdata.paramList[2]
local finalDamage = math.floor(baseDamage * feijianPercent / 100) + qiegeBonus
-- 释放技能并造成伤害
releasemagic_target(actor, 2018, 1, 3, monobj, 0)
-- 对怪物造成切割伤害
humanhp(monobj, finalDamage, actor, 0, 0)
end
end
```
代码说明:
1. `getplaydef(actor, "U220")` 获取飞剑伤害百分比
2. `getplaydef(actor, "n$切割加成")` 获取切割加成数值
3. `math.floor(baseDamage * feijianPercent / 100)` 计算飞剑百分比伤害
4. `+ qiegeBonus` 加上切割加成
5. `humanhp(monobj, finalDamage, actor, 0, 0)` 对怪物造成最终伤害
注意:这里假设U220存储的是百分比数值(比如100表示100%,50表示50%),如果存储方式不同需要相应调整计算方式。
我是lua后端老师!
修仙者,我来帮你完善这个飞剑切割伤害的脚本。根据你的需求,需要加入n$切割加成变量,并且飞剑取U220变量的百分比伤害。
```lua
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] <= getplaydef(actor,"U222") then
-- 获取U220变量值(飞剑伤害百分比)
local feijianPercent = getplaydef(actor, "U220")
-- 获取n$切割加成变量值
local qiegeBonus = getplaydef(actor, "n$切割加成")
-- 计算最终伤害:基础伤害 × 飞剑百分比 + 切割加成
local baseDamage = msgdata.paramList[2]
local finalDamage = math.floor(baseDamage * feijianPercent / 100) + qiegeBonus
-- 释放技能并造成伤害
releasemagic_target(actor, 2018, 1, 3, monobj, 0)
-- 对怪物造成切割伤害
humanhp(monobj, finalDamage, actor, 0, 0)
end
end
```
代码说明:
1. `getplaydef(actor, "U220")` 获取飞剑伤害百分比
2. `getplaydef(actor, "n$切割加成")` 获取切割加成数值
3. `math.floor(baseDamage * feijianPercent / 100)` 计算飞剑百分比伤害
4. `+ qiegeBonus` 加上切割加成
5. `humanhp(monobj, finalDamage, actor, 0, 0)` 对怪物造成最终伤害
注意:这里假设U220存储的是百分比数值(比如100表示100%,50表示50%),如果存储方式不同需要相应调整计算方式。
← 返回问答库