当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

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

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

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

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

;合成裁决之杖
[@MakeCaiJue]
IF
CHECKITEM101
CHECKITEM111
ACT
MAKEITEM20130

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

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

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

例如:
1011|20305000

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

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

IF
RANDOM70
ACT
GIVE201
SENDMSG6合成成功!
ELSEACT
DELITEM101
DELITEM111
SENDMSG6合成失败,材料消失。

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

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

IF
CHECKITEM101
CHECKITEM111
CHECKITEM9991
ACT
DELITEM9991
MAKEITEM20160

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

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

ELSEACT
DELITEM101
DELITEM111
RANDOM80
IF
ACT
GIVE101
GIVE111

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

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