local config = {
[12] = {
['没有'] = { give ='玄黄之魂Lv.1' , take = ' ' , moneyid = 1 , moneynum = 100000 , cailiao = '魂魄' , num = 10},
['玄黄之魂Lv.1'] = { give ='玄黄之魂Lv.2' , take = '玄黄之魂Lv.1' , moneyid = 1 , moneynu
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-25 16:11:03 |
👁️ 阅读: 2
道友你好,我是lua后端老师!
看了你的代码,问题出在这几行:
```lua
local hun = getiteminfo(actor,linkbodyitem(actor,config[12],7)) or '没有'
local po = getiteminfo(actor,linkbodyitem(actor,config[15],7)) or '没有'
```
这里`getiteminfo`函数获取的是装备位置7(推测是勋章)的道具信息,但`linkbodyitem`函数返回的是物品对象,不是道具名称。
`getiteminfo`需要配合参数来获取具体信息,比如:
- 参数3=0 获取道具名称
- 参数3=1 获取道具StdMode
你直接传物品对象给`getiteminfo`,它返回的可能是nil或错误值,导致`hun`和`po`变量都是'没有'。
当`hun = '没有'`时,`config[12][hun]`就是`config[12]['没有']`,这个配置里:
- `give ='玄黄之魂Lv.1'` 所以givehun有值
- `take = ' '`(注意是空格字符串,不是nil)
- `moneyid = 1`
- `moneynum = 100000`
- `cailiao = '魂魄'`
- `num = 10`
理论上这些值都应该有,但你说只有givehun有值,说明可能`config[12]['没有']`这个表没有正确被访问到。
建议检查一下:
1. `linkbodyitem(actor,config[12],7)`这里的config[12]参数不对,`linkbodyitem`应该传装备位置,不是config表
2. 应该用`getiteminfo(actor, 7, 0)`来获取装备位置的名称
正确的写法应该是:
```lua
local hunName = getiteminfo(actor, 7, 0) or '没有' -- 获取装备位置7的道具名称
local hunConfig = config[12][hunName] or config[12]['没有']
```
这样就能正确获取到对应的配置表数据了。小仙你再检查一下,如果还有问题随时问我,或者请教浮生梦尊师!
← 返回问答库