--------------------------最终道韵-------------------------------------------------------------------------------------------
function diyattribute.theFinalRhymeOfDao(actor)
local daoYun = getbaseinfo(actor, 51, 244)
local cultivationIncrease = g
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-29 15:00:36 |
👁️ 阅读: 12
我是lua后端老师!
小仙,看了你的代码,我发现了一个问题。你的函数逻辑是计算“最终道韵”,但计算出的结果 `theFinalRhymeOfDao_1` 并没有被存储起来,而是直接用于了 `addattlist` 函数。
根据你的代码注释,`最终道韵获得 = 基础道韵 ×(1 + 修炼增幅总和%)`,这个计算是正确的。但是,`addattlist` 函数是用于给玩家添加属性列表的,它的第三个参数格式通常是 `"属性名,数值"` 或者 `"属性ID,数值"`。
你代码中的 `"3#246#" .. theFinalRhymeOfDao_1` 这个格式看起来像是想设置某个自定义属性,但 `addattlist` 可能不支持这种格式。通常 `addattlist` 用于添加如“攻击速度”、“准确”等标准属性。
如果你是想将计算出的“最终道韵”值保存到一个自定义变量中,以便后续使用,你应该使用 `setplayvar` 或 `setsysvar` 等函数。
另外,你代码开头从 `getbaseinfo` 获取了 `theFinalRhymeOfDao` (246号属性),但在计算中并没有使用它,这可能是一个逻辑上的疏忽。
这里给你一个修改后的思路,将计算结果存储起来:
```lua
function diyattribute.theFinalRhymeOfDao(actor)
local daoYun = getbaseinfo(actor, 51, 244) -- 基础道韵
local cultivationIncrease = getbaseinfo(actor, 51, 245) -- 修炼增幅总和%
local theFinalRhymeOfDao_1 = daoYun * (1 + cultivationIncrease / 100) -- 最终道韵获得
-- 将最终道韵值存储到玩家变量中,例如存储到246号属性(如果这是你的设计)
-- 注意:getbaseinfo是获取,setbaseinfo是设置(如果存在的话)
-- 但通常我们使用 setplayvar 来存储自定义数值
setplayvar(actor, 246, theFinalRhymeOfDao_1)
-- 如果你需要根据这个值添加属性,可以这样做(示例):
-- addattlist(actor, "攻击速度", "+", theFinalRhymeOfDao_1)
recalcabilitys(actor)
release_print("玩家" .. getbaseinfo(actor, 1) .. "的最终道韵计算为:" .. theFinalRhymeOfDao_1)
end
```
小仙,下次写代码时要注意函数的使用格式和逻辑连贯性哦,不懂的可以问浮生梦尊师!
我是lua后端老师!
小仙,看了你的代码,我发现了一个问题。你的函数逻辑是计算“最终道韵”,但计算出的结果 `theFinalRhymeOfDao_1` 并没有被存储起来,而是直接用于了 `addattlist` 函数。
根据你的代码注释,`最终道韵获得 = 基础道韵 ×(1 + 修炼增幅总和%)`,这个计算是正确的。但是,`addattlist` 函数是用于给玩家添加属性列表的,它的第三个参数格式通常是 `"属性名,数值"` 或者 `"属性ID,数值"`。
你代码中的 `"3#246#" .. theFinalRhymeOfDao_1` 这个格式看起来像是想设置某个自定义属性,但 `addattlist` 可能不支持这种格式。通常 `addattlist` 用于添加如“攻击速度”、“准确”等标准属性。
如果你是想将计算出的“最终道韵”值保存到一个自定义变量中,以便后续使用,你应该使用 `setplayvar` 或 `setsysvar` 等函数。
另外,你代码开头从 `getbaseinfo` 获取了 `theFinalRhymeOfDao` (246号属性),但在计算中并没有使用它,这可能是一个逻辑上的疏忽。
这里给你一个修改后的思路,将计算结果存储起来:
```lua
function diyattribute.theFinalRhymeOfDao(actor)
local daoYun = getbaseinfo(actor, 51, 244) -- 基础道韵
local cultivationIncrease = getbaseinfo(actor, 51, 245) -- 修炼增幅总和%
local theFinalRhymeOfDao_1 = daoYun * (1 + cultivationIncrease / 100) -- 最终道韵获得
-- 将最终道韵值存储到玩家变量中,例如存储到246号属性(如果这是你的设计)
-- 注意:getbaseinfo是获取,setbaseinfo是设置(如果存在的话)
-- 但通常我们使用 setplayvar 来存储自定义数值
setplayvar(actor, 246, theFinalRhymeOfDao_1)
-- 如果你需要根据这个值添加属性,可以这样做(示例):
-- addattlist(actor, "攻击速度", "+", theFinalRhymeOfDao_1)
recalcabilitys(actor)
release_print("玩家" .. getbaseinfo(actor, 1) .. "的最终道韵计算为:" .. theFinalRhymeOfDao_1)
end
```
小仙,下次写代码时要注意函数的使用格式和逻辑连贯性哦,不懂的可以问浮生梦尊师!
← 返回问答库