传奇NPC物品框新增功能脚本教程 完整变量与命令使用方法
一、传奇NPC物品框功能简介本次传奇脚本更新,新增NPC支持物品框功能,仅适配AC引擎,可实现0-19号物品框的物品放置、取下、属性读取、物品回收等各类自定义操作。该功能拓展了传奇NPC交互玩法,支持装备检测、物品回收、道具升级等多种自定义场景,是传奇私服定制开发的核心实用功能。本文将完整讲解新增变…
一、传奇NPC物品框功能简介
本次传奇脚本更新,新增NPC支持物品框功能,仅适配AC引擎,可实现0-19号物品框的物品放置、取下、属性读取、物品回收等各类自定义操作。该功能拓展了传奇NPC交互玩法,支持装备检测、物品回收、道具升级等多种自定义场景,是传奇私服定制开发的核心实用功能。本文将完整讲解新增变量、装备属性读取、专属命令及实操案例,方便开发者直接套用使用。
二、NPC物品框专属新增变量(0-19物品框通用)
传奇AC引擎新增20组物品框专属变量,覆盖物品ID、名称、数量、移除信息等核心数据,无需调用GetEquipProps即可直接读取使用,大幅简化脚本编写逻辑。所有变量适配0~19号全部物品框,取下物品后对应数据自动归零/清空。
基础物品数据变量
1、<$BoxItemID0~19>:物品框0~19对应的道具ID,物品取下后数值为0
2、<$BoxItemName0~19>:物品框0~19对应的道具名称,物品取下后内容为空
3、<$BoxItemCount0~19>:物品框0~19对应的道具数量,物品取下后数值为0
即时移除数据变量(仅限专属标签使用)
1、<$STR(S_RemovedBoxItemID0~19)>:即时获取0~19号物品框移除的物品ID,仅可在LABEL=@ItemBox0~19字段内调用
2、<$STR(S_RemovedBoxItemName0~19)>:即时获取0~19号物品框移除的物品名称,使用范围同上
3、<$STR(M_RemovedBoxItemCount0~19)>:即时获取0~19号物品框移除的物品数量,使用范围同上
三、GetEquipProps装备属性读取规则
传奇脚本中GetEquipProps可精准读取物品框内装备、道具的完整属性,适配新增的物品框功能,非装备类道具也可触发属性读取,仅通用属性生效。该功能需搭配专属跳转字段使用,避免读取到历史缓存数据。
核心使用注意事项
1、GetEquipProps 支持自定义成功跳转字段(可选),必须配合[@OnGetEquipProps]或自定义跳转字段读取属性
2、物品框无道具时不会触发字段,直接调用装备变量会读取到上一次缓存数据,脚本编写时需做好空值判断
3、非装备类物品可触发该字段,仅支持通用道具属性,专属装备属性不生效
4、字段内<$PARAM(n)>变量沿用传奇脚本原有规则,无需额外适配
可读取的完整物品属性变量
1、<$STR(S_EQUIP[位置]_ID)>:物品唯一ID
2、<$STR(S_EQUIP[位置]_NAME)>:物品名称
3、<$STR(M_EQUIP[位置]_SHAPE)>:物品外观Shape数值
4、<$STR(M_EQUIP[位置]_STDMODE)>:物品StdMode类型参数
5、<$STR(M_EQUIP[位置]_ANICOUNT)>:物品动画数值
6、<$STR(M_EQUIP[位置]_LOOKS)>:物品外观展示数值
7、<$STR(M_EQUIP[位置]_COUNT)>:物品数量,非重叠道具默认数值为1
8、<$STR(M_EQUIP[位置]_OVERLAP_TYPE)>:物品重叠类型,0为非重叠,1、2为可重叠物品
9、<$STR(M_EQUIP[位置]_DURA)>:物品持久度,重叠物品该数值对应物品数量
10、<$STR(M_EQUIP[位置]_PRICE)>:物品HeroDB基础售价
11、<$STR(M_EQUIP[位置]_BUYING_PRICE)>:物品收购价格,仅商人NPC可精准获取,其余场景数值为0,支持倍率调整
12、<$STR(M_EQUIP[位置]_SELLING_PRICE)>:物品出售价格,使用规则同收购价格
四、物品框专属脚本命令与参数解析
4.1 RetBoxItem 物品返回背包命令
命令格式:RetBoxItem 0~9
功能说明:将0~9号对应物品框内的道具,自动返还至玩家游戏背包,适配各类物品重置、窗口关闭场景。
4.2 ITEMBOX物品框创建参数详解
完整脚本格式:<ITEMBOX=0~9,prguse,1241,1,0,0,0,8,11,22,100 LABEL=@ItemBox0 HINT=请放上装备>
参数逐一解析:
1、0~9:物品框序号,有效取值范围0-9,对应十大物品交互框
2、prguse:关联wzl资源文件名,用于加载物品框UI素材
3、1241:wzl素材图片索引编号,对应专属UI贴图
4、1,0,0:依次为图片数量、是否循环播放、是否透明显示参数
5、0,8:物品框UI偏移X、Y坐标数值
6、11,22:物品框绝对X、Y坐标,不参与界面自动换行计算
7、100:UI动画帧间隔,单位为毫秒
8、@ItemBox0:物品框触发标签,鼠标放置、取下物品时触发,关闭窗口自动返还物品不会触发该字段
9、HINT提示文字:玩家悬浮展示的交互提示内容,可自定义修改
功能适配要求:该物品框功能必须配套更新AC游戏网关,避免部分物品交互操作被网关过滤,导致脚本失效。
五、高级功能适配说明
传奇核心脚本命令GetEquipProps、UpgradeItem、UpgradeItemEx已全面适配物品框功能,新增20000~20009专属位置参数,分别对应0~9号物品框,可直接通过位置参数操作对应物品框内的道具,实现装备升级、属性检测、道具回收等自定义功能。
六、完整实操脚本案例(可直接复制使用)
本案例实现双物品框交互功能,一号物品框放置装备检测属性,二号物品框实现道具取下回收,包含物品空值判断、属性读取、道具删除等完整逻辑。
#SAY
ITEMBOX:<ITEMBOX=0,prguse,1241,1,0,0,0,8,055,0,100 LABEL=@itembox0 HINT=请放上装备>
ITEMBOX:<ITEMBOX=1,prguse,1241,1,0,0,0,8,111,0,100 LABEL=@itembox1 HINT=请放上回收物品>
[@itembox0]
#if
;判断是否取下物品,物品ID为0代表无物品
CompVal <$BoxItemID0> = 0
#act
sendmsg 7 移除的物品ID:<$STR(S_RemovedBoxItemID0)>,物品名:<$STR(S_RemovedBoxItemName0)>,数量:<$STR(M_RemovedBoxItemCount0)>
#elseact
;读取0号物品框装备属性
GetEquipProps 20000
[@itembox1]
#if
;判断是否取下物品
CompVal <$BoxItemID1> = 0
#act
sendmsg 7 移除的物品ID:<$STR(S_RemovedBoxItemID1)>,物品名:<$STR(S_RemovedBoxItemName1)>,数量:<$STR(M_RemovedBoxItemCount1)>
#elseact
;移除物品框内道具
Take <$BoxItemID1> 1
[@OnGetEquipProps]
#act
;计算对应物品框序列号
Calc "<$PARAM(3)> - 20000" M_物品框序列号
;弹窗展示物品框道具信息
sendmsg 7 物品框<$STR(M_物品框序列号)>的物品名:<$STR(S_EQUIP[<$PARAM(3)>]_NAME)>,物品ID:<$STR(S_EQUIP[<$PARAM(3)>]_ID)>


