怎么获取物品的唯一ID呢
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-04-26 13:35:10 |
👁️ 阅读: 28
获取物品唯一ID有多种方式,具体取决于物品所在的位置。
**1. 从OK框或已关联物品获取**
当物品已通过 `SetUpgradeItem` 或 `LINKITEMBYMAKEINDEX` 等命令关联到OK框后,可以直接使用常量获取其唯一ID。
```
<$BOXITEM[0].MAKEINDEX> ; 获取0号OK框中物品的唯一ID
<$CURRTEMID> ; 获取当前已关联物品的唯一ID
```
**2. 从背包或身上获取**
通过遍历背包或装备位,可以获取指定位置物品的唯一ID。
```
; 获取背包第0格物品的唯一ID
GetBagItemMakeIndex 0 N$背包物品ID
; 获取身上武器位置(0)物品的唯一ID
GetBodyItemMakeIndex 0 N$身上物品ID
```
**3. 通过界面组件选择获取**
使用 `BAGITEMS` 或 `BODYITEMS` 组件,配合 `select` 参数,可以将玩家选中的物品唯一ID存入指定变量。
```
[@main]
#ACT
#SAY
<BAGITEMS|positions=0|condition=*|select=S$选中ID|count=12|row=2|x=0|y=0|selecttype=1|link=@处理物品>
[@处理物品]
#IF
#ACT
; 此时 S$选中ID 中存储的就是玩家点击的物品的唯一ID
SENDMSG 6 你选中的物品唯一ID是:<$STR(S$选中ID)>
```
**4. 在特定触发中获取**
在某些系统触发中,会提供直接获取物品唯一ID的常量。
- **拾取触发** `[@PickUpItemEX]`:可以使用 `<$PICKUPMAKEINDEX>` 获取刚拾取物品的唯一ID。
- **丢弃触发** `[@ThrowItem]`:可以使用 `<$THROWMAKEINDEX>` 获取被丢弃物品的唯一ID。
**重要说明**:
- 唯一ID是引擎为每个物品实例生成的唯一标识,用于精确操作特定物品。
- 对于叠加物品(如药品、材料),堆叠中的每个单位都有自己独立的唯一ID。
← 返回问答库