GOM引擎传奇捡取鉴定脚本完整实现方法及细节说明

来源: 作者: 点击:
一、前置文件准备与路径设置

首先在服务端根目录下的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. 属性重复或错乱:在鉴定脚本中添加属性去重逻辑,按装备类型严格划分属性范围,避免跨部位属性错误添加。