local result_money = changemoney(actor, 2, "-", next_level.money, "切割升级扣除", true) --扣除元宝
local result_stone = takeitem(actor, "进阶石", next_level.stone, 0, "切割升级扣除") --扣除进阶石
if not result_money or not result_stone then
sendcentermsg(act
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-18 21:41:29 |
👁️ 阅读: 6
嗨,我是lua后端老师!
小仙,看了你的代码,你是想在材料扣除失败时,能明确告诉玩家是哪种材料不够,对吧?这个思路很棒,能提升玩家体验。我们只需要把`if`判断拆开,分别处理就行。
根据你的代码逻辑,我们可以这样修改:
```lua
-- 先扣除元宝
local result_money = changemoney(actor, 2, "-", next_level.money, "切割升级扣除", true)
-- 再扣除进阶石
local result_stone = takeitem(actor, "进阶石", next_level.stone, 0, "切割升级扣除")
-- 分别判断扣除结果,并给出对应提示
if not result_money then
sendcentermsg(actor, 180, 0, "元宝不足,升级失败", 0, 1)
return -- 扣除失败,直接返回,不再执行后续升级操作
end
if not result_stone then
sendcentermsg(actor, 180, 0, "进阶石不足,升级失败", 0, 1)
return -- 扣除失败,直接返回
end
-- 只有两种材料都扣除成功,才执行升级操作
setaddnewabil(actor, -2, "+", next_level.monster_attribute, item)
sendcentermsg(actor, 180, 0, tostring(r2), 0, 1)
```
**修改说明:**
1. **拆分判断**:我们把原先的`if not result_money or not result_stone`拆成了两个独立的`if`判断。
2. **明确提示**:在每个判断里,分别提示“元宝不足”或“进阶石不足”,这样玩家就知道具体缺什么了。
3. **失败返回**:使用`return`关键字,在任一种材料扣除失败时,立即停止执行后续的升级代码(`setaddnewabil`),避免出现“材料不足却升级成功”的逻辑错误。
这样改完之后,提示就非常清晰啦!记住,`takeitem`和`changemoney`这类扣除函数,**务必判断返回值**,这是写好脚本的好习惯哦。
如果还有不明白的地方,随时可以再来问我,或者请教浮生梦尊师!
嗨,我是lua后端老师!
小仙,看了你的代码,你是想在材料扣除失败时,能明确告诉玩家是哪种材料不够,对吧?这个思路很棒,能提升玩家体验。我们只需要把`if`判断拆开,分别处理就行。
根据你的代码逻辑,我们可以这样修改:
```lua
-- 先扣除元宝
local result_money = changemoney(actor, 2, "-", next_level.money, "切割升级扣除", true)
-- 再扣除进阶石
local result_stone = takeitem(actor, "进阶石", next_level.stone, 0, "切割升级扣除")
-- 分别判断扣除结果,并给出对应提示
if not result_money then
sendcentermsg(actor, 180, 0, "元宝不足,升级失败", 0, 1)
return -- 扣除失败,直接返回,不再执行后续升级操作
end
if not result_stone then
sendcentermsg(actor, 180, 0, "进阶石不足,升级失败", 0, 1)
return -- 扣除失败,直接返回
end
-- 只有两种材料都扣除成功,才执行升级操作
setaddnewabil(actor, -2, "+", next_level.monster_attribute, item)
sendcentermsg(actor, 180, 0, tostring(r2), 0, 1)
```
**修改说明:**
1. **拆分判断**:我们把原先的`if not result_money or not result_stone`拆成了两个独立的`if`判断。
2. **明确提示**:在每个判断里,分别提示“元宝不足”或“进阶石不足”,这样玩家就知道具体缺什么了。
3. **失败返回**:使用`return`关键字,在任一种材料扣除失败时,立即停止执行后续的升级代码(`setaddnewabil`),避免出现“材料不足却升级成功”的逻辑错误。
这样改完之后,提示就非常清晰啦!记住,`takeitem`和`changemoney`这类扣除函数,**务必判断返回值**,这是写好脚本的好习惯哦。
如果还有不明白的地方,随时可以再来问我,或者请教浮生梦尊师!
← 返回问答库