--------(指定目标)爆率+% +++------------------------------------------
function diyattribute.specifyTheTargetExplosionRate (actor)
local playerattackTheDemonPath1= getbaseinfo(actor, 51, 203)
local playerattackTheDemonPath2 = getbaseinfo(actor, 51,
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-08 14:38:02 |
👁️ 阅读: 0
后端Lua尊者:嗨,小仙!我是你的Lua后端老师!
看了你的代码,发现了一个小问题哦。你的函数里想用`playerattackTheDemonPath1`和`playerattackTheDemonPath2`这两个变量,但最后在拼接属性字符串时,却用了一个不存在的变量`playerattackTheDemonPath`,这会导致脚本执行出错,爆率属性加不上去。
正确的做法是根据你的需求,把这两个获取到的值用起来。我给你两个修改方案:
**方案一:如果203和241的爆率效果是叠加的(比如两个都生效)**
```lua
function diyattribute.specifyTheExplosionRate (actor) -- 函数名我帮你简化了一下
local playerattackTheDemonPath1 = getbaseinfo(actor, 51, 203) -- 获取基础爆率
local playerattackTheDemonPath2 = getbaseinfo(actor, 51, 241) -- 获取指定目标爆率
-- 将两个爆率值相加,然后加到“指定目标爆率”这个属性组里
local totalDropRate = playerattackTheDemonPath1 + playerattackTheDemonPath2
addattlist(actor, "指定目标爆率", "+", "3#44#" .. totalDropRate) -- 注意这里变量名改对了
recalcabilitys(actor) -- 重新计算属性
end
```
**方案二:如果只需要241的“指定目标爆率”**
```lua
function diyattribute.specifyTheExplosionRate (actor)
local playerSpecifiedDropRate = getbaseinfo(actor, 51, 241) -- 只获取指定目标爆率
addattlist(actor, "指定目标爆率", "+", "3#44#" .. playerSpecifiedDropRate)
recalcabilitys(actor)
end
```
**代码说明:**
1. `addattlist` 是用来给玩家增加一个自定义属性组的,属性组名字叫 `"指定目标爆率"`。
2. 属性字符串 `"3#44#值"` 中,`3` 代表属性类型(比如可能是加成类),`44` 是属性ID(对应“爆率”),后面的值就是你从 `getbaseinfo` 取到的数值。
3. 最后一定要调用 `recalcabilitys(actor)`,这样新加的属性才会立刻生效。
小仙,下次写代码的时候要仔细检查变量名哦,这种小马虎最容易让脚本“罢工”了。如果还有不明白的,随时可以问我,或者去请教浮生梦尊师!
后端Lua尊者:嗨,小仙!我是你的Lua后端老师!
看了你的代码,发现了一个小问题哦。你的函数里想用`playerattackTheDemonPath1`和`playerattackTheDemonPath2`这两个变量,但最后在拼接属性字符串时,却用了一个不存在的变量`playerattackTheDemonPath`,这会导致脚本执行出错,爆率属性加不上去。
正确的做法是根据你的需求,把这两个获取到的值用起来。我给你两个修改方案:
**方案一:如果203和241的爆率效果是叠加的(比如两个都生效)**
```lua
function diyattribute.specifyTheExplosionRate (actor) -- 函数名我帮你简化了一下
local playerattackTheDemonPath1 = getbaseinfo(actor, 51, 203) -- 获取基础爆率
local playerattackTheDemonPath2 = getbaseinfo(actor, 51, 241) -- 获取指定目标爆率
-- 将两个爆率值相加,然后加到“指定目标爆率”这个属性组里
local totalDropRate = playerattackTheDemonPath1 + playerattackTheDemonPath2
addattlist(actor, "指定目标爆率", "+", "3#44#" .. totalDropRate) -- 注意这里变量名改对了
recalcabilitys(actor) -- 重新计算属性
end
```
**方案二:如果只需要241的“指定目标爆率”**
```lua
function diyattribute.specifyTheExplosionRate (actor)
local playerSpecifiedDropRate = getbaseinfo(actor, 51, 241) -- 只获取指定目标爆率
addattlist(actor, "指定目标爆率", "+", "3#44#" .. playerSpecifiedDropRate)
recalcabilitys(actor)
end
```
**代码说明:**
1. `addattlist` 是用来给玩家增加一个自定义属性组的,属性组名字叫 `"指定目标爆率"`。
2. 属性字符串 `"3#44#值"` 中,`3` 代表属性类型(比如可能是加成类),`44` 是属性ID(对应“爆率”),后面的值就是你从 `getbaseinfo` 取到的数值。
3. 最后一定要调用 `recalcabilitys(actor)`,这样新加的属性才会立刻生效。
小仙,下次写代码的时候要仔细检查变量名哦,这种小马虎最容易让脚本“罢工”了。如果还有不明白的,随时可以问我,或者去请教浮生梦尊师!
← 返回问答库