一、前置文件准备与路径设置
首先在服务端根目录下的QuestDiary文件夹内,新建“拾取鉴定”主文件夹,内部再分级创建子文件夹,具体结构如下:QuestDiary\拾取鉴定\装备分级\装备设置、QuestDiary\拾取鉴定\参数设置\几率设置、QuestDiary\拾取鉴定\鉴定分类。该路径需在后续脚本中精准调用,不可出现路径错误。
在装备设置文件夹内,按装备等级创建1-9级装备.txt文件,分别写入对应等级的装备名称,每行一个装备,例如1级装备.txt写入木剑、布衣等基础装备,9级装备.txt写入高阶武器与服饰。几率设置文件夹内对应创建1-9级装备鉴定几率.txt,用于定义不同等级装备触发鉴定的概率及属性条数。鉴定分类文件夹内创建武器鉴定.txt、衣服鉴定.txt、首饰鉴定.txt、项链鉴定.txt,分别存放对应部位装备的鉴定属性脚本。
二、核心触发脚本编写(QF文件配置)
打开服务端QuestDiary文件夹下的QFunction-0.txt文件,在文件末尾添加拾取触发脚本,核心作用是关联捡取物品并触发分级鉴定逻辑,脚本如下:
(@拾取鉴定前置脚本)
{
; 避免捡取过快导致循环异常,先清空过往鉴定关联
#IF
CHECKCUSTOMITEMVALUE -1 6 = 0
CHECKCUSTOMITEMVALUE -1 5 = 0
CHECKCUSTOMITEMVALUE -1 4 = 0
CHECKCUSTOMITEMVALUE -1 3 = 0
CHECKCUSTOMITEMVALUE -1 2 = 0
CHECKCUSTOMITEMVALUE -1 1 = 0
CHECKCUSTOMITEMVALUE -1 0 = 0
#ACT
MOV S$当前鉴定名称
MOV S$鉴定位置 -1
#ELSEACT
BREAK
; 按装备等级匹配鉴定几率脚本
#IF
checktextlist ..\QuestDiary\拾取鉴定\装备分级\装备设置\1级装备.txt
#act
#CALL (\拾取鉴定\参数设置\几率设置\1级装备鉴定几率.txt) @1级装备鉴定几率
#IF
checktextlist ..\QuestDiary\拾取鉴定\装备分级\装备设置\2级装备.txt
#act
#CALL (\拾取鉴定\参数设置\几率设置\2级装备鉴定几率.txt) @2级装备鉴定几率
; 此处省略3-8级装备匹配脚本,格式与1-2级一致
#IF
checktextlist ..\QuestDiary\拾取鉴定\装备分级\装备设置\9级装备.txt
#act
#CALL (\拾取鉴定\参数设置\几率设置\9级装备鉴定几率.txt) @9级装备鉴定几率
; 按装备类型匹配对应鉴定逻辑
#OR
CompareText 5
CompareText 6
#act
#CALL (\拾取鉴定\鉴定分类\武器鉴定.txt) @武器鉴定
#OR
CompareText 66
CompareText 67
CompareText 10
CompareText 11
#act
#CALL (\拾取鉴定\鉴定分类\衣服鉴定.txt) @衣服鉴定
#OR
CompareText 15
CompareText 16
CompareText 53
CompareText 51
CompareText 30
CompareText 26
CompareText 22
CompareText 62
CompareText 64
CompareText 48
CompareText 65
CompareText 28
CompareText 63
#ACT
#CALL (\拾取鉴定\鉴定分类\首饰鉴定.txt) @首饰鉴定
#IF
CompareText 19
#act
#CALL (\拾取鉴定\鉴定分类\项链鉴定.txt) @项链鉴定
; 关联物品并刷新客户端显示
LINKPICKUPITEM
SENDUPGRADEITEM
CLEARLINKITEM
}
三、几率设置与属性参数配置
以1级装备鉴定几率.txt为例,脚本用于定义该等级装备鉴定成功率、属性条数及数值范围,内容如下:
(@1级装备鉴定几率)
{
#IF
RANDOM 80
#ACT
MOV N$属性条数 1
MOV N$属性值下限 1
MOV N$属性值上限 3
#ELSEIF
RANDOM 95
#ACT
MOV N$属性条数 2
MOV N$属性值下限 1
MOV N$属性值上限 2
#ELSE
#ACT
MOV N$属性条数 0
BREAK
}
高阶装备可提高属性条数上限与数值范围,例如9级装备可设置3-5条属性,数值上限提升至10以上,同时调整RANDOM参数控制高属性出现概率,数值越小概率越低。
四、分部位鉴定脚本编写
1. 武器鉴定脚本(武器鉴定.txt)
核心为武器添加攻击、魔法、道术等专属属性,同时修改名称颜色与品质标注,脚本如下:
(@武器鉴定)
{
#IF
N$属性条数 > 0
#ACT
; 第一条属性(攻击)
CHANGECUSTOMITEMABIL -1 1 0 253
CHANGECUSTOMITEMABIL -1 1 1 攻击
CHANGECUSTOMITEMVALUE -1 1 = <$STR(N$属性值A1)>
; 第二条属性(随机魔法/道术)
#IF
N$属性条数 > 1
RANDOM 50
#ACT
CHANGECUSTOMITEMABIL -1 2 0 253
CHANGECUSTOMITEMABIL -1 2 1 魔法
CHANGECUSTOMITEMVALUE -1 2 = <$STR(N$属性值A2)>
#ELSEIF
N$属性条数 > 1
#ACT
CHANGECUSTOMITEMABIL -1 2 0 253
CHANGECUSTOMITEMABIL -1 2 1 道术
CHANGECUSTOMITEMVALUE -1 2 = <$STR(N$属性值A2)>
; 修改武器名称颜色为红色,标注品质
CHANGECUSTOMITEMTEXT -1 (普通品质)
CHANGECUSTOMITEMTEXTCOLOR -1 254
SENDMSG 6 拾取到可鉴定武器,已自动完成鉴定!
}
2. 衣服鉴定脚本(衣服鉴定.txt)
聚焦防御、魔防等属性,脚本逻辑与武器鉴定一致,适配衣服专属属性:
(@衣服鉴定)
{
#IF
N$属性条数 > 0
#ACT
CHANGECUSTOMITEMABIL -1 1 0 253
CHANGECUSTOMITEMABIL -1 1 1 防御
CHANGECUSTOMITEMVALUE -1 1 = <$STR(N$属性值A1)>
#IF
N$属性条数 > 1
#ACT
CHANGECUSTOMITEMABIL -1 2 0 253
CHANGECUSTOMITEMABIL -1 2 1 魔防
CHANGECUSTOMITEMVALUE -1 2 = <$STR(N$属性值A2)>
CHANGECUSTOMITEMTEXT -1 (普通品质)
CHANGECUSTOMITEMTEXTCOLOR -1 252
SENDMSG 6 拾取到可鉴定衣服,已自动完成鉴定!
}
首饰与项链鉴定脚本可参考上述格式,分别添加准确、敏捷、生命值等对应部位属性,确保属性与装备类型匹配。
五、引擎设置与脚本加载
打开GOM引擎M2服务器控制器,依次进入“选项-客户端控制-列表信息二”,找到拾取触发相关设置,勾选“拾取物品触发脚本”选项,确保触发命令能够正常生效。若需批量加载装备列表,可将装备.txt文件集成到登录器,打开登录器生成器,在集成配置中添加对应文件路径,放入补丁文件夹Resources/data目录内,重新生成登录器。
脚本编写完成后,保存所有文件,在M2控制器中执行“脚本-加载所有脚本”命令,加载完成后无报错即代表基础配置生效。可通过调整脚本中RANDOM参数、属性数值范围,优化鉴定效果与体验。
六、常见问题排查
1. 捡取物品不触发鉴定:检查QFunction-0.txt中触发脚本路径是否正确,确保装备名称已添加至对应等级.txt文件,M2中拾取触发选项已勾选。
2. 鉴定后属性不显示:需添加SENDUPGRADEITEM命令刷新客户端,同时检查CLEARLINKITEM命令是否添加,避免关联残留导致显示异常。
3. 批量捡取出现异常:优化脚本结构,减少多重GOTO调用,采用分段检测逻辑,避免一次性鉴定过多物品导致的异常,必要时减少单怪掉落数量。
4. 属性重复或错乱:在鉴定脚本中添加属性去重逻辑,按装备类型严格划分属性范围,避免跨部位属性错误添加。

