打开镶嵌宝石窗口的核心命令是QUERYREFINEITEM,参数5对应镶嵌宝石窗口。该命令属于NPC对话脚本命令,直接调用后弹出引擎内置的镶嵌界面,玩家将带孔装备和宝石放入窗口即可完成镶嵌操作。整个功能依赖三个层面的配合:NPC脚本调用命令打开窗口、物品数据库配置宝石和打孔符、M2引擎功能设置中开启对应系统。
## QUERYREFINEITEM命令参数详解
命令格式为:QUERYREFINEITEM 参数[0..5]
参数对应关系如下:
参数0表示淬炼窗口,参数1表示天公开物精练窗口,参数2表示天公开物重铸窗口,参数3表示装备打孔窗口,参数4表示宝石合成窗口,参数5表示镶嵌宝石窗口。不带参数时默认显示为淬炼窗口。
打开镶嵌宝石窗口的调用方式为:
```
#IF
CHECKLEVEL > 0
#ACT
QUERYREFINEITEM 5
```
该脚本片段写入NPC对话脚本后,玩家点击对应按钮即弹出镶嵌宝石窗口。CHECKLEVEL > 0的条件检测用于确认玩家等级大于0,实际部署时可根据版本需求替换为其他条件,例如检测玩家是否持有打孔符、是否达到指定等级等。
## 打开装备打孔窗口的写法
打孔是镶嵌的前置操作,装备没有孔位无法镶嵌宝石。打开装备打孔窗口使用参数3:
```
#IF
CHECKLEVEL > 0
#ACT
QUERYREFINEITEM 3
MESSAGEBOX 你已经打开装备打孔
BREAK
```
该脚本调用后弹出打孔窗口,玩家将装备放入窗口执行打孔操作。打孔需要消耗打孔符或对应的45类物品,具体消耗道具在M2引擎的功能设置中配置。
## 打开宝石合成窗口的写法
宝石合成窗口使用参数4,用于将低级宝石合成为高级宝石:
```
#IF
CHECKLEVEL > 0
#ACT
QUERYREFINEITEM 4
MESSAGEBOX 你已经打开合成宝石
BREAK
```
合成宝石需要45类带属性物品作为材料,例如暴击石、合击石、魔准石、魔闪石、怒气石、掠夺石、寻宝石等,这些物品的StdMode值均为45,Shape值从1到7分别对应不同属性类型。
## 完整NPC镶嵌功能脚本范例
以下脚本整合了打孔、镶嵌、宝石合成三个入口,可直接放入NPC对话脚本文件中使用:
```
[@main]
欢迎来到装备镶嵌大师处。\
请选择需要的服务:\
〖<装备打孔/@打孔>〗 〖<镶嵌宝石/@镶嵌>〗 〖<宝石合成/@合成>〗\
〖<关闭/@exit>〗\
[@打孔]
#IF
CHECKLEVEL > 0
#ACT
QUERYREFINEITEM 3
BREAK
[@镶嵌]
#IF
CHECKLEVEL > 0
#ACT
QUERYREFINEITEM 5
BREAK
[@合成]
#IF
CHECKLEVEL > 0
#ACT
QUERYREFINEITEM 4
BREAK
```
脚本的逻辑结构解读:玩家进入[@main]主菜单,看到三个功能按钮。点击“装备打孔”跳转到[@打孔]段落,检测等级条件后调用QUERYREFINEITEM 3打开打孔窗口。点击“镶嵌宝石”跳转到[@镶嵌]段落,调用QUERYREFINEITEM 5打开镶嵌窗口。点击“宝石合成”跳转到[@合成]段落,调用QUERYREFINEITEM 4打开合成窗口。BREAK命令用于在操作完成后终止脚本执行,避免后续段落被意外触发。
## 配套命令:打孔与镶嵌的检测和操作
QUERYREFINEITEM打开的是引擎内置的操作窗口,玩家在窗口内完成打孔和镶嵌。如果需要通过脚本命令直接操作装备孔位,需要使用以下配套命令。
打孔命令DRILLHOLE,格式为:DRILLHOLE 参数1 参数2 装备位置 参数4 参数5 孔位置 参数7 状态 参数9 参数10。装备位置取值范围0至16对应身上装备,-1表示OK框里的物品。孔位置取值范围0至4对应5个孔位。状态参数1表示打开孔位,0表示关闭孔位。参数1、2、4、5、7、9、10为任意字符但不能为空。
镶嵌命令SOCKETABLEITEM,格式为:SOCKETABLEITEM 参数1 参数2 参数3 参数4 装备位置 宝石位置 参数7 参数8 宝石DB库IDX序号加1 参数10。宝石位置取值范围0至4,宝石DB库IDX序号加1表示要镶嵌的宝石在物品数据库中的IDX值加1,如果设置为0则表示删除该位置已镶嵌的宝石。
检测装备是否已打孔使用CHECKDRILLHOLE命令,格式为:CHECKDRILLHOLE 装备位置 孔位置。检测装备是否已镶嵌宝石使用CHECKSOCKETABLEITEM命令,格式为:CHECKSOCKETABLEITEM 装备位置 宝石位置 变量1 变量2。如果已镶嵌宝石,该宝石的IDX值会保存到变量1,宝石名称会保存到变量2。
检测已打孔数量使用CHECKDRILLHOLECOUNT,格式为:CHECKDRILLHOLECOUNT 装备位置 比较符 数量。检测已镶嵌宝石数量使用CHECKSOCKETABLEITEMCOUNT,格式为:CHECKSOCKETABLEITEMCOUNT 装备位置 比较符 数量。
## 宝石物品的数据库配置
宝石在物品数据库中的StdMode值为42或45,取决于引擎版本。GOM引擎中宝石的StdMode通常设置为42,Shape值0至4对应5种不同颜色的镶嵌宝石,在必备补丁NewopUI.PAK的301至305图片中显示。
Shape值如果设置为255,镶嵌后显示宝石DB的Looks字段对应的素材,即DnItems系列文件中的图片。
宝石DB库的Reserved字段控制属性计算方式。Reserved=0时,AC2、MAC2、DC2、MC2、SC2、HP、MP字段的值直接作为对应基本属性的增加值。Reserved>0时,这些字段的值除以100作为属性倍数。例如AC2设置为110,人物防御为200,实际防御等于110除以100再乘以200等于220。
Value1至Value11字段用于设置宝石增加的元素属性。元素属性包括暴击几率、攻击伤害、物伤减少、魔伤减少、忽视防御、伤害反弹等。
## M2引擎功能设置与镶嵌功能开启
QUERYREFINEITEM命令弹出的窗口功能需要在M2引擎中预先开启。打开M2引擎控制面板,进入选项菜单,选择功能设置,找到装备系统选项卡,确认镶嵌系统、打孔系统、宝石合成系统均处于开启状态。
在M2的列表信息二中,找到内挂捡取设置项,最下方有“物品数据库不发送到登陆器”选项。如果勾选了此项,配置登录器时需要点击集成特殊文件将物品数据库集成,否则不要勾选该项。遗漏此设置会导致镶嵌操作在服务端成功但客户端不显示镶嵌效果。
宝石镶嵌成功后客户端不显示宝石图标,除了上述数据库发送问题外,还需检查NewopUI.PAK补丁文件是否完整。宝石的Shape值0至4依赖该补丁文件的301至305号图片,如果补丁文件版本不匹配或文件损坏,宝石图标无法正常渲染。
## 脚本部署路径与NPC配置
NPC脚本文件放置在服务端Mir200\Envir\Market_Def目录下,文件名需与merchant.txt中配置的NPC名称对应。例如在土城设置NPC“装备锻造师”,脚本文件命名为“装备锻造师-3.txt”,其中3为土城地图编号。
NPC脚本中调用QUERYREFINEITEM命令时,命令必须写在#ACT段落内,不能放在#IF条件段落中。脚本文件编码使用ANSI或GBK,UTF-8编码会导致引擎无法正确解析中文命令和提示信息。
修改脚本后需要在M2引擎控制面板中执行脚本重载操作,或者在控制台中输入重载命令使修改生效,无需重启整个服务端进程。
## 常见问题排查
打开窗口后没有反应。首先确认QUERYREFINEITEM命令的参数是否正确填写了5,参数写错会打开其他功能窗口而非镶嵌窗口。其次检查M2引擎的装备系统设置中镶嵌功能是否已开启,未开启时命令调用后窗口不会弹出。
镶嵌后宝石属性不生效。检查宝石DB库中Reserved字段的值是否正确设置。Reserved=0时属性为直接增加值,Reserved>0时属性为倍数计算。确认宝石的StdMode值与引擎要求一致,GOM引擎中宝石StdMode为42,部分引擎为45。
打孔后装备不显示孔位。检查打孔符物品是否正确配置,打孔符的StdMode需与引擎要求匹配。确认M2的列表信息二中物品数据库发送到登录器的设置已正确配置,该选项影响客户端能否接收到装备孔位数据。
宝石镶嵌到装备后客户端不显示宝石图标。确认NewopUI.PAK文件已正确放置在客户端Data目录下,且文件版本与服务端匹配。宝石Shape值0至4需要读取该补丁的301至305号图片,Shape值为255时读取DnItems系列素材。
使用脚本命令SOCKETABLEITEM直接镶嵌时操作失败。确认装备已通过DRILLHOLE命令打开了对应孔位。SOCKETABLEITEM命令要求装备位置参数和宝石位置参数均正确填写,装备位置0至16对应身上装备,-1对应OK框物品。宝石DB库IDX序号加1的参数需要填写宝石物品在数据库中的实际IDX值,不能填写宝石名称。
传奇打开镶嵌宝石窗口NPC命令编写部署完整实例
来源:
作者:
点击:

