一、拾取鉴定核心逻辑与前置配置
GOM引擎拾取鉴定脚本,核心是通过物品拾取触发事件,自动执行鉴定逻辑,分配随机属性、品质标签。需先完成数据库、引擎参数、脚本文件三重前置配置,确保触发机制正常生效,无冲突报错。
1. 物品数据库配置
打开服务端物品数据库(默认路径:Mir200\Envir\Items.txt),针对需鉴定装备设置关键参数,区分“未鉴定”与“已鉴定”两类物品,避免属性混乱。
未鉴定装备配置:STDMODE字段按装备类型设置(如武器1、衣服2),ACCOUNT字段设为1(标记为可鉴定),NAME字段标注“未鉴定的XX”(如未鉴定的裁决),ANICount字段设为专属鉴定编号(1-999,建议按装备品质分段,1-10为普通,11-20为优秀),其余字段按常规装备配置(防御、攻击基础值设为0,后续鉴定随机生成)。
已鉴定装备配置:单独创建对应物品,NAME字段去除“未鉴定”标识,ACCOUNT字段设为0,基础属性按品质设定区间,同时配置品质标签(如绿色【优秀】、蓝色【精良】),通过COLOR字段控制名称颜色(优秀253、精良254)。
2. GOM引擎参数设置
启动服务端M2主程序,依次进入“选项”->“功能设置”->“物品触发设置”,勾选“开启物品拾取触发脚本”“允许拾取后自动执行自定义逻辑”两项,设置触发延迟为500毫秒(避免拾取过快导致脚本卡死)。
切换至“脚本命令设置”,确认“PickUpItem”“IdentifyItem”命令已启用,无禁用标记。若需限制鉴定成功率,可在“参数调整”中设置全局鉴定基础概率(默认100%,可按需下调至80%-90%)。
3. 脚本文件准备
拾取鉴定脚本核心存储于QFunction-0.txt(路径:Mir200\Envir\market_def\QFunction-0.txt),该文件为GOM引擎全局物品触发脚本目录。修改前备份原文件,避免误操作导致其他功能失效。同时确保该文件编码格式为ANSI,禁止UTF-8编码(会导致脚本乱码无法执行)。
二、核心脚本编写(分场景示例)
1. 基础拾取自动鉴定脚本
适用于所有未鉴定装备拾取后直接鉴定,无额外条件限制,脚本绑定数据库ANICount编号(以编号1-10普通装备为例),示例如下:
(@StdModeFunc1)
#IF
CHECKITEM 未鉴定的裁决 1
#ACT
TAKE 未鉴定的裁决 1
RANDOM 10
#IF
EQUAL 1
GIVE 裁决(普通) 1
SENDMSG 5 鉴定成功!获得【普通】裁决!
#ELSEIF
EQUAL 2
GIVE 裁决(优秀) 1
SENDMSG 5 鉴定成功!获得【优秀】裁决!
#ELSEIF
EQUAL 3
GIVE 裁决(精良) 1
SENDMSG 5 鉴定成功!获得【精良】裁决!
#ELSE
GIVE 裁决(普通) 1
SENDMSG 5 鉴定成功!获得【普通】裁决!
#ENDIF
BREAK
(@StdModeFunc2)
#IF
CHECKITEM 未鉴定的麻痹戒指 1
#ACT
TAKE 未鉴定的麻痹戒指 1
RANDOM 8
#IF
EQUAL 1
GIVE 麻痹戒指(优秀) 1
SENDMSG 5 鉴定成功!获得【优秀】麻痹戒指!
#ELSE
GIVE 麻痹戒指(普通) 1
SENDMSG 5 鉴定成功!获得【普通】麻痹戒指!
#ENDIF
BREAK
脚本说明:@StdModeFuncX对应数据库ANICount字段的X值,拾取对应未鉴定装备后,扣除道具并通过RANDOM命令随机分配品质,发送系统提示告知玩家。可按装备价值调整RANDOM范围,高阶装备可扩大优质品质概率区间。
2. 带条件限制的拾取鉴定脚本
适用于需满足等级、职业、道具等条件才能鉴定的场景,以“等级≥35级可鉴定”为例,脚本如下:
(@StdModeFunc3)
#IF
CHECKITEM 未鉴定的屠龙 1
CHECKLEVEL 35
#ACT
TAKE 未鉴定的屠龙 1
RANDOM 15
#IF
EQUAL 1-3
GIVE 屠龙(精良) 1
SENDMSG 5 鉴定成功!获得【精良】屠龙!
#ELSEIF
EQUAL 4-8
GIVE 屠龙(优秀) 1
SENDMSG 5 鉴定成功!获得【优秀】屠龙!
#ELSE
GIVE 屠龙(普通) 1
SENDMSG 5 鉴定成功!获得【普通】屠龙!
#ENDIF
#ELSEACT
SENDMSG 5 等级不足35级,无法鉴定此装备!
BREAK
可拓展条件:添加CHECKJOB命令限制职业(如CHECKJOB 0 仅战士可鉴定)、CHECKITEM命令要求鉴定卷轴(如CHECKITEM 鉴定卷轴 1,鉴定后扣除卷轴),适配不同玩法设定。
3. 鉴定属性随机分配脚本
若需在品质基础上,为已鉴定装备随机生成附加属性(如攻击+1-5、防御+2-4),可补充属性分配逻辑,示例如下:
(@StdModeFunc4)
#IF
CHECKITEM 未鉴定的圣战头盔 1
#ACT
TAKE 未鉴定的圣战头盔 1
RANDOM 10
#IF
EQUAL 1-2
GIVE 圣战头盔(精良) 1
SETITEMATTR 圣战头盔(精良) 攻击 1-3
SETITEMATTR 圣战头盔(精良) 防御 2-4
SENDMSG 5 鉴定成功!获得【精良】圣战头盔,附加攻击1-3、防御2-4!
#ELSEIF
EQUAL 3-6
GIVE 圣战头盔(优秀) 1
SETITEMATTR 圣战头盔(优秀) 攻击 1-2
SETITEMATTR 圣战头盔(优秀) 防御 1-3
SENDMSG 5 鉴定成功!获得【优秀】圣战头盔,附加攻击1-2、防御1-3!
#ELSE
GIVE 圣战头盔(普通) 1
SETITEMATTR 圣战头盔(普通) 攻击 1
SETITEMATTR 圣战头盔(普通) 防御 1-2
SENDMSG 5 鉴定成功!获得【普通】圣战头盔,附加攻击1、防御1-2!
#ENDIF
BREAK
脚本说明:SETITEMATTR命令用于设置装备附加属性,参数依次为物品名称、属性类型、属性区间,支持攻击、防御、魔法、道术等全属性类型,可按装备定位调整属性范围。
三、自动拾取+鉴定联动配置
若需实现“自动拾取未鉴定装备后立即鉴定”,可结合GOM引擎自动捡物命令,补充联动脚本,路径仍为QFunction-0.txt:
(@AutoPickIdentify)
#IF
#ACT
PGStartAutoPickItem 1
PGSetAutoPickItemRange 5
PGSetAutoPickItemInterval 500
SENDMSG 6 自动捡物已开启,范围5格,间隔500毫秒,拾取后自动鉴定!
#SAY
<自动拾取鉴定设置/SCOLOR=253>\
<开启自动拾取鉴定/@AutoPickIdentify>\
<关闭自动拾取鉴定/@CloseAutoPickIdentify>
(@CloseAutoPickIdentify)
#IF
#ACT
PGStartAutoPickItem 0
SENDMSG 6 自动拾取鉴定已关闭!
BREAK
配置说明:PGStartAutoPickItem 1开启自动捡物,PGSetAutoPickItemRange设置拾取范围,PGSetAutoPickItemInterval设置拾取间隔,与前文鉴定脚本联动后,拾取未鉴定装备即可触发自动鉴定,无需手动操作。
四、常见问题排查与解决
1. 拾取后不触发鉴定
优先检查数据库ANICount编号与脚本@StdModeFuncX是否一致,编号不匹配会导致触发失效。其次确认M2引擎“物品拾取触发”功能已勾选,若未勾选,勾选后重启M2即可生效。同时检查脚本文件编码是否为ANSI,UTF-8编码需转换为ANSI后重新保存。
2. 鉴定后属性异常(无附加属性/属性错误)
排查SETITEMATTR命令参数,确保物品名称与数据库完全一致(区分大小写),属性类型拼写正确(如攻击不可写为攻击力)。若属性无显示,检查已鉴定装备数据库基础属性字段是否为0,基础属性非0会覆盖附加属性,需重置为0。
3. 脚本执行卡顿/重复鉴定
卡顿多为拾取间隔过短,调整M2引擎触发延迟至500-800毫秒,同时优化脚本冗余代码,删除重复的CHECKITEM命令。重复鉴定需在脚本中添加BREAK命令,确保鉴定逻辑执行一次后终止,避免循环触发。
4. 条件限制失效(如等级不足仍可鉴定)
检查条件命令顺序,需将CHECKITEM命令置于首位,再依次添加CHECKLEVEL、CHECKJOB等条件,顺序颠倒会导致条件判断失效。同时确认条件参数正确,如CHECKLEVEL 35不可写为35级,职业编号对应正确(战士0、法师1、道士2)。
五、脚本拓展与适配技巧
1. 品质标签可视化:在已鉴定装备名称前添加品质前缀(如【精良】【史诗】),搭配COLOR字段设置颜色,提升辨识度,同时在脚本中通过SENDMSG命令发送品质提示,强化玩家体验。
2. 鉴定失败机制添加:若需设置鉴定失败概率,可通过RANDOM命令控制,示例:RANDOM 10,EQUAL 1则鉴定失败,扣除未鉴定装备并发送提示,其余数值鉴定成功,适配高阶装备稀缺性设定。
3. 多地图差异化配置:若不同地图鉴定概率不同,可在MapQuest.txt中添加地图专属脚本,通过CHECKMAP命令限制触发场景,示例:CHECKMAP 3(比奇城),仅在指定地图触发对应鉴定概率。
六、总结
GOM引擎拾取鉴定脚本核心在于“数据库参数匹配+脚本逻辑清晰+引擎功能开启”,按本文步骤配置后,可实现基础拾取鉴定、条件鉴定、自动拾取联动鉴定等多种场景需求。脚本编写需注重参数准确性,避免拼写错误、编号不匹配等问题,同时结合玩法设定调整品质概率、属性范围,适配不同版本需求。排查问题时优先核对核心配置(编号、引擎设置、编码),多数异常均可快速解决。

