在传奇脚本开发中,物品属性读取是装备升级、属性判定、物品校验功能的核心基础。行业内存在两个独立的物品属性获取命令,分别为ESPGetItemFieldValue、ESPGetItemFieldValueA,二者语法逻辑、适用场景存在明确区分,编写脚本时不可混用。
其中ESPGetItemFieldValue为定向读取命令,用于精准获取指定位置物品的单一属性;ESPGetItemFieldValueA侧重遍历场景,主要适配背包批量物品信息读取需求。
ESPGetItemFieldValue 物品位置 属性名称 变量名
支持六大类定位区域,覆盖传奇脚本所有常规物品存放位置:身上装备位置、首饰盒、神佑面板、装备升级框、OK弹窗框、物品DB数据库。
细分定位取值:-1代表默认OK框位置;100及以上为自定义OK框(100=自定义OK框0、101=自定义OK框1,依次递增);直接填写物品名称可精准定位指定道具。
指定需要读取的物品属性标识,所有可用属性详见本文第三章属性名称对照表。
用于存储读取到的属性值,必须使用字符变量格式,标准示例:<$STR(S0)>,所有属性读取结果均通过字符变量接收。
下表为ESP系列命令支持的全部官方属性标识,可直接代入参数2使用,无自定义修改权限:
基础索引类:MAKEINDEX、IDX
持久属性类:DURA、DURAMAX
升级属性类:UPGRADECOUNT
外观标识类:COLOR、NAME、NEWNAME、STDMODE、SHAPE、LOOKS
基础数值类:HP、MP
攻防属性类:LAC、HAC、LMAC、HMAC、LDC、HDC、LMC、HMC、LSC、HSC
穿戴限制类:NEED、NEEDLEVEL
价值属性类:PRICE
原始扩展属性:VALUE1至VALUE7
新版扩展属性:NEWVALUE1至NEWVALUE20
附加扩展属性:ADDVALUE1至ADDVALUE9
以下为可直接使用的装备属性读取脚本,实现OK框物品属性读取、弹窗提示功能,适配装备升级NPC场景:
[@main]
请放入需要升级的装备\
<ITEMBOX:0:0:118:20:10:76:76:10,11:254#只允许放入衣服^251#www.gameofmir.com>
<ITEMBOX:1:0:118:96:10:76:76:*:254#所有物品都允许放入^251#www.gameofmir.com>\
<升级/@升级>
[@升级]
#ACT
;读取自定义OK框1内物品名称
ESPGetItemFieldValue 101 NAME <$STR(S0)>
sendmsg 7 NAME=<$STR(S0)>
;读取物品自定义名称
ESPGetItemFieldValue 101 NEWNAME <$STR(S0)>
sendmsg 7 NEWNAME=<$STR(S0)>
;读取物品基础模式ID
ESPGetItemFieldValue 101 STDMODE <$STR(S0)>
sendmsg 7 STDMODE=<$STR(S0)>
;读取物品外观模型ID
ESPGetItemFieldValue 101 SHAPE <$STR(S0)>
sendmsg 7 SHAPE=<$STR(S0)>
;读取物品颜色标识
ESPGetItemFieldValue 101 COLOR <$STR(S0)>
sendmsg 7 COLOR=<$STR(S0)>
脚本说明:该案例通过101定位自定义OK框1,依次读取物品五大核心属性,通过系统消息栏向玩家展示读取结果,可直接拓展至装备鉴定、属性筛选等功能。
该命令为专属遍历型物品属性读取指令,无固定单行语法格式,核心应用场景为玩家背包批量物品遍历。
与定向读取命令不同,该命令无需指定单一物品位置,可自动遍历目标玩家背包内所有道具,批量获取物品编号、属性、数值等全量信息,常用于背包物品校验、批量属性修改、道具统计等高级脚本功能开发。
1. 命令区分大小写,脚本程序仅识别大写格式命令,小写输入会导致脚本失效;
2. 变量必须使用字符变量STR系列,数值变量无法存储物品名称、外观标识等文本属性;
3. 自定义OK框取值从100开始,数值递增顺序与NPC界面物品框排序一致;
4. 扩展属性编号不可超出官方上限,NEWVALUE最大为20、ADDVALUE最大为9,超出会读取空值。