传奇单机合成几率设置方法与文件配置

来源: 作者: 点击:
传奇单机合成系统由NPC脚本与数据库共同控制,几率设定需修改QFunction-0.txt、MakeItem.txt及部分DB文件。不同引擎(如Hero、GOM、C3)路径略有差异,但核心逻辑一致。

首先定位合成NPC脚本。进入服务端EnvirQuestDiary目录,找到对应NPC的对话文件,例如“武器合成.txt”或“装备升级.txt”。在[@Main]或[@InputX]段中查找调用合成函数的指令,常见为#ACT MAKEITEM 或 CALL [合成处理]。

合成主逻辑通常写在QFunction-0.txt中。搜索MAKEITEM关键字,找到类似以下结构:

; 合成裁决之杖
[@MakeCaiJue]
IF
CHECKITEM 10 1
CHECKITEM 11 1
ACT
MAKEITEM 20 1 30

其中MAKEITEM后三个参数分别为:目标物品编号、数量、成功几率(百分比)。30表示30%成功率,失败则消耗材料。

若使用MakeItem.txt配置表(多见于Hero引擎),该文件位于DB或Envir目录。格式为:

材料1 材料2 ... | 目标物品 成功率 消耗金币

例如:
10 11 | 20 30 5000

表示用编号10和11的材料合成编号20物品,30%成功,扣5000金币。失败时默认扣除全部材料,部分版本支持保留材料需额外脚本判断。

高级合成需加入随机数判断。在QFunction-0.txt中使用RANDOM指令:

IF
RANDOM 70
ACT
GIVE 20 1
SENDMSG 6 合成成功!
ELSEACT
DELITEM 10 1
DELITEM 11 1
SENDMSG 6 合成失败,材料消失。

此处RANDOM 70表示70%概率执行#ACT分支,即30%失败率。可根据需求调整数值。

部分版本支持多级成功率,如普通合成30%、使用幸运石提升至60%。需在脚本中增加条件判断:

IF
CHECKITEM 10 1
CHECKITEM 11 1
CHECKITEM 999 1
ACT
DELITEM 999 1
MAKEITEM 20 1 60

999为幸运石编号,存在时触发高几率合成。

合成失败是否返还材料由脚本逻辑决定。若需失败返还80%材料,可添加:

ELSEACT
DELITEM 10 1
DELITEM 11 1
RANDOM 80
IF
ACT
GIVE 10 1
GIVE 11 1

注意:所有物品编号需与StdItems.db或StdItems.txt中定义一致。修改后重启服务端使配置生效。

日志调试可通过SENDMSG指令输出中间变量。例如在合成前插入SENDMSG 6 当前随机值:%R,辅助验证几率计算是否符合预期。