装备与物品

显示物品到 NPC 对话框

把指定物品生成到 NPC 对话框中显示,并把显示结果写入 <$DLGITEMSHOW> 供后续输出或加工。

命令用途

SetDlgItem 用于把指定物品显示到 NPC 对话框中。

执行后,引擎会生成一段可直接用于 #SAY 的物品显示内容,并把结果放进 <$DLGITEMSHOW>,方便继续输出、拼接或二次加工。

命令名

SetDlgItem

调用格式

SetDlgItem <物品名称>

参数说明

参数必填说明
物品名称是要显示到 NPC 对话框中的物品名称。名称必须和服务端物品库中的实际名称一致。

返回或影响

  • 这是执行型命令,会生成当前物品的对话框显示内容。
  • 结果会写入 <$DLGITEMSHOW>,通常再通过 Mov、FormatStr 或直接在 #SAY 中输出。
  • 它只负责生成显示内容,不会发放物品,也不会从背包扣除物品。
  • 连续执行多次时,<$DLGITEMSHOW> 会被新的显示结果覆盖。

示例

基础用法

#ACT
SetDlgItem 基本剑术
Mov SITEM <$DLGITEMSHOW>
#SAY
<$STR(SITEM)>

这段写法用于把“基本剑术”显示到 NPC 对话框中,适合最基础的物品展示。

常见变体

[@ShowItems]
#ACT
SetDlgItem 屠龙
FormatStr %s <$DLGITEMSHOW>
SetDlgItem 怒斩
FormatStr "%s   %s" <$CALCRESULT> <$DLGITEMSHOW>
SetDlgItem 龙牙
FormatStr "%s   %s" <$CALCRESULT> <$DLGITEMSHOW>
#SAY
装备:<$CALCRESULT>

这类写法适合把多件装备连续拼到同一行或同一段说明里,常用于推荐装备、奖励预览或兑换列表展示。

注意事项

  • SetDlgItem 只是生成物品显示串,不是发放物品命令。
  • 普通网关通常直接输出 SetDlgItem 生成的内联显示即可,不要额外改成 AX、AY 绝对定位。
  • 如果要把物品显示改成固定坐标布局,通常要先取出 <$DLGITEMSHOW> 再加工,这类绝对定位写法需要 AC 封挂网关支持。
  • 当同一段脚本要连续展示多件物品时,通常需要用 FormatStr 或变量把前一次结果暂存起来,否则会被后一次覆盖。

相关命令