local lianhuo = {}
-- 主处理函数
function lianhuo.link(actor, msgid, arg1, arg2, arg3, sMsg)
-- 检查配置
if not cfg_lianhuo or not next(cfg_lianhuo) then
lib:msg(actor, "配置错误", 1)
return
end
-- 获取当前解救值
local rlv_str
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-23 13:14:16 |
👁️ 阅读: 4
我是lua后端老师!
小仙你好!看到你的代码了,这个“混沌熔炉”的玩法设计得挺有意思的,30%的成功率,确实是个赌徒玩法呢!😄
根据你的需求,当解救值(`U48`)达到上限10时,要给玩家增加属性。我们可以直接在成功达到上限后,使用`setusebonuspoint`或者`addattlist`函数来添加永久属性。
这里我为你提供一个修改后的版本,使用`setusebonuspoint`来增加攻击力作为奖励:
```lua
local lianhuo = {}
-- 主处理函数
function lianhuo.link(actor, msgid, arg1, arg2, arg3, sMsg)
-- 检查配置
if not cfg_lianhuo or not next(cfg_lianhuo) then
lib:msg(actor, "配置错误", 1)
return
end
-- 获取当前解救值
local rlv_str = getplaydef(actor, "U48")
local rlv = tonumber(rlv_str) or 0
release_print("当前解救值:", rlv)
-- 判断是否已达上限
if rlv >= 10 then
lib:msg(actor, "三缕稳定之火…成了!混沌熔炉百年内再无爆裂之忧!小子,你真是个赌徒中的赌徒,这是你应得的!", 1)
return
end
-- 检查所需物品
local needItemCount = 1
local itemName1 = "不稳定的炎核"
local currentItemCount1 = getbagitemcount(actor, itemName1)
if currentItemCount1 < needItemCount then
lib:msg(actor, "你还没有" .. itemName1, 1)
return
end
-- 扣除物品
takeitem(actor, itemName1, needItemCount)
-- 30%成功率判断
local randomNum = math.random(1, 100)
if randomNum <= 30 then -- 30%成功几率
local new_rlv = rlv + 1
setplaydef(actor, "U48", tostring(new_rlv)) -- 修正为U48
-- 检查是否达到上限10
if new_rlv >= 10 then
-- 达到上限,给予属性奖励
setusebonuspoint(actor, 1, 10) -- 增加攻击下限10点
setusebonuspoint(actor, 2, 20) -- 增加攻击上限20点
lib:msg(actor, "三缕稳定之火…成了!混沌熔炉百年内再无爆裂之忧!小子,你真是个赌徒中的赌徒,这是你应得的!", 1)
lib:msg(actor, "你获得了永久属性:攻击+10-20!", 1)
else
lib:msg(actor, "哦?!居然成功了!好小子,运气不错!再来再来!", 1)
end
else
lib:msg(actor, "轰!你看,我就说吧!没死算你命大!还愣着干什么,再去给老夫找炎核来", 1)
end
end
return lianhuo
```
**代码说明:**
1. **属性奖励时机**:当`new_rlv >= 10`时,说明玩家刚刚达到了解救值上限10,此时给予属性奖励。
2. **`setusebonuspoint`函数参数说明**:
- 第一个参数`actor`:玩家对象
- 第二个参数`nIndex`:属性索引
- `1`:攻击下限
- `2`:攻击上限
- 第三个参数`nvalue`:要增加的属性值
3. **其他可设置的属性索引**:
- `3`:魔法下限
- `4`:魔法上限
- `5`:道术下限
- `6`:道术上限
- `11`:生命值
- `12`:魔法值
- 等等(共18种属性)
**小提示**:
- 如果你想让属性奖励更丰富,可以同时设置多个属性,比如再加点生命值、防御等。
- 记得在QF文件中添加对应的触发接口来调用这个函数。
- 使用`setusebonuspoint`增加的属性是永久性的,即使玩家下线再上线也会保留。
这样修改后,当玩家成功将解救值累积到10时,就会获得永久属性奖励了!赌徒的冒险终于有了丰厚的回报!🎉
如果还有其他问题,随时问我哦!
我是lua后端老师!
小仙你好!看到你的代码了,这个“混沌熔炉”的玩法设计得挺有意思的,30%的成功率,确实是个赌徒玩法呢!😄
根据你的需求,当解救值(`U48`)达到上限10时,要给玩家增加属性。我们可以直接在成功达到上限后,使用`setusebonuspoint`或者`addattlist`函数来添加永久属性。
这里我为你提供一个修改后的版本,使用`setusebonuspoint`来增加攻击力作为奖励:
```lua
local lianhuo = {}
-- 主处理函数
function lianhuo.link(actor, msgid, arg1, arg2, arg3, sMsg)
-- 检查配置
if not cfg_lianhuo or not next(cfg_lianhuo) then
lib:msg(actor, "配置错误", 1)
return
end
-- 获取当前解救值
local rlv_str = getplaydef(actor, "U48")
local rlv = tonumber(rlv_str) or 0
release_print("当前解救值:", rlv)
-- 判断是否已达上限
if rlv >= 10 then
lib:msg(actor, "三缕稳定之火…成了!混沌熔炉百年内再无爆裂之忧!小子,你真是个赌徒中的赌徒,这是你应得的!", 1)
return
end
-- 检查所需物品
local needItemCount = 1
local itemName1 = "不稳定的炎核"
local currentItemCount1 = getbagitemcount(actor, itemName1)
if currentItemCount1 < needItemCount then
lib:msg(actor, "你还没有" .. itemName1, 1)
return
end
-- 扣除物品
takeitem(actor, itemName1, needItemCount)
-- 30%成功率判断
local randomNum = math.random(1, 100)
if randomNum <= 30 then -- 30%成功几率
local new_rlv = rlv + 1
setplaydef(actor, "U48", tostring(new_rlv)) -- 修正为U48
-- 检查是否达到上限10
if new_rlv >= 10 then
-- 达到上限,给予属性奖励
setusebonuspoint(actor, 1, 10) -- 增加攻击下限10点
setusebonuspoint(actor, 2, 20) -- 增加攻击上限20点
lib:msg(actor, "三缕稳定之火…成了!混沌熔炉百年内再无爆裂之忧!小子,你真是个赌徒中的赌徒,这是你应得的!", 1)
lib:msg(actor, "你获得了永久属性:攻击+10-20!", 1)
else
lib:msg(actor, "哦?!居然成功了!好小子,运气不错!再来再来!", 1)
end
else
lib:msg(actor, "轰!你看,我就说吧!没死算你命大!还愣着干什么,再去给老夫找炎核来", 1)
end
end
return lianhuo
```
**代码说明:**
1. **属性奖励时机**:当`new_rlv >= 10`时,说明玩家刚刚达到了解救值上限10,此时给予属性奖励。
2. **`setusebonuspoint`函数参数说明**:
- 第一个参数`actor`:玩家对象
- 第二个参数`nIndex`:属性索引
- `1`:攻击下限
- `2`:攻击上限
- 第三个参数`nvalue`:要增加的属性值
3. **其他可设置的属性索引**:
- `3`:魔法下限
- `4`:魔法上限
- `5`:道术下限
- `6`:道术上限
- `11`:生命值
- `12`:魔法值
- 等等(共18种属性)
**小提示**:
- 如果你想让属性奖励更丰富,可以同时设置多个属性,比如再加点生命值、防御等。
- 记得在QF文件中添加对应的触发接口来调用这个函数。
- 使用`setusebonuspoint`增加的属性是永久性的,即使玩家下线再上线也会保留。
这样修改后,当玩家成功将解救值累积到10时,就会获得永久属性奖励了!赌徒的冒险终于有了丰厚的回报!🎉
如果还有其他问题,随时问我哦!
← 返回问答库