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

传奇合成脚本编写:成功率与材料控制完整方案

热度:
传奇服务端合成系统通过QFunction脚本实现,需结合随机概率、物品检测与条件分支。以下以“极品金牛戒指”和“极品金牛碎片”为例,说明带成功率及特殊道具干预的完整写法。

一、基础合成结构(无成功率)
如用户所述,基础合成检测材料并执行扣除与给予,结构正确。但需注意:物品名称必须与ItemDB.txt完全一致,包括空格与标点。

二、加入合成成功率(无精练符)
使用Random指令设定失败概率。例如80%成功率,则失败概率为20:

[@HeChengJinNiuRing]
IF
CheckItem金牛道戒1
CheckItem金牛战戒1
CheckItem金牛魔戒1
CheckItem极品金牛碎片2
Random20
ACT
Take金牛道戒1
Take金牛战戒1
Take金牛魔戒1
Take极品金牛碎片2
Give极品金牛戒指1
SendMsg1合成成功!获得极品金牛戒指!
Break

ELSEACT
Take金牛道戒1
Take金牛战戒1
Take金牛魔戒1
Take极品金牛碎片2
SendMsg7合成失败!材料已销毁!

说明:Random20表示20%几率条件成立(即失败),此时执行#ELSEACT。若希望保留部分材料,可在失败分支中仅扣除部分物品。

三、加入精练符实现100%成功
需优先检测精练符是否存在。若存在,则跳过随机判断,直接成功:

[@HeChengJinNiuRing]
;先检查是否携带精练符
IF
CheckItem精练符1
CheckItem金牛道戒1
CheckItem金牛战戒1
CheckItem金牛魔戒1
CheckItem极品金牛碎片2
ACT
Take精练符1
Take金牛道戒1
Take金牛战戒1
Take金牛魔戒1
Take极品金牛碎片2
Give极品金牛戒指1
SendMsg1使用精练符,合成必定成功!
Break

;无精练符时走普通成功率流程
IF
CheckItem金牛道戒1
CheckItem金牛战戒1
CheckItem金牛魔戒1
CheckItem极品金牛碎片2
Random20
ACT
Take金牛道戒1
Take金牛战戒1
Take金牛魔戒1
Take极品金牛碎片2
Give极品金牛戒指1
SendMsg1合成成功!
Break

ELSEACT
Take金牛道戒1
Take金牛战戒1
Take金牛魔戒1
Take极品金牛碎片2
SendMsg7合成失败!材料消失!

注意:两个#IF块顺序不可颠倒,否则精练符逻辑会被普通流程覆盖。

四、极品金牛碎片合成(禁用精练符)
该合成需王者碎片、天龙碎片、金牛碎片各1个,且不允许使用精练符。即使玩家携带精练符,也强制走随机流程:

[@HeChengJinNiuFrag]
;无论是否带精练符,均不检测,直接走随机
IF
CheckItem王者碎片1
CheckItem天龙碎片1
CheckItem金牛碎片1
Random30
ACT
Take王者碎片1
Take天龙碎片1
Take金牛碎片1
Give极品金牛碎片1
SendMsg1极品金牛碎片合成成功!
Break

ELSEACT
Take王者碎片1
Take天龙碎片1
Take金牛碎片1
SendMsg7合成失败!碎片化为尘埃!

关键点:脚本中完全不出现CheckItem精练符,确保其无效。

五、通用注意事项
所有物品名称区分大小写,建议统一使用ItemDB.txt中的标准命名;
Random数值为失败概率百分比,如Random10=10%失败=90%成功;
每个合成应分配独立标签(如@HeChengJinNiuRing),避免与其他功能冲突;
若需提示材料不足,可在所有#IF前加一个总检测:

IF
CheckItem金牛道戒1
CheckItem金牛战戒1
CheckItem金牛魔戒1
CheckItem极品金牛碎片2
ACT
Goto@HeChengJinNiuRing
ELSEACT
MessageBox材料不全,无法合成!

修改后需在M2控制台执行@ReloadNpc或重启服务端使脚本生效。

以上脚本适用于Hero、GOM等主流Mir2引擎,可直接复制到QFunction-0.txt对应标签下使用。实际部署前建议在测试账号验证材料扣除与概率逻辑。
[顶部]