SetItemIdx — 物品索引替换命令
命令语法
SetItemIdx <穿戴位置> <DB索引值>
将角色(或英雄)指定穿戴槽位的物品替换为另一个 DB 索引(Idx)的物品外观与基础属性,同时触发属性重算并刷新客户端显示。
提示:命令对玩家和英雄均有效。
参数说明
| 参数 |
类型 |
说明 |
穿戴位置 |
整数 |
目标槽位编号,见下方穿戴位置表。必须是有效数字位置且该槽已有物品。 |
DB索引值 |
整数 > 0 |
目标物品在 StdItems 数据库中的行号(Idx),必须大于 0 且在数据库中存在。 |
穿戴位置表
基础装备(位置 0 – 16)
| 位置值 | 说明 |
位置值 | 说明 |
| 0 | 衣服 |
9 | 符 / 毒药 / 护身符 |
| 1 | 武器 |
10 | 腰带 |
| 2 | 勋章 / 照明物 |
11 | 鞋子 |
| 3 | 项链 |
12 | 宝石 / 魔血石 |
| 4 | 头盔 |
13 | 斗笠 |
| 5 | 右手镯 |
14 | 军鼓 |
| 6 | 左手镯 |
15 | 马牌 |
| 7 | 右戒指 |
16 | 盾牌 |
| 8 | 左戒指 |
— | — |
时装装备(位置 17 – 28)
| 位置值 | 说明 |
位置值 | 说明 |
| 17 | 时装衣服 |
23 | 时装左戒指 |
| 18 | 时装武器 |
24 | 时装右戒指 |
| 19 | 时装项链 |
25 | 时装勋章 |
| 20 | 时装头盔 |
26 | 时装腰带 |
| 21 | 时装左手镯 |
27 | 时装鞋子 |
| 22 | 时装右手镯 |
28 | 时装宝石 |
时装附属装备(位置 48 – 52)
| 位置值 | 说明 |
位置值 | 说明 |
| 48 | 时装斗笠 |
51 | 时装马牌 |
| 49 | 时装毒符 |
52 | 时装盾牌 |
| 50 | 时装军鼓 |
— | — |
首饰盒(位置 30 – 47)
| 位置范围 | 说明 |
| 30 – 41 | 首饰盒位置 1 – 12 |
| 42 – 47 | 首饰盒位置 13 – 18 |
英雄槽位:对英雄使用时,槽位编号与玩家相同,脚本中以 H. 前缀指定目标为英雄。
改名后的常量前缀为 G_,英雄改名为 H.G_。
注意事项
重要:替换的目标物品 DB 索引所对应的 StdMode 应与原物品一致,否则可能导致装备类型混乱或属性计算异常 (如果物品极品属性相同也可以替换,比如StdMode=26的手镯和StdMode=22的戒指的AC AC2 MAC MAC2都是防御、魔御极品字段)。
- 命令执行前,目标槽位必须已有物品(
Idx > 0),否则命令静默退出。
- 目标 DB 索引必须在 StdItems 数据库中存在,否则命令报错退出(不修改物品)。
- 首饰盒位置(30 – 41)和盛大首饰盒位置(42 – 47)会校验目标物品是否符合该槽位配置,不符合时不替换。
- 执行后自动触发属性重算(
RecalcAbilitys)并向客户端发送物品更新包。
- 物品的耐久度、附魔属性、自定义名称等字段不受影响,仅替换
Idx(物品索引)。
脚本示例
示例 1:替换武器的 DB 索引
将玩家武器槽(位置 1)的物品替换为 DB 索引 1236 的物品:
SetItemIdx 1 1236
示例 2:替换首饰盒位置 30 的物品
SetItemIdx 30 1236
示例 3:完整 NPC 脚本段落
; 检查玩家是否穿戴了武器
#IF
CHECKUSEITEM 1
#ACT
; 将武器槽物品的DB索引替换为1236
SetItemIdx 1 1236
sendmsg 7 你的武器已经被替换了!
示例 4:对英雄使用
; 将英雄的衣服槽物品替换为DB索引 888
#IF
True
#ACT
H.SetItemIdx 0 888