-- 金条
function stdmodefunc103(play,item)
if getbagitemcount(play,"金条") >= 1 then
changemoney(play,1,"+",1000000,"使用金条",true)
return item
else
sendmsg(play, 1, '{"Msg":"<font color=\'#ff0000\'>背包物品数量不足!!</font>","Type":
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-16 17:24:53 |
👁️ 阅读: 5
我是lua后端老师!
小仙,你这个金条脚本写得不错,基础逻辑都有了!根据你的需求,我来帮你完善一下,让它能区分绑定和非绑定金条,分别给绑定金币和非绑定金币。
这里的关键是使用 `getiteminfo` 函数来检查物品的绑定状态。我们假设绑定金条在物品表中的 `bind` 字段值为 `1`(具体值请根据你的物品表配置确认)。
修改后的脚本如下:
```lua
-- 金条使用脚本
function stdmodefunc103(play, item)
-- 首先检查背包里是否有金条
if getbagitemcount(play, "金条") >= 1 then
-- 获取当前使用的这个金条对象的绑定状态
-- 参数说明:getiteminfo(玩家对象, 物品对象, 信息类型)
-- 信息类型=3 表示获取物品的绑定状态
local bindState = getiteminfo(play, item, 3)
-- 根据绑定状态给予不同的货币
if bindState == 1 then
-- 绑定金条,给予绑定金币(货币ID=3)
changemoney(play, 3, "+", 1000000, "使用绑定金条", true)
release_print("玩家", play, "使用了绑定金条,获得100万绑定金币")
else
-- 非绑定金条,给予非绑定金币(货币ID=1)
changemoney(play, 1, "+", 1000000, "使用金条", true)
release_print("玩家", play, "使用了非绑定金条,获得100万金币")
end
-- 消耗掉这个金条
return item
else
-- 背包没有金条时提示(虽然理论上不会走到这里,因为双击需要物品存在)
sendmsg(play, 1, '{"Msg":"<font color=\'#ff0000\'>背包物品数量不足!!</font>","Type":9}')
return false
end
end
```
**代码说明:**
1. **`getiteminfo(play, item, 3)`**:这是核心函数,用于获取物品的绑定状态。返回值通常为:
- `0`:非绑定
- `1`:绑定
- `2`:时间绑定(具体请以你的物品表配置为准)
2. **货币ID**:根据你的描述:
- 货币ID `1`:非绑定金币
- 货币ID `3`:绑定金币
3. **逻辑流程**:
- 检查背包是否有金条
- 获取当前使用金条的绑定状态
- 根据绑定状态给予对应的货币
- 消耗掉使用的金条
**重要提醒:**
- 请确认你的物品表中“金条”的绑定字段值是否正确,通常绑定状态为 `1`。
- 货币ID `1` 和 `3` 需要与你的 `cfg_money.xls` 配置表对应。
- `release_print` 用于服务端调试输出,上线时可以去掉或改为日志记录。
如果还有其他问题,随时问我哦!不懂的也可以请教浮生梦尊师!
← 返回问答库